@scriptc/compiler 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ambient/scriptc-node-fallback.d.ts +972 -245
- package/ambient/scriptc-overrides.d.ts +5 -1
- package/ambient/scriptc.d.ts +22 -2
- package/dist/backend/build-cache.d.ts +4 -0
- package/dist/backend/build-cache.js +16 -2
- package/dist/backend/build-cache.js.map +1 -1
- package/dist/backend/cycle-analysis.js +17 -5
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-analysis.test.js +50 -11
- package/dist/backend/cycle-analysis.test.js.map +1 -1
- package/dist/backend/debug-symbols.js.map +1 -1
- package/dist/backend/executable-features.js +3 -1
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/external-c.d.ts +13 -6
- package/dist/backend/external-c.js +15 -3
- package/dist/backend/external-c.js.map +1 -1
- package/dist/backend/ffi-callbacks.js +6 -9
- package/dist/backend/ffi-callbacks.js.map +1 -1
- package/dist/backend/library-identity-markers.js.map +1 -1
- package/dist/backend/library-pack.d.ts +1 -1
- package/dist/backend/library-pack.js +81 -24
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/link-plan-core.d.ts +2 -0
- package/dist/backend/link-plan-core.js +10 -2
- package/dist/backend/link-plan-core.js.map +1 -1
- package/dist/backend/link-plan.d.ts +2 -1
- package/dist/backend/link-plan.js +7 -5
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/linker.d.ts +1 -1
- package/dist/backend/linker.js +42 -23
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/literals.js +5 -4
- package/dist/backend/literals.js.map +1 -1
- package/dist/backend/literals.test.js +30 -5
- package/dist/backend/literals.test.js.map +1 -1
- package/dist/backend/llvm/blocks.test.js +5 -2
- package/dist/backend/llvm/blocks.test.js.map +1 -1
- package/dist/backend/llvm/borrowed-inputs.js.map +1 -1
- package/dist/backend/llvm/borrowed-receivers.js +43 -19
- package/dist/backend/llvm/borrowed-receivers.js.map +1 -1
- package/dist/backend/llvm/byte-numbers.js +38 -5
- package/dist/backend/llvm/byte-numbers.js.map +1 -1
- package/dist/backend/llvm/byte-windows.d.ts +31 -0
- package/dist/backend/llvm/byte-windows.js +334 -0
- package/dist/backend/llvm/byte-windows.js.map +1 -0
- package/dist/backend/llvm/byte-windows.test.d.ts +1 -0
- package/dist/backend/llvm/byte-windows.test.js +244 -0
- package/dist/backend/llvm/byte-windows.test.js.map +1 -0
- package/dist/backend/llvm/bytes-bounds.js +73 -22
- package/dist/backend/llvm/bytes-bounds.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.d.ts +5 -2
- package/dist/backend/llvm/call-lifetimes.js +72 -19
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +159 -28
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/checked-value-lifetimes.d.ts +4 -0
- package/dist/backend/llvm/checked-value-lifetimes.js +14 -4
- package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +14 -1
- package/dist/backend/llvm/classes.js +94 -19
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.d.ts +1 -0
- package/dist/backend/llvm/classes.test.js +99 -0
- package/dist/backend/llvm/classes.test.js.map +1 -0
- package/dist/backend/llvm/common.js +4 -1
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.d.ts +11 -0
- package/dist/backend/llvm/constant-callbacks.js +213 -0
- package/dist/backend/llvm/constant-callbacks.js.map +1 -0
- package/dist/backend/llvm/constant-callbacks.test.d.ts +1 -0
- package/dist/backend/llvm/constant-callbacks.test.js +124 -0
- package/dist/backend/llvm/constant-callbacks.test.js.map +1 -0
- package/dist/backend/llvm/counted-loops.js +10 -3
- package/dist/backend/llvm/counted-loops.js.map +1 -1
- package/dist/backend/llvm/debug-info.js +33 -13
- package/dist/backend/llvm/debug-info.js.map +1 -1
- package/dist/backend/llvm/debug-info.test.js +28 -6
- package/dist/backend/llvm/debug-info.test.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +1 -1
- package/dist/backend/llvm/dyn.js +75 -56
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +28 -3
- package/dist/backend/llvm/emitter.js +506 -145
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +247 -50
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +25 -6
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.js +24 -4
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.js +10 -4
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +110 -31
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +2 -0
- package/dist/backend/llvm/expr-containers.js +112 -41
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-control.js +1 -3
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.js +3 -1
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +55 -7
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-island.js +26 -6
- package/dist/backend/llvm/expr-island.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +95 -19
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +44 -2
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +10 -9
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +44 -26
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js +51 -14
- package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.js +34 -14
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/integer-remainder.d.ts +7 -0
- package/dist/backend/llvm/integer-remainder.js +26 -0
- package/dist/backend/llvm/integer-remainder.js.map +1 -0
- package/dist/backend/llvm/integer-values.js +15 -4
- package/dist/backend/llvm/integer-values.js.map +1 -1
- package/dist/backend/llvm/integer-views.js +23 -7
- package/dist/backend/llvm/integer-views.js.map +1 -1
- package/dist/backend/llvm/integer-views.test.js +42 -7
- package/dist/backend/llvm/integer-views.test.js.map +1 -1
- package/dist/backend/llvm/layouts.js +1 -1
- package/dist/backend/llvm/layouts.js.map +1 -1
- package/dist/backend/llvm/lib-abi.js +20 -4
- package/dist/backend/llvm/lib-abi.js.map +1 -1
- package/dist/backend/llvm/lib-connect.js +7 -1
- package/dist/backend/llvm/lib-connect.js.map +1 -1
- package/dist/backend/llvm/lib-datagram.js +35 -10
- package/dist/backend/llvm/lib-datagram.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +42 -38
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +33 -18
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.js +60 -15
- package/dist/backend/llvm/lib-http2.js.map +1 -1
- package/dist/backend/llvm/lib-lookup.js +12 -5
- package/dist/backend/llvm/lib-lookup.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +97 -31
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +57 -14
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +122 -31
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +33 -14
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/lib-test.js +21 -7
- package/dist/backend/llvm/lib-test.js.map +1 -1
- package/dist/backend/llvm/lib-tls.js +69 -20
- package/dist/backend/llvm/lib-tls.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.d.ts +9 -2
- package/dist/backend/llvm/local-array-reads.js +176 -89
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +394 -62
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.d.ts +25 -0
- package/dist/backend/llvm/local-union-storage.js +109 -0
- package/dist/backend/llvm/local-union-storage.js.map +1 -0
- package/dist/backend/llvm/local-union-storage.test.d.ts +1 -0
- package/dist/backend/llvm/local-union-storage.test.js +210 -0
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -0
- package/dist/backend/llvm/loop-array-borrows.d.ts +11 -0
- package/dist/backend/llvm/loop-array-borrows.js +70 -0
- package/dist/backend/llvm/loop-array-borrows.js.map +1 -0
- package/dist/backend/llvm/loop-array-borrows.test.d.ts +1 -0
- package/dist/backend/llvm/loop-array-borrows.test.js +145 -0
- package/dist/backend/llvm/loop-array-borrows.test.js.map +1 -0
- package/dist/backend/llvm/map-read-lifetimes.d.ts +11 -2
- package/dist/backend/llvm/map-read-lifetimes.js +64 -19
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +89 -17
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/reference-effects.d.ts +5 -3
- package/dist/backend/llvm/reference-effects.js +74 -36
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-effects.test.js +92 -9
- package/dist/backend/llvm/reference-effects.test.js.map +1 -1
- package/dist/backend/llvm/shapes.d.ts +4 -1
- package/dist/backend/llvm/shapes.js +82 -24
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +3 -1
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/split-loops.d.ts +48 -0
- package/dist/backend/llvm/split-loops.js +183 -0
- package/dist/backend/llvm/split-loops.js.map +1 -0
- package/dist/backend/llvm/split.js +4 -11
- package/dist/backend/llvm/split.js.map +1 -1
- package/dist/backend/llvm/split.test.js +80 -8
- package/dist/backend/llvm/split.test.js.map +1 -1
- package/dist/backend/llvm/stack-callbacks.d.ts +14 -0
- package/dist/backend/llvm/stack-callbacks.js +73 -0
- package/dist/backend/llvm/stack-callbacks.js.map +1 -0
- package/dist/backend/llvm/stack-captures.d.ts +25 -0
- package/dist/backend/llvm/stack-captures.js +150 -0
- package/dist/backend/llvm/stack-captures.js.map +1 -0
- package/dist/backend/llvm/stack-unions.js +14 -5
- package/dist/backend/llvm/stack-unions.js.map +1 -1
- package/dist/backend/llvm/stack-unions.test.js +151 -32
- package/dist/backend/llvm/stack-unions.test.js.map +1 -1
- package/dist/backend/llvm/string-construction.js.map +1 -1
- package/dist/backend/llvm/string-construction.test.js +32 -7
- package/dist/backend/llvm/string-construction.test.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.js +14 -8
- package/dist/backend/llvm/string-lifetimes.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +119 -29
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-slices.d.ts +20 -0
- package/dist/backend/llvm/string-slices.js +87 -0
- package/dist/backend/llvm/string-slices.js.map +1 -0
- package/dist/backend/llvm/string-slices.test.d.ts +1 -0
- package/dist/backend/llvm/string-slices.test.js +98 -0
- package/dist/backend/llvm/string-slices.test.js.map +1 -0
- package/dist/backend/llvm/switch-dispatch.d.ts +9 -0
- package/dist/backend/llvm/switch-dispatch.js +114 -0
- package/dist/backend/llvm/switch-dispatch.js.map +1 -0
- package/dist/backend/llvm/switch-dispatch.test.d.ts +1 -0
- package/dist/backend/llvm/switch-dispatch.test.js +83 -0
- package/dist/backend/llvm/switch-dispatch.test.js.map +1 -0
- package/dist/backend/llvm/unsupported.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +4 -14
- package/dist/backend/llvm/walkers.js +58 -313
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/mangle.js +9 -3
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/may-throw.js +18 -8
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +119 -23
- package/dist/backend/may-throw.test.js.map +1 -1
- package/dist/backend/native/artifact-stamps.d.ts +39 -0
- package/dist/backend/native/artifact-stamps.js +371 -0
- package/dist/backend/native/artifact-stamps.js.map +1 -0
- package/dist/backend/native/cache-warm.d.ts +24 -0
- package/dist/backend/native/cache-warm.js +80 -0
- package/dist/backend/native/cache-warm.js.map +1 -0
- package/dist/backend/native/compiler-fingerprint.d.ts +19 -0
- package/dist/backend/native/compiler-fingerprint.js +357 -0
- package/dist/backend/native/compiler-fingerprint.js.map +1 -0
- package/dist/backend/native/contracts.d.ts +316 -0
- package/dist/backend/native/contracts.js +2 -0
- package/dist/backend/native/contracts.js.map +1 -0
- package/dist/backend/native/dependency-files.d.ts +5 -0
- package/dist/backend/native/dependency-files.js +83 -0
- package/dist/backend/native/dependency-files.js.map +1 -0
- package/dist/backend/native/driver.d.ts +50 -0
- package/dist/backend/native/driver.js +294 -0
- package/dist/backend/native/driver.js.map +1 -0
- package/dist/backend/native/executable.d.ts +18 -0
- package/dist/backend/native/executable.js +1275 -0
- package/dist/backend/native/executable.js.map +1 -0
- package/dist/backend/native/library.d.ts +2 -0
- package/dist/backend/native/library.js +614 -0
- package/dist/backend/native/library.js.map +1 -0
- package/dist/backend/native/linker-fingerprint.d.ts +8 -0
- package/dist/backend/native/linker-fingerprint.js +174 -0
- package/dist/backend/native/linker-fingerprint.js.map +1 -0
- package/dist/backend/native/object-merge.d.ts +2 -0
- package/dist/backend/native/object-merge.js +154 -0
- package/dist/backend/native/object-merge.js.map +1 -0
- package/dist/backend/native/process.d.ts +17 -0
- package/dist/backend/native/process.js +42 -0
- package/dist/backend/native/process.js.map +1 -0
- package/dist/backend/native/program-shards.d.ts +21 -0
- package/dist/backend/native/program-shards.js +99 -0
- package/dist/backend/native/program-shards.js.map +1 -0
- package/dist/backend/native/runtime-inputs.d.ts +12 -0
- package/dist/backend/native/runtime-inputs.js +165 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -0
- package/dist/backend/native/runtime-inputs.test.d.ts +1 -0
- package/dist/backend/native/runtime-inputs.test.js +64 -0
- package/dist/backend/native/runtime-inputs.test.js.map +1 -0
- package/dist/backend/native/runtime-objects.d.ts +16 -0
- package/dist/backend/native/runtime-objects.js +122 -0
- package/dist/backend/native/runtime-objects.js.map +1 -0
- package/dist/backend/native/session.d.ts +12 -0
- package/dist/backend/native/session.js +31 -0
- package/dist/backend/native/session.js.map +1 -0
- package/dist/backend/native/tool-identity.d.ts +37 -0
- package/dist/backend/native/tool-identity.js +310 -0
- package/dist/backend/native/tool-identity.js.map +1 -0
- package/dist/backend/native/trace-paths.d.ts +12 -0
- package/dist/backend/native/trace-paths.js +73 -0
- package/dist/backend/native/trace-paths.js.map +1 -0
- package/dist/backend/native/vendor.d.ts +1 -0
- package/dist/backend/native/vendor.js +12 -0
- package/dist/backend/native/vendor.js.map +1 -0
- package/dist/backend/native-codegen-core.d.ts +6 -0
- package/dist/backend/native-codegen-core.js +23 -1
- package/dist/backend/native-codegen-core.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +5 -1
- package/dist/backend/native-codegen.js +52 -25
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +59 -11
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +1 -0
- package/dist/backend/native-link-info-core.js +9 -5
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/native-link-info.js +14 -5
- package/dist/backend/native-link-info.js.map +1 -1
- package/dist/backend/native-link-info.test.js +58 -13
- package/dist/backend/native-link-info.test.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +17 -450
- package/dist/backend/native-toolchain.js +17 -3971
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +103 -72
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/native-tools.d.ts +3 -1
- package/dist/backend/native-tools.js +30 -9
- package/dist/backend/native-tools.js.map +1 -1
- package/dist/backend/object-localize.js +17 -14
- package/dist/backend/object-localize.js.map +1 -1
- package/dist/backend/object-localize.test.js +59 -12
- package/dist/backend/object-localize.test.js.map +1 -1
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-core.d.ts +1 -0
- package/dist/backend/runtime-pack-core.js +104 -50
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-native.js +5 -3
- package/dist/backend/runtime-pack-native.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +126 -17
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.d.ts +1 -1
- package/dist/backend/runtime-pack.js +11 -12
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +51 -25
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/source-locations.js.map +1 -1
- package/dist/backend/source-locations.test.js +7 -2
- package/dist/backend/source-locations.test.js.map +1 -1
- package/dist/backend/target-diagnostics.js +44 -14
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +93 -20
- package/dist/backend/target-diagnostics.test.js.map +1 -1
- package/dist/backend/targets.js +230 -86
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +32 -18
- package/dist/backend/targets.test.js.map +1 -1
- package/dist/backend/toolchain-environment.js +5 -1
- package/dist/backend/toolchain-environment.js.map +1 -1
- package/dist/backend/vendor-archives.d.ts +2 -2
- package/dist/backend/vendor-archives.js +84 -35
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/backend/vendor-inputs.js +13 -1
- package/dist/backend/vendor-inputs.js.map +1 -1
- package/dist/backend/warm-cache.d.ts +1 -1
- package/dist/backend/warm-cache.js +33 -9
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/cli/command.js +39 -9
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/output-options.js +14 -4
- package/dist/cli/output-options.js.map +1 -1
- package/dist/cli/paths.js.map +1 -1
- package/dist/cli/wasi-runner.js.map +1 -1
- package/dist/compat/fetch-profile.js +36 -35
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/coverage/report.js +16 -17
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +112 -26
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.js +55 -16
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +2 -1
- package/dist/executable/executable-cache.js +79 -48
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +90 -26
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.js +2 -2
- package/dist/executable/prepare.js.map +1 -1
- package/dist/ffi/ffi-manifest.js +78 -20
- package/dist/ffi/ffi-manifest.js.map +1 -1
- package/dist/ffi/ffi-manifest.test.js +96 -16
- package/dist/ffi/ffi-manifest.test.js.map +1 -1
- package/dist/format-integer.js.map +1 -1
- package/dist/frontend/analysis.js +12 -2
- package/dist/frontend/analysis.js.map +1 -1
- package/dist/frontend/arguments-usage.js.map +1 -1
- package/dist/frontend/binding-source.js +9 -3
- package/dist/frontend/binding-source.js.map +1 -1
- package/dist/frontend/builtin-modules.js +46 -2
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/cjs-resolve.js +40 -17
- package/dist/frontend/cjs-resolve.js.map +1 -1
- package/dist/frontend/cjs-syntax.js +31 -10
- package/dist/frontend/cjs-syntax.js.map +1 -1
- package/dist/frontend/comptime-node.test.js +10 -11
- package/dist/frontend/comptime-node.test.js.map +1 -1
- package/dist/frontend/dts-paths.js +7 -3
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/fork-target.d.ts +5 -0
- package/dist/frontend/fork-target.js +55 -18
- package/dist/frontend/fork-target.js.map +1 -1
- package/dist/frontend/fork-target.test.d.ts +1 -0
- package/dist/frontend/fork-target.test.js +59 -0
- package/dist/frontend/fork-target.test.js.map +1 -0
- package/dist/frontend/function-completion.js +11 -6
- package/dist/frontend/function-completion.js.map +1 -1
- package/dist/frontend/helper-tokens.js +53 -6
- package/dist/frontend/helper-tokens.js.map +1 -1
- package/dist/frontend/helper-tokens.test.js +18 -2
- package/dist/frontend/helper-tokens.test.js.map +1 -1
- package/dist/frontend/inferred-js-diagnostics.js +32 -12
- package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
- package/dist/frontend/inferred-js-diagnostics.test.js +11 -15
- package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
- package/dist/frontend/input-tracker.js +11 -11
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +4 -1
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lib-contract.js +38 -9
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/literal-values.js.map +1 -1
- package/dist/frontend/literal-values.test.js +28 -8
- package/dist/frontend/literal-values.test.js.map +1 -1
- package/dist/frontend/lowering/abstract-equality.js +53 -10
- package/dist/frontend/lowering/abstract-equality.js.map +1 -1
- package/dist/frontend/lowering/array-indexed-mutation.d.ts +1 -1
- package/dist/frontend/lowering/array-indexed-mutation.js +108 -106
- package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
- package/dist/frontend/lowering/array-values.js +37 -14
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/binding-analysis.d.ts +50 -0
- package/dist/frontend/lowering/binding-analysis.js +376 -0
- package/dist/frontend/lowering/binding-analysis.js.map +1 -0
- package/dist/frontend/lowering/builtin-calls.d.ts +9 -0
- package/dist/frontend/lowering/builtin-calls.js +60 -0
- package/dist/frontend/lowering/builtin-calls.js.map +1 -0
- package/dist/frontend/lowering/builtins/arguments.d.ts +43 -0
- package/dist/frontend/lowering/builtins/arguments.js +247 -0
- package/dist/frontend/lowering/builtins/arguments.js.map +1 -0
- package/dist/frontend/lowering/builtins/async-context.d.ts +52 -0
- package/dist/frontend/lowering/builtins/async-context.js +436 -0
- package/dist/frontend/lowering/builtins/async-context.js.map +1 -0
- package/dist/frontend/lowering/builtins/atomics.d.ts +6 -0
- package/dist/frontend/lowering/builtins/atomics.js +82 -0
- package/dist/frontend/lowering/builtins/atomics.js.map +1 -0
- package/dist/frontend/lowering/builtins/callable-aliases.d.ts +13 -0
- package/dist/frontend/lowering/builtins/callable-aliases.js +87 -0
- package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process-async.d.ts +18 -0
- package/dist/frontend/lowering/builtins/child-process-async.js +245 -0
- package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process-methods.d.ts +21 -0
- package/dist/frontend/lowering/builtins/child-process-methods.js +362 -0
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process-sync.d.ts +4 -0
- package/dist/frontend/lowering/builtins/child-process-sync.js +639 -0
- package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process.d.ts +55 -0
- package/dist/frontend/lowering/builtins/child-process.js +669 -0
- package/dist/frontend/lowering/builtins/child-process.js.map +1 -0
- package/dist/frontend/lowering/builtins/compression.d.ts +7 -0
- package/dist/frontend/lowering/builtins/compression.js +115 -0
- package/dist/frontend/lowering/builtins/compression.js.map +1 -0
- package/dist/frontend/lowering/builtins/console.d.ts +10 -0
- package/dist/frontend/lowering/builtins/console.js +38 -0
- package/dist/frontend/lowering/builtins/console.js.map +1 -0
- package/dist/frontend/lowering/builtins/constants.d.ts +24 -0
- package/dist/frontend/lowering/builtins/constants.js +141 -0
- package/dist/frontend/lowering/builtins/constants.js.map +1 -0
- package/dist/frontend/lowering/builtins/crypto.d.ts +22 -0
- package/dist/frontend/lowering/builtins/crypto.js +517 -0
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -0
- package/dist/frontend/lowering/builtins/dates.d.ts +7 -0
- package/dist/frontend/lowering/builtins/dates.js +101 -0
- package/dist/frontend/lowering/builtins/dates.js.map +1 -0
- package/dist/frontend/lowering/builtins/environment.d.ts +34 -0
- package/dist/frontend/lowering/builtins/environment.js +95 -0
- package/dist/frontend/lowering/builtins/environment.js.map +1 -0
- package/dist/frontend/lowering/builtins/errors.d.ts +14 -0
- package/dist/frontend/lowering/builtins/errors.js +83 -0
- package/dist/frontend/lowering/builtins/errors.js.map +1 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +35 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +725 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -0
- package/dist/frontend/lowering/builtins/filesystem.d.ts +108 -0
- package/dist/frontend/lowering/builtins/filesystem.js +1061 -0
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -0
- package/dist/frontend/lowering/builtins/ipc.d.ts +8 -0
- package/dist/frontend/lowering/builtins/ipc.js +76 -0
- package/dist/frontend/lowering/builtins/ipc.js.map +1 -0
- package/dist/frontend/lowering/builtins/json.d.ts +12 -0
- package/dist/frontend/lowering/builtins/json.js +387 -0
- package/dist/frontend/lowering/builtins/json.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-bindings.d.ts +85 -0
- package/dist/frontend/lowering/builtins/module-bindings.js +346 -0
- package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-calls.d.ts +8 -0
- package/dist/frontend/lowering/builtins/module-calls.js +308 -0
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-resolution.d.ts +38 -0
- package/dist/frontend/lowering/builtins/module-resolution.js +344 -0
- package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -0
- package/dist/frontend/lowering/builtins/numbers.d.ts +15 -0
- package/dist/frontend/lowering/builtins/numbers.js +124 -0
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -0
- package/dist/frontend/lowering/builtins/operating-system.d.ts +13 -0
- package/dist/frontend/lowering/builtins/operating-system.js +148 -0
- package/dist/frontend/lowering/builtins/operating-system.js.map +1 -0
- package/dist/frontend/lowering/builtins/performance.d.ts +13 -0
- package/dist/frontend/lowering/builtins/performance.js +100 -0
- package/dist/frontend/lowering/builtins/performance.js.map +1 -0
- package/dist/frontend/lowering/builtins/process.d.ts +50 -0
- package/dist/frontend/lowering/builtins/process.js +1138 -0
- package/dist/frontend/lowering/builtins/process.js.map +1 -0
- package/dist/frontend/lowering/builtins/promises.d.ts +14 -0
- package/dist/frontend/lowering/builtins/promises.js +356 -0
- package/dist/frontend/lowering/builtins/promises.js.map +1 -0
- package/dist/frontend/lowering/builtins/properties.d.ts +11 -0
- package/dist/frontend/lowering/builtins/properties.js +186 -0
- package/dist/frontend/lowering/builtins/properties.js.map +1 -0
- package/dist/frontend/lowering/builtins/querystring.d.ts +19 -0
- package/dist/frontend/lowering/builtins/querystring.js +150 -0
- package/dist/frontend/lowering/builtins/querystring.js.map +1 -0
- package/dist/frontend/lowering/builtins/readline.d.ts +13 -0
- package/dist/frontend/lowering/builtins/readline.js +138 -0
- package/dist/frontend/lowering/builtins/readline.js.map +1 -0
- package/dist/frontend/lowering/builtins/receiver-types.d.ts +5 -0
- package/dist/frontend/lowering/builtins/receiver-types.js +15 -0
- package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -0
- package/dist/frontend/lowering/builtins/reflection.d.ts +13 -0
- package/dist/frontend/lowering/builtins/reflection.js +95 -0
- package/dist/frontend/lowering/builtins/reflection.js.map +1 -0
- package/dist/frontend/lowering/builtins/strings.d.ts +14 -0
- package/dist/frontend/lowering/builtins/strings.js +121 -0
- package/dist/frontend/lowering/builtins/strings.js.map +1 -0
- package/dist/frontend/lowering/builtins/text-codecs.d.ts +29 -0
- package/dist/frontend/lowering/builtins/text-codecs.js +590 -0
- package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -0
- package/dist/frontend/lowering/builtins/timers.d.ts +22 -0
- package/dist/frontend/lowering/builtins/timers.js +180 -0
- package/dist/frontend/lowering/builtins/timers.js.map +1 -0
- package/dist/frontend/lowering/builtins/url.d.ts +37 -0
- package/dist/frontend/lowering/builtins/url.js +596 -0
- package/dist/frontend/lowering/builtins/url.js.map +1 -0
- package/dist/frontend/lowering/builtins/util-types.d.ts +7 -0
- package/dist/frontend/lowering/builtins/util-types.js +31 -0
- package/dist/frontend/lowering/builtins/util-types.js.map +1 -0
- package/dist/frontend/lowering/builtins/workers.d.ts +5 -0
- package/dist/frontend/lowering/builtins/workers.js +65 -0
- package/dist/frontend/lowering/builtins/workers.js.map +1 -0
- package/dist/frontend/lowering/call-arguments.d.ts +72 -0
- package/dist/frontend/lowering/call-arguments.js +618 -0
- package/dist/frontend/lowering/call-arguments.js.map +1 -0
- package/dist/frontend/lowering/call-signatures.d.ts +115 -0
- package/dist/frontend/lowering/call-signatures.js +719 -0
- package/dist/frontend/lowering/call-signatures.js.map +1 -0
- package/dist/frontend/lowering/callback-arg.js.map +1 -1
- package/dist/frontend/lowering/checked-iterable-spread.js +53 -10
- package/dist/frontend/lowering/checked-iterable-spread.js.map +1 -1
- package/dist/frontend/lowering/checked-promise-all.js +41 -9
- package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
- package/dist/frontend/lowering/class-assertions.d.ts +7 -0
- package/dist/frontend/lowering/class-assertions.js +96 -0
- package/dist/frontend/lowering/class-assertions.js.map +1 -0
- package/dist/frontend/lowering/class-callbacks.d.ts +1 -1
- package/dist/frontend/lowering/class-callbacks.js +130 -27
- package/dist/frontend/lowering/class-callbacks.js.map +1 -1
- package/dist/frontend/lowering/class-construction.d.ts +1 -1
- package/dist/frontend/lowering/class-construction.js +247 -50
- package/dist/frontend/lowering/class-construction.js.map +1 -1
- package/dist/frontend/lowering/class-descriptors.js +109 -29
- package/dist/frontend/lowering/class-descriptors.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +6 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.js +2471 -465
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +284 -44
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-instance-constructor.js +17 -5
- package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
- package/dist/frontend/lowering/class-method-values.js +199 -51
- package/dist/frontend/lowering/class-method-values.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.d.ts +17 -0
- package/dist/frontend/lowering/class-protocols.js +126 -0
- package/dist/frontend/lowering/class-protocols.js.map +1 -0
- package/dist/frontend/lowering/class-prototypes.js +345 -86
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-runtime-statics.d.ts +1 -1
- package/dist/frontend/lowering/class-runtime-statics.js +80 -17
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
- package/dist/frontend/lowering/class-static-data.js +76 -16
- package/dist/frontend/lowering/class-static-data.js.map +1 -1
- package/dist/frontend/lowering/coercions/builders.d.ts +13 -0
- package/dist/frontend/lowering/coercions/builders.js +77 -0
- package/dist/frontend/lowering/coercions/builders.js.map +1 -0
- package/dist/frontend/lowering/coercions/function-adapters.d.ts +58 -0
- package/dist/frontend/lowering/coercions/function-adapters.js +430 -0
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -0
- package/dist/frontend/lowering/coercions/island.d.ts +37 -0
- package/dist/frontend/lowering/coercions/island.js +350 -0
- package/dist/frontend/lowering/coercions/island.js.map +1 -0
- package/dist/frontend/lowering/coercions/state.d.ts +14 -0
- package/dist/frontend/lowering/coercions/state.js +16 -0
- package/dist/frontend/lowering/coercions/state.js.map +1 -0
- package/dist/frontend/lowering/coercions/structural-plans.d.ts +40 -0
- package/dist/frontend/lowering/coercions/structural-plans.js +447 -0
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -0
- package/dist/frontend/lowering/coercions/structural.d.ts +63 -0
- package/dist/frontend/lowering/coercions/structural.js +616 -0
- package/dist/frontend/lowering/coercions/structural.js.map +1 -0
- package/dist/frontend/lowering/coercions/unions.d.ts +65 -0
- package/dist/frontend/lowering/coercions/unions.js +318 -0
- package/dist/frontend/lowering/coercions/unions.js.map +1 -0
- package/dist/frontend/lowering/collection-ingestion.js +355 -72
- package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +88 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +1611 -0
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -0
- package/dist/frontend/lowering/containers/array-construction.d.ts +42 -0
- package/dist/frontend/lowering/containers/array-construction.js +1044 -0
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -0
- package/dist/frontend/lowering/containers/array-iteration.d.ts +16 -0
- package/dist/frontend/lowering/containers/array-iteration.js +95 -0
- package/dist/frontend/lowering/containers/array-iteration.js.map +1 -0
- package/dist/frontend/lowering/containers/array-methods.d.ts +27 -0
- package/dist/frontend/lowering/containers/array-methods.js +1854 -0
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -0
- package/dist/frontend/lowering/containers/bytes.d.ts +17 -17
- package/dist/frontend/lowering/containers/bytes.js +430 -138
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.d.ts +26 -0
- package/dist/frontend/lowering/containers/callback-arguments.js +179 -0
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -0
- package/dist/frontend/lowering/containers/collection-grouping.d.ts +19 -0
- package/dist/frontend/lowering/containers/collection-grouping.js +297 -0
- package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -0
- package/dist/frontend/lowering/containers/collection-methods.d.ts +57 -0
- package/dist/frontend/lowering/containers/collection-methods.js +1314 -0
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -0
- package/dist/frontend/lowering/containers/dynamic-receivers.d.ts +18 -0
- package/dist/frontend/lowering/containers/dynamic-receivers.js +114 -0
- package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -0
- package/dist/frontend/lowering/containers/for-of.d.ts +60 -0
- package/dist/frontend/lowering/containers/for-of.js +643 -0
- package/dist/frontend/lowering/containers/for-of.js.map +1 -0
- package/dist/frontend/lowering/containers/indexed-objects.d.ts +132 -0
- package/dist/frontend/lowering/containers/indexed-objects.js +1743 -0
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -0
- package/dist/frontend/lowering/containers/iterator-helpers.d.ts +20 -0
- package/dist/frontend/lowering/containers/iterator-helpers.js +809 -0
- package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js +601 -160
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.js +213 -63
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
- package/dist/frontend/lowering/crypto-tables.js +263 -64
- package/dist/frontend/lowering/crypto-tables.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.js +172 -68
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.test.js +41 -8
- package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
- package/dist/frontend/lowering/error-methods.js +339 -65
- package/dist/frontend/lowering/error-methods.js.map +1 -1
- package/dist/frontend/lowering/expressions/evaluation-safety.js +3 -2
- package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
- package/dist/frontend/lowering/expressions/global-symbols.js +2 -1
- package/dist/frontend/lowering/expressions/global-symbols.js.map +1 -1
- package/dist/frontend/lowering/expressions/native-proxy.js +11 -5
- package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +67 -13
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +588 -165
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +68 -17
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-field-write.js +45 -18
- package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -1
- package/dist/frontend/lowering/function-context.js +5 -1
- package/dist/frontend/lowering/function-context.js.map +1 -1
- package/dist/frontend/lowering/function-returns.d.ts +67 -0
- package/dist/frontend/lowering/function-returns.js +392 -0
- package/dist/frontend/lowering/function-returns.js.map +1 -0
- package/dist/frontend/lowering/generator-delegation.d.ts +1 -1
- package/dist/frontend/lowering/generator-delegation.js +171 -39
- package/dist/frontend/lowering/generator-delegation.js.map +1 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +1 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +176 -36
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +271 -0
- package/dist/frontend/lowering/generic-functions.js +1730 -0
- package/dist/frontend/lowering/generic-functions.js.map +1 -0
- package/dist/frontend/lowering/import-meta.d.ts +1 -1
- package/dist/frontend/lowering/import-meta.js +37 -14
- package/dist/frontend/lowering/import-meta.js.map +1 -1
- package/dist/frontend/lowering/indexed-comparison.js +6 -2
- package/dist/frontend/lowering/indexed-comparison.js.map +1 -1
- package/dist/frontend/lowering/instantiation-path.d.ts +8 -0
- package/dist/frontend/lowering/instantiation-path.js +10 -0
- package/dist/frontend/lowering/instantiation-path.js.map +1 -0
- package/dist/frontend/lowering/instantiation-path.test.d.ts +1 -0
- package/dist/frontend/lowering/instantiation-path.test.js +23 -0
- package/dist/frontend/lowering/instantiation-path.test.js.map +1 -0
- package/dist/frontend/lowering/iterator-consumption.d.ts +9 -0
- package/dist/frontend/lowering/iterator-consumption.js +91 -0
- package/dist/frontend/lowering/iterator-consumption.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.js +40 -17
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lib-boundary.test.js +49 -11
- package/dist/frontend/lowering/lib-boundary.test.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.d.ts +0 -19
- package/dist/frontend/lowering/lower-array-sort.js +331 -566
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +248 -43
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.js +71 -16
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.js +430 -77
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +39 -558
- package/dist/frontend/lowering/lower-calls.js +2628 -5669
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +248 -242
- package/dist/frontend/lowering/lower-classes.js +1820 -775
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +35 -35
- package/dist/frontend/lowering/lower-comptime.js +39 -37
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.js +59 -31
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-enums.js +5 -2
- package/dist/frontend/lowering/lower-enums.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.js +323 -86
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-expando.js +19 -7
- package/dist/frontend/lowering/lower-expando.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +194 -194
- package/dist/frontend/lowering/lower-exprs.js +3473 -1160
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.d.ts +23 -0
- package/dist/frontend/lowering/lower-functions.js +449 -0
- package/dist/frontend/lowering/lower-functions.js.map +1 -0
- package/dist/frontend/lowering/lower-generators.js +121 -32
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.js +15 -4
- package/dist/frontend/lowering/lower-global-value.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +479 -89
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +79 -79
- package/dist/frontend/lowering/lower-island.js +366 -274
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-island.test.js +7 -2
- package/dist/frontend/lowering/lower-island.test.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.js +17 -8
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +95 -94
- package/dist/frontend/lowering/lower-modules.js +655 -329
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.test.js +91 -20
- package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.js +25 -8
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-node-module.js +115 -34
- package/dist/frontend/lowering/lower-node-module.js.map +1 -1
- package/dist/frontend/lowering/lower-server.js +1210 -290
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +148 -148
- package/dist/frontend/lowering/lower-stmts.js +2324 -994
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.test.js +13 -5
- package/dist/frontend/lowering/lower-stmts.test.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +363 -91
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-system-errors.js +30 -8
- package/dist/frontend/lowering/lower-system-errors.js.map +1 -1
- package/dist/frontend/lowering/lower-test.js +40 -13
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.d.ts +31 -0
- package/dist/frontend/lowering/lower-timers.js +336 -0
- package/dist/frontend/lowering/lower-timers.js.map +1 -0
- package/dist/frontend/lowering/lower-url.d.ts +1 -1
- package/dist/frontend/lowering/lower-url.js +46 -13
- package/dist/frontend/lowering/lower-url.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +34 -352
- package/dist/frontend/lowering/lowerer.js +1074 -2712
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +85 -17
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/module-namespace-elements.js +43 -8
- package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
- package/dist/frontend/lowering/native-ffi.d.ts +21 -1
- package/dist/frontend/lowering/native-ffi.js +487 -18
- package/dist/frontend/lowering/native-ffi.js.map +1 -1
- package/dist/frontend/lowering/object-enumeration-receiver.js +55 -10
- package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -1
- package/dist/frontend/lowering/object-factory-new.d.ts +1 -1
- package/dist/frontend/lowering/object-factory-new.js +36 -11
- package/dist/frontend/lowering/object-factory-new.js.map +1 -1
- package/dist/frontend/lowering/optional-arguments.js +49 -20
- package/dist/frontend/lowering/optional-arguments.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.js +66 -14
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-locals.js +3 -1
- package/dist/frontend/lowering/runtime-optional-locals.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-locals.test.js.map +1 -1
- package/dist/frontend/lowering/sanitize-class-types.js +4 -1
- package/dist/frontend/lowering/sanitize-class-types.js.map +1 -1
- package/dist/frontend/lowering/sanitize-class-types.test.js +86 -18
- package/dist/frontend/lowering/sanitize-class-types.test.js.map +1 -1
- package/dist/frontend/lowering/split-consumers.d.ts +7 -0
- package/dist/frontend/lowering/split-consumers.js +64 -0
- package/dist/frontend/lowering/split-consumers.js.map +1 -0
- package/dist/frontend/lowering/static-this.js +13 -6
- package/dist/frontend/lowering/static-this.js.map +1 -1
- package/dist/frontend/lowering/string-index.js +32 -10
- package/dist/frontend/lowering/string-index.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +45 -46
- package/dist/frontend/lowering/surfaces.js +1129 -256
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/symbol-fields.js +40 -15
- package/dist/frontend/lowering/symbol-fields.js.map +1 -1
- package/dist/frontend/lowering/symbol-methods.js.map +1 -1
- package/dist/frontend/lowering/text-decoder-encoding.js +236 -24
- package/dist/frontend/lowering/text-decoder-encoding.js.map +1 -1
- package/dist/frontend/lowering/text-decoder-encoding.test.js +84 -12
- package/dist/frontend/lowering/text-decoder-encoding.test.js.map +1 -1
- package/dist/frontend/lowering/union-narrow.js +59 -16
- package/dist/frontend/lowering/union-narrow.js.map +1 -1
- package/dist/frontend/lowering/union-narrow.test.js +24 -7
- package/dist/frontend/lowering/union-narrow.test.js.map +1 -1
- package/dist/frontend/lowering/union-retag.js +155 -40
- package/dist/frontend/lowering/union-retag.js.map +1 -1
- package/dist/frontend/lowering/union-retag.test.js +131 -33
- package/dist/frontend/lowering/union-retag.test.js.map +1 -1
- package/dist/frontend/lowering/unregistered-class-types.js.map +1 -1
- package/dist/frontend/lowering/unregistered-class-types.test.js +34 -8
- package/dist/frontend/lowering/unregistered-class-types.test.js.map +1 -1
- package/dist/frontend/module-source-candidates.d.ts +10 -0
- package/dist/frontend/module-source-candidates.js +40 -0
- package/dist/frontend/module-source-candidates.js.map +1 -0
- package/dist/frontend/module-source-candidates.test.d.ts +1 -0
- package/dist/frontend/module-source-candidates.test.js +53 -0
- package/dist/frontend/module-source-candidates.test.js.map +1 -0
- package/dist/frontend/module-syntax.js +21 -8
- package/dist/frontend/module-syntax.js.map +1 -1
- package/dist/frontend/module-syntax.test.js +37 -13
- package/dist/frontend/module-syntax.test.js.map +1 -1
- package/dist/frontend/npm-fetch-analysis.js +13 -4
- package/dist/frontend/npm-fetch-analysis.js.map +1 -1
- package/dist/frontend/npm-fetch-analysis.test.js +33 -10
- package/dist/frontend/npm-fetch-analysis.test.js.map +1 -1
- package/dist/frontend/npm-fetch-node.js.map +1 -1
- package/dist/frontend/npm-fetch-syntax.js +4 -9
- package/dist/frontend/npm-fetch-syntax.js.map +1 -1
- package/dist/frontend/npm-node.js +3 -1
- package/dist/frontend/npm-node.js.map +1 -1
- package/dist/frontend/npm-static-bundled-cjs.js +88 -29
- package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
- package/dist/frontend/npm-static-bundled-cjs.test.js +29 -10
- package/dist/frontend/npm-static-bundled-cjs.test.js.map +1 -1
- package/dist/frontend/npm-static-declaration-syntax.js +148 -56
- package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
- package/dist/frontend/npm-static-declarations.d.ts +1 -1
- package/dist/frontend/npm-static-declarations.js.map +1 -1
- package/dist/frontend/npm-static-declarations.test.js +33 -7
- package/dist/frontend/npm-static-declarations.test.js.map +1 -1
- package/dist/frontend/npm-static-prune.js +26 -12
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-prune.test.js +17 -3
- package/dist/frontend/npm-static-prune.test.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-host.js +2 -3
- package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-syntax.js +64 -21
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
- package/dist/frontend/npm-static-rewrite.js.map +1 -1
- package/dist/frontend/npm-static-subtyping.js +9 -4
- package/dist/frontend/npm-static-subtyping.js.map +1 -1
- package/dist/frontend/npm-static-subtyping.test.js +30 -6
- package/dist/frontend/npm-static-subtyping.test.js.map +1 -1
- package/dist/frontend/npm-static.js +15 -4
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.js +122 -36
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/npm.test.js +30 -10
- package/dist/frontend/npm.test.js.map +1 -1
- package/dist/frontend/pipeline-native.js.map +1 -1
- package/dist/frontend/pipeline.js +25 -8
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/pipeline.test.js +21 -7
- package/dist/frontend/pipeline.test.js.map +1 -1
- package/dist/frontend/program-analysis.d.ts +2 -0
- package/dist/frontend/program-analysis.js +2 -0
- package/dist/frontend/program-analysis.js.map +1 -1
- package/dist/frontend/program-node.js +5 -3
- package/dist/frontend/program-node.js.map +1 -1
- package/dist/frontend/program.d.ts +2 -2
- package/dist/frontend/program.js +248 -127
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +27 -27
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/provenance-core.js +8 -4
- package/dist/frontend/provenance-core.js.map +1 -1
- package/dist/frontend/provenance-registry.js +1 -4
- package/dist/frontend/provenance-registry.js.map +1 -1
- package/dist/frontend/resolve.js +32 -20
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/resolve.test.js +1 -1
- package/dist/frontend/resolve.test.js.map +1 -1
- package/dist/frontend/runtime-resolve.js +13 -4
- package/dist/frontend/runtime-resolve.js.map +1 -1
- package/dist/frontend/runtime-resolve.test.js +25 -9
- package/dist/frontend/runtime-resolve.test.js.map +1 -1
- package/dist/frontend/services-node.js +6 -2
- package/dist/frontend/services-node.js.map +1 -1
- package/dist/frontend/services-node.test.js +18 -6
- package/dist/frontend/services-node.test.js.map +1 -1
- package/dist/frontend/services.js +8 -4
- package/dist/frontend/services.js.map +1 -1
- package/dist/frontend/services.test.js +6 -2
- package/dist/frontend/services.test.js.map +1 -1
- package/dist/frontend/ts7/api.js +12 -4
- package/dist/frontend/ts7/api.js.map +1 -1
- package/dist/frontend/ts7/ast-bytes.js +10 -3
- package/dist/frontend/ts7/ast-bytes.js.map +1 -1
- package/dist/frontend/ts7/ast-bytes.test.js +23 -4
- package/dist/frontend/ts7/ast-bytes.test.js.map +1 -1
- package/dist/frontend/ts7/ast-guards.test.js +14 -5
- package/dist/frontend/ts7/ast-guards.test.js.map +1 -1
- package/dist/frontend/ts7/ast-node.d.ts +6 -1
- package/dist/frontend/ts7/ast-node.js +490 -172
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +150 -36
- package/dist/frontend/ts7/ast-node.test.js.map +1 -1
- package/dist/frontend/ts7/ast-text.js +13 -3
- package/dist/frontend/ts7/ast-text.js.map +1 -1
- package/dist/frontend/ts7/ast-text.test.js.map +1 -1
- package/dist/frontend/ts7/ast-types.js.map +1 -1
- package/dist/frontend/ts7/ast-wire.d.ts +5 -1
- package/dist/frontend/ts7/ast-wire.js +83 -20
- package/dist/frontend/ts7/ast-wire.js.map +1 -1
- package/dist/frontend/ts7/ast-wire.test.js +53 -8
- package/dist/frontend/ts7/ast-wire.test.js.map +1 -1
- package/dist/frontend/ts7/ast.d.ts +2 -1
- package/dist/frontend/ts7/ast.js +53 -30
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/census-check.js +1 -1
- package/dist/frontend/ts7/census-check.js.map +1 -1
- package/dist/frontend/ts7/checker-cache.js.map +1 -1
- package/dist/frontend/ts7/checker.d.ts +8 -2
- package/dist/frontend/ts7/checker.js +46 -8
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.js +96 -17
- package/dist/frontend/ts7/checker.test.js.map +1 -1
- package/dist/frontend/ts7/enums.test.js +9 -4
- package/dist/frontend/ts7/enums.test.js.map +1 -1
- package/dist/frontend/ts7/native-api.js.map +1 -1
- package/dist/frontend/ts7/native-host.js.map +1 -1
- package/dist/frontend/ts7/native-process.js +9 -3
- package/dist/frontend/ts7/native-process.js.map +1 -1
- package/dist/frontend/ts7/program-adapter.js +1 -1
- package/dist/frontend/ts7/program-adapter.js.map +1 -1
- package/dist/frontend/ts7/program-host.d.ts +7 -0
- package/dist/frontend/ts7/program-host.js +33 -6
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/program-host.test.js +72 -11
- package/dist/frontend/ts7/program-host.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-api.js +3 -1
- package/dist/frontend/ts7/rpc-api.js.map +1 -1
- package/dist/frontend/ts7/rpc-client.js +15 -5
- package/dist/frontend/ts7/rpc-client.js.map +1 -1
- package/dist/frontend/ts7/rpc-client.test.js +26 -8
- package/dist/frontend/ts7/rpc-client.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-filesystem.js.map +1 -1
- package/dist/frontend/ts7/rpc-filesystem.test.js +43 -10
- package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-process.js +16 -6
- package/dist/frontend/ts7/rpc-process.js.map +1 -1
- package/dist/frontend/ts7/rpc-process.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-wire.d.ts +1 -0
- package/dist/frontend/ts7/rpc-wire.js +41 -14
- package/dist/frontend/ts7/rpc-wire.js.map +1 -1
- package/dist/frontend/ts7/rpc-wire.test.js +36 -6
- package/dist/frontend/ts7/rpc-wire.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.js +209 -68
- package/dist/frontend/ts7/semantic-checker.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.test.js +29 -14
- package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.js +7 -1
- package/dist/frontend/ts7/semantic-json.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.test.js +17 -3
- package/dist/frontend/ts7/semantic-json.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.js +147 -51
- package/dist/frontend/ts7/semantic-model.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.test.js +72 -19
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-types.d.ts +2 -2
- package/dist/frontend/ts7/session-cache.js +10 -3
- package/dist/frontend/ts7/session-cache.js.map +1 -1
- package/dist/frontend/ts7/session-cache.test.js +13 -4
- package/dist/frontend/ts7/session-cache.test.js.map +1 -1
- package/dist/frontend/ts7/session-path.js +25 -10
- package/dist/frontend/ts7/session-path.js.map +1 -1
- package/dist/frontend/ts7/session-path.test.js +47 -4
- package/dist/frontend/ts7/session-path.test.js.map +1 -1
- package/dist/frontend/ts7/session-timing.js +22 -3
- package/dist/frontend/ts7/session-timing.js.map +1 -1
- package/dist/frontend/ts7/session-timing.test.js +12 -3
- package/dist/frontend/ts7/session-timing.test.js.map +1 -1
- package/dist/frontend/ts7/session.d.ts +1 -0
- package/dist/frontend/ts7/session.js +109 -35
- package/dist/frontend/ts7/session.js.map +1 -1
- package/dist/frontend/ts7/session.test.js +69 -15
- package/dist/frontend/ts7/session.test.js.map +1 -1
- package/dist/frontend/ts7/source-parser.js +17 -6
- package/dist/frontend/ts7/source-parser.js.map +1 -1
- package/dist/frontend/ts7/source-parser.test.js +32 -9
- package/dist/frontend/ts7/source-parser.test.js.map +1 -1
- package/dist/frontend/tsc-codes.js +56 -11
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/tsc-codes.test.d.ts +1 -0
- package/dist/frontend/tsc-codes.test.js +16 -0
- package/dist/frontend/tsc-codes.test.js.map +1 -0
- package/dist/frontend/type-mapper.d.ts +3 -0
- package/dist/frontend/type-mapper.js +589 -206
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.js +108 -33
- package/dist/frontend/type-mapper.test.js.map +1 -1
- package/dist/frontend/union-discriminants.js +8 -2
- package/dist/frontend/union-discriminants.js.map +1 -1
- package/dist/frontend/union-discriminants.test.js +77 -20
- package/dist/frontend/union-discriminants.test.js.map +1 -1
- package/dist/frontend/worker-target.d.ts +6 -0
- package/dist/frontend/worker-target.js +108 -0
- package/dist/frontend/worker-target.js.map +1 -0
- package/dist/frontend/worker-target.test.d.ts +1 -0
- package/dist/frontend/worker-target.test.js +71 -0
- package/dist/frontend/worker-target.test.js.map +1 -0
- package/dist/index.d.ts +9 -8
- package/dist/index.js +174 -88
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js +95 -38
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/analysis.test.js +91 -15
- package/dist/ir/analysis.test.js.map +1 -1
- package/dist/ir/api.d.ts +4 -0
- package/dist/ir/api.js +6 -0
- package/dist/ir/api.js.map +1 -0
- package/dist/ir/build.d.ts +7 -0
- package/dist/ir/build.js +27 -1
- package/dist/ir/build.js.map +1 -1
- package/dist/ir/builtin-effects.d.ts +9 -0
- package/dist/ir/builtin-effects.js +643 -0
- package/dist/ir/builtin-effects.js.map +1 -0
- package/dist/ir/builtin-signatures.d.ts +15 -0
- package/dist/ir/builtin-signatures.js +3397 -0
- package/dist/ir/builtin-signatures.js.map +1 -0
- package/dist/ir/byte-numbers.js +67 -16
- package/dist/ir/byte-numbers.js.map +1 -1
- package/dist/ir/byte-numbers.test.js +17 -4
- package/dist/ir/byte-numbers.test.js.map +1 -1
- package/dist/ir/constant-tables.js +13 -5
- package/dist/ir/constant-tables.js.map +1 -1
- package/dist/ir/constant-tables.test.js +47 -7
- package/dist/ir/constant-tables.test.js.map +1 -1
- package/dist/ir/control-flow.js +2 -1
- package/dist/ir/control-flow.js.map +1 -1
- package/dist/ir/control-flow.test.js +35 -11
- package/dist/ir/control-flow.test.js.map +1 -1
- package/dist/ir/initializer-bindings.d.ts +9 -0
- package/dist/ir/initializer-bindings.js +115 -0
- package/dist/ir/initializer-bindings.js.map +1 -0
- package/dist/ir/initializer-bindings.test.d.ts +1 -0
- package/dist/ir/initializer-bindings.test.js +118 -0
- package/dist/ir/initializer-bindings.test.js.map +1 -0
- package/dist/ir/integer-loop-facts.d.ts +12 -0
- package/dist/ir/integer-loop-facts.js +137 -0
- package/dist/ir/integer-loop-facts.js.map +1 -0
- package/dist/ir/integer-loops.js +85 -30
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +76 -13
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.js +93 -21
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +199 -21
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/intrinsic-signatures.d.ts +20 -0
- package/dist/ir/intrinsic-signatures.js +57 -0
- package/dist/ir/intrinsic-signatures.js.map +1 -0
- package/dist/ir/ir.d.ts +15 -2160
- package/dist/ir/ir.js +160 -1396
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +98 -77
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/numeric-call-specialization.d.ts +8 -0
- package/dist/ir/numeric-call-specialization.js +198 -0
- package/dist/ir/numeric-call-specialization.js.map +1 -0
- package/dist/ir/runtime-features.d.ts +221 -0
- package/dist/ir/runtime-features.js +552 -0
- package/dist/ir/runtime-features.js.map +1 -0
- package/dist/ir/runtime-features.test.d.ts +1 -0
- package/dist/ir/runtime-features.test.js +98 -0
- package/dist/ir/runtime-features.test.js.map +1 -0
- package/dist/ir/scalar-records.js +130 -40
- package/dist/ir/scalar-records.js.map +1 -1
- package/dist/ir/scalar-records.test.js +146 -27
- package/dist/ir/scalar-records.test.js.map +1 -1
- package/dist/ir/serialize.d.ts +1 -1
- package/dist/ir/serialize.js +7 -5
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.js +44 -9
- package/dist/ir/serialize.test.js.map +1 -1
- package/dist/ir/traverse.js +156 -43
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/traverse.test.js +99 -24
- package/dist/ir/traverse.test.js.map +1 -1
- package/dist/ir/validate.d.ts +1 -31
- package/dist/ir/validate.js +869 -1910
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +697 -114
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/cache-primitives.js +9 -10
- package/dist/library/cache-primitives.js.map +1 -1
- package/dist/library/cache-reset.test.js +2 -1
- package/dist/library/cache-reset.test.js.map +1 -1
- package/dist/library/compiler-self-identity.js +11 -5
- package/dist/library/compiler-self-identity.js.map +1 -1
- package/dist/library/compiler-self-identity.test.js +10 -3
- package/dist/library/compiler-self-identity.test.js.map +1 -1
- package/dist/library/fence-eval.js +24 -7
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/fence-eval.test.js +31 -7
- package/dist/library/fence-eval.test.js.map +1 -1
- package/dist/library/int-infer.js +199 -59
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/int-infer.test.js +137 -61
- package/dist/library/int-infer.test.js.map +1 -1
- package/dist/library/ir-policy.d.ts +27 -0
- package/dist/library/ir-policy.js +234 -0
- package/dist/library/ir-policy.js.map +1 -0
- package/dist/library/library-cache.js +40 -17
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +29 -18
- package/dist/library/library-cache.test.js.map +1 -1
- package/dist/library/library-profile.js +68 -13
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/prepare.js +48 -20
- package/dist/library/prepare.js.map +1 -1
- package/dist/library/semantic-source.js +16 -14
- package/dist/library/semantic-source.js.map +1 -1
- package/dist/library/semantic-source.test.js +9 -14
- package/dist/library/semantic-source.test.js.map +1 -1
- package/dist/library/sidecar-validate.js +53 -12
- package/dist/library/sidecar-validate.js.map +1 -1
- package/dist/library/sidecar.js +85 -24
- package/dist/library/sidecar.js.map +1 -1
- package/dist/library/trap-teaching.js +11 -2
- package/dist/library/trap-teaching.js.map +1 -1
- package/dist/native/cache.js +10 -4
- package/dist/native/cache.js.map +1 -1
- package/dist/native/cli.js +34 -9
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.js +191 -54
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/compiler.test.js +134 -33
- package/dist/native/compiler.test.js.map +1 -1
- package/dist/native/comptime.js +23 -7
- package/dist/native/comptime.js.map +1 -1
- package/dist/native/comptime.test.js +26 -6
- package/dist/native/comptime.test.js.map +1 -1
- package/dist/native/executable-cache.js +77 -27
- package/dist/native/executable-cache.js.map +1 -1
- package/dist/native/executable-cache.test.js +41 -6
- package/dist/native/executable-cache.test.js.map +1 -1
- package/dist/native/file-identity.js +9 -2
- package/dist/native/file-identity.js.map +1 -1
- package/dist/native/file-identity.test.js.map +1 -1
- package/dist/native/library.js +50 -12
- package/dist/native/library.js.map +1 -1
- package/dist/native/prepare.js +121 -34
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/prepare.test.js +22 -6
- package/dist/native/prepare.test.js.map +1 -1
- package/dist/native/runtime-typescript.js +24 -11
- package/dist/native/runtime-typescript.js.map +1 -1
- package/dist/native/runtime-typescript.test.js.map +1 -1
- package/dist/native/sanitizer.js +71 -18
- package/dist/native/sanitizer.js.map +1 -1
- package/dist/native/sanitizer.test.js +78 -20
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/native/task.js.map +1 -1
- package/dist/native/task.test.js +7 -2
- package/dist/native/task.test.js.map +1 -1
- package/dist/native/toolchain.js +68 -26
- package/dist/native/toolchain.js.map +1 -1
- package/dist/native/toolchain.test.js +59 -20
- package/dist/native/toolchain.test.js.map +1 -1
- package/dist/startup-cache.d.ts +1 -1
- package/dist/startup-cache.js +1 -1
- package/dist/startup-cache.js.map +1 -1
- package/dist/timing.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +30 -2
- package/dist/frontend/lowering/lower-builtins.d.ts +0 -601
- package/dist/frontend/lowering/lower-builtins.js +0 -8986
- package/dist/frontend/lowering/lower-builtins.js.map +0 -1
- package/dist/frontend/lowering/lower-containers.d.ts +0 -382
- package/dist/frontend/lowering/lower-containers.js +0 -7344
- package/dist/frontend/lowering/lower-containers.js.map +0 -1
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* (ambient scriptc.d.ts / standard lib / @types/node provenance). */
|
|
7
7
|
import * as ts from "../ts7/adapter.js";
|
|
8
8
|
import { UNSUPPORTED } from "../../diagnostics/diagnostic.js";
|
|
9
|
-
import { BOOL, BYTES_U8, CHILD_T, CRYPTOHASH_T, CRYPTOHMAC_T, DYN, F64, FILEHANDLE_T, SPAWNRES_T, STATS_T, STRING, URL_T, VOID, arrayOf } from "../../ir/ir.js";
|
|
9
|
+
import { BOOL, BYTES_U8, CHILD_T, CRYPTOHASH_T, CRYPTOHMAC_T, DYN, F64, FILEHANDLE_T, SPAWNRES_T, STATS_T, STRING, URL_T, VOID, arrayOf, } from "../../ir/ir.js";
|
|
10
10
|
import { isJsSourceFile, isNodeTypesPath, requireSpecOf } from "../program.js";
|
|
11
11
|
/** Statement-level constructs rejected wholesale, keyed by syntax kind. */
|
|
12
12
|
export const UNSUPPORTED_STMT = {
|
|
@@ -96,19 +96,22 @@ export function sideEffectFreeOptionValue(node) {
|
|
|
96
96
|
return true; // includes `undefined`
|
|
97
97
|
if (ts.isStringLiteralLike(e) || ts.isNumericLiteral(e) || ts.isBigIntLiteral(e))
|
|
98
98
|
return true;
|
|
99
|
-
if (e.kind === ts.SyntaxKind.TrueKeyword ||
|
|
99
|
+
if (e.kind === ts.SyntaxKind.TrueKeyword ||
|
|
100
|
+
e.kind === ts.SyntaxKind.FalseKeyword ||
|
|
100
101
|
e.kind === ts.SyntaxKind.NullKeyword)
|
|
101
102
|
return true;
|
|
102
103
|
if (ts.isArrowFunction(e) || ts.isFunctionExpression(e))
|
|
103
104
|
return true;
|
|
104
105
|
if (ts.isPrefixUnaryExpression(e) &&
|
|
105
|
-
(e.operator === ts.SyntaxKind.MinusToken ||
|
|
106
|
+
(e.operator === ts.SyntaxKind.MinusToken ||
|
|
107
|
+
e.operator === ts.SyntaxKind.PlusToken ||
|
|
106
108
|
e.operator === ts.SyntaxKind.ExclamationToken)) {
|
|
107
109
|
return sideEffectFreeOptionValue(e.operand);
|
|
108
110
|
}
|
|
109
111
|
if (ts.isObjectLiteralExpression(e)) {
|
|
110
112
|
return e.properties.every((p) => ts.isShorthandPropertyAssignment(p) ||
|
|
111
|
-
(ts.isPropertyAssignment(p) &&
|
|
113
|
+
(ts.isPropertyAssignment(p) &&
|
|
114
|
+
!ts.isComputedPropertyName(p.name) &&
|
|
112
115
|
sideEffectFreeOptionValue(p.initializer)));
|
|
113
116
|
}
|
|
114
117
|
if (ts.isArrayLiteralExpression(e)) {
|
|
@@ -158,11 +161,31 @@ export function fenceOrDropOptionKey(lowerer, prop, key, api, documented, suppor
|
|
|
158
161
|
* `http.request(options)` and `net.socket.connect` tables); everything
|
|
159
162
|
* else on a client options literal is undocumented and drops. */
|
|
160
163
|
export const HTTP_CLIENT_DOCUMENTED_OPTIONS = new Set([
|
|
161
|
-
"agent",
|
|
162
|
-
"
|
|
163
|
-
"
|
|
164
|
-
"
|
|
165
|
-
"
|
|
164
|
+
"agent",
|
|
165
|
+
"auth",
|
|
166
|
+
"createConnection",
|
|
167
|
+
"defaultPort",
|
|
168
|
+
"family",
|
|
169
|
+
"headers",
|
|
170
|
+
"hints",
|
|
171
|
+
"host",
|
|
172
|
+
"hostname",
|
|
173
|
+
"insecureHTTPParser",
|
|
174
|
+
"joinDuplicateHeaders",
|
|
175
|
+
"localAddress",
|
|
176
|
+
"localPort",
|
|
177
|
+
"lookup",
|
|
178
|
+
"maxHeaderSize",
|
|
179
|
+
"method",
|
|
180
|
+
"path",
|
|
181
|
+
"port",
|
|
182
|
+
"protocol",
|
|
183
|
+
"setDefaultHeaders",
|
|
184
|
+
"setHost",
|
|
185
|
+
"signal",
|
|
186
|
+
"socketPath",
|
|
187
|
+
"timeout",
|
|
188
|
+
"uniqueHeaders",
|
|
166
189
|
]);
|
|
167
190
|
/** http.createServer / http.Server's documented option keys (Node v24 —
|
|
168
191
|
* http.createServer options + the net.Server knobs it forwards). The
|
|
@@ -170,11 +193,25 @@ export const HTTP_CLIENT_DOCUMENTED_OPTIONS = new Set([
|
|
|
170
193
|
* keepAliveTimeoutBuffer storage; the rest fence by name here, and
|
|
171
194
|
* unknown keys drop like Node drops them. */
|
|
172
195
|
export const HTTP_SERVER_DOCUMENTED_OPTIONS = new Set([
|
|
173
|
-
"IncomingMessage",
|
|
174
|
-
"
|
|
175
|
-
"
|
|
176
|
-
"
|
|
177
|
-
"
|
|
196
|
+
"IncomingMessage",
|
|
197
|
+
"ServerResponse",
|
|
198
|
+
"allowHalfOpen",
|
|
199
|
+
"connectionsCheckingInterval",
|
|
200
|
+
"headersTimeout",
|
|
201
|
+
"highWaterMark",
|
|
202
|
+
"insecureHTTPParser",
|
|
203
|
+
"joinDuplicateHeaders",
|
|
204
|
+
"keepAlive",
|
|
205
|
+
"keepAliveInitialDelay",
|
|
206
|
+
"keepAliveTimeout",
|
|
207
|
+
"keepAliveTimeoutBuffer",
|
|
208
|
+
"maxHeaderSize",
|
|
209
|
+
"noDelay",
|
|
210
|
+
"pauseOnConnect",
|
|
211
|
+
"rejectNonStandardBodyWrites",
|
|
212
|
+
"requestTimeout",
|
|
213
|
+
"requireHostHeader",
|
|
214
|
+
"uniqueHeaders",
|
|
178
215
|
]);
|
|
179
216
|
/** new http.Agent(options)'s documented keys (Node v24 — the Agent
|
|
180
217
|
* constructor table plus the socket.connect() options it forwards into
|
|
@@ -182,73 +219,161 @@ export const HTTP_SERVER_DOCUMENTED_OPTIONS = new Set([
|
|
|
182
219
|
* maxFreeSockets/timeout/port (+ scheduling, dropped: no free pool
|
|
183
220
|
* exists); the rest fence by name and unknown keys drop like Node. */
|
|
184
221
|
export const AGENT_DOCUMENTED_OPTIONS = new Set([
|
|
185
|
-
"family",
|
|
186
|
-
"
|
|
222
|
+
"family",
|
|
223
|
+
"hints",
|
|
224
|
+
"host",
|
|
225
|
+
"keepAliveInitialDelay",
|
|
226
|
+
"localAddress",
|
|
227
|
+
"localPort",
|
|
228
|
+
"lookup",
|
|
229
|
+
"maxTotalSockets",
|
|
230
|
+
"noDelay",
|
|
231
|
+
"path",
|
|
187
232
|
]);
|
|
188
233
|
/** https.request adds tls.connect's client-side TLS knobs. */
|
|
189
234
|
export const HTTPS_CLIENT_DOCUMENTED_OPTIONS = new Set([
|
|
190
235
|
...HTTP_CLIENT_DOCUMENTED_OPTIONS,
|
|
191
|
-
"ca",
|
|
192
|
-
"
|
|
193
|
-
"
|
|
194
|
-
"
|
|
195
|
-
"
|
|
196
|
-
"
|
|
236
|
+
"ca",
|
|
237
|
+
"cert",
|
|
238
|
+
"checkServerIdentity",
|
|
239
|
+
"ciphers",
|
|
240
|
+
"clientCertEngine",
|
|
241
|
+
"crl",
|
|
242
|
+
"dhparam",
|
|
243
|
+
"ecdhCurve",
|
|
244
|
+
"highWaterMark",
|
|
245
|
+
"honorCipherOrder",
|
|
246
|
+
"key",
|
|
247
|
+
"maxVersion",
|
|
248
|
+
"minVersion",
|
|
249
|
+
"passphrase",
|
|
250
|
+
"pfx",
|
|
251
|
+
"privateKeyEngine",
|
|
252
|
+
"privateKeyIdentifier",
|
|
253
|
+
"rejectUnauthorized",
|
|
254
|
+
"secureOptions",
|
|
255
|
+
"secureProtocol",
|
|
256
|
+
"servername",
|
|
257
|
+
"session",
|
|
258
|
+
"sessionIdContext",
|
|
259
|
+
"sessionTimeout",
|
|
260
|
+
"sigalgs",
|
|
261
|
+
"ticketKeys",
|
|
197
262
|
]);
|
|
198
263
|
/** tls.createServer / tls.createSecureContext / https.createServer /
|
|
199
264
|
* http2.createSecureServer's documented TLS-side option keys (Node v24 —
|
|
200
265
|
* tls.createSecureContext + tls.createServer + net.createServer). */
|
|
201
266
|
export const TLS_SERVER_DOCUMENTED_OPTIONS = new Set([
|
|
202
|
-
"ALPNProtocols",
|
|
203
|
-
"
|
|
204
|
-
"
|
|
205
|
-
"
|
|
206
|
-
"
|
|
207
|
-
"
|
|
208
|
-
"
|
|
209
|
-
"
|
|
210
|
-
"
|
|
267
|
+
"ALPNProtocols",
|
|
268
|
+
"ALPNCallback",
|
|
269
|
+
"SNICallback",
|
|
270
|
+
"allowHalfOpen",
|
|
271
|
+
"ca",
|
|
272
|
+
"cert",
|
|
273
|
+
"ciphers",
|
|
274
|
+
"clientCertEngine",
|
|
275
|
+
"crl",
|
|
276
|
+
"dhparam",
|
|
277
|
+
"ecdhCurve",
|
|
278
|
+
"enableTrace",
|
|
279
|
+
"handshakeTimeout",
|
|
280
|
+
"highWaterMark",
|
|
281
|
+
"honorCipherOrder",
|
|
282
|
+
"keepAlive",
|
|
283
|
+
"keepAliveInitialDelay",
|
|
284
|
+
"key",
|
|
285
|
+
"maxVersion",
|
|
286
|
+
"minVersion",
|
|
287
|
+
"noDelay",
|
|
288
|
+
"passphrase",
|
|
289
|
+
"pauseOnConnect",
|
|
290
|
+
"pfx",
|
|
291
|
+
"privateKeyEngine",
|
|
292
|
+
"privateKeyIdentifier",
|
|
293
|
+
"pskCallback",
|
|
294
|
+
"pskIdentityHint",
|
|
295
|
+
"rejectUnauthorized",
|
|
296
|
+
"requestCert",
|
|
297
|
+
"requestOCSP",
|
|
298
|
+
"secureContext",
|
|
299
|
+
"secureOptions",
|
|
300
|
+
"secureProtocol",
|
|
301
|
+
"sessionIdContext",
|
|
302
|
+
"sessionTimeout",
|
|
303
|
+
"sigalgs",
|
|
304
|
+
"ticketKeys",
|
|
211
305
|
]);
|
|
212
306
|
/** http2.createSecureServer's documented keys: the h2 knobs on top of the
|
|
213
307
|
* TLS server set. */
|
|
214
308
|
export const HTTP2_SECURE_SERVER_DOCUMENTED_OPTIONS = new Set([
|
|
215
309
|
...TLS_SERVER_DOCUMENTED_OPTIONS,
|
|
216
|
-
"allowHTTP1",
|
|
217
|
-
"
|
|
218
|
-
"
|
|
219
|
-
"
|
|
220
|
-
"
|
|
310
|
+
"allowHTTP1",
|
|
311
|
+
"maxDeflateDynamicTableSize",
|
|
312
|
+
"maxSettings",
|
|
313
|
+
"maxSessionMemory",
|
|
314
|
+
"maxHeaderListPairs",
|
|
315
|
+
"maxOutstandingPings",
|
|
316
|
+
"maxSendHeaderBlockLength",
|
|
317
|
+
"origins",
|
|
318
|
+
"paddingStrategy",
|
|
319
|
+
"peerMaxConcurrentStreams",
|
|
320
|
+
"remoteCustomSettings",
|
|
321
|
+
"selectPadding",
|
|
322
|
+
"settings",
|
|
323
|
+
"streamResetBurst",
|
|
324
|
+
"streamResetRate",
|
|
221
325
|
"unknownProtocolTimeout",
|
|
222
326
|
]);
|
|
223
327
|
/** fs.watch's documented option keys. */
|
|
224
328
|
export const FS_WATCH_DOCUMENTED_OPTIONS = new Set([
|
|
225
|
-
"persistent",
|
|
329
|
+
"persistent",
|
|
330
|
+
"recursive",
|
|
331
|
+
"encoding",
|
|
332
|
+
"signal",
|
|
226
333
|
]);
|
|
227
334
|
/** fs.readdirSync's documented option keys. */
|
|
228
335
|
export const FS_READDIR_DOCUMENTED_OPTIONS = new Set([
|
|
229
|
-
"encoding",
|
|
336
|
+
"encoding",
|
|
337
|
+
"withFileTypes",
|
|
338
|
+
"recursive",
|
|
230
339
|
]);
|
|
231
340
|
/** fs.writeFileSync's documented option keys. */
|
|
232
341
|
export const FS_WRITE_FILE_DOCUMENTED_OPTIONS = new Set([
|
|
233
|
-
"encoding",
|
|
342
|
+
"encoding",
|
|
343
|
+
"mode",
|
|
344
|
+
"flag",
|
|
345
|
+
"flush",
|
|
346
|
+
"signal",
|
|
234
347
|
]);
|
|
235
348
|
/** dns.lookup's documented option keys. */
|
|
236
349
|
export const DNS_LOOKUP_DOCUMENTED_OPTIONS = new Set([
|
|
237
|
-
"family",
|
|
350
|
+
"family",
|
|
351
|
+
"hints",
|
|
352
|
+
"all",
|
|
353
|
+
"order",
|
|
354
|
+
"verbatim",
|
|
238
355
|
]);
|
|
239
356
|
/** querystring.parse's documented option keys (Node v24). */
|
|
240
357
|
export const QS_PARSE_DOCUMENTED_OPTIONS = new Set([
|
|
241
|
-
"maxKeys",
|
|
358
|
+
"maxKeys",
|
|
359
|
+
"decodeURIComponent",
|
|
242
360
|
]);
|
|
243
361
|
/** querystring.stringify's documented option keys (Node v24). */
|
|
244
|
-
export const QS_STRINGIFY_DOCUMENTED_OPTIONS = new Set([
|
|
245
|
-
"encodeURIComponent",
|
|
246
|
-
]);
|
|
362
|
+
export const QS_STRINGIFY_DOCUMENTED_OPTIONS = new Set(["encodeURIComponent"]);
|
|
247
363
|
/** readline.createInterface's documented option keys. */
|
|
248
364
|
export const READLINE_DOCUMENTED_OPTIONS = new Set([
|
|
249
|
-
"input",
|
|
250
|
-
"
|
|
251
|
-
"
|
|
365
|
+
"input",
|
|
366
|
+
"output",
|
|
367
|
+
"completer",
|
|
368
|
+
"terminal",
|
|
369
|
+
"history",
|
|
370
|
+
"historySize",
|
|
371
|
+
"removeHistoryDuplicates",
|
|
372
|
+
"prompt",
|
|
373
|
+
"crlfDelay",
|
|
374
|
+
"escapeCodeTimeout",
|
|
375
|
+
"tabSize",
|
|
376
|
+
"signal",
|
|
252
377
|
]);
|
|
253
378
|
/** The lowered Array<T> method surface. Like STR_METHODS, membership is
|
|
254
379
|
* only half the check — the resolved symbol must be declared by the
|
|
@@ -291,10 +416,25 @@ export const ARRAY_METHODS = new Set([
|
|
|
291
416
|
* standard library (isStdlibMember). `size` is a property, handled in
|
|
292
417
|
* property-access position. */
|
|
293
418
|
export const COLLECTION_ITERATOR_METHODS = new Set(["keys", "values", "entries"]);
|
|
294
|
-
export const MAP_METHODS = new Set([
|
|
419
|
+
export const MAP_METHODS = new Set([
|
|
420
|
+
"get",
|
|
421
|
+
"set",
|
|
422
|
+
"has",
|
|
423
|
+
"delete",
|
|
424
|
+
"clear",
|
|
425
|
+
"forEach",
|
|
426
|
+
...COLLECTION_ITERATOR_METHODS,
|
|
427
|
+
]);
|
|
295
428
|
/** The lowered Set<T> method surface — Map's minus get/set plus add.
|
|
296
429
|
* `size` is a property, handled in property-access position. */
|
|
297
|
-
export const SET_METHODS = new Set([
|
|
430
|
+
export const SET_METHODS = new Set([
|
|
431
|
+
"add",
|
|
432
|
+
"has",
|
|
433
|
+
"delete",
|
|
434
|
+
"clear",
|
|
435
|
+
"forEach",
|
|
436
|
+
...COLLECTION_ITERATOR_METHODS,
|
|
437
|
+
]);
|
|
298
438
|
/** The ES2025 Set composition surface (union/intersection/…): desugared
|
|
299
439
|
* to interned helper loops over the set iteration primitives — no user
|
|
300
440
|
* code runs mid-loop, so the walks need no enter/exit bracketing. The
|
|
@@ -413,13 +553,37 @@ export const ISLAND_SURFACE = {
|
|
|
413
553
|
math: {
|
|
414
554
|
// The static table below handles these methods at its admitted arities.
|
|
415
555
|
fns: {
|
|
416
|
-
abs: ISL_N1,
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
556
|
+
abs: ISL_N1,
|
|
557
|
+
acos: ISL_N1,
|
|
558
|
+
asin: ISL_N1,
|
|
559
|
+
atan: ISL_N1,
|
|
560
|
+
atan2: ISL_N2,
|
|
561
|
+
acosh: ISL_N1,
|
|
562
|
+
asinh: ISL_N1,
|
|
563
|
+
atanh: ISL_N1,
|
|
564
|
+
cbrt: ISL_N1,
|
|
565
|
+
ceil: ISL_N1,
|
|
566
|
+
clz32: ISL_N1,
|
|
567
|
+
cos: ISL_N1,
|
|
568
|
+
cosh: ISL_N1,
|
|
569
|
+
exp: ISL_N1,
|
|
570
|
+
expm1: ISL_N1,
|
|
571
|
+
fround: ISL_N1,
|
|
572
|
+
hypot: ISL_N2,
|
|
573
|
+
imul: ISL_N2,
|
|
574
|
+
log: ISL_N1,
|
|
575
|
+
log1p: ISL_N1,
|
|
576
|
+
log2: ISL_N1,
|
|
577
|
+
log10: ISL_N1,
|
|
578
|
+
pow: ISL_N2,
|
|
421
579
|
round: ISL_N1,
|
|
422
|
-
sign: ISL_N1,
|
|
580
|
+
sign: ISL_N1,
|
|
581
|
+
sin: ISL_N1,
|
|
582
|
+
sinh: ISL_N1,
|
|
583
|
+
sqrt: ISL_N1,
|
|
584
|
+
tan: ISL_N1,
|
|
585
|
+
tanh: ISL_N1,
|
|
586
|
+
trunc: ISL_N1,
|
|
423
587
|
},
|
|
424
588
|
// Math constants are compile-time literals, not island properties.
|
|
425
589
|
props: {},
|
|
@@ -530,19 +694,69 @@ function exactValueParams(...types) {
|
|
|
530
694
|
/** Object helpers whose checked-native ABI is also their stored value ABI.
|
|
531
695
|
* These adapters operate on the live checked object/property table. */
|
|
532
696
|
export const OBJECT_CALLABLE_VALUES = {
|
|
533
|
-
is: {
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
697
|
+
is: {
|
|
698
|
+
fn: "dyn.sameValue",
|
|
699
|
+
params: [DYN, DYN],
|
|
700
|
+
result: BOOL,
|
|
701
|
+
valueParams: exactValueParams(DYN, DYN),
|
|
702
|
+
},
|
|
703
|
+
create: {
|
|
704
|
+
fn: "dyn.objCreateWithProperties",
|
|
705
|
+
params: [DYN, DYN],
|
|
706
|
+
result: DYN,
|
|
707
|
+
valueParams: exactValueParams(DYN, DYN),
|
|
708
|
+
},
|
|
709
|
+
defineProperty: {
|
|
710
|
+
fn: "dyn.defineProperty",
|
|
711
|
+
params: [DYN, DYN, DYN],
|
|
712
|
+
result: DYN,
|
|
713
|
+
valueParams: exactValueParams(DYN, DYN, DYN),
|
|
714
|
+
},
|
|
715
|
+
getOwnPropertyDescriptor: {
|
|
716
|
+
fn: "dyn.getOwnPropertyDescriptor",
|
|
717
|
+
params: [DYN, DYN],
|
|
718
|
+
result: DYN,
|
|
719
|
+
valueParams: exactValueParams(DYN, DYN),
|
|
720
|
+
},
|
|
721
|
+
getOwnPropertyDescriptors: {
|
|
722
|
+
fn: "dyn.getOwnPropertyDescriptors",
|
|
723
|
+
params: [DYN],
|
|
724
|
+
result: DYN,
|
|
725
|
+
valueParams: exactValueParams(DYN),
|
|
726
|
+
},
|
|
727
|
+
defineProperties: {
|
|
728
|
+
fn: "dyn.defineProps",
|
|
729
|
+
params: [DYN, DYN],
|
|
730
|
+
result: DYN,
|
|
731
|
+
valueParams: exactValueParams(DYN, DYN),
|
|
732
|
+
},
|
|
539
733
|
keys: { fn: "dyn.objKeys", params: [DYN], result: DYN, valueParams: exactValueParams(DYN) },
|
|
540
734
|
values: { fn: "dyn.objValues", params: [DYN], result: DYN, valueParams: exactValueParams(DYN) },
|
|
541
735
|
entries: { fn: "dyn.objEntries", params: [DYN], result: DYN, valueParams: exactValueParams(DYN) },
|
|
542
|
-
fromEntries: {
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
736
|
+
fromEntries: {
|
|
737
|
+
fn: "dyn.fromEntries",
|
|
738
|
+
params: [DYN],
|
|
739
|
+
result: DYN,
|
|
740
|
+
valueParams: exactValueParams(DYN),
|
|
741
|
+
},
|
|
742
|
+
getOwnPropertySymbols: {
|
|
743
|
+
fn: "dyn.getOwnPropertySymbols",
|
|
744
|
+
params: [DYN],
|
|
745
|
+
result: DYN,
|
|
746
|
+
valueParams: exactValueParams(DYN),
|
|
747
|
+
},
|
|
748
|
+
getOwnPropertyNames: {
|
|
749
|
+
fn: "dyn.getOwnPropertyNames",
|
|
750
|
+
params: [DYN],
|
|
751
|
+
result: DYN,
|
|
752
|
+
valueParams: exactValueParams(DYN),
|
|
753
|
+
},
|
|
754
|
+
getPrototypeOf: {
|
|
755
|
+
fn: "dyn.getPrototype",
|
|
756
|
+
params: [DYN],
|
|
757
|
+
result: DYN,
|
|
758
|
+
valueParams: exactValueParams(DYN),
|
|
759
|
+
},
|
|
546
760
|
};
|
|
547
761
|
/** The lowerable surface of the supported node builtin modules, keyed by
|
|
548
762
|
* CANONICAL module name (both "fs" and "node:fs" land on "fs" — see
|
|
@@ -557,29 +771,137 @@ export const OBJECT_CALLABLE_VALUES = {
|
|
|
557
771
|
* platform's rules on any host). toNamespacedPath is the posix identity
|
|
558
772
|
* (Node: a non-op on posix systems). */
|
|
559
773
|
const PATH_MODULE_FNS = {
|
|
560
|
-
join: {
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
774
|
+
join: {
|
|
775
|
+
fn: "path.join",
|
|
776
|
+
params: [STRING],
|
|
777
|
+
result: STRING,
|
|
778
|
+
variadicPack: true,
|
|
779
|
+
valueParams: [{ mode: "rest", type: STRING }],
|
|
780
|
+
},
|
|
781
|
+
resolve: {
|
|
782
|
+
fn: "path.resolve",
|
|
783
|
+
params: [STRING],
|
|
784
|
+
result: STRING,
|
|
785
|
+
variadicPack: true,
|
|
786
|
+
valueParams: [{ mode: "rest", type: STRING }],
|
|
787
|
+
},
|
|
788
|
+
normalize: {
|
|
789
|
+
fn: "path.normalize",
|
|
790
|
+
params: [STRING],
|
|
791
|
+
result: STRING,
|
|
792
|
+
valueParams: [{ mode: "required", type: STRING }],
|
|
793
|
+
},
|
|
794
|
+
dirname: {
|
|
795
|
+
fn: "path.dirname",
|
|
796
|
+
params: [STRING],
|
|
797
|
+
result: STRING,
|
|
798
|
+
valueParams: [{ mode: "required", type: STRING }],
|
|
799
|
+
},
|
|
800
|
+
basename: {
|
|
801
|
+
fn: "path.basename",
|
|
802
|
+
params: [STRING, STRING],
|
|
803
|
+
result: STRING,
|
|
804
|
+
defaults: [""],
|
|
805
|
+
valueParams: [
|
|
806
|
+
{ mode: "required", type: STRING },
|
|
807
|
+
{ mode: "optional", type: STRING, defaultValue: "" },
|
|
808
|
+
],
|
|
809
|
+
},
|
|
810
|
+
extname: {
|
|
811
|
+
fn: "path.extname",
|
|
812
|
+
params: [STRING],
|
|
813
|
+
result: STRING,
|
|
814
|
+
valueParams: [{ mode: "required", type: STRING }],
|
|
815
|
+
},
|
|
816
|
+
isAbsolute: {
|
|
817
|
+
fn: "path.isAbsolute",
|
|
818
|
+
params: [STRING],
|
|
819
|
+
result: BOOL,
|
|
820
|
+
valueParams: [{ mode: "required", type: STRING }],
|
|
821
|
+
},
|
|
822
|
+
relative: {
|
|
823
|
+
fn: "path.relative",
|
|
824
|
+
params: [STRING, STRING],
|
|
825
|
+
result: STRING,
|
|
826
|
+
valueParams: [
|
|
827
|
+
{ mode: "required", type: STRING },
|
|
828
|
+
{ mode: "required", type: STRING },
|
|
829
|
+
],
|
|
830
|
+
},
|
|
831
|
+
toNamespacedPath: {
|
|
832
|
+
fn: "path.toNamespacedPath",
|
|
833
|
+
params: [STRING],
|
|
834
|
+
result: STRING,
|
|
835
|
+
valueParams: [{ mode: "required", type: STRING }],
|
|
836
|
+
},
|
|
569
837
|
};
|
|
570
838
|
/** The win32 twins (scr_path.c's Node-v24 path.win32 port, byte-for-byte):
|
|
571
839
|
* "path/win32" everywhere, and the bare-module table when the build
|
|
572
840
|
* TARGETS win32 — Node on Windows is path.win32. */
|
|
573
841
|
const PATH_WIN32_MODULE_FNS = {
|
|
574
|
-
join: {
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
842
|
+
join: {
|
|
843
|
+
fn: "path.win32Join",
|
|
844
|
+
params: [STRING],
|
|
845
|
+
result: STRING,
|
|
846
|
+
variadicPack: true,
|
|
847
|
+
valueParams: [{ mode: "rest", type: STRING }],
|
|
848
|
+
},
|
|
849
|
+
resolve: {
|
|
850
|
+
fn: "path.win32Resolve",
|
|
851
|
+
params: [STRING],
|
|
852
|
+
result: STRING,
|
|
853
|
+
variadicPack: true,
|
|
854
|
+
valueParams: [{ mode: "rest", type: STRING }],
|
|
855
|
+
},
|
|
856
|
+
normalize: {
|
|
857
|
+
fn: "path.win32Normalize",
|
|
858
|
+
params: [STRING],
|
|
859
|
+
result: STRING,
|
|
860
|
+
valueParams: [{ mode: "required", type: STRING }],
|
|
861
|
+
},
|
|
862
|
+
dirname: {
|
|
863
|
+
fn: "path.win32Dirname",
|
|
864
|
+
params: [STRING],
|
|
865
|
+
result: STRING,
|
|
866
|
+
valueParams: [{ mode: "required", type: STRING }],
|
|
867
|
+
},
|
|
868
|
+
basename: {
|
|
869
|
+
fn: "path.win32Basename",
|
|
870
|
+
params: [STRING, STRING],
|
|
871
|
+
result: STRING,
|
|
872
|
+
defaults: [""],
|
|
873
|
+
valueParams: [
|
|
874
|
+
{ mode: "required", type: STRING },
|
|
875
|
+
{ mode: "optional", type: STRING, defaultValue: "" },
|
|
876
|
+
],
|
|
877
|
+
},
|
|
878
|
+
extname: {
|
|
879
|
+
fn: "path.win32Extname",
|
|
880
|
+
params: [STRING],
|
|
881
|
+
result: STRING,
|
|
882
|
+
valueParams: [{ mode: "required", type: STRING }],
|
|
883
|
+
},
|
|
884
|
+
isAbsolute: {
|
|
885
|
+
fn: "path.win32IsAbsolute",
|
|
886
|
+
params: [STRING],
|
|
887
|
+
result: BOOL,
|
|
888
|
+
valueParams: [{ mode: "required", type: STRING }],
|
|
889
|
+
},
|
|
890
|
+
relative: {
|
|
891
|
+
fn: "path.win32Relative",
|
|
892
|
+
params: [STRING, STRING],
|
|
893
|
+
result: STRING,
|
|
894
|
+
valueParams: [
|
|
895
|
+
{ mode: "required", type: STRING },
|
|
896
|
+
{ mode: "required", type: STRING },
|
|
897
|
+
],
|
|
898
|
+
},
|
|
899
|
+
toNamespacedPath: {
|
|
900
|
+
fn: "path.win32ToNamespacedPath",
|
|
901
|
+
params: [STRING],
|
|
902
|
+
result: STRING,
|
|
903
|
+
valueParams: [{ mode: "required", type: STRING }],
|
|
904
|
+
},
|
|
583
905
|
};
|
|
584
906
|
export const BUILTIN_MODULE_FNS = {
|
|
585
907
|
fs: {
|
|
@@ -590,7 +912,12 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
590
912
|
// options before entering the fixed runtime call.
|
|
591
913
|
writeFileSync: { fn: "fs.writeFileSync", params: [STRING, STRING], result: VOID },
|
|
592
914
|
appendFileSync: { fn: "fs.appendFileSync", params: [STRING, STRING], result: VOID },
|
|
593
|
-
existsSync: {
|
|
915
|
+
existsSync: {
|
|
916
|
+
fn: "fs.existsSync",
|
|
917
|
+
params: [STRING],
|
|
918
|
+
result: BOOL,
|
|
919
|
+
valueParams: exactValueParams(STRING),
|
|
920
|
+
},
|
|
594
921
|
mkdirSync: { fn: "fs.mkdirSync", params: [STRING], result: VOID },
|
|
595
922
|
rmSync: { fn: "fs.rmSync", params: [STRING], result: VOID },
|
|
596
923
|
rmdirSync: { fn: "fs.rmdirSync", params: [STRING], result: VOID },
|
|
@@ -600,9 +927,24 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
600
927
|
// accessSync's omitted mode completes to 0 (F_OK) in the special case
|
|
601
928
|
// in lowerBuiltinModuleCall — string `defaults` can't spell a number.
|
|
602
929
|
accessSync: { fn: "fs.accessSync", params: [STRING, F64], result: VOID },
|
|
603
|
-
unlinkSync: {
|
|
604
|
-
|
|
605
|
-
|
|
930
|
+
unlinkSync: {
|
|
931
|
+
fn: "fs.unlinkSync",
|
|
932
|
+
params: [STRING],
|
|
933
|
+
result: VOID,
|
|
934
|
+
valueParams: exactValueParams(STRING),
|
|
935
|
+
},
|
|
936
|
+
chmodSync: {
|
|
937
|
+
fn: "fs.chmodSync",
|
|
938
|
+
params: [STRING, F64],
|
|
939
|
+
result: VOID,
|
|
940
|
+
valueParams: exactValueParams(STRING, F64),
|
|
941
|
+
},
|
|
942
|
+
chownSync: {
|
|
943
|
+
fn: "fs.chownSync",
|
|
944
|
+
params: [STRING, F64, F64],
|
|
945
|
+
result: VOID,
|
|
946
|
+
valueParams: exactValueParams(STRING, F64, F64),
|
|
947
|
+
},
|
|
606
948
|
// The 2-argument form only: Node's mode flags (COPYFILE_EXCL, ...)
|
|
607
949
|
// land on the arity fence.
|
|
608
950
|
copyFileSync: { fn: "fs.copyFileSync", params: [STRING, STRING], result: VOID },
|
|
@@ -611,30 +953,78 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
611
953
|
// adapter. The row still projects the static surface and routes the
|
|
612
954
|
// dispatch.
|
|
613
955
|
rename: { fn: "fs.renameCb", params: [], result: VOID },
|
|
614
|
-
renameSync: {
|
|
956
|
+
renameSync: {
|
|
957
|
+
fn: "fs.renameSync",
|
|
958
|
+
params: [STRING, STRING],
|
|
959
|
+
result: VOID,
|
|
960
|
+
valueParams: exactValueParams(STRING, STRING),
|
|
961
|
+
},
|
|
615
962
|
// statSync's no-follow sibling; stats.isSymbolicLink answers what the
|
|
616
963
|
// follow-free snapshot saw.
|
|
617
964
|
lstatSync: { fn: "fs.lstatSync", params: [STRING], result: STATS_T },
|
|
618
|
-
fstatSync: {
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
965
|
+
fstatSync: {
|
|
966
|
+
fn: "fs.fstatSync",
|
|
967
|
+
params: [F64],
|
|
968
|
+
result: STATS_T,
|
|
969
|
+
valueParams: exactValueParams(F64),
|
|
970
|
+
},
|
|
971
|
+
fchmodSync: {
|
|
972
|
+
fn: "fs.fchmodSync",
|
|
973
|
+
params: [F64, F64],
|
|
974
|
+
result: VOID,
|
|
975
|
+
valueParams: exactValueParams(F64, F64),
|
|
976
|
+
},
|
|
977
|
+
fsyncSync: {
|
|
978
|
+
fn: "fs.fsyncSync",
|
|
979
|
+
params: [F64],
|
|
980
|
+
result: VOID,
|
|
981
|
+
valueParams: exactValueParams(F64),
|
|
982
|
+
},
|
|
983
|
+
fdatasyncSync: {
|
|
984
|
+
fn: "fs.fdatasyncSync",
|
|
985
|
+
params: [F64],
|
|
986
|
+
result: VOID,
|
|
987
|
+
valueParams: exactValueParams(F64),
|
|
988
|
+
},
|
|
622
989
|
ftruncateSync: { fn: "fs.ftruncateSync", params: [F64, F64], result: VOID },
|
|
623
990
|
utimesSync: { fn: "fs.utimesSync", params: [DYN, DYN, DYN], result: VOID },
|
|
624
991
|
futimesSync: { fn: "fs.futimesSync", params: [DYN, DYN, DYN], result: VOID },
|
|
625
992
|
lutimesSync: { fn: "fs.lutimesSync", params: [DYN, DYN, DYN], result: VOID },
|
|
626
993
|
readvSync: { fn: "fs.readvSync", params: [F64, arrayOf(BYTES_U8), F64], result: F64 },
|
|
627
994
|
writevSync: { fn: "fs.writevSync", params: [F64, arrayOf(BYTES_U8), F64], result: F64 },
|
|
628
|
-
linkSync: {
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
995
|
+
linkSync: {
|
|
996
|
+
fn: "fs.linkSync",
|
|
997
|
+
params: [DYN, DYN],
|
|
998
|
+
result: VOID,
|
|
999
|
+
valueParams: exactValueParams(DYN, DYN),
|
|
1000
|
+
},
|
|
1001
|
+
symlinkSync: {
|
|
1002
|
+
fn: "fs.symlinkSync",
|
|
1003
|
+
params: [DYN, DYN, DYN],
|
|
1004
|
+
result: VOID,
|
|
1005
|
+
valueParams: [
|
|
1006
|
+
...exactValueParams(DYN, DYN),
|
|
1007
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1008
|
+
],
|
|
1009
|
+
},
|
|
1010
|
+
readlinkSync: {
|
|
1011
|
+
fn: "fs.readlinkSync",
|
|
1012
|
+
params: [DYN, DYN],
|
|
1013
|
+
result: DYN,
|
|
1014
|
+
valueParams: [
|
|
1015
|
+
...exactValueParams(DYN),
|
|
1016
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1017
|
+
],
|
|
1018
|
+
},
|
|
1019
|
+
statfsSync: {
|
|
1020
|
+
fn: "fs.statfsSync",
|
|
1021
|
+
params: [DYN, DYN],
|
|
1022
|
+
result: DYN,
|
|
1023
|
+
valueParams: [
|
|
1024
|
+
...exactValueParams(DYN),
|
|
1025
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1026
|
+
],
|
|
1027
|
+
},
|
|
638
1028
|
// realpath(3) — Node's realpathSync (failures spell syscall "lstat",
|
|
639
1029
|
// Node's own message shape).
|
|
640
1030
|
realpathSync: { fn: "fs.realpathSync", params: [STRING], result: STRING },
|
|
@@ -654,7 +1044,12 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
654
1044
|
// overloads lower to separate fixed-width runtime ABIs. As with
|
|
655
1045
|
// readSync, -1 is the current-offset sentinel.
|
|
656
1046
|
writeSync: { fn: "fs.writeSync", params: [F64, BYTES_U8, F64, F64, F64], result: F64 },
|
|
657
|
-
closeSync: {
|
|
1047
|
+
closeSync: {
|
|
1048
|
+
fn: "fs.closeSync",
|
|
1049
|
+
params: [F64],
|
|
1050
|
+
result: VOID,
|
|
1051
|
+
valueParams: exactValueParams(F64),
|
|
1052
|
+
},
|
|
658
1053
|
// Entirely special-cased (lowerFsWatchCall — the callback needs an
|
|
659
1054
|
// adapter per listener shape); this entry only routes the dispatch.
|
|
660
1055
|
watch: { fn: "fs.watch", params: [], result: VOID },
|
|
@@ -663,37 +1058,96 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
663
1058
|
// The sync operations behind already-settled promises: failures
|
|
664
1059
|
// REJECT (catchable at the await) instead of throwing. readFile is
|
|
665
1060
|
// utf8-fenced exactly like readFileSync (same special case below).
|
|
666
|
-
readFile: {
|
|
667
|
-
|
|
1061
|
+
readFile: {
|
|
1062
|
+
fn: "fsp.readFile",
|
|
1063
|
+
params: [STRING, STRING],
|
|
1064
|
+
result: { kind: "promise", inner: STRING },
|
|
1065
|
+
},
|
|
1066
|
+
writeFile: {
|
|
1067
|
+
fn: "fsp.writeFile",
|
|
1068
|
+
params: [STRING, STRING],
|
|
1069
|
+
result: { kind: "promise", inner: VOID },
|
|
1070
|
+
},
|
|
668
1071
|
mkdir: { fn: "fsp.mkdir", params: [STRING], result: { kind: "promise", inner: VOID } },
|
|
669
|
-
readdir: {
|
|
1072
|
+
readdir: {
|
|
1073
|
+
fn: "fsp.readdir",
|
|
1074
|
+
params: [STRING],
|
|
1075
|
+
result: { kind: "promise", inner: arrayOf(STRING) },
|
|
1076
|
+
},
|
|
670
1077
|
rm: { fn: "fsp.rm", params: [STRING], result: { kind: "promise", inner: VOID } },
|
|
671
1078
|
stat: { fn: "fsp.stat", params: [STRING], result: { kind: "promise", inner: STATS_T } },
|
|
672
1079
|
realpath: { fn: "fsp.realpath", params: [STRING], result: { kind: "promise", inner: STRING } },
|
|
673
1080
|
lstat: { fn: "fsp.lstat", params: [STRING], result: { kind: "promise", inner: STATS_T } },
|
|
674
|
-
unlink: {
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
1081
|
+
unlink: {
|
|
1082
|
+
fn: "fsp.unlink",
|
|
1083
|
+
params: [STRING],
|
|
1084
|
+
result: { kind: "promise", inner: VOID },
|
|
1085
|
+
valueParams: exactValueParams(STRING),
|
|
1086
|
+
},
|
|
1087
|
+
chmod: {
|
|
1088
|
+
fn: "fsp.chmod",
|
|
1089
|
+
params: [STRING, F64],
|
|
1090
|
+
result: { kind: "promise", inner: VOID },
|
|
1091
|
+
valueParams: exactValueParams(STRING, F64),
|
|
1092
|
+
},
|
|
1093
|
+
link: {
|
|
1094
|
+
fn: "fsp.link",
|
|
1095
|
+
params: [DYN, DYN],
|
|
1096
|
+
result: { kind: "promise", inner: VOID },
|
|
1097
|
+
valueParams: exactValueParams(DYN, DYN),
|
|
1098
|
+
},
|
|
1099
|
+
symlink: {
|
|
1100
|
+
fn: "fsp.symlink",
|
|
1101
|
+
params: [DYN, DYN, DYN],
|
|
1102
|
+
result: { kind: "promise", inner: VOID },
|
|
1103
|
+
valueParams: [
|
|
1104
|
+
...exactValueParams(DYN, DYN),
|
|
1105
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1106
|
+
],
|
|
1107
|
+
},
|
|
1108
|
+
readlink: {
|
|
1109
|
+
fn: "fsp.readlink",
|
|
1110
|
+
params: [DYN, DYN],
|
|
1111
|
+
result: { kind: "promise", inner: DYN },
|
|
1112
|
+
valueParams: [
|
|
1113
|
+
...exactValueParams(DYN),
|
|
1114
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1115
|
+
],
|
|
1116
|
+
},
|
|
1117
|
+
statfs: {
|
|
1118
|
+
fn: "fsp.statfs",
|
|
1119
|
+
params: [DYN, DYN],
|
|
1120
|
+
result: { kind: "promise", inner: DYN },
|
|
1121
|
+
valueParams: [
|
|
1122
|
+
...exactValueParams(DYN),
|
|
1123
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1124
|
+
],
|
|
1125
|
+
},
|
|
686
1126
|
utimes: { fn: "fsp.utimes", params: [DYN, DYN, DYN], result: { kind: "promise", inner: VOID } },
|
|
687
|
-
lutimes: {
|
|
688
|
-
|
|
1127
|
+
lutimes: {
|
|
1128
|
+
fn: "fsp.lutimes",
|
|
1129
|
+
params: [DYN, DYN, DYN],
|
|
1130
|
+
result: { kind: "promise", inner: VOID },
|
|
1131
|
+
},
|
|
1132
|
+
rename: {
|
|
1133
|
+
fn: "fsp.rename",
|
|
1134
|
+
params: [STRING, STRING],
|
|
1135
|
+
result: { kind: "promise", inner: VOID },
|
|
1136
|
+
valueParams: exactValueParams(STRING, STRING),
|
|
1137
|
+
},
|
|
689
1138
|
// open's optional flags/mode completion is special-cased in
|
|
690
1139
|
// lowerBuiltinModuleCall; this row routes all import spellings and
|
|
691
1140
|
// gives coverage the static member.
|
|
692
|
-
open: {
|
|
1141
|
+
open: {
|
|
1142
|
+
fn: "fsp.open",
|
|
1143
|
+
params: [STRING, STRING, F64],
|
|
1144
|
+
result: { kind: "promise", inner: FILEHANDLE_T },
|
|
1145
|
+
valueParams: [
|
|
693
1146
|
{ mode: "required", type: STRING },
|
|
694
1147
|
{ mode: "optional", type: STRING, defaultValue: "r" },
|
|
695
1148
|
{ mode: "optional", type: F64, defaultValue: 0o666 },
|
|
696
|
-
]
|
|
1149
|
+
],
|
|
1150
|
+
},
|
|
697
1151
|
},
|
|
698
1152
|
// The bare module's POSIX-target binding; a win32 target rebinds it to
|
|
699
1153
|
// the win32 table (builtinModuleFnsOf — Node on Windows IS path.win32).
|
|
@@ -733,7 +1187,12 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
733
1187
|
// form KEEPS its one-libCall lowering (lowerCryptoComposedCall runs
|
|
734
1188
|
// first and the Buffer never materializes there); this entry covers
|
|
735
1189
|
// the bare calls and non-composed uses.
|
|
736
|
-
randomBytes: {
|
|
1190
|
+
randomBytes: {
|
|
1191
|
+
fn: "crypto.randomBytes",
|
|
1192
|
+
params: [F64],
|
|
1193
|
+
result: BYTES_U8,
|
|
1194
|
+
valueParams: exactValueParams(F64),
|
|
1195
|
+
},
|
|
737
1196
|
// The crypto utility surface is special-cased for overloads and
|
|
738
1197
|
// string/Buffer splits in lowerCryptoModuleCall. These rows carry the
|
|
739
1198
|
// canonical signatures for manifest projection and fallback dispatch.
|
|
@@ -743,9 +1202,17 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
743
1202
|
timingSafeEqual: { fn: "crypto.timingSafeEqual", params: [BYTES_U8, BYTES_U8], result: BOOL },
|
|
744
1203
|
randomFillSync: { fn: "crypto.randomFill", params: [BYTES_U8, F64, F64], result: BYTES_U8 },
|
|
745
1204
|
randomInt: { fn: "crypto.randomInt", params: [F64, F64], result: F64 },
|
|
746
|
-
pbkdf2Sync: {
|
|
1205
|
+
pbkdf2Sync: {
|
|
1206
|
+
fn: "crypto.pbkdf2",
|
|
1207
|
+
params: [BYTES_U8, BYTES_U8, F64, F64, STRING],
|
|
1208
|
+
result: BYTES_U8,
|
|
1209
|
+
},
|
|
747
1210
|
pbkdf2: { fn: "crypto.pbkdf2Cb", params: [], result: VOID },
|
|
748
|
-
hkdfSync: {
|
|
1211
|
+
hkdfSync: {
|
|
1212
|
+
fn: "crypto.hkdf",
|
|
1213
|
+
params: [STRING, BYTES_U8, BYTES_U8, BYTES_U8, F64],
|
|
1214
|
+
result: DYN,
|
|
1215
|
+
},
|
|
749
1216
|
hkdf: { fn: "crypto.hkdfCb", params: [], result: VOID },
|
|
750
1217
|
scryptSync: { fn: "crypto.scrypt", params: [BYTES_U8, BYTES_U8, F64, DYN], result: BYTES_U8 },
|
|
751
1218
|
scrypt: { fn: "crypto.scryptCb", params: [], result: VOID },
|
|
@@ -772,9 +1239,33 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
772
1239
|
crc32: { fn: "zlib.crc32", params: [], result: F64 },
|
|
773
1240
|
},
|
|
774
1241
|
url: {
|
|
775
|
-
fileURLToPath: {
|
|
776
|
-
|
|
777
|
-
|
|
1242
|
+
fileURLToPath: {
|
|
1243
|
+
fn: "url.fileURLToPathOptions",
|
|
1244
|
+
params: [DYN, DYN],
|
|
1245
|
+
result: STRING,
|
|
1246
|
+
valueParams: [
|
|
1247
|
+
{ mode: "required", type: DYN },
|
|
1248
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1249
|
+
],
|
|
1250
|
+
},
|
|
1251
|
+
fileURLToPathBuffer: {
|
|
1252
|
+
fn: "url.fileURLToPathBuffer",
|
|
1253
|
+
params: [DYN, DYN],
|
|
1254
|
+
result: BYTES_U8,
|
|
1255
|
+
valueParams: [
|
|
1256
|
+
{ mode: "required", type: DYN },
|
|
1257
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1258
|
+
],
|
|
1259
|
+
},
|
|
1260
|
+
pathToFileURL: {
|
|
1261
|
+
fn: "url.pathToFileURLChecked",
|
|
1262
|
+
params: [DYN, DYN],
|
|
1263
|
+
result: URL_T,
|
|
1264
|
+
valueParams: [
|
|
1265
|
+
{ mode: "required", type: DYN },
|
|
1266
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1267
|
+
],
|
|
1268
|
+
},
|
|
778
1269
|
},
|
|
779
1270
|
child_process: {
|
|
780
1271
|
// spawnSync's and spawn's call completions are entirely special-cased
|
|
@@ -804,15 +1295,53 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
804
1295
|
// the dedicated static member; the spoke owns its optional arity and
|
|
805
1296
|
// call-site-specific result type before this canonical signature is used.
|
|
806
1297
|
util: {
|
|
807
|
-
styleText: {
|
|
808
|
-
|
|
1298
|
+
styleText: {
|
|
1299
|
+
fn: "util.styleText",
|
|
1300
|
+
params: [DYN, DYN, DYN],
|
|
1301
|
+
result: STRING,
|
|
1302
|
+
valueParams: [
|
|
1303
|
+
{ mode: "required", type: DYN },
|
|
1304
|
+
{ mode: "required", type: DYN },
|
|
1305
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1306
|
+
],
|
|
1307
|
+
},
|
|
1308
|
+
isDeepStrictEqual: {
|
|
1309
|
+
fn: "util.isDeepStrictEqual",
|
|
1310
|
+
params: [DYN, DYN, DYN],
|
|
1311
|
+
result: BOOL,
|
|
1312
|
+
valueParams: [
|
|
1313
|
+
{ mode: "required", type: DYN },
|
|
1314
|
+
{ mode: "required", type: DYN },
|
|
1315
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1316
|
+
],
|
|
1317
|
+
},
|
|
809
1318
|
parseArgs: { fn: "util.parseArgs", params: [DYN], result: DYN },
|
|
810
1319
|
parseEnv: { fn: "util.parseEnv", params: [DYN], result: DYN },
|
|
811
|
-
getSystemErrorName: {
|
|
812
|
-
|
|
1320
|
+
getSystemErrorName: {
|
|
1321
|
+
fn: "util.getSystemErrorName",
|
|
1322
|
+
params: [DYN],
|
|
1323
|
+
result: STRING,
|
|
1324
|
+
valueParams: exactValueParams(DYN),
|
|
1325
|
+
},
|
|
1326
|
+
getSystemErrorMessage: {
|
|
1327
|
+
fn: "util.getSystemErrorMessage",
|
|
1328
|
+
params: [DYN],
|
|
1329
|
+
result: STRING,
|
|
1330
|
+
valueParams: exactValueParams(DYN),
|
|
1331
|
+
},
|
|
813
1332
|
getSystemErrorMap: { fn: "util.systemErrorEntries", params: [], result: DYN },
|
|
814
|
-
stripVTControlCharacters: {
|
|
815
|
-
|
|
1333
|
+
stripVTControlCharacters: {
|
|
1334
|
+
fn: "util.stripVTControlCharacters",
|
|
1335
|
+
params: [DYN],
|
|
1336
|
+
result: STRING,
|
|
1337
|
+
valueParams: exactValueParams(DYN),
|
|
1338
|
+
},
|
|
1339
|
+
toUSVString: {
|
|
1340
|
+
fn: "util.toUSVString",
|
|
1341
|
+
params: [DYN],
|
|
1342
|
+
result: STRING,
|
|
1343
|
+
valueParams: exactValueParams(DYN),
|
|
1344
|
+
},
|
|
816
1345
|
},
|
|
817
1346
|
// The util/types spoke supplies the probe name to the shared brand check.
|
|
818
1347
|
"util/types": {
|
|
@@ -868,8 +1397,18 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
868
1397
|
decode: { fn: "qs.parse", params: [STRING], result: VOID },
|
|
869
1398
|
stringify: { fn: "qs.stringify", params: [DYN], result: STRING },
|
|
870
1399
|
encode: { fn: "qs.stringify", params: [DYN], result: STRING },
|
|
871
|
-
escape: {
|
|
872
|
-
|
|
1400
|
+
escape: {
|
|
1401
|
+
fn: "qs.escape",
|
|
1402
|
+
params: [STRING],
|
|
1403
|
+
result: STRING,
|
|
1404
|
+
valueParams: [{ mode: "required", type: STRING }],
|
|
1405
|
+
},
|
|
1406
|
+
unescape: {
|
|
1407
|
+
fn: "qs.unescape",
|
|
1408
|
+
params: [STRING],
|
|
1409
|
+
result: STRING,
|
|
1410
|
+
valueParams: [{ mode: "required", type: STRING }],
|
|
1411
|
+
},
|
|
873
1412
|
},
|
|
874
1413
|
// node:readline: createInterface's options are entirely special-cased
|
|
875
1414
|
// (exactly { input: process.stdin, output?: process.stdout } — see
|
|
@@ -889,8 +1428,16 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
889
1428
|
// The process-wide happy-eyeballs attempt budget: one runtime double
|
|
890
1429
|
// in the core unit (never links scr_net.c by itself), default 250ms
|
|
891
1430
|
// like Node's.
|
|
892
|
-
getDefaultAutoSelectFamilyAttemptTimeout: {
|
|
893
|
-
|
|
1431
|
+
getDefaultAutoSelectFamilyAttemptTimeout: {
|
|
1432
|
+
fn: "net.getAutoSelTimeout",
|
|
1433
|
+
params: [],
|
|
1434
|
+
result: F64,
|
|
1435
|
+
},
|
|
1436
|
+
setDefaultAutoSelectFamilyAttemptTimeout: {
|
|
1437
|
+
fn: "net.setAutoSelTimeout",
|
|
1438
|
+
params: [F64],
|
|
1439
|
+
result: VOID,
|
|
1440
|
+
},
|
|
894
1441
|
},
|
|
895
1442
|
http: {},
|
|
896
1443
|
// node:tls and node:https ride the same spoke (tls.createServer's
|
|
@@ -939,7 +1486,7 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
939
1486
|
// handle (type-mapper.ts maps Channel to F64); the subscriber arguments box
|
|
940
1487
|
// into the checked-dynamic tree (special-cased in lowerBuiltinModuleCall — the entries
|
|
941
1488
|
// carry canonical shapes and route the dispatch). The Channel method
|
|
942
|
-
// surface lowers through
|
|
1489
|
+
// surface lowers through lowerDiagnosticsChannelMethodCall/lowerDiagnosticsChannelProperty.
|
|
943
1490
|
diagnostics_channel: {
|
|
944
1491
|
channel: { fn: "dc.channel", params: [STRING], result: F64 },
|
|
945
1492
|
subscribe: { fn: "dc.subscribe", params: [STRING, DYN], result: VOID },
|
|
@@ -954,10 +1501,9 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
954
1501
|
* a literal of its value's kind. The bare-module values are the TARGET
|
|
955
1502
|
* platform's (builtinModuleConstOf swaps the win32 values in under a win32
|
|
956
1503
|
* triple — Node's own platform conditionals); the named namespaces answer
|
|
957
|
-
* THEIR platform's constants everywhere.
|
|
958
|
-
*
|
|
959
|
-
*
|
|
960
|
-
* node binary itself) — Node's own answers for a directly-run script. */
|
|
1504
|
+
* THEIR platform's constants everywhere. Worker metadata uses these names
|
|
1505
|
+
* for inventory but reads the current runtime context in its dedicated
|
|
1506
|
+
* lowering. Cluster metadata describes a directly-run native executable. */
|
|
961
1507
|
export const BUILTIN_MODULE_CONSTS = {
|
|
962
1508
|
http: { maxHeaderSize: 16384 },
|
|
963
1509
|
path: { sep: "/", delimiter: ":" },
|
|
@@ -985,7 +1531,15 @@ export const BUILTIN_MODULE_FN_ALIASES = {
|
|
|
985
1531
|
openSync: ["fs.openNumericSync"],
|
|
986
1532
|
// The Buffer form (no encoding), the fd forms (readFileSync(fd[,
|
|
987
1533
|
// "utf8"])), and the checked-dynamic encoding form.
|
|
988
|
-
readFileSync: [
|
|
1534
|
+
readFileSync: [
|
|
1535
|
+
"fs.readFileSyncBuf",
|
|
1536
|
+
"fs.readFileSyncBytes",
|
|
1537
|
+
"fs.readFileSyncDyn",
|
|
1538
|
+
"fs.readFileEncoded",
|
|
1539
|
+
"fs.readFdEncoded",
|
|
1540
|
+
"fs.readFdSync",
|
|
1541
|
+
"fs.readFdSyncBytes",
|
|
1542
|
+
],
|
|
989
1543
|
readlinkSync: ["fs.readlinkSyncStr", "fs.readlinkSyncBuffer"],
|
|
990
1544
|
// The bytes-data form and the { mode } options form.
|
|
991
1545
|
writeFileSync: ["fs.writeFileSyncBytes", "fs.writeFileModeSync"],
|
|
@@ -1033,6 +1587,34 @@ export const BUILTIN_MODULE_FN_ALIASES = {
|
|
|
1033
1587
|
},
|
|
1034
1588
|
};
|
|
1035
1589
|
export const AMBIENT_SURFACE_FNS = [
|
|
1590
|
+
{
|
|
1591
|
+
id: "node-builtin.worker_threads.Worker",
|
|
1592
|
+
kind: "node-builtin",
|
|
1593
|
+
name: "worker_threads.Worker",
|
|
1594
|
+
fns: ["worker.new"],
|
|
1595
|
+
note: "native threads with statically compiled entry points, workerData, argv and message events",
|
|
1596
|
+
},
|
|
1597
|
+
{
|
|
1598
|
+
id: "node-builtin.worker_threads.metadata",
|
|
1599
|
+
kind: "node-builtin",
|
|
1600
|
+
name: "worker_threads metadata",
|
|
1601
|
+
fns: ["worker.isMainThread", "worker.threadId", "worker.data", "worker.parentPort"],
|
|
1602
|
+
note: "current-thread metadata and the worker's parent message port",
|
|
1603
|
+
},
|
|
1604
|
+
{
|
|
1605
|
+
id: "stdlib.sharedArrayBuffer",
|
|
1606
|
+
kind: "stdlib",
|
|
1607
|
+
name: "SharedArrayBuffer",
|
|
1608
|
+
fns: ["sharedArrayBuffer.new"],
|
|
1609
|
+
note: "fixed shared storage with context-local typed-array and DataView wrappers",
|
|
1610
|
+
},
|
|
1611
|
+
{
|
|
1612
|
+
id: "stdlib.atomics",
|
|
1613
|
+
kind: "stdlib",
|
|
1614
|
+
name: "Atomics",
|
|
1615
|
+
fns: ["atomics.op", "atomics.wait", "atomics.notify"],
|
|
1616
|
+
note: "8-, 16- and 32-bit integer operations, plus Int32Array wait and notify",
|
|
1617
|
+
},
|
|
1036
1618
|
{
|
|
1037
1619
|
id: "node-builtin.fs.callbacks",
|
|
1038
1620
|
kind: "node-builtin",
|
|
@@ -1091,23 +1673,103 @@ export const AMBIENT_SURFACE_FNS = [
|
|
|
1091
1673
|
fns: ["date.toISOString", "date.toISOStringValue"],
|
|
1092
1674
|
note: "UTC ISO formatting over constructed and stored Date values",
|
|
1093
1675
|
},
|
|
1094
|
-
{
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1676
|
+
{
|
|
1677
|
+
id: "stdlib.date.getFullYear",
|
|
1678
|
+
kind: "stdlib",
|
|
1679
|
+
name: "Date.prototype.getFullYear",
|
|
1680
|
+
fns: ["date.getFullYear"],
|
|
1681
|
+
},
|
|
1682
|
+
{
|
|
1683
|
+
id: "stdlib.date.getUTCFullYear",
|
|
1684
|
+
kind: "stdlib",
|
|
1685
|
+
name: "Date.prototype.getUTCFullYear",
|
|
1686
|
+
fns: ["date.getUTCFullYear"],
|
|
1687
|
+
},
|
|
1688
|
+
{
|
|
1689
|
+
id: "stdlib.date.getMonth",
|
|
1690
|
+
kind: "stdlib",
|
|
1691
|
+
name: "Date.prototype.getMonth",
|
|
1692
|
+
fns: ["date.getMonth"],
|
|
1693
|
+
},
|
|
1694
|
+
{
|
|
1695
|
+
id: "stdlib.date.getUTCMonth",
|
|
1696
|
+
kind: "stdlib",
|
|
1697
|
+
name: "Date.prototype.getUTCMonth",
|
|
1698
|
+
fns: ["date.getUTCMonth"],
|
|
1699
|
+
},
|
|
1700
|
+
{
|
|
1701
|
+
id: "stdlib.date.getDate",
|
|
1702
|
+
kind: "stdlib",
|
|
1703
|
+
name: "Date.prototype.getDate",
|
|
1704
|
+
fns: ["date.getDate"],
|
|
1705
|
+
},
|
|
1706
|
+
{
|
|
1707
|
+
id: "stdlib.date.getUTCDate",
|
|
1708
|
+
kind: "stdlib",
|
|
1709
|
+
name: "Date.prototype.getUTCDate",
|
|
1710
|
+
fns: ["date.getUTCDate"],
|
|
1711
|
+
},
|
|
1100
1712
|
{ id: "stdlib.date.getDay", kind: "stdlib", name: "Date.prototype.getDay", fns: ["date.getDay"] },
|
|
1101
|
-
{
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
{
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1713
|
+
{
|
|
1714
|
+
id: "stdlib.date.getUTCDay",
|
|
1715
|
+
kind: "stdlib",
|
|
1716
|
+
name: "Date.prototype.getUTCDay",
|
|
1717
|
+
fns: ["date.getUTCDay"],
|
|
1718
|
+
},
|
|
1719
|
+
{
|
|
1720
|
+
id: "stdlib.date.getHours",
|
|
1721
|
+
kind: "stdlib",
|
|
1722
|
+
name: "Date.prototype.getHours",
|
|
1723
|
+
fns: ["date.getHours"],
|
|
1724
|
+
},
|
|
1725
|
+
{
|
|
1726
|
+
id: "stdlib.date.getUTCHours",
|
|
1727
|
+
kind: "stdlib",
|
|
1728
|
+
name: "Date.prototype.getUTCHours",
|
|
1729
|
+
fns: ["date.getUTCHours"],
|
|
1730
|
+
},
|
|
1731
|
+
{
|
|
1732
|
+
id: "stdlib.date.getMinutes",
|
|
1733
|
+
kind: "stdlib",
|
|
1734
|
+
name: "Date.prototype.getMinutes",
|
|
1735
|
+
fns: ["date.getMinutes"],
|
|
1736
|
+
},
|
|
1737
|
+
{
|
|
1738
|
+
id: "stdlib.date.getUTCMinutes",
|
|
1739
|
+
kind: "stdlib",
|
|
1740
|
+
name: "Date.prototype.getUTCMinutes",
|
|
1741
|
+
fns: ["date.getUTCMinutes"],
|
|
1742
|
+
},
|
|
1743
|
+
{
|
|
1744
|
+
id: "stdlib.date.getSeconds",
|
|
1745
|
+
kind: "stdlib",
|
|
1746
|
+
name: "Date.prototype.getSeconds",
|
|
1747
|
+
fns: ["date.getSeconds"],
|
|
1748
|
+
},
|
|
1749
|
+
{
|
|
1750
|
+
id: "stdlib.date.getUTCSeconds",
|
|
1751
|
+
kind: "stdlib",
|
|
1752
|
+
name: "Date.prototype.getUTCSeconds",
|
|
1753
|
+
fns: ["date.getUTCSeconds"],
|
|
1754
|
+
},
|
|
1755
|
+
{
|
|
1756
|
+
id: "stdlib.date.getMilliseconds",
|
|
1757
|
+
kind: "stdlib",
|
|
1758
|
+
name: "Date.prototype.getMilliseconds",
|
|
1759
|
+
fns: ["date.getMilliseconds"],
|
|
1760
|
+
},
|
|
1761
|
+
{
|
|
1762
|
+
id: "stdlib.date.getUTCMilliseconds",
|
|
1763
|
+
kind: "stdlib",
|
|
1764
|
+
name: "Date.prototype.getUTCMilliseconds",
|
|
1765
|
+
fns: ["date.getUTCMilliseconds"],
|
|
1766
|
+
},
|
|
1767
|
+
{
|
|
1768
|
+
id: "stdlib.date.getTimezoneOffset",
|
|
1769
|
+
kind: "stdlib",
|
|
1770
|
+
name: "Date.prototype.getTimezoneOffset",
|
|
1771
|
+
fns: ["date.getTimezoneOffset"],
|
|
1772
|
+
},
|
|
1111
1773
|
// ── perf_hooks (lowerPerfHooksCall): the monotonic clock.
|
|
1112
1774
|
{
|
|
1113
1775
|
id: "node-builtin.perf_hooks.performance.now",
|
|
@@ -1126,25 +1788,75 @@ export const AMBIENT_SURFACE_FNS = [
|
|
|
1126
1788
|
fns: ["process.envGet", "process.envSet", "process.envUnset", "process.envPairs"],
|
|
1127
1789
|
note: "reads, writes, deletes, and enumeration of the process environment (the process global)",
|
|
1128
1790
|
},
|
|
1129
|
-
{ id: "node-builtin.process.argv", kind: "node-builtin", name: "process.argv", fns: ["process.argv"] },
|
|
1130
|
-
{ id: "node-builtin.process.hrtime", kind: "node-builtin", name: "process.hrtime", fns: ["process.hrtimeValue"], note: "native monotonic tuple clock and bigint member; direct calls and stored JavaScript callable values" },
|
|
1131
1791
|
{
|
|
1132
|
-
id: "node-builtin.process.
|
|
1792
|
+
id: "node-builtin.process.argv",
|
|
1793
|
+
kind: "node-builtin",
|
|
1794
|
+
name: "process.argv",
|
|
1795
|
+
fns: ["process.argv"],
|
|
1796
|
+
},
|
|
1797
|
+
{
|
|
1798
|
+
id: "node-builtin.process.hrtime",
|
|
1799
|
+
kind: "node-builtin",
|
|
1800
|
+
name: "process.hrtime",
|
|
1801
|
+
fns: ["process.hrtimeValue"],
|
|
1802
|
+
note: "native monotonic tuple clock and bigint member; direct calls and stored JavaScript callable values",
|
|
1803
|
+
},
|
|
1804
|
+
{
|
|
1805
|
+
id: "node-builtin.process.getBuiltinModule",
|
|
1806
|
+
kind: "node-builtin",
|
|
1807
|
+
name: "process.getBuiltinModule",
|
|
1133
1808
|
fns: ["process.builtinId", "process.builtinModule", "process.builtinUnsupported"],
|
|
1134
|
-
note: "native path and os export subsets plus
|
|
1809
|
+
note: "native path and os export subsets plus current-thread worker_threads metadata; other modules and exports throw SC2020",
|
|
1135
1810
|
},
|
|
1136
1811
|
{
|
|
1137
|
-
id: "node-builtin.process.versions",
|
|
1812
|
+
id: "node-builtin.process.versions",
|
|
1813
|
+
kind: "node-builtin",
|
|
1814
|
+
name: "process.versions",
|
|
1138
1815
|
fns: ["process.versions"],
|
|
1139
1816
|
note: "shared version dictionary containing node and openssl; other components are absent unless defined by the program",
|
|
1140
1817
|
},
|
|
1141
|
-
{
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
{
|
|
1818
|
+
{
|
|
1819
|
+
id: "node-builtin.process.cwd",
|
|
1820
|
+
kind: "node-builtin",
|
|
1821
|
+
name: "process.cwd",
|
|
1822
|
+
fns: ["process.cwd"],
|
|
1823
|
+
},
|
|
1824
|
+
{
|
|
1825
|
+
id: "node-builtin.process.chdir",
|
|
1826
|
+
kind: "node-builtin",
|
|
1827
|
+
name: "process.chdir",
|
|
1828
|
+
fns: ["process.chdir"],
|
|
1829
|
+
},
|
|
1830
|
+
{
|
|
1831
|
+
id: "node-builtin.process.pid",
|
|
1832
|
+
kind: "node-builtin",
|
|
1833
|
+
name: "process.pid",
|
|
1834
|
+
fns: ["process.pid"],
|
|
1835
|
+
},
|
|
1836
|
+
{
|
|
1837
|
+
id: "node-builtin.process.getuid",
|
|
1838
|
+
kind: "node-builtin",
|
|
1839
|
+
name: "process.getuid",
|
|
1840
|
+
fns: ["process.getuid"],
|
|
1841
|
+
},
|
|
1842
|
+
{
|
|
1843
|
+
id: "node-builtin.process.getgid",
|
|
1844
|
+
kind: "node-builtin",
|
|
1845
|
+
name: "process.getgid",
|
|
1846
|
+
fns: ["process.getgid"],
|
|
1847
|
+
},
|
|
1848
|
+
{
|
|
1849
|
+
id: "node-builtin.process.execPath",
|
|
1850
|
+
kind: "node-builtin",
|
|
1851
|
+
name: "process.execPath",
|
|
1852
|
+
fns: ["process.execPath"],
|
|
1853
|
+
},
|
|
1854
|
+
{
|
|
1855
|
+
id: "node-builtin.process.uptime",
|
|
1856
|
+
kind: "node-builtin",
|
|
1857
|
+
name: "process.uptime",
|
|
1858
|
+
fns: ["process.uptime"],
|
|
1859
|
+
},
|
|
1148
1860
|
{
|
|
1149
1861
|
id: "node-builtin.process.availableMemory",
|
|
1150
1862
|
kind: "node-builtin",
|
|
@@ -1168,14 +1880,25 @@ export const AMBIENT_SURFACE_FNS = [
|
|
|
1168
1880
|
id: "node-builtin.process.cpuUsage",
|
|
1169
1881
|
kind: "node-builtin",
|
|
1170
1882
|
name: "process.cpuUsage",
|
|
1171
|
-
fns: [
|
|
1883
|
+
fns: [
|
|
1884
|
+
"process.cpuUser",
|
|
1885
|
+
"process.cpuSystem",
|
|
1886
|
+
"process.cpuUserDiff",
|
|
1887
|
+
"process.cpuSystemDiff",
|
|
1888
|
+
"process.cpuPrevValidate",
|
|
1889
|
+
],
|
|
1172
1890
|
note: "the plain-sample and previous-value diff forms are one surface",
|
|
1173
1891
|
},
|
|
1174
1892
|
{
|
|
1175
1893
|
id: "node-builtin.process.threadCpuUsage",
|
|
1176
1894
|
kind: "node-builtin",
|
|
1177
1895
|
name: "process.threadCpuUsage",
|
|
1178
|
-
fns: [
|
|
1896
|
+
fns: [
|
|
1897
|
+
"process.threadCpuUser",
|
|
1898
|
+
"process.threadCpuSystem",
|
|
1899
|
+
"process.threadCpuUserDiff",
|
|
1900
|
+
"process.threadCpuSystemDiff",
|
|
1901
|
+
],
|
|
1179
1902
|
note: "the plain-sample and previous-value diff forms are one surface",
|
|
1180
1903
|
},
|
|
1181
1904
|
{
|
|
@@ -1206,7 +1929,12 @@ export const AMBIENT_SURFACE_FNS = [
|
|
|
1206
1929
|
fns: ["process.kill", "process.killNum"],
|
|
1207
1930
|
note: "the signal-name and signal-number forms are one surface",
|
|
1208
1931
|
},
|
|
1209
|
-
{
|
|
1932
|
+
{
|
|
1933
|
+
id: "node-builtin.process.umask",
|
|
1934
|
+
kind: "node-builtin",
|
|
1935
|
+
name: "process.umask",
|
|
1936
|
+
fns: ["process.umask"],
|
|
1937
|
+
},
|
|
1210
1938
|
{
|
|
1211
1939
|
id: "node-builtin.process.exit",
|
|
1212
1940
|
kind: "node-builtin",
|
|
@@ -1287,9 +2015,44 @@ export function builtinModuleFnOf(lowerer, module, member) {
|
|
|
1287
2015
|
}
|
|
1288
2016
|
/** Native error-first function values used by platform service adapters. */
|
|
1289
2017
|
export const FS_CALLBACK_MEMBERS = new Set([
|
|
1290
|
-
"access",
|
|
1291
|
-
"
|
|
1292
|
-
"
|
|
2018
|
+
"access",
|
|
2019
|
+
"cp",
|
|
2020
|
+
"copyFile",
|
|
2021
|
+
"chmod",
|
|
2022
|
+
"chown",
|
|
2023
|
+
"glob",
|
|
2024
|
+
"link",
|
|
2025
|
+
"mkdir",
|
|
2026
|
+
"mkdtemp",
|
|
2027
|
+
"rm",
|
|
2028
|
+
"rmdir",
|
|
2029
|
+
"unlink",
|
|
2030
|
+
"open",
|
|
2031
|
+
"close",
|
|
2032
|
+
"fstat",
|
|
2033
|
+
"ftruncate",
|
|
2034
|
+
"fsync",
|
|
2035
|
+
"fdatasync",
|
|
2036
|
+
"fchmod",
|
|
2037
|
+
"read",
|
|
2038
|
+
"write",
|
|
2039
|
+
"readv",
|
|
2040
|
+
"writev",
|
|
2041
|
+
"readlink",
|
|
2042
|
+
"realpath",
|
|
2043
|
+
"rename",
|
|
2044
|
+
"stat",
|
|
2045
|
+
"lstat",
|
|
2046
|
+
"symlink",
|
|
2047
|
+
"statfs",
|
|
2048
|
+
"truncate",
|
|
2049
|
+
"utimes",
|
|
2050
|
+
"futimes",
|
|
2051
|
+
"lutimes",
|
|
2052
|
+
"readFile",
|
|
2053
|
+
"writeFile",
|
|
2054
|
+
"appendFile",
|
|
2055
|
+
"readdir",
|
|
1293
2056
|
]);
|
|
1294
2057
|
/** One member's fence hint, own-property-safe (a collision would print an
|
|
1295
2058
|
* inherited function into the diagnostic text). */
|
|
@@ -1327,20 +2090,78 @@ export function builtinConstLit(value, loc) {
|
|
|
1327
2090
|
* array — a divergence only mutation could observe, and mutating Node's
|
|
1328
2091
|
* frozen array throws anyway. */
|
|
1329
2092
|
export const NODE_BUILTIN_MODULES_V24 = [
|
|
1330
|
-
"_http_agent",
|
|
1331
|
-
"
|
|
1332
|
-
"
|
|
1333
|
-
"
|
|
1334
|
-
"
|
|
1335
|
-
"
|
|
1336
|
-
"
|
|
1337
|
-
"
|
|
1338
|
-
"
|
|
1339
|
-
"
|
|
1340
|
-
"
|
|
1341
|
-
"
|
|
1342
|
-
"
|
|
1343
|
-
"
|
|
2093
|
+
"_http_agent",
|
|
2094
|
+
"_http_client",
|
|
2095
|
+
"_http_common",
|
|
2096
|
+
"_http_incoming",
|
|
2097
|
+
"_http_outgoing",
|
|
2098
|
+
"_http_server",
|
|
2099
|
+
"_stream_duplex",
|
|
2100
|
+
"_stream_passthrough",
|
|
2101
|
+
"_stream_readable",
|
|
2102
|
+
"_stream_transform",
|
|
2103
|
+
"_stream_wrap",
|
|
2104
|
+
"_stream_writable",
|
|
2105
|
+
"_tls_common",
|
|
2106
|
+
"_tls_wrap",
|
|
2107
|
+
"assert",
|
|
2108
|
+
"assert/strict",
|
|
2109
|
+
"async_hooks",
|
|
2110
|
+
"buffer",
|
|
2111
|
+
"child_process",
|
|
2112
|
+
"cluster",
|
|
2113
|
+
"console",
|
|
2114
|
+
"constants",
|
|
2115
|
+
"crypto",
|
|
2116
|
+
"dgram",
|
|
2117
|
+
"diagnostics_channel",
|
|
2118
|
+
"dns",
|
|
2119
|
+
"dns/promises",
|
|
2120
|
+
"domain",
|
|
2121
|
+
"events",
|
|
2122
|
+
"fs",
|
|
2123
|
+
"fs/promises",
|
|
2124
|
+
"http",
|
|
2125
|
+
"http2",
|
|
2126
|
+
"https",
|
|
2127
|
+
"inspector",
|
|
2128
|
+
"inspector/promises",
|
|
2129
|
+
"module",
|
|
2130
|
+
"net",
|
|
2131
|
+
"os",
|
|
2132
|
+
"path",
|
|
2133
|
+
"path/posix",
|
|
2134
|
+
"path/win32",
|
|
2135
|
+
"perf_hooks",
|
|
2136
|
+
"process",
|
|
2137
|
+
"punycode",
|
|
2138
|
+
"querystring",
|
|
2139
|
+
"readline",
|
|
2140
|
+
"readline/promises",
|
|
2141
|
+
"repl",
|
|
2142
|
+
"stream",
|
|
2143
|
+
"stream/consumers",
|
|
2144
|
+
"stream/promises",
|
|
2145
|
+
"stream/web",
|
|
2146
|
+
"string_decoder",
|
|
2147
|
+
"sys",
|
|
2148
|
+
"timers",
|
|
2149
|
+
"timers/promises",
|
|
2150
|
+
"tls",
|
|
2151
|
+
"trace_events",
|
|
2152
|
+
"tty",
|
|
2153
|
+
"url",
|
|
2154
|
+
"util",
|
|
2155
|
+
"util/types",
|
|
2156
|
+
"v8",
|
|
2157
|
+
"vm",
|
|
2158
|
+
"wasi",
|
|
2159
|
+
"worker_threads",
|
|
2160
|
+
"zlib",
|
|
2161
|
+
"node:sea",
|
|
2162
|
+
"node:sqlite",
|
|
2163
|
+
"node:test",
|
|
2164
|
+
"node:test/reporters",
|
|
1344
2165
|
];
|
|
1345
2166
|
/** The array-literal read of module.builtinModules — both value paths
|
|
1346
2167
|
* (the named-import binding and the namespace member read) mint the
|
|
@@ -1348,7 +2169,12 @@ export const NODE_BUILTIN_MODULES_V24 = [
|
|
|
1348
2169
|
export function builtinModulesArrayLit(loc) {
|
|
1349
2170
|
return {
|
|
1350
2171
|
kind: "arrayLit",
|
|
1351
|
-
elems: NODE_BUILTIN_MODULES_V24.map((m) => ({
|
|
2172
|
+
elems: NODE_BUILTIN_MODULES_V24.map((m) => ({
|
|
2173
|
+
kind: "strLit",
|
|
2174
|
+
value: m,
|
|
2175
|
+
type: STRING,
|
|
2176
|
+
loc,
|
|
2177
|
+
})),
|
|
1352
2178
|
type: arrayOf(STRING),
|
|
1353
2179
|
loc,
|
|
1354
2180
|
};
|
|
@@ -1367,7 +2193,7 @@ const ASSERT_MODULE_HINTS = {
|
|
|
1367
2193
|
ifError: "test explicitly instead: assert.strictEqual(err, null) / " +
|
|
1368
2194
|
"assert.strictEqual(err, undefined)",
|
|
1369
2195
|
rejects: "await the promise inside assert.throws's callback story instead: " +
|
|
1370
|
-
|
|
2196
|
+
'try { await p; assert.fail("expected rejection") } catch { ... }',
|
|
1371
2197
|
doesNotReject: "await the promise directly — an unexpected rejection already fails the test",
|
|
1372
2198
|
AssertionError: "the class itself has no lowering — catch and test err.name === " +
|
|
1373
2199
|
'"AssertionError" or err.code === "ERR_ASSERTION"',
|
|
@@ -1409,12 +2235,26 @@ export const BUILTIN_MODULE_FENCE_HINTS = {
|
|
|
1409
2235
|
},
|
|
1410
2236
|
crypto: {
|
|
1411
2237
|
...Object.fromEntries([
|
|
1412
|
-
"generateKeyPair",
|
|
1413
|
-
"
|
|
1414
|
-
"
|
|
1415
|
-
"
|
|
1416
|
-
"
|
|
1417
|
-
"
|
|
2238
|
+
"generateKeyPair",
|
|
2239
|
+
"generateKeyPairSync",
|
|
2240
|
+
"generateKey",
|
|
2241
|
+
"generateKeySync",
|
|
2242
|
+
"createPrivateKey",
|
|
2243
|
+
"createPublicKey",
|
|
2244
|
+
"createSecretKey",
|
|
2245
|
+
"createSign",
|
|
2246
|
+
"createVerify",
|
|
2247
|
+
"sign",
|
|
2248
|
+
"verify",
|
|
2249
|
+
"createDiffieHellman",
|
|
2250
|
+
"createDiffieHellmanGroup",
|
|
2251
|
+
"getDiffieHellman",
|
|
2252
|
+
"createECDH",
|
|
2253
|
+
"diffieHellman",
|
|
2254
|
+
"publicEncrypt",
|
|
2255
|
+
"publicDecrypt",
|
|
2256
|
+
"privateEncrypt",
|
|
2257
|
+
"privateDecrypt",
|
|
1418
2258
|
].map((m) => [
|
|
1419
2259
|
m,
|
|
1420
2260
|
"asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a " +
|
|
@@ -1451,12 +2291,12 @@ export const BUILTIN_MODULE_FENCE_HINTS = {
|
|
|
1451
2291
|
},
|
|
1452
2292
|
};
|
|
1453
2293
|
/** The MEMBER chokepoint of the lib fence: called from the property-read
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
2294
|
+
* and method-call fallbacks after every lowering has passed. When the
|
|
2295
|
+
* accessed member is stdlib-declared, the use is standard-library surface
|
|
2296
|
+
* with no lowering — report SC2020 naming `<container>.<member>` (the
|
|
2297
|
+
* receiver's global name when it IS a stdlib global like Math or Promise,
|
|
2298
|
+
* its widened type text otherwise). Returns silently for non-stdlib
|
|
2299
|
+
* members so the caller's generic rejection applies. */
|
|
1460
2300
|
export function stdlibMemberFence(lowerer, access) {
|
|
1461
2301
|
const sym = lowerer.checker.getSymbolAtLocation(access.name);
|
|
1462
2302
|
if (!sym || !lowerer.isStdlibSymbol(sym))
|
|
@@ -1490,13 +2330,15 @@ export function stdlibMemberFence(lowerer, access) {
|
|
|
1490
2330
|
lowerer.checker.typeToString(lowerer.checker.getBaseTypeOfLiteralType(lowerer.typeOf(recv)));
|
|
1491
2331
|
let hint;
|
|
1492
2332
|
const recvIr = lowerer.mapTypeOf(lowerer.typeOf(recv));
|
|
1493
|
-
if (recvIr?.kind === "promise" &&
|
|
2333
|
+
if (recvIr?.kind === "promise" &&
|
|
2334
|
+
(member === "then" || member === "catch" || member === "finally")) {
|
|
1494
2335
|
hint =
|
|
1495
2336
|
"'await' is the supported way to chain (p.then(f) with one fulfillment handler, p.catch " +
|
|
1496
2337
|
"with an INLINE handler, and p.finally(cb) compile) — try { await p } catch (e) is the general form";
|
|
1497
2338
|
}
|
|
1498
2339
|
else if (recvIr?.kind === "f64" && member === "toString") {
|
|
1499
|
-
hint =
|
|
2340
|
+
hint =
|
|
2341
|
+
"radix-free conversion is a template literal away: `${x}`; toString(radix) runs under --dynamic";
|
|
1500
2342
|
}
|
|
1501
2343
|
else if (container === "Math" && (member === "min" || member === "max")) {
|
|
1502
2344
|
hint =
|
|
@@ -1578,14 +2420,26 @@ export function stdlibMemberFence(lowerer, access) {
|
|
|
1578
2420
|
}
|
|
1579
2421
|
else if (container === "SharedArrayBuffer" || container.startsWith("SharedArrayBuffer<")) {
|
|
1580
2422
|
hint =
|
|
1581
|
-
"
|
|
1582
|
-
"(a fixed-length allocation: grow has nothing to share it with)";
|
|
2423
|
+
"native SharedArrayBuffer storage is fixed-length; growable shared buffers are unsupported";
|
|
1583
2424
|
}
|
|
1584
|
-
else if (container === "Intl" ||
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
2425
|
+
else if (container === "Intl" ||
|
|
2426
|
+
container.startsWith("Intl.") ||
|
|
2427
|
+
[
|
|
2428
|
+
"NumberFormat",
|
|
2429
|
+
"DateTimeFormat",
|
|
2430
|
+
"DurationFormat",
|
|
2431
|
+
"PluralRules",
|
|
2432
|
+
"Collator",
|
|
2433
|
+
"Locale",
|
|
2434
|
+
"RelativeTimeFormat",
|
|
2435
|
+
"ListFormat",
|
|
2436
|
+
"Segmenter",
|
|
2437
|
+
"DisplayNames",
|
|
2438
|
+
].includes(container) ||
|
|
2439
|
+
member === "toLocaleString" ||
|
|
2440
|
+
member === "toLocaleDateString" ||
|
|
2441
|
+
member === "toLocaleTimeString" ||
|
|
2442
|
+
member === "toLocaleLowerCase" ||
|
|
1589
2443
|
member === "toLocaleUpperCase") {
|
|
1590
2444
|
hint =
|
|
1591
2445
|
"locale- and ICU-backed behavior lives outside the static runtime (the localeCompare " +
|
|
@@ -1605,7 +2459,7 @@ export function stdlibMemberFence(lowerer, access) {
|
|
|
1605
2459
|
lowerer.noLowering(`${container}.${member}`, access, hint, sym);
|
|
1606
2460
|
}
|
|
1607
2461
|
/** True iff the accessed member is declared by the standard library —
|
|
1608
|
-
|
|
2462
|
+
* the same technique as isConsoleLog: trust declarations, not names. */
|
|
1609
2463
|
export function isStdlibMember(lowerer, access) {
|
|
1610
2464
|
const direct = lowerer.checker.getSymbolAtLocation(access.name);
|
|
1611
2465
|
if (direct)
|
|
@@ -1624,11 +2478,11 @@ export function isStdlibMember(lowerer, access) {
|
|
|
1624
2478
|
return false;
|
|
1625
2479
|
}
|
|
1626
2480
|
/** The provenance check the CHILD receiver lowerings use: a stdlib
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
2481
|
+
* member, OR a member the user's own child-shaped interface declares
|
|
2482
|
+
* (the NgrokChildProcess idiom — mapType's duck rule admits an
|
|
2483
|
+
* interface only when EVERY member names the lowered ChildProcess
|
|
2484
|
+
* surface, so accepting its members here cannot widen the surface;
|
|
2485
|
+
* the receiver-kind gate already proved the type maps to child). */
|
|
1632
2486
|
export function isChildSurfaceMember(lowerer, access) {
|
|
1633
2487
|
if (isStdlibMember(lowerer, access))
|
|
1634
2488
|
return true;
|
|
@@ -1642,12 +2496,13 @@ export function isChildSurfaceMember(lowerer, access) {
|
|
|
1642
2496
|
return lowerer.mapTypeOf(lowerer.checker.getTypeAtLocation(iface.name))?.kind === "child";
|
|
1643
2497
|
}
|
|
1644
2498
|
/** True iff some declaration of the symbol lives in the standard library
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
2499
|
+
* (shipped ambient or default lib — the provenance half of every
|
|
2500
|
+
* supported-surface check). `some`, not `[0]`: divergence overrides merge
|
|
2501
|
+
* with lib interfaces, so a member can carry declarations from both. A
|
|
2502
|
+
* user's own declaration is in neither, so shadowing never matches. */
|
|
1649
2503
|
export function isStdlibSymbol(lowerer, symbol) {
|
|
1650
|
-
return !!symbol &&
|
|
2504
|
+
return (!!symbol &&
|
|
2505
|
+
lowerer.checker.declarationsOf(symbol).some((d) => lowerer.isStdlibFile(d.getSourceFile())));
|
|
1651
2506
|
}
|
|
1652
2507
|
/** The canonical stdlib-global name `expr` denotes, or null. Three
|
|
1653
2508
|
* spellings reach the same global (Node's own aliasing):
|
|
@@ -1655,12 +2510,12 @@ export function isStdlibSymbol(lowerer, symbol) {
|
|
|
1655
2510
|
* - the default import from `process`/`node:process`, whose value is
|
|
1656
2511
|
* exactly the global process object;
|
|
1657
2512
|
* - the `global` identifier — Node's alias of globalThis — and
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
2513
|
+
* `globalThis` itself both canonicalize to "globalThis";
|
|
2514
|
+
* - a property read off globalThis (`globalThis.process`,
|
|
2515
|
+
* `global.process`) — `declare var` globals ARE properties of
|
|
2516
|
+
* `typeof globalThis`, same symbol either way;
|
|
2517
|
+
* - a local alias binding (`const process = globalThis.process`, the
|
|
2518
|
+
* tamper-guard prologue) registered in stdlibGlobalAliases. */
|
|
1664
2519
|
export function stdlibGlobalNameOf(lowerer, expr) {
|
|
1665
2520
|
if (ts.isParenthesizedExpression(expr))
|
|
1666
2521
|
return stdlibGlobalNameOf(lowerer, expr.expression);
|
|
@@ -1669,7 +2524,10 @@ export function stdlibGlobalNameOf(lowerer, expr) {
|
|
|
1669
2524
|
// `globalThis` itself: a reserved intrinsic — tsc rejects user
|
|
1670
2525
|
// global bindings, but local parameters can shadow it. Its special
|
|
1671
2526
|
// symbol has no ordinary declarations for the provenance check.
|
|
1672
|
-
if (expr.text === "globalThis" &&
|
|
2527
|
+
if (expr.text === "globalThis" &&
|
|
2528
|
+
(!symbol ||
|
|
2529
|
+
lowerer.checker.declarationsOf(symbol).length === 0 ||
|
|
2530
|
+
lowerer.isStdlibSymbol(symbol)))
|
|
1673
2531
|
return "globalThis";
|
|
1674
2532
|
if (!symbol)
|
|
1675
2533
|
return null;
|
|
@@ -1707,32 +2565,32 @@ export function stdlibGlobalNameOf(lowerer, expr) {
|
|
|
1707
2565
|
return null;
|
|
1708
2566
|
}
|
|
1709
2567
|
/** True iff `expr` denotes THE standard-library global `name` — name AND
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
2568
|
+
* provenance, because neither alone suffices: several globals share
|
|
2569
|
+
* member names (Math.log must never lower as console.log), and a user
|
|
2570
|
+
* binding shadowing a global's name has a different, non-stdlib symbol.
|
|
2571
|
+
* All of stdlibGlobalNameOf's spellings answer (globalThis.process is
|
|
2572
|
+
* process; `const process = globalThis.process` aliases through). */
|
|
1715
2573
|
export function isStdlibGlobal(lowerer, expr, name) {
|
|
1716
2574
|
return stdlibGlobalNameOf(lowerer, expr) === name;
|
|
1717
2575
|
}
|
|
1718
2576
|
/** The member name of a `<global>.<member>` access whose receiver is THE
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
2577
|
+
* standard-library global `name` (console, JSON, process, Math). Null for
|
|
2578
|
+
* anything else, so property-lowering chains keep trying other
|
|
2579
|
+
* receivers. */
|
|
1722
2580
|
export function stdlibGlobalMember(lowerer, access, name) {
|
|
1723
2581
|
if (lowerer.chainBlocked(access))
|
|
1724
2582
|
return null;
|
|
1725
2583
|
return lowerer.isStdlibGlobal(access.expression, name) ? access.name.text : null;
|
|
1726
2584
|
}
|
|
1727
2585
|
/** `const process = globalThis.process` (and any `const x = <stdlib
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
2586
|
+
* global>` snapshot — the suite harness's tamper-guard prologue): the
|
|
2587
|
+
* binding is pure alias plumbing. Nothing in a compiled program can
|
|
2588
|
+
* reassign a stdlib global, so the snapshot IS the global: the symbol
|
|
2589
|
+
* registers in stdlibGlobalAliases (every receiver check resolves
|
|
2590
|
+
* through it — see stdlibGlobalNameOf) and the declaration emits
|
|
2591
|
+
* nothing. Only the globals with lowered member surfaces alias this
|
|
2592
|
+
* way; aliasing, say, `Math` would change nothing (its members lower
|
|
2593
|
+
* by receiver too). Returns true when recognized. */
|
|
1736
2594
|
export function stdlibGlobalAliasNameOf(lowerer, init) {
|
|
1737
2595
|
if (!init)
|
|
1738
2596
|
return null;
|
|
@@ -1770,15 +2628,29 @@ export function stdlibGlobalAliasNameOf(lowerer, init) {
|
|
|
1770
2628
|
let directInit = init;
|
|
1771
2629
|
while (ts.isParenthesizedExpression(directInit))
|
|
1772
2630
|
directInit = directInit.expression;
|
|
1773
|
-
if (name === "globalThis" &&
|
|
1774
|
-
|
|
2631
|
+
if (name === "globalThis" &&
|
|
2632
|
+
lowerer.dynamic &&
|
|
2633
|
+
!isJsSourceFile(init.getSourceFile()) &&
|
|
2634
|
+
ts.isIdentifier(directInit) &&
|
|
2635
|
+
directInit.text === "globalThis" &&
|
|
1775
2636
|
ts.isVariableDeclaration(init.parent) &&
|
|
1776
2637
|
(lowerer.typeOf(init.parent.name).flags & ts.TypeFlags.Any) !== 0)
|
|
1777
2638
|
return null;
|
|
1778
2639
|
// These globals have provenance-aware call or member lowering, so a
|
|
1779
2640
|
// stable snapshot keeps the same dispatch as the original global.
|
|
1780
2641
|
// Other callable globals still use their ordinary value paths.
|
|
1781
|
-
return [
|
|
2642
|
+
return [
|
|
2643
|
+
"process",
|
|
2644
|
+
"console",
|
|
2645
|
+
"globalThis",
|
|
2646
|
+
"performance",
|
|
2647
|
+
"Array",
|
|
2648
|
+
"Buffer",
|
|
2649
|
+
"BigInt",
|
|
2650
|
+
"Number",
|
|
2651
|
+
"String",
|
|
2652
|
+
"Boolean",
|
|
2653
|
+
].includes(name)
|
|
1782
2654
|
? name
|
|
1783
2655
|
: null;
|
|
1784
2656
|
}
|
|
@@ -1790,7 +2662,8 @@ export function stdlibGlobalAliasDecl(lowerer, nameNode, init) {
|
|
|
1790
2662
|
return false;
|
|
1791
2663
|
// Mutable global-object bindings keep real storage, even when never
|
|
1792
2664
|
// reassigned: var can be observed before initialization and let has TDZ.
|
|
1793
|
-
if (name === "globalThis" &&
|
|
2665
|
+
if (name === "globalThis" &&
|
|
2666
|
+
ts.isVariableDeclaration(nameNode.parent) &&
|
|
1794
2667
|
(ts.getCombinedNodeFlags(nameNode.parent) & ts.NodeFlags.Const) === 0)
|
|
1795
2668
|
return false;
|
|
1796
2669
|
const symbol = lowerer.checker.getSymbolAtLocation(nameNode);
|
|
@@ -1800,9 +2673,9 @@ export function stdlibGlobalAliasDecl(lowerer, nameNode, init) {
|
|
|
1800
2673
|
return true;
|
|
1801
2674
|
}
|
|
1802
2675
|
/** True iff the symbol is declared ONLY by the adopted @types/node
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
2676
|
+
* surface (no es-lib or shipped-ambient declaration merges in) — chooses
|
|
2677
|
+
* the SC2020 fence's wording: "typed by @types/node", not "standard
|
|
2678
|
+
* library". */
|
|
1806
2679
|
export function nodeTypesOnlySymbol(lowerer, sym) {
|
|
1807
2680
|
const decls = sym ? lowerer.checker.declarationsOf(sym) : undefined;
|
|
1808
2681
|
if (!decls || decls.length === 0)
|