@scriptc/compiler 0.2.3 → 0.2.5
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 +915 -215
- 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 +2 -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.js +9 -2
- package/dist/backend/link-plan-core.js.map +1 -1
- package/dist/backend/link-plan.d.ts +1 -1
- package/dist/backend/link-plan.js +4 -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.d.ts +15 -0
- package/dist/backend/llvm/borrowed-inputs.js +28 -0
- package/dist/backend/llvm/borrowed-inputs.js.map +1 -0
- 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.d.ts +10 -0
- package/dist/backend/llvm/byte-numbers.js +240 -0
- package/dist/backend/llvm/byte-numbers.js.map +1 -0
- package/dist/backend/llvm/bytes-bounds.d.ts +9 -0
- package/dist/backend/llvm/bytes-bounds.js +240 -0
- package/dist/backend/llvm/bytes-bounds.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.d.ts +10 -0
- package/dist/backend/llvm/call-lifetimes.js +83 -20
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +203 -18
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/checked-value-lifetimes.d.ts +13 -0
- package/dist/backend/llvm/checked-value-lifetimes.js +45 -0
- package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -0
- package/dist/backend/llvm/classes.js +16 -12
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.js +4 -1
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/counted-loops.d.ts +6 -0
- package/dist/backend/llvm/counted-loops.js +35 -0
- package/dist/backend/llvm/counted-loops.js.map +1 -0
- 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.js +68 -22
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +34 -12
- package/dist/backend/llvm/emitter.js +357 -124
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +237 -46
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +28 -8
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +4 -4
- package/dist/backend/llvm/expr-bytes.js +78 -36
- 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 +40 -21
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +4 -1
- package/dist/backend/llvm/expr-containers.js +157 -76
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +11 -0
- package/dist/backend/llvm/expr-control.js +27 -8
- 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 +50 -33
- 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 +139 -37
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +43 -1
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +16 -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-values.d.ts +10 -0
- package/dist/backend/llvm/integer-values.js +52 -0
- package/dist/backend/llvm/integer-values.js.map +1 -0
- package/dist/backend/llvm/integer-views.d.ts +7 -0
- package/dist/backend/llvm/integer-views.js +83 -0
- package/dist/backend/llvm/integer-views.js.map +1 -0
- package/dist/backend/llvm/integer-views.test.d.ts +1 -0
- package/dist/backend/llvm/integer-views.test.js +69 -0
- package/dist/backend/llvm/integer-views.test.js.map +1 -0
- package/dist/backend/llvm/lib-abi.js +13 -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 +36 -15
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +38 -23
- 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 +107 -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 +3 -4
- package/dist/backend/llvm/local-array-reads.js +100 -121
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +379 -71
- 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/map-read-lifetimes.d.ts +6 -2
- package/dist/backend/llvm/map-read-lifetimes.js +46 -16
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +93 -17
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/reference-effects.d.ts +23 -0
- package/dist/backend/llvm/reference-effects.js +179 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -0
- package/dist/backend/llvm/reference-effects.test.d.ts +1 -0
- package/dist/backend/llvm/reference-effects.test.js +157 -0
- package/dist/backend/llvm/reference-effects.test.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +7 -4
- package/dist/backend/llvm/shapes.js +82 -22
- 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.js +4 -4
- package/dist/backend/llvm/split.js.map +1 -1
- package/dist/backend/llvm/split.test.js +14 -6
- package/dist/backend/llvm/split.test.js.map +1 -1
- 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 +172 -32
- package/dist/backend/llvm/stack-unions.test.js.map +1 -1
- package/dist/backend/llvm/string-construction.d.ts +10 -0
- package/dist/backend/llvm/string-construction.js +38 -0
- package/dist/backend/llvm/string-construction.js.map +1 -0
- package/dist/backend/llvm/string-construction.test.d.ts +1 -0
- package/dist/backend/llvm/string-construction.test.js +90 -0
- package/dist/backend/llvm/string-construction.test.js.map +1 -0
- package/dist/backend/llvm/string-lifetimes.d.ts +2 -2
- package/dist/backend/llvm/string-lifetimes.js +19 -11
- package/dist/backend/llvm/string-lifetimes.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +127 -32
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- 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.js +6 -3
- 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 +118 -22
- 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 +314 -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 +1267 -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 +163 -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.js +2 -1
- package/dist/backend/native-codegen-core.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +1 -1
- package/dist/backend/native-codegen.js +24 -13
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +12 -9
- package/dist/backend/native-codegen.test.js.map +1 -1
- 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.js +27 -8
- 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-pack-core.js +96 -49
- 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 +87 -15
- 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 +40 -24
- 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 +1 -1
- package/dist/executable/executable-cache.js +78 -48
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +75 -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.js +17 -12
- package/dist/frontend/fork-target.js.map +1 -1
- 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 +15 -0
- package/dist/frontend/lowering/builtins/atomics.js +46 -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 +32 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +678 -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 +303 -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/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-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-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 +359 -67
- package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +92 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +1646 -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 +419 -105
- 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 +585 -157
- 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 +589 -162
- 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 +274 -0
- package/dist/frontend/lowering/generic-functions.js +1727 -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/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 +420 -71
- 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 +2593 -5667
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +243 -242
- package/dist/frontend/lowering/lower-classes.js +1704 -727
- 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 +322 -85
- 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 +3455 -1153
- 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 +365 -273
- 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 +94 -94
- package/dist/frontend/lowering/lower-modules.js +612 -321
- 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 +2312 -984
- 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 +362 -90
- 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 +21 -351
- package/dist/frontend/lowering/lowerer.js +1031 -2704
- 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/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 +42 -42
- package/dist/frontend/lowering/surfaces.js +1094 -249
- 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-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-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 +234 -101
- 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 +484 -164
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +109 -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 +1 -1
- package/dist/frontend/ts7/ast-wire.js +55 -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.js +47 -28
- 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.js +5 -3
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.js +54 -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.js +7 -4
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/program-host.test.js +43 -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.js +547 -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/index.d.ts +9 -8
- package/dist/index.js +150 -81
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js +97 -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 +631 -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 +3396 -0
- package/dist/ir/builtin-signatures.js.map +1 -0
- package/dist/ir/byte-numbers.d.ts +20 -0
- package/dist/ir/byte-numbers.js +116 -0
- package/dist/ir/byte-numbers.js.map +1 -0
- package/dist/ir/byte-numbers.test.d.ts +1 -0
- package/dist/ir/byte-numbers.test.js +55 -0
- package/dist/ir/byte-numbers.test.js.map +1 -0
- 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.d.ts +19 -0
- package/dist/ir/integer-loops.js +172 -11
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +122 -9
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +8 -6
- package/dist/ir/integer-ranges.js +416 -90
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +239 -10
- 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 +14 -2155
- package/dist/ir/ir.js +169 -1394
- 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/runtime-features.d.ts +221 -0
- package/dist/ir/runtime-features.js +551 -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.js +4 -2
- 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 +826 -1915
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +627 -111
- 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 +133 -57
- 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 +232 -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 +24 -13
- 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 +167 -43
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/compiler.test.js +129 -32
- 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 +119 -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 +77 -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 +74 -29
- package/dist/native/toolchain.js.map +1 -1
- package/dist/native/toolchain.test.js +95 -18
- 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 +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +0 -601
- package/dist/frontend/lowering/lower-builtins.js +0 -8984
- 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 -7366
- package/dist/frontend/lowering/lower-containers.js.map +0 -1
package/dist/ir/ir.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { IrLibFn } from "./builtin-signatures.js";
|
|
2
|
+
export type { IrLibFn } from "./builtin-signatures.js";
|
|
1
3
|
/** Byte-offset span in the original source file. */
|
|
2
4
|
export interface SrcLoc {
|
|
3
5
|
file: string;
|
|
@@ -420,11 +422,11 @@ interface IrKindSet<K extends IrType["kind"]> extends ReadonlySet<IrType["kind"]
|
|
|
420
422
|
/** The opaque runtime handle kinds. procStream is the one scalar handle;
|
|
421
423
|
* every other handle has pointer representation. */
|
|
422
424
|
declare const HANDLE_KIND_LIST: readonly ["stats", "fileHandle", "spawnRes", "child", "netServer", "netSocket", "http2Session", "http2Stream", "dgramSocket", "testCtx", "httpReq", "httpRes", "httpClientReq", "secureCtx", "cryptoHash", "cryptoHmac", "fsWatcher", "childStream", "childWriter", "procStream"];
|
|
423
|
-
export type HandleKind = typeof HANDLE_KIND_LIST[number];
|
|
425
|
+
export type HandleKind = (typeof HANDLE_KIND_LIST)[number];
|
|
424
426
|
export declare const HANDLE_KINDS: IrKindSet<"child" | "childStream" | "childWriter" | "cryptoHash" | "cryptoHmac" | "dgramSocket" | "fileHandle" | "fsWatcher" | "http2Session" | "http2Stream" | "httpClientReq" | "httpReq" | "httpRes" | "netServer" | "netSocket" | "procStream" | "secureCtx" | "spawnRes" | "stats" | "testCtx">;
|
|
425
427
|
/** The IR kinds represented as pointers in native code. */
|
|
426
428
|
declare const POINTER_KIND_LIST: readonly ["string", "bigint", "array", "map", "set", "regex", "bytes", "url", "searchParams", "symbol", "stats", "fileHandle", "spawnRes", "child", "netServer", "netSocket", "http2Session", "http2Stream", "dgramSocket", "testCtx", "httpReq", "httpRes", "httpClientReq", "secureCtx", "cryptoHash", "cryptoHmac", "fsWatcher", "childStream", "childWriter", "func", "object", "classval", "moduleNs", "record", "union", "dyn", "jsval", "caught", "promise", "generator"];
|
|
427
|
-
export type PointerKind = typeof POINTER_KIND_LIST[number];
|
|
429
|
+
export type PointerKind = (typeof POINTER_KIND_LIST)[number];
|
|
428
430
|
export declare const POINTER_KINDS: IrKindSet<"array" | "bigint" | "bytes" | "caught" | "child" | "childStream" | "childWriter" | "classval" | "cryptoHash" | "cryptoHmac" | "dgramSocket" | "dyn" | "fileHandle" | "fsWatcher" | "func" | "generator" | "http2Session" | "http2Stream" | "httpClientReq" | "httpReq" | "httpRes" | "jsval" | "map" | "moduleNs" | "netServer" | "netSocket" | "object" | "promise" | "record" | "regex" | "searchParams" | "secureCtx" | "set" | "spawnRes" | "stats" | "string" | "symbol" | "testCtx" | "union" | "url">;
|
|
429
431
|
/** Runtime RC symbol stem for each IR type kind. An empty stem means the
|
|
430
432
|
* kind is scalar/unit or uses an emitted per-shape helper (object/record).
|
|
@@ -494,9 +496,10 @@ export declare function setOf(elem: IrType): IrType;
|
|
|
494
496
|
* classes and arrays can point back at their collection, so constructors
|
|
495
497
|
* must carry key tracing as well as retain/release adapters. */
|
|
496
498
|
export declare function isIdentityCollectionKey(t: IrType): boolean;
|
|
497
|
-
/**
|
|
498
|
-
*
|
|
499
|
-
*
|
|
499
|
+
/** Primitive keys compare by value and reference keys by identity. Union
|
|
500
|
+
* wrappers carry either domain without becoming observable key identities;
|
|
501
|
+
* null and undefined are distinct tag-only keys inside a union. */
|
|
502
|
+
export declare function isPrimitiveCollectionKey(t: IrType, unionArms?: IrType[]): boolean;
|
|
500
503
|
export declare function isSupportedMapKey(t: IrType, unionArms?: IrType[]): boolean;
|
|
501
504
|
/** Set elements and Map keys share storage, equality and ownership rules. */
|
|
502
505
|
export declare function isSupportedSetElem(t: IrType, unionArms?: IrType[]): boolean;
|
|
@@ -1418,6 +1421,8 @@ export type IrArrIntrinsicMethod = "length"
|
|
|
1418
1421
|
| "flatCopy" | "flatOne"
|
|
1419
1422
|
/** Mutating splice with evaluated insertion items; returns removed slots. */
|
|
1420
1423
|
| "spliceInsert" | "reverse"
|
|
1424
|
+
/** Evaluated numeric bounds; same-type fill values stay borrowed. */
|
|
1425
|
+
| "copyWithin" | "fill" | "fillUndefined"
|
|
1421
1426
|
/** ES2023 copying methods. `toSpliced` receives [start, deleteCount,
|
|
1422
1427
|
* itemsArray], with omitted arguments completed by the frontend;
|
|
1423
1428
|
* `with` receives [index, value] and throws Node's catchable RangeError
|
|
@@ -1438,13 +1443,15 @@ export declare const MAY_THROW_ARR_METHODS: ReadonlySet<IrArrIntrinsicMethod>;
|
|
|
1438
1443
|
* callback mutation because the runtime never compacts between
|
|
1439
1444
|
* `iterEnter`/`iterExit` — live-iteration semantics, Node-exact). The iter*
|
|
1440
1445
|
* members are compiler-internal: no ambient declaration reaches them. */
|
|
1441
|
-
export type IrMapIntrinsicMethod =
|
|
1446
|
+
export type IrMapIntrinsicMethod =
|
|
1447
|
+
/** Internal shallow-copy constructors over builtin collection storage. */
|
|
1448
|
+
"clone" | "keySet" | "valueSet" | "get" | "set" | "has" | "delete" | "size" | "clear" | "iterCount" | "iterLive" | "iterKey" | "iterValue" | "iterEnter" | "iterExit";
|
|
1442
1449
|
/** The Set method/property surface — Map's minus get/set/iterValue (there
|
|
1443
1450
|
* is no value slot; `add` fills set's role) plus `add`. `forEach` desugars
|
|
1444
1451
|
* in the frontend exactly like Map's, over the same iteration primitives —
|
|
1445
1452
|
* iterKey doubles as the element read (JS's Set forEach passes the element
|
|
1446
1453
|
* as both `value` and `key`). */
|
|
1447
|
-
export type IrSetIntrinsicMethod = "add" | "has" | "delete" | "size" | "clear" | "iterCount" | "iterLive" | "iterKey" | "iterEnter" | "iterExit"
|
|
1454
|
+
export type IrSetIntrinsicMethod = "clone" | "add" | "has" | "delete" | "size" | "clear" | "iterCount" | "iterLive" | "iterKey" | "iterEnter" | "iterExit"
|
|
1448
1455
|
/** `[...set]` and friends: drain the live entries into a FRESH elem[]
|
|
1449
1456
|
* in insertion order (tombstones skipped — the same walk the forEach
|
|
1450
1457
|
* desugar does, folded into one runtime call; no user code runs during
|
|
@@ -1592,1899 +1599,6 @@ export type IrRegexIntrinsicMethod = "test" | "match"
|
|
|
1592
1599
|
* no g/y fence applies: /g is irrelevant and /y anchors at 0 — exactly
|
|
1593
1600
|
* Node. Never throws. */
|
|
1594
1601
|
| "search" | "source" | "flags" | "toString" | "replace" | "replaceAll" | "split";
|
|
1595
|
-
/** The complete standard-library surface (mirrors ambient/scriptc.d.ts: the
|
|
1596
|
-
* `process` and `JSON` globals and `declare module "node:fs"`). A closed
|
|
1597
|
-
* union — every member has a signature in the validator's LIB_FN_SIGS and a
|
|
1598
|
-
* scr_* implementation in the runtime (scr_lib.c / scr_json.c). fs.*
|
|
1599
|
-
* failures and json.parse syntax errors THROW (catchable, via the runtime
|
|
1600
|
-
* exception cell); process.* members never throw. JSON.stringify without a
|
|
1601
|
-
* callback lowers to the type-directed `jsonStringify` node below; callback
|
|
1602
|
-
* forms use the shared native JSON walker through libCall.
|
|
1603
|
-
* island.eval (the internal __island_eval testing hook) exists only in
|
|
1604
|
-
* --dynamic builds — the frontend rejects it otherwise, so backends may
|
|
1605
|
-
* assume the island runtime is linked when they see it; island exceptions
|
|
1606
|
-
* bridge into the exception cell as catchable strings (may-throw). */
|
|
1607
|
-
export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew" | "weakMap.is" | "weakSet.is" | "weakMap.new" | "weakSet.new" | "dyn.fromEntries" | "bytes.constructor" | "bytes.instanceOf" | "bytes.construct" | "arrayBuffer.constructor" | "arrayBuffer.new" | "arrayBuffer.is" | "arrayBuffer.isView" | "arrayBuffer.byteLengthGetter" | "arrayBuffer.byteLengthDescriptor" | "arrayBuffer.viewU8C" | "arrayBuffer.viewI8" | "arrayBuffer.viewU16" | "arrayBuffer.viewI16" | "arrayBuffer.viewU8" | "arrayBuffer.viewU32" | "arrayBuffer.viewI32" | "arrayBuffer.viewF32" | "arrayBuffer.viewF64" | "arrayBuffer.viewDV"
|
|
1608
|
-
/** Native static fetch and its Web-platform companions. fetch.start
|
|
1609
|
-
* answers once the response head arrives; the response body readers
|
|
1610
|
-
* consume the native body stream. AbortSignal and ReadableStream values
|
|
1611
|
-
* are opaque checked-dynamic handles. */
|
|
1612
|
-
| "fetch.start" | "fetch.input" | "fetch.function" | "fetch.requestNew" | "fetch.headersNew" | "fetch.responseNew" | "fetch.responseArrayBuffer" | "fetch.responseJson" | "fetch.responseText" | "fetch.responseBytes" | "fetch.abortControllerNew" | "fetch.abortTimeout" | "fetch.abortNow" | "fetch.abortAny" | "abort.controllerNew" | "abort.timeout" | "abort.now" | "abort.any" | "fetch.webIs" | "fetch.streamIs" | "fetch.streamNew" | "fetch.streamFrom" | "fetch.readerRead" | "island.eval"
|
|
1613
|
-
/** Load an embedded npm package's runtime entry in the island (cached by
|
|
1614
|
-
* the engine's module registry) and take one export: args are the entry
|
|
1615
|
-
* KEY (an embedded module's key, from IrModule.embedded) and the export
|
|
1616
|
-
* name — "default" for default imports, "*" for the namespace object.
|
|
1617
|
-
* --dynamic only, like island.eval; result is an owned jsval. May throw
|
|
1618
|
-
* (a package's top-level code can), bridged catchably. */
|
|
1619
|
-
| "island.import"
|
|
1620
|
-
/** Dynamic `import(spec)`: load a module through the island's module
|
|
1621
|
-
* system — an embedded module's key or a builtin shim's "node:x" key —
|
|
1622
|
-
* and answer an ENGINE promise of its namespace object (always a
|
|
1623
|
-
* promise, never a throw: load and evaluation failures REJECT it,
|
|
1624
|
-
* Node's shape). The frontend wraps the result in jsBridgePromise, so
|
|
1625
|
-
* awaiting parks the fiber and a rejection crosses catchably. --dynamic
|
|
1626
|
-
* only; result is an owned jsval holding the engine promise. */
|
|
1627
|
-
| "island.importDyn"
|
|
1628
|
-
/** A checked cast the boundary can never satisfy, DEFERRED to runtime:
|
|
1629
|
-
* `islandValue as Promise<T>` — the value is an ENGINE promise and T
|
|
1630
|
-
* has no validated exit (Node-typed async APIs put class-shaped
|
|
1631
|
-
* interfaces there), so instead of refusing the build the cast throws a
|
|
1632
|
-
* catchable TypeError AT THE CAST naming the target type (args: the
|
|
1633
|
-
* island value — evaluated, borrowed — and the type name). The result
|
|
1634
|
-
* type is the cast's mapped target (a typed dummy; the exception is
|
|
1635
|
-
* pending). Documented divergence: JS `as` never checks — like the dyn
|
|
1636
|
-
* boundary, a conversion that cannot happen throws instead of lying.
|
|
1637
|
-
* --dynamic only. */
|
|
1638
|
-
| "island.castFail" | "json.parse" | "json.parseReviver" | "json.stringifyReplacer" | "json.stringifyValue"
|
|
1639
|
-
/** Keyed WRITE on a dyn value — `h.onDone = cb` / `h["k"] = v` on a
|
|
1640
|
-
* checked-dynamic object (args: receiver, key string, value — all
|
|
1641
|
-
* borrowed; the runtime copies the key and retains the value in). An
|
|
1642
|
-
* OBJ receiver sets the member (later writes win, insertion order
|
|
1643
|
-
* preserved — JS exactly); undefined/null throws Node's catchable
|
|
1644
|
-
* "Cannot set properties of undefined (setting 'k')"; every other kind
|
|
1645
|
-
* throws Node's STRICT-mode "Cannot create property 'k' on <kind>" —
|
|
1646
|
-
* primitives quoting their rendering, V8's "on number '5'"
|
|
1647
|
-
* (sloppy mode would silently ignore — suite tests are 'use strict';
|
|
1648
|
-
* SEMANTICS.md notes the sloppy divergence: loud, never silent). Void
|
|
1649
|
-
* result; in the may-throw seed set. */
|
|
1650
|
-
| "dyn.keySet" | "dyn.keySetComputed"
|
|
1651
|
-
/** Delete an ordinary checked-native object's own key. Borrows both
|
|
1652
|
-
* arguments; other receiver representations retain a runtime refusal. */
|
|
1653
|
-
| "dyn.keyDelete" | "dyn.keyDeleteComputed" | "dyn.hasKeyComputed" | "dyn.hasOwnComputed" | "dyn.propertyIsEnumerableComputed"
|
|
1654
|
-
/** Native own properties on globalThis keyed by symbol identity. */
|
|
1655
|
-
| "dyn.globalSymbolGet" | "dyn.globalSymbolSet" | "dyn.globalSymbolHas" | "dyn.globalSymbolDelete"
|
|
1656
|
-
/** Exact native class capsule identity, without materializing its fields. */
|
|
1657
|
-
| "dyn.typedRefIs" | "dyn.classIs"
|
|
1658
|
-
/** Destructuring pack over a dyn source — `const [a, b] = d`, a
|
|
1659
|
-
* destructured dyn callback param (args: the source and the STATIC
|
|
1660
|
-
* TypeError spelling, "" when the source has none — both borrowed;
|
|
1661
|
-
* result: a fresh dyn array, +1). Iterable kinds collect like spread
|
|
1662
|
-
* (arrays element-by-element, strings by code point, bytes by byte);
|
|
1663
|
-
* every other kind throws V8's destructuring TypeError — the spelling
|
|
1664
|
-
* verbatim when non-empty, else the runtime kind wording ("number 5 is
|
|
1665
|
-
* not iterable (cannot read property Symbol(Symbol.iterator))"). In the
|
|
1666
|
-
* may-throw seed set. */
|
|
1667
|
-
| "dyn.iterPack" | "dyn.arrayFromIterator" | "dyn.iterator" | "dyn.iteratorResult" | "dyn.mapSeedEntries" | "dyn.mapSeedEntry"
|
|
1668
|
-
/** The for-of-over-dyn pack accessors — the emitted index loop drives
|
|
1669
|
-
* them over a dyn.iterPack result (ARR by construction). arrLen: the
|
|
1670
|
-
* ARR length as f64 (0 for non-ARR kinds; arg borrowed). arrAt: the
|
|
1671
|
-
* element at index (+1; the undefined singleton past the end). Neither
|
|
1672
|
-
* throws. */
|
|
1673
|
-
| "dyn.arrLen" | "dyn.arrAt"
|
|
1674
|
-
/** `key in v` with a RUNTIME (string) key on a checked-dynamic
|
|
1675
|
-
* receiver (args: value dyn, key string; result bool): OBJ answers
|
|
1676
|
-
* own-member presence, ARR answers 'length'/a valid index — exactly
|
|
1677
|
-
* the literal-key dynHasKey path. Proxy has traps may throw. */
|
|
1678
|
-
| "dyn.hasKey"
|
|
1679
|
-
/** Object.defineProperties over dyn values (args: target, descriptors —
|
|
1680
|
-
* both borrowed dyn; result: the target, +1 — JS's return value).
|
|
1681
|
-
* Value descriptors become own properties on OBJ and FUNC targets;
|
|
1682
|
-
* OBJ targets preserve data attributes. get/set
|
|
1683
|
-
* descriptors and non-object targets/descriptors throw catchably
|
|
1684
|
-
* (Node's TypeError texts; accessors the loud unsupported Error). In
|
|
1685
|
-
* the may-throw seed set. */
|
|
1686
|
-
| "dyn.defineProps" | "dyn.defineProperty" | "dyn.getOwnPropertyDescriptor" | "dyn.arrayProtoCall" | "dyn.promiseAll"
|
|
1687
|
-
/** Bare `typeof v` on a dyn value AS A STRING (arg: the dyn value,
|
|
1688
|
-
* borrowed; result: an owned string) — the dyn kind's JS answer:
|
|
1689
|
-
* undefined→"undefined", null/object/array/bytes→"object" (JS's oldest
|
|
1690
|
-
* wart preserved), boolean/number/string by kind, function→"function".
|
|
1691
|
-
* Never throws. */
|
|
1692
|
-
| "dyn.typeof"
|
|
1693
|
-
/** Object.prototype.toString.call on a checked-dynamic value. */
|
|
1694
|
-
| "dyn.objectTag" | "dyn.freeze" | "dyn.isFrozen" | "dyn.nativeSetNew" | "dyn.nativeSetIs" | "dyn.nativeMapIs" | "dyn.nativeUrlIs" | "dyn.nativeDateIs" | "date.nativeNew" | "date.checkedValue" | "dyn.nativeRegexIs"
|
|
1695
|
-
/** toString() on a checked-dynamic receiver: runtime kind dispatch
|
|
1696
|
-
* (bytes decode per the literal encoding — utf8 default; strings,
|
|
1697
|
-
* numbers, booleans, arrays, objects answer JS-exactly; undefined and
|
|
1698
|
-
* null throw the catchable TypeError). */
|
|
1699
|
-
| "dyn.toString"
|
|
1700
|
-
/** Engine-free CommonJS module graph. Module values are scalar f64
|
|
1701
|
-
* handles; generated startup defines the registry, init wrappers update
|
|
1702
|
-
* loading/cache state, and the read surface answers Node's live metadata. */
|
|
1703
|
-
| "module.registryInit" | "module.define" | "module.enter" | "module.link" | "module.finish" | "module.fail" | "module.filename" | "module.id" | "module.path" | "module.paths" | "module.children" | "module.parent" | "module.loaded" | "module.cacheGet" | "module.cacheHas" | "module.cacheKeys" | "fs.readFileSync"
|
|
1704
|
-
/** readFileSync(path) — the Buffer read (+1 bytes); throws catchably
|
|
1705
|
-
* like the utf8 form. */
|
|
1706
|
-
| "fs.readFileSyncBuf"
|
|
1707
|
-
/** readFileSync(path, enc) with a RUNTIME encoding (an untyped JS
|
|
1708
|
-
* parameter): undefined/null answer Buffers, utf8 a string, other real
|
|
1709
|
-
* encodings fence loudly, unknown names throw ERR_UNKNOWN_ENCODING. */
|
|
1710
|
-
| "fs.readFileSyncDyn" | "fs.writeFileSync" | "fs.appendFileSync" | "fs.existsSync" | "fs.mkdirSync" | "fs.rmSync" | "fs.rmdirSync" | "fs.readdirSync"
|
|
1711
|
-
/** node:path (scr_path.c ports BOTH of Node's implementations
|
|
1712
|
-
* function-by-function): the `path.*` family is posix, the
|
|
1713
|
-
* `path.win32*` family is Node v24's path.win32 byte-for-byte — the
|
|
1714
|
-
* frontend binds the bare module to the TARGET platform's family
|
|
1715
|
-
* (Node on Windows IS path.win32) and the path.posix / path.win32
|
|
1716
|
-
* namespaces to their own family everywhere. join and resolve take ONE
|
|
1717
|
-
* string[] arg — the frontend packs the variadic call's arguments into
|
|
1718
|
-
* an array literal. basename always receives its suffix (the frontend
|
|
1719
|
-
* completes an omitted one with "", a Node no-op). toNamespacedPath is
|
|
1720
|
-
* the posix identity and the win32 \\?\-prefixer. None of these throw;
|
|
1721
|
-
* the resolves consult the process cwd like Node's. */
|
|
1722
|
-
| "path.join" | "path.resolve" | "path.normalize" | "path.dirname" | "path.basename" | "path.extname" | "path.isAbsolute" | "path.relative" | "path.toNamespacedPath" | "path.win32Join" | "path.win32Resolve" | "path.win32Normalize" | "path.win32Dirname" | "path.win32Basename" | "path.win32Extname" | "path.win32IsAbsolute" | "path.win32Relative" | "path.win32ToNamespacedPath"
|
|
1723
|
-
/** node:os: homedir is $HOME else getpwuid(3); tmpdir is Node's env
|
|
1724
|
-
* cascade ($TMPDIR/$TMP/$TEMP else /tmp, one trailing slash trimmed).
|
|
1725
|
-
* os.platform() lowers to process.platform — one implementation. */
|
|
1726
|
-
| "os.homedir"
|
|
1727
|
-
/** os.release(): uname(2)'s release field — Node's own implementation
|
|
1728
|
-
* (the kernel version string, e.g. "24.6.0" on macOS 15). Interned; +1
|
|
1729
|
-
* per read. Never throws. */
|
|
1730
|
-
| "os.release"
|
|
1731
|
-
/** The os.userInfo() field trio (uv_os_get_passwd's slices): pw_name,
|
|
1732
|
-
* pw_shell, pw_dir — the PASSWD homedir, not os.homedir's $HOME-first
|
|
1733
|
-
* cascade (Node's own split). The frontend assembles the UserInfo
|
|
1734
|
-
* record from these plus getuid/getgid. +1 fresh strings; a passwd
|
|
1735
|
-
* lookup failure aborts (Node throws a system error there — no
|
|
1736
|
-
* compiled program path reaches it for the running uid). */
|
|
1737
|
-
| "os.userName" | "os.userShell" | "os.userHomedir" | "os.tmpdir"
|
|
1738
|
-
/** os.networkInterfaces(): getifaddrs(3) → the Dict<NetworkInterfaceInfo[]>
|
|
1739
|
-
* record, built inline by the emitter from a runtime snapshot (scr_lib.c).
|
|
1740
|
-
* The result type is the CALL SITE's mapped @types/node shape — a pure
|
|
1741
|
-
* index-signature record whose value is `Info[] | undefined`, Info a
|
|
1742
|
-
* two-record union (IPv4: scopeid `number | undefined` holding undefined;
|
|
1743
|
-
* IPv6: scopeid number) — verified structurally by the frontend. Rows
|
|
1744
|
-
* match libuv's filter (IFF_UP && IFF_RUNNING, AF_INET/AF_INET6; loopback
|
|
1745
|
-
* = internal; MACs from the interface's link-level sibling entry, zeros
|
|
1746
|
-
* when absent; cidr from the netmask's contiguous prefix, the null arm
|
|
1747
|
-
* when it is missing or non-contiguous). Key/row order follows the OS's
|
|
1748
|
-
* getifaddrs enumeration — Node itself does not guarantee an order.
|
|
1749
|
-
* Fresh +1 record; never throws (a getifaddrs failure yields {}). */
|
|
1750
|
-
| "os.networkInterfaces"
|
|
1751
|
-
/** `Math.max(...xs)` / `Math.min(...xs)` over one spread number[]
|
|
1752
|
-
* (scr_number.c): the JS fold exactly — any NaN element poisons the
|
|
1753
|
-
* result, ±0 order by the JS comparison (max prefers +0, min prefers
|
|
1754
|
-
* -0), and the empty array yields -Infinity / +Infinity like the
|
|
1755
|
-
* zero-argument calls. Borrows the array; never throws. */
|
|
1756
|
-
| "math.maxArr" | "math.minArr" | "math.hypotArr"
|
|
1757
|
-
/** `fs.readdirSync(path, { withFileTypes: true })` — Dirent rows over
|
|
1758
|
-
* one readdir pass (scr_lib.c's scandir snapshot; DT_UNKNOWN falls back
|
|
1759
|
-
* to lstat, Node's getDirents rule). The result type is the call site's
|
|
1760
|
-
* interned Dirent record array (name, parentPath, hidden %dtype in
|
|
1761
|
-
* libuv's UV_DIRENT encoding) — verified by the frontend; the emitter
|
|
1762
|
-
* assembles the rows from the snapshot. OS order, no "."/"..". Throws
|
|
1763
|
-
* Node's scandir errno error (may-throw seed set); fresh +1 array. */
|
|
1764
|
-
| "fs.readdirTypesSync"
|
|
1765
|
-
/** `Math.floor(x)` — C floor() IS the JS operation (NaN/±0/±Infinity
|
|
1766
|
-
* pass through bit-exactly). Never throws. */
|
|
1767
|
-
| "math.floor"
|
|
1768
|
-
/** `Math.min(a, b)` / `Math.max(a, b)` — the two-argument scalar forms
|
|
1769
|
-
* (scr_lib.c), JS-exact like the Arr folds: NaN poisons, max prefers +0
|
|
1770
|
-
* over -0 (min the reverse). C fmin/fmax are NOT these (they drop NaN).
|
|
1771
|
-
* Never throw. */
|
|
1772
|
-
| "math.min" | "math.max"
|
|
1773
|
-
/** `Math.random()` — a uniform double in [0,1) with the spec's 53-bit
|
|
1774
|
-
* granularity, drawn from arc4random_buf (the CSPRNG behind the crypto
|
|
1775
|
-
* lowerings). Same distribution as Node, NECESSARILY different sequence
|
|
1776
|
-
* (SEMANTICS.md 62 — no seeded sequence exists to match). Never throws. */
|
|
1777
|
-
| "math.random"
|
|
1778
|
-
/** Math.abs (C fabs — IS the JS operation) and Math.round (scr_lib.c:
|
|
1779
|
-
* ECMA half-toward-+Infinity with the exact-fraction comparison — C
|
|
1780
|
-
* round() is half-away-from-zero and floor(x+0.5) drifts at the
|
|
1781
|
-
* epsilon boundary). Borrow nothing; never throw. */
|
|
1782
|
-
| "math.abs" | "math.round"
|
|
1783
|
-
/** Math.trunc / Math.ceil — C trunc()/ceil() ARE the JS operations
|
|
1784
|
-
* (NaN/±0/±Infinity pass through bit-exactly; ceil(-0.5) is -0 in IEEE
|
|
1785
|
-
* round-toward-+Infinity exactly as ECMA says). Static like floor —
|
|
1786
|
-
* they are ask-4's wholeness-discharge operators, so the library
|
|
1787
|
-
* inference needs them compiled, not island-served. Never throw. */
|
|
1788
|
-
| "math.trunc" | "math.ceil" | "math.sin" | "math.sinh" | "math.cos" | "math.cosh" | "math.tan" | "math.tanh" | "math.asin" | "math.asinh" | "math.acos" | "math.acosh" | "math.atan" | "math.atanh" | "math.cbrt" | "math.clz32"
|
|
1789
|
-
/** Return -1, +1, or the original NaN/zero. In particular, -0 remains -0. */
|
|
1790
|
-
| "math.sign" | "math.exp" | "math.expm1" | "math.fround" | "math.sqrt" | "math.log" | "math.log1p" | "math.log2" | "math.log10" | "math.atan2" | "math.pow" | "math.imul"
|
|
1791
|
-
/** The static global parsers/tests (scr_string.c). num.parseInt is
|
|
1792
|
-
* ECMA-262 19.2.5 exactly — JS whitespace, sign, ToInt32 radix (the
|
|
1793
|
-
* frontend completes an omitted radix to 0 = the spec's "undefined":
|
|
1794
|
-
* base 10 with the 0x hex escape), longest digit prefix, and the exact
|
|
1795
|
-
* mathematical value correctly rounded (u64 fast path, bignum beyond —
|
|
1796
|
-
* overflow is ±Infinity). num.isNaN is the NaN self-test on an
|
|
1797
|
-
* already-number argument (tsc pins the argument to number, so no
|
|
1798
|
-
* ToNumber coercion exists to model). Borrow; never throw. */
|
|
1799
|
-
| "num.parseInt" | "num.isNaN"
|
|
1800
|
-
/** ES parseFloat (scr_string.c): the longest StrDecimalLiteral prefix
|
|
1801
|
-
* of the trimmed input (no hex, "Infinity" exact-case), NaN when none —
|
|
1802
|
-
* ECMA-262 19.2.4 over a string argument (non-string arguments keep the
|
|
1803
|
-
* fence: Node would ToNumber-coerce). Borrows; never throws. */
|
|
1804
|
-
| "num.parseFloat" | "num.fromString"
|
|
1805
|
-
/** The static URI component codecs (scr_string.c), ECMA-262 Encode/
|
|
1806
|
-
* Decode with the component sets over the runtime's UTF-8 strings.
|
|
1807
|
-
* str.encodeUriComponent percent-encodes every byte outside the
|
|
1808
|
-
* unreserved component set (ALPHA/DIGIT/- _ . ! ~ * ' ( )) as uppercase
|
|
1809
|
-
* %XX — the spec's per-code-point UTF-8 encoding IS a byte scan here —
|
|
1810
|
-
* and never throws (the spec's URIError case is an unpaired surrogate,
|
|
1811
|
-
* which cannot exist in well-formed UTF-8). str.decodeUriComponent
|
|
1812
|
-
* decodes %XX escapes bytewise (raw non-escape bytes copy through) and
|
|
1813
|
-
* requires the escaped bytes to form strictly valid UTF-8 (overlong
|
|
1814
|
-
* forms, surrogate code points, and >U+10FFFF refused, per UTF8-decode
|
|
1815
|
-
* without replacement); bad hex or an invalid sequence THROWS the
|
|
1816
|
-
* spec's URIError ("URI malformed"), catchable. Borrow; results +1. */
|
|
1817
|
-
| "str.encodeUriComponent" | "str.decodeUriComponent" | "str.decodeUri"
|
|
1818
|
-
/** RegExp.escape (ES2025): per-code-point EncodeForRegExpEscape —
|
|
1819
|
-
* leading ASCII alphanumeric hex-escapes, syntax characters and '/'
|
|
1820
|
-
* take a backslash, other punctuators/whitespace/line terminators
|
|
1821
|
-
* hex-escape, the rest passes through. Total; borrows; result +1. */
|
|
1822
|
-
| "regexp.escape"
|
|
1823
|
-
/** encodeURI: the same Encode() keeping the reserved set and '#'
|
|
1824
|
-
* unescaped — total like the component encoder. Borrow; result +1. */
|
|
1825
|
-
| "str.encodeUri"
|
|
1826
|
-
/** The WHATWG base64 globals (scr_string.c), Node-global since v16.
|
|
1827
|
-
* Arguments are borrowed dyn values — WebIDL ToString runs in the
|
|
1828
|
-
* runtime over the dyn kind (String(null) is "null": the html spec's
|
|
1829
|
-
* coercion, which Node's atob(null) exercises). str.atob decodes
|
|
1830
|
-
* forgiving-base64 (ASCII whitespace stripped, %4==0 strips up to two
|
|
1831
|
-
* '=', %4==1 refuses, leftover bits discarded) into the latin1 code
|
|
1832
|
-
* points as a string; a malformed input THROWS the catchable
|
|
1833
|
-
* DOMException InvalidCharacterError ("The string to be decoded is not
|
|
1834
|
-
* correctly encoded."). str.btoa encodes the string's code points as
|
|
1835
|
-
* base64; any code point over U+00FF THROWS InvalidCharacterError
|
|
1836
|
-
* ("Invalid character"). str.b64Missing is the zero-argument call of
|
|
1837
|
-
* either: always throws Node's TypeError [ERR_MISSING_ARGS] "The
|
|
1838
|
-
* \"input\" argument must be specified". Results +1. */
|
|
1839
|
-
| "str.atob" | "str.btoa" | "str.b64Missing"
|
|
1840
|
-
/** Number.prototype formatters (scr_lib.c), JS-exact:
|
|
1841
|
-
* num.toExponential is toExponential() with the spec's "as many digits
|
|
1842
|
-
* as necessary"; num.toFixed0 is the non-throwing omitted-argument
|
|
1843
|
-
* toFixed() fast path; num.toFixed implements an explicit fractionDigits
|
|
1844
|
-
* with exact binary-value rounding and THROWS RangeError outside 0..100.
|
|
1845
|
-
* Successful results +1. */
|
|
1846
|
-
| "num.toExponential" | "num.toFixed0" | "num.toFixed" | "num.toStringRadix"
|
|
1847
|
-
/** Object.is over two numbers — the spec's SameValue on doubles: NaN
|
|
1848
|
-
* equals NaN, +0 differs from -0, everything else is `===`. Plain bool
|
|
1849
|
-
* result; never throws. (Union-armed operands take unionEq's sameValue
|
|
1850
|
-
* flag instead — this is the both-f64 fast path.) */
|
|
1851
|
-
| "num.sameValue"
|
|
1852
|
-
/** SameValue over checked values, including NaN, signed zero and reference identity. */
|
|
1853
|
-
| "dyn.sameValue"
|
|
1854
|
-
/** `new Intl.NumberFormat("en-US").format(x)` and
|
|
1855
|
-
* `x.toLocaleString("en-US")` with DEFAULT options — the one locale
|
|
1856
|
-
* whose data the runtime embeds (Node's default-build locale): decimal
|
|
1857
|
-
* notation, 0–3 fraction digits rounded half-up on the SHORTEST
|
|
1858
|
-
* round-tripping decimal (ICU's rounding input, probed vs Node —
|
|
1859
|
-
* format(1.0005) is "1.001" though toFixed(3) answers "1.000"), ","
|
|
1860
|
-
* grouping every three integer digits, "∞"/"NaN" texts, and "-0" for
|
|
1861
|
-
* negative inputs rounding to zero. Result +1; never throws. */
|
|
1862
|
-
| "intl.numFormatEnUs"
|
|
1863
|
-
/** `delete process.env[NAME]` — unsetenv(3): the mutation is visible to
|
|
1864
|
-
* every later read (process.envGet asks getenv fresh) and inherited by
|
|
1865
|
-
* spawned children, exactly Node. Statement position only (JS's boolean
|
|
1866
|
-
* result is constant true there). Borrows the name; never throws. */
|
|
1867
|
-
| "process.envUnset"
|
|
1868
|
-
/** node:url + the URL class (scr_url.c). url.new parses one absolute
|
|
1869
|
-
* URL string into a mutable URL value (+1) — invalid input THROWS a
|
|
1870
|
-
* catchable TypeError ("Invalid URL"), like Node's constructor. The
|
|
1871
|
-
* getters (borrowed receiver, +1 string) never throw; url.href doubles
|
|
1872
|
-
* as toString(). fileURLToPath has one libFn per receiver form (URL
|
|
1873
|
-
* value / string) — both THROW Node's TypeErrors on non-file schemes,
|
|
1874
|
-
* encoded slashes, and non-empty hosts. url.pathToFileURL resolves the
|
|
1875
|
-
* path (getcwd) and never throws. */
|
|
1876
|
-
| "url.new" | "url.newBase"
|
|
1877
|
-
/** Factories consume already-converted input/base strings. canParse
|
|
1878
|
-
* answers a boolean; parse returns a checked native URL or null (+1).
|
|
1879
|
-
* Parser failures are suppressed; conversion occurs before these calls. */
|
|
1880
|
-
| "url.canParse" | "url.canParseBase" | "url.parse" | "url.parseBase" | "url.protocol" | "url.origin" | "url.username" | "url.password" | "url.host" | "url.hostname" | "url.port" | "url.pathname" | "url.href"
|
|
1881
|
-
/** Selected component writes borrow the receiver and converted string.
|
|
1882
|
-
* href replaces its parsed fields while retaining cached params identity. */
|
|
1883
|
-
| "url.set" | "url.setChecked" | "url.fileURLToPathUrl" | "url.fileURLToPathChecked" | "url.fileURLToPathOptions" | "url.fileURLToPathBuffer" | "url.pathToFileURLChecked" | "url.fileURLToPathStr" | "url.pathToFileURL"
|
|
1884
|
-
/** Explicit path syntax from the options.windows argument, independent
|
|
1885
|
-
* of the executable's host platform. Windows UNC input can throw. */
|
|
1886
|
-
| "url.pathToFileURLPlatform"
|
|
1887
|
-
/** pathToFileURL under a win32 TARGET: the same scr_url_from_path call
|
|
1888
|
-
* (the runtime selects the win32 arm by _WIN32), but a distinct IR name
|
|
1889
|
-
* because that arm THROWS for malformed UNC inputs — may-throw seeds on
|
|
1890
|
-
* it while posix pathToFileURL emission stays byte-identical. */
|
|
1891
|
-
| "url.pathToFileURLWin32"
|
|
1892
|
-
/** URLSearchParams (scr_url.c — always linked with the url unit).
|
|
1893
|
-
* Construction: sp.new (empty), sp.parse (one borrowed init string —
|
|
1894
|
-
* a single leading '?' strips, Node's constructor), sp.copy (snapshot
|
|
1895
|
-
* of another list), sp.fromPairs (a string[][] value — THROWS Node's
|
|
1896
|
-
* ERR_INVALID_TUPLE TypeError on a non-[name, value] row; the one
|
|
1897
|
-
* throwing entry in the family), sp.with (the record-literal init
|
|
1898
|
-
* desugar: append one pair, answer the same list +1 — chains fold
|
|
1899
|
-
* `new URLSearchParams({...})` into nested calls). url.searchParams
|
|
1900
|
-
* answers the URL's LIVE cached view (+1, one identity per URL);
|
|
1901
|
-
* url.search is the WHATWG search getter ("" for no/empty query).
|
|
1902
|
-
* Methods mirror the WHATWG surface: sp.get answers +1-or-NULL (the
|
|
1903
|
-
* sym.desc union pattern, null arm), sp.getAll a fresh string[];
|
|
1904
|
-
* sp.append/sp.set/sp.delete/sp.deleteValue/sp.sort mutate and
|
|
1905
|
-
* re-serialize a live view's URL query; sp.has/sp.hasValue answer
|
|
1906
|
-
* bools; sp.size/sp.toString are pure reads. sp.keyAt/sp.valAt are
|
|
1907
|
-
* the for-of/forEach desugar's index reads (live — the loop re-reads
|
|
1908
|
-
* sp.size each pass). */
|
|
1909
|
-
| "sp.new" | "sp.newChecked" | "sp.parse" | "sp.copy" | "sp.fromPairs" | "sp.with" | "url.searchParams" | "url.search" | "url.hash" | "sp.get" | "sp.getAll" | "sp.append" | "sp.set" | "sp.delete" | "sp.deleteValue" | "sp.has" | "sp.hasValue" | "sp.sort" | "sp.size" | "sp.toString" | "sp.keyAt" | "sp.valAt"
|
|
1910
|
-
/** node:querystring (scr_qs.c — link-gated by moduleUsesQs; NOT
|
|
1911
|
-
* URLSearchParams: the legacy codec's escaping and '+' rules differ).
|
|
1912
|
-
* qs.escape is Node's qsEscape, which encodes exactly the component
|
|
1913
|
-
* unreserved set — it emits the always-linked
|
|
1914
|
-
* scr_str_encode_uri_component, so escape-only programs never pull the
|
|
1915
|
-
* unit. qs.unescape is Node's qsUnescape: strict decodeURIComponent
|
|
1916
|
-
* first, the lenient legacy unescapeBuffer fallback on failure (never
|
|
1917
|
-
* throws). qs.parse takes (str, sep, eq, maxKeys) — the frontend
|
|
1918
|
-
* completes omitted/null sep/eq to "&"/"=" and the omitted maxKeys
|
|
1919
|
-
* option to Node's 1000 (0 and negatives mean unlimited, Node's rule) —
|
|
1920
|
-
* and its result type is the CALL SITE's mapped ParsedUrlQuery shape (a
|
|
1921
|
-
* pure index-signature record over `string | string[]`, an undefined
|
|
1922
|
-
* arm tolerated — @types/node's Dict), verified structurally by the
|
|
1923
|
-
* frontend (lowerQuerystringParseCall); the emitters construct the
|
|
1924
|
-
* record and hand its overflow map to scr_qs_parse_into with the two
|
|
1925
|
-
* union tags. qs.stringify takes (obj, sep, eq) with obj a dyn value
|
|
1926
|
-
* (the frontend dynFroms the typed record; JS-world dyn values pass
|
|
1927
|
-
* through) — Node's encodeStringified rules run in the runtime, so
|
|
1928
|
-
* arrays expand to repeated keys and null/undefined/nested objects are
|
|
1929
|
-
* empty values. Custom encoder/decoder options fence at compile time.
|
|
1930
|
-
* All borrow; string results +1; none throw. */
|
|
1931
|
-
| "qs.parse" | "qs.stringify" | "qs.escape" | "qs.unescape"
|
|
1932
|
-
/** node:util.parseArgs: one checked-dynamic config object in, one
|
|
1933
|
-
* checked-dynamic ParsedResults tree out. Statically typed member reads
|
|
1934
|
-
* validate their values when leaving that tree. The native parser may
|
|
1935
|
-
* throw Node's coded validation/grammar TypeErrors. */
|
|
1936
|
-
| "util.parseArgs" | "util.parseEnv" | "util.getSystemErrorName" | "util.getSystemErrorMessage" | "util.systemErrorEntries" | "util.stripVTControlCharacters" | "util.toUSVString" | "util.isDeepStrictEqual" | "util.styleText" | "util.typeIs" | "util.typeValue"
|
|
1937
|
-
/** ES Symbol values (scr_symbol.c — link-gated by moduleUsesSymbol).
|
|
1938
|
-
* sym.new: `Symbol(desc)` — a fresh runtime-unique identity (+1) whose
|
|
1939
|
-
* one arg is the description string (borrowed); sym.newAnon is the
|
|
1940
|
-
* description-less `Symbol()` form. sym.for: the Symbol.for global
|
|
1941
|
-
* registry — one interned symbol per key (borrowed), +1 on every call.
|
|
1942
|
-
* sym.toString: "Symbol(desc)" (+1 string; "Symbol()" when absent).
|
|
1943
|
-
* sym.desc / sym.keyFor answer the interned `string | undefined` union
|
|
1944
|
-
* (the runtime returns +1-or-NULL; the backend builds the union arms —
|
|
1945
|
-
* the child.stdout pattern). None of these throw. */
|
|
1946
|
-
| "sym.new" | "sym.newAnon" | "sym.for" | "sym.wellKnown" | "sym.keyFor" | "sym.desc" | "sym.toString"
|
|
1947
|
-
/** Engine-free arbitrary-precision bigint operations (scr_bigint.c).
|
|
1948
|
-
* parse accepts the ECMAScript BigInt string grammar; fromF64 accepts
|
|
1949
|
-
* finite integral Numbers. Arithmetic returns fresh immutable values.
|
|
1950
|
-
* cmp returns -1/0/1 as f64; toString accepts a numeric radix. */
|
|
1951
|
-
| "bigint.parse" | "bigint.fromF64" | "bigint.neg" | "bigint.not" | "bigint.add" | "bigint.sub" | "bigint.mul" | "bigint.div" | "bigint.mod" | "bigint.pow" | "bigint.and" | "bigint.or" | "bigint.xor" | "bigint.shl" | "bigint.shr" | "bigint.eq" | "bigint.eqString" | "bigint.cmp" | "bigint.cmpNumber" | "bigint.truthy" | "bigint.toString" | "bigint.inspect" | "bigint.toF64" | "bigint.asUintN" | "bigint.asIntN" | "bigint.bufferRead" | "bigint.bufferWrite" | "bigint.dataViewGet" | "bigint.dataViewSet"
|
|
1952
|
-
/** fs.statSync → a Stats value (may throw, like the other sync fs
|
|
1953
|
-
* calls); the stats.* getters are pure reads on it. */
|
|
1954
|
-
| "fs.statSync" | "stats.isFile" | "stats.isDirectory" | "stats.size" | "stats.dev" | "stats.ino"
|
|
1955
|
-
/** child_process.spawnSync (scr_child.c): posix_spawn + waitpid + piped
|
|
1956
|
-
* utf8 capture — cmd borrowed, args one borrowed string[] (the frontend
|
|
1957
|
-
* completes an omitted list to an empty literal), result an owned (+1)
|
|
1958
|
-
* spawnRes. NEVER throws: spawn failure (nonexistent binary, EACCES) is
|
|
1959
|
-
* data, like Node's error property — status null and empty outputs
|
|
1960
|
-
* (SEMANTICS.md documents the divergence from Node's null stdout).
|
|
1961
|
-
* The getters are pure reads: status is the interned `number | null`
|
|
1962
|
-
* union (null = spawn failure or signal death, type-directed
|
|
1963
|
-
* construction in the backend like process.envGet); stdout/stderr are
|
|
1964
|
-
* +1 strings. */
|
|
1965
|
-
| "cp.spawnSync" | "spawnRes.status" | "spawnRes.stdout" | "spawnRes.stderr"
|
|
1966
|
-
/** Node's spawn-failure carrier `error?: Error`: a fresh +1 %Error
|
|
1967
|
-
* ("spawnSync <file> ENOENT", `code` stamped) when the spawn itself
|
|
1968
|
-
* failed, the interned undefined arm otherwise — the result type is the
|
|
1969
|
-
* call site's `Error | undefined` union, constructed type-directedly in
|
|
1970
|
-
* the backend (the envGet convention). Never throws. */
|
|
1971
|
-
| "spawnRes.error"
|
|
1972
|
-
/** child_process.spawn (scr_child.c + the scr_async.c loop): posix_spawnp
|
|
1973
|
-
* with per-slot ignore/inherit/pipe modes (and number output fds), the
|
|
1974
|
-
* all-piped Node default, and the child registered with the event loop,
|
|
1975
|
-
* which polls waitpid(WNOHANG) at quiescence like timers.
|
|
1976
|
-
* NEVER throws: spawn failure defers to the "error" event, Node-exact
|
|
1977
|
-
* (the error message is Node's "spawn <cmd> <ERRNO-NAME>"; an "error"
|
|
1978
|
-
* event with no listener prints it and exits 1 like an EventEmitter).
|
|
1979
|
-
* cmd/args borrowed; result an owned (+1) child handle. The loop will
|
|
1980
|
-
* not exhaust while any spawned child is unreaped — Node's keep-alive.
|
|
1981
|
-
*
|
|
1982
|
-
* child.onExit / child.onClose / child.onError — terminal listener
|
|
1983
|
-
* registration through child.on/once. Close uses the exit adapter shape
|
|
1984
|
-
* but fires only after every piped stdio handle reaches EOF. The
|
|
1985
|
-
* receiver is borrowed, the CALLBACK MOVES into the child's listener
|
|
1986
|
-
* registry (released after the terminal event fires, or at reap for
|
|
1987
|
-
* the event that never fires). Both are void (chaining is fenced).
|
|
1988
|
-
* onExit's third emitted ingredient is an ADAPTER the backend interns
|
|
1989
|
-
* per callback shape: the runtime invokes adapter(cb, has_code, code)
|
|
1990
|
-
* and the adapter builds the `number | null` union (tags are program-
|
|
1991
|
-
* dependent) or ignores the code for a zero-param callback. onError's
|
|
1992
|
-
* adapters are runtime-provided (zero-param, or the %Error one-param
|
|
1993
|
-
* shape — scr_error_new needs no program types). "exit" fires once
|
|
1994
|
-
* with the code (f64 arm) or null (signal death); "error" fires only
|
|
1995
|
-
* for spawn failure, exactly Node's split. */
|
|
1996
|
-
| "cp.spawn"
|
|
1997
|
-
/** Static-native fork startup and IPC. process.forkTarget initializes a
|
|
1998
|
-
* re-executed child's inherited channel and returns its embedded target id
|
|
1999
|
-
* (-1 in the parent). The remaining entries mirror Node's JSON channel. */
|
|
2000
|
-
| "process.forkTarget" | "cp.fork" | "child.connected" | "child.send" | "child.sendCb" | "child.disconnect" | "child.onMessage" | "child.onDisconnect" | "child.onSpawn"
|
|
2001
|
-
/** Rest listeners use the checked function bridge to pack event arguments. */
|
|
2002
|
-
| "child.onDyn" | "process.connected" | "process.send" | "process.sendCb" | "process.disconnect" | "process.onMessage" | "process.onDisconnect"
|
|
2003
|
-
/** child_process.execFile's callback slice: starts an all-piped child,
|
|
2004
|
-
* captures stdout/stderr, and moves the error-first callback into the
|
|
2005
|
-
* child registry. The callback shape is program-dependent and checked
|
|
2006
|
-
* by the validator/backends. */
|
|
2007
|
-
| "cp.execFile" | "child.onExit" | "child.onClose" | "child.onError"
|
|
2008
|
-
/** The ChildProcess lifecycle members (scr_child.c), Node's shapes
|
|
2009
|
-
* exactly (SEMANTICS.md has the pinned matrix). child.pid is the
|
|
2010
|
-
* checker's `number | undefined` (undefined = spawn failure) and
|
|
2011
|
-
* child.exitCode its `number | null` (null while running and after a
|
|
2012
|
-
* signal death; -errno once a spawn failure settled) — both unions are
|
|
2013
|
-
* type-directed constructions in the backend over a has/get runtime
|
|
2014
|
-
* pair, the spawnRes.status pattern. child.killed is Node's
|
|
2015
|
-
* sent-a-signal flag. child.kill sends while the child is un-reaped
|
|
2016
|
-
* (false after — Node's null-handle answer) and THROWS the
|
|
2017
|
-
* Unknown-signal TypeError on bad names (may-throw); killNum passes
|
|
2018
|
-
* numbers through (0 probes; never throws). child.unref drops the
|
|
2019
|
-
* child from the loop's keep-alive set — it is still reaped while the
|
|
2020
|
-
* loop runs for other reasons, and one the loop never reaps is left to
|
|
2021
|
-
* the OS at exit. All receivers borrowed. */
|
|
2022
|
-
| "child.pid" | "child.exitCode" | "child.killed" | "child.kill" | "child.killNum" | "child.unref" | "child.ref"
|
|
2023
|
-
/** The piped-output streams (stdio mode 3 — scr_child.c's stream
|
|
2024
|
-
* slice). child.stdout/child.stderr answer the checker's
|
|
2025
|
-
* `Readable | null` union (type-directed construction in the backend
|
|
2026
|
-
* over the +1-or-NULL runtime pair — the child.pid pattern with a ref
|
|
2027
|
-
* arm). stream.onData/onEnd register 'data'/'end' listeners (receiver
|
|
2028
|
-
* borrowed, CALLBACK MOVES, trailing once-flag, void — chaining
|
|
2029
|
-
* fenced): 'data' fires one Buffer chunk per read (zero-param and
|
|
2030
|
-
* Buffer/string adapters are runtime-provided; setEncoding threads
|
|
2031
|
-
* split multibyte sequences through the shared StringDecoder core. A
|
|
2032
|
-
* union-param listener —
|
|
2033
|
-
* ngrok's `Buffer | string` — gets a compiler-emitted adapter wrapping
|
|
2034
|
-
* the chunk at its Buffer arm), 'end' fires once at EOF, always BEFORE
|
|
2035
|
-
* the child's 'exit' (the pinned ordering). A flowing stream keeps the
|
|
2036
|
-
* loop alive: usesTimers. */
|
|
2037
|
-
| "child.stdout" | "child.stderr" | "stream.onData" | "stream.onDataStr" | "stream.onEnd" | "stream.childSetEncoding"
|
|
2038
|
-
/** The piped-input writer (stdio mode 3 on fd 0). child.stdin answers
|
|
2039
|
-
* `Writable | null`; writes copy borrowed data into the nonblocking
|
|
2040
|
-
* queue, end/destroy settle it, writable is a pure state read, and
|
|
2041
|
-
* listener callbacks move into the writer registry. */
|
|
2042
|
-
| "child.stdin" | "writer.writeString" | "writer.writeBytes" | "writer.end" | "writer.destroy" | "writer.writable" | "writer.onDrain" | "writer.onFinish" | "writer.onError"
|
|
2043
|
-
/** The first-class WritableStream write (`output.write(line)` — the
|
|
2044
|
-
* prefixStream idiom): the receiver IS the fd scalar (process.stdout/
|
|
2045
|
-
* stderr reads mint 1/2), dispatched onto the exact stdoutWrite/
|
|
2046
|
-
* stderrWrite paths so buffering and ordering stay identical. Data
|
|
2047
|
-
* borrowed; the bool is Node's always-true backpressure signal. */
|
|
2048
|
-
| "procStream.write"
|
|
2049
|
-
/** node:net (scr_net.c — linked, and scr_net_install() emitted, only
|
|
2050
|
-
* when one of these appears on the IR; moduleUsesNet is the switch).
|
|
2051
|
-
* Receivers are borrowed; CALLBACKS MOVE into the handle's listener
|
|
2052
|
-
* registry and are released at settlement (the child.onExit story).
|
|
2053
|
-
* All listener registrations carry a trailing BOOL once-flag (`on` vs
|
|
2054
|
-
* `once`) and are void — chaining is fenced. None of these throw:
|
|
2055
|
-
* listen/connect failures are the async 'error' event, like Node.
|
|
2056
|
-
*
|
|
2057
|
-
* net.createServer's optional connection handler and the
|
|
2058
|
-
* serverOnConnection listeners take the runtime-provided adapters
|
|
2059
|
-
* (zero-param, or the one-param socket shape); sockOnData's adapters
|
|
2060
|
-
* are the stdin pair's shapes (zero-param / bytes chunk); the error
|
|
2061
|
-
* events reuse the child %Error adapters. net.listen/net.listenCb bind
|
|
2062
|
-
* NOW and defer 'listening' to the next loop turn (Node's next-tick
|
|
2063
|
-
* emit); net.serverPort is the composed `server.address().port` read.
|
|
2064
|
-
* net.connect's host argument is a string ("localhost" pins to
|
|
2065
|
-
* 127.0.0.1 — SEMANTICS.md); the connect callback is once('connect'). */
|
|
2066
|
-
| "net.createServer" | "net.createServerCb" | "net.listen" | "net.listenCb"
|
|
2067
|
-
/** listen({ port, host, ipv6Only }[, cb]) — the explicit-interface bind
|
|
2068
|
-
* (portless's listenOnProxyInterface): args [server, port, host,
|
|
2069
|
-
* ipv6Only]. host is an IP literal string ("" = the host-less
|
|
2070
|
-
* dual-stack any default); ipv6Only sets IPV6_V6ONLY before the bind.
|
|
2071
|
-
* These are the old-shaped calls, retained for omitted reusePort so
|
|
2072
|
-
* serialized IR remains compatible. Failures are the async 'error',
|
|
2073
|
-
* message in Node's listen shape with the requested host. Never throws. */
|
|
2074
|
-
| "net.listenOpts" | "net.listenOptsCb"
|
|
2075
|
-
/** Additive ABI for listen({ ..., reusePort }) — args
|
|
2076
|
-
* [server, port, host, ipv6Only, reusePort], with the callback following
|
|
2077
|
-
* those values in the callback form. The final BOOL is the requested
|
|
2078
|
-
* kernel connection-distribution option; old spellings remain
|
|
2079
|
-
* four/five-argument calls so serialized IR stays compatible. */
|
|
2080
|
-
| "net.listenOptsReusePort" | "net.listenOptsReusePortCb" | "net.serverPort" | "net.serverListening"
|
|
2081
|
-
/** server.address() as the full AddressInfo record (the dgram.address
|
|
2082
|
-
* materialization pattern: the emitter builds the record from the three
|
|
2083
|
-
* runtime reads; the frontend pinned the shape). Never throws — before
|
|
2084
|
-
* listen it answers the any-form defaults with port 0 where Node
|
|
2085
|
-
* answers null (the serverPort stance). */
|
|
2086
|
-
| "net.serverAddress" | "net.serverClose" | "net.serverCloseCb"
|
|
2087
|
-
/** The close-override pair (the portless close-proxy idiom).
|
|
2088
|
-
* serverCloseBind is `wrapper.close.bind(wrapper)` as a VALUE: a
|
|
2089
|
-
* compiler-emitted closure over the server whose invocation runs the
|
|
2090
|
-
* REAL close (scr_net_server_close_direct — never the override), so
|
|
2091
|
-
* the override body's `origClose(cb)` cannot recurse; its callback
|
|
2092
|
-
* argument (the `((err?: Error) => void) | undefined` union) registers
|
|
2093
|
-
* as a once-'close' listener, a one-param callback wrapped by an
|
|
2094
|
-
* emitted zero-arg trampoline firing the undefined arm (a clean close
|
|
2095
|
-
* carries no error). serverSetCloseOverride is `wrapper.close = fn`:
|
|
2096
|
-
* the override MOVES in behind an emitted zero-arg wrapper (it invokes
|
|
2097
|
-
* the user function with the undefined-arm callback — tags are program
|
|
2098
|
-
* data), and server.close() consults it before closing. */
|
|
2099
|
-
| "net.serverCloseBind" | "net.serverSetCloseOverride" | "net.serverOnError" | "net.serverOnClose" | "net.serverOnConnection"
|
|
2100
|
-
/** 'secureConnection' — the TLS server's deferred 'connection' list
|
|
2101
|
-
* (handshake-completion timing); on a server without deferred
|
|
2102
|
-
* connections (a plain net server) the registration never fires,
|
|
2103
|
-
* exactly Node's split. */
|
|
2104
|
-
| "net.serverOnSecureConnection" | "net.connect"
|
|
2105
|
-
/** connect with a validated autoSelectFamilyAttemptTimeout option (the
|
|
2106
|
-
* budget runs Node's validateInt32-from-1 ladder and is then inert —
|
|
2107
|
-
* the single dial has nothing to time). May-throw. */
|
|
2108
|
-
| "net.connectAttempt"
|
|
2109
|
-
/** net.connect/createConnection over a RUNTIME option bag (computed
|
|
2110
|
-
* keys — the invalid-input probes): Node-order validation (the
|
|
2111
|
-
* objectMode trio's ERR_INVALID_ARG_VALUE, validatePort, host string,
|
|
2112
|
-
* autoSelectFamily boolean, the attempt budget), then the trailing
|
|
2113
|
-
* compiler-rendered fence — ALWAYS THROWS (the error.nodeThrow
|
|
2114
|
-
* polymorphic-result carve-out). May-throw seed. */
|
|
2115
|
-
| "net.connectOptsChk" | "net.connectCb"
|
|
2116
|
-
/** connect({ port, host, autoSelectFamily: true, lookup }) — the
|
|
2117
|
-
* caller-resolver dial (portless's createLoopbackConnection): args
|
|
2118
|
-
* [port, host, lookup]. The runtime creates the (connecting) socket
|
|
2119
|
-
* handle, invokes the lookup as Node does — lookup(hostname, options,
|
|
2120
|
-
* callback), options crossing as the dyn undefined — and the answer
|
|
2121
|
-
* closure (an emitter-synthesized per-shape thunk over a boxed socket,
|
|
2122
|
-
* the SNI-answer pattern) dials the answered addresses IN ORDER: each
|
|
2123
|
-
* connect failure tries the next, the LAST failure's message is the
|
|
2124
|
-
* socket's 'error' (Node's autoSelectFamily aggregate is a documented
|
|
2125
|
-
* divergence), and a lookup error surfaces as the deferred socket
|
|
2126
|
-
* 'error'. A synchronous throw INSIDE the lookup propagates out of the
|
|
2127
|
-
* connect call (may-throw seed). */
|
|
2128
|
-
| "net.connectLookup" | "net.sockWrite" | "net.sockWriteBytes" | "net.sockEnd" | "net.sockEndStr" | "net.sockEndBytes"
|
|
2129
|
-
/** write/end with a CHECKED-DYNAMIC chunk (an untyped JS payload into a
|
|
2130
|
-
* typed socket): the runtime dispatches STR/BYTES and throws Node's
|
|
2131
|
-
* ERR_INVALID_ARG_TYPE chunk TypeError on any other kind. */
|
|
2132
|
-
| "net.sockWriteDyn" | "net.sockEndDyn" | "net.sockDestroy" | "net.sockPipe"
|
|
2133
|
-
/** socket.pipe(res) — raw socket chunks into a ServerResponse body
|
|
2134
|
-
* (the extended-CONNECT bridge leg): each chunk is a body write (the
|
|
2135
|
-
* response's own framing applies); source EOF end()s the response,
|
|
2136
|
-
* pipe's default. Borrows both. Never throws. */
|
|
2137
|
-
| "net.sockPipeRes" | "net.sockOnData" | "net.sockOnEnd" | "net.sockOnClose" | "net.sockOnError" | "net.sockOnConnect"
|
|
2138
|
-
/** node:dgram + node:dns (scr_dgram.c — linked, and
|
|
2139
|
-
* scr_dgram_install() emitted, only when one of these appears on the
|
|
2140
|
-
* IR; moduleUsesDgram is the switch — dns.lookup rides the same unit).
|
|
2141
|
-
* The net listener discipline verbatim: receivers borrowed, CALLBACKS
|
|
2142
|
-
* MOVE into the handle's registry and release at settlement, `on` vs
|
|
2143
|
-
* `once` is the trailing bool, registrations are void. bind/connect
|
|
2144
|
-
* bind NOW and defer 'listening'/'connect' to the next loop turn (the
|
|
2145
|
-
* net.listen story); their optional-host completions are ""
|
|
2146
|
-
* (bind → 0.0.0.0) and "127.0.0.1" (connect — udp4's Node default).
|
|
2147
|
-
* bind/connect/send/close/address THROW Node's state errors ("Socket
|
|
2148
|
-
* is already bound", "Already connected", "Not running") — may-throw
|
|
2149
|
-
* seeded. dgram.address returns the AddressInfo RECORD (the frontend
|
|
2150
|
-
* pins the {address, family, port} shape; the emitter builds it from
|
|
2151
|
-
* runtime parts). onMessage adapters are emitted per rinfo record
|
|
2152
|
-
* shape (the child.onExit precedent); onError reuses the child %Error
|
|
2153
|
-
* adapters. dns.lookup resolves via getaddrinfo AT CALL TIME and
|
|
2154
|
-
* defers the callback to the next turn (SEMANTICS.md documents the
|
|
2155
|
-
* blocking divergence); its per-union adapter builds the
|
|
2156
|
-
* `Error | null` first argument. */
|
|
2157
|
-
| "dgram.createSocket" | "dgram.bind" | "dgram.bindCb" | "dgram.connect" | "dgram.connectCb" | "dgram.sendStr" | "dgram.sendBytes"
|
|
2158
|
-
/** The send argument-validation ladder over dyn arguments (Node's
|
|
2159
|
-
* signature shuffle: slice bounds, list/type contracts, port/address
|
|
2160
|
-
* validation, connected-state errors) — a fully-validated unconnected
|
|
2161
|
-
* single-payload send RUNS; callback/list/connected forms meet the
|
|
2162
|
-
* trailing fence. May-throw. */
|
|
2163
|
-
| "dgram.sendChk" | "dgram.address" | "dgram.close" | "dgram.closeCb" | "dgram.unref" | "dgram.ref" | "dgram.onMessage" | "dgram.onError" | "dgram.onListening" | "dgram.onClose" | "dgram.onConnect" | "dns.lookup"
|
|
2164
|
-
/** node:test (scr_test.c — linked only when one of these appears on
|
|
2165
|
-
* the IR; moduleUsesNodeTest is the switch, and the main epilogue asks
|
|
2166
|
-
* scr_test_exit_code() for the process's exit status). Strings are
|
|
2167
|
-
* BORROWED, callbacks MOVE. register/suite/hook attach to the runner
|
|
2168
|
-
* tree (register: name, mode 0|1|2 run/skip/todo, directive message ""
|
|
2169
|
-
* = none, cb or absent via registerEmpty, flags 1 async | 2 takes-ctx
|
|
2170
|
-
* | 4 only, "file:line:col"); suite runs its body AT registration
|
|
2171
|
-
* (Node's collection phase). sub is t.test — runs the subtest INLINE
|
|
2172
|
-
* on the runner fiber and returns the settled promise the await
|
|
2173
|
-
* consumes. ctxSkip/ctxTodo mark the running test; ctxDiagnostic
|
|
2174
|
-
* queues an ℹ line; ctxName reads t.name. Every registration keeps
|
|
2175
|
-
* the loop-run emitted (usesTimers) so the runner fiber drains. */
|
|
2176
|
-
| "test.register" | "test.registerEmpty" | "test.suite" | "test.hook" | "test.sub" | "test.subEmpty" | "test.ctxSkip" | "test.ctxTodo" | "test.ctxDiagnostic" | "test.ctxName"
|
|
2177
|
-
/** node:http, the server slice (scr_http.c over scr_net.c — linked
|
|
2178
|
-
* only when these appear on the IR; moduleUsesHttpServer is the
|
|
2179
|
-
* switch, and any http.* libCall also counts as net use so scr_net.c
|
|
2180
|
-
* links and installs). http.createServer's handler MOVES in and takes
|
|
2181
|
-
* the runtime adapters for its (req, res) / (req) / () shapes; req
|
|
2182
|
-
* body listeners follow the net.sockOnData story (bytes chunks, once
|
|
2183
|
-
* flags); reqHeader answers the interned `string | undefined` union
|
|
2184
|
-
* exactly like process.envGet; the res writers are borrowed-argument
|
|
2185
|
-
* voids with Node's framing decided in the runtime (Content-Length
|
|
2186
|
-
* for end-before-head, chunked after an explicit writeHead/write). */
|
|
2187
|
-
| "http.createServer"
|
|
2188
|
-
/** http.createServer() / http.Server() with no handler — the
|
|
2189
|
-
* on("request") route; option helpers set parser behavior on a fresh
|
|
2190
|
-
* server before the constructor/factory result is returned. */
|
|
2191
|
-
| "http.createServerEmpty" | "http.validateHeaderName" | "http.validateHeaderValue" | "http.serverJoinDupHeaders" | "http.serverAllowMissingHostHeader"
|
|
2192
|
-
/** The five writable numeric http.Server timeout fields use one
|
|
2193
|
-
* selector ABI: 0 timeout, 1 keepAliveTimeout, 2 headersTimeout,
|
|
2194
|
-
* 3 requestTimeout, 4 keepAliveTimeoutBuffer. These calls store/read
|
|
2195
|
-
* the property values; timer enforcement remains outside this surface.
|
|
2196
|
-
* The constructor-option setter takes dyn so explicit undefined remains
|
|
2197
|
-
* distinguishable from a numeric value until its Node validation ladder. */
|
|
2198
|
-
| "http.serverTimeoutGet" | "http.serverSetTimeout" | "http.serverSetTimeoutCb" | "http.serverOnTimeout" | "http.serverCloseAllConnections" | "http.serverCloseIdleConnections" | "http.serverTimeoutSet" | "http.serverTimeoutOptionSet"
|
|
2199
|
-
/** server.on("listening", cb) — the deferred listen-callback list. */
|
|
2200
|
-
| "net.serverOnListening"
|
|
2201
|
-
/** The ServerResponse member surface: statusCode/statusMessage reads
|
|
2202
|
-
* and assignments (Node's writable properties), the header CRUD trio
|
|
2203
|
-
* (getHeader answers `string | undefined` like reqHeader), and
|
|
2204
|
-
* end(cb)'s finish slot (resOnFinish registers, the end call follows —
|
|
2205
|
-
* the callback fires deferred, Node's 'finish' emit). writeHead's
|
|
2206
|
-
* statusMessage forms compose in interned helpers: resStatusMsgSet
|
|
2207
|
-
* then the ordinary writeHead entry. */
|
|
2208
|
-
| "http.resStatusGet" | "http.resStatusSet" | "http.resStatusMsgGet" | "http.resStatusMsgSet" | "http.resRequest" | "http.resSocket" | "http.resWritableFinished" | "http.resSendDateGet" | "http.resSendDateSet" | "http.resStrictContentLengthGet" | "http.resStrictContentLengthSet" | "http.resSetTimeout" | "http.resSetTimeoutCb" | "http.resGetHeader" | "http.resGetHeaderNames" | "http.resGetRawHeaderNames" | "http.resGetHeaders" | "http.resHasHeader" | "http.resRemoveHeader" | "http.resOnFinish" | "http.reqUrl" | "http.reqMethod" | "http.reqHeader" | "http.reqTrailer" | "http.reqHeaderValues" | "http.reqTrailerValues" | "http.reqOnData" | "http.reqOnEnd" | "http.resSetHeader" | "http.resWriteHead" | "http.resWriteHeadN"
|
|
2209
|
-
/** HTTP/1.1 informational heads; early hints takes flat string pairs,
|
|
2210
|
-
* with a lowercase `link` key required to send anything. */
|
|
2211
|
-
| "http.resWriteContinue" | "http.resWriteProcessing" | "http.resWriteEarlyHints" | "http.resWrite" | "http.resWriteBytes" | "http.resEnd" | "http.resEndStr" | "http.resEndBytes"
|
|
2212
|
-
/** The checked-dynamic chunk twins (the net.sockWriteDyn story). */
|
|
2213
|
-
| "http.resWriteDyn" | "http.resEndDyn" | "http.resHeadersSent" | "http.resWritableEnded" | "http.resFlushHeaders" | "http.resAddTrailers" | "http.resCork" | "http.resUncork" | "http.resWritableCorked"
|
|
2214
|
-
/** The server-surface member follow-ups: reqStatusCode answers the
|
|
2215
|
-
* interned `number | undefined` union (negative = the undefined arm —
|
|
2216
|
-
* a SERVER request, where Node's statusCode is undefined; every client
|
|
2217
|
-
* response carries a real status); reqSocket is the underlying
|
|
2218
|
-
* connection (+1, the same handle net.connect would give);
|
|
2219
|
-
* sockRemoteAddress answers `string | undefined` (NULL after the fd
|
|
2220
|
-
* closed, Node's destroyed-socket undefined; a dual-stack accept of an
|
|
2221
|
-
* IPv4 peer reads "::ffff:a.b.c.d" like Node). reqResume/reqDestroy and
|
|
2222
|
-
* the req error/close listener slots complete the IncomingMessage
|
|
2223
|
-
* surface portless's client responses use; resDestroy/resOnClose and
|
|
2224
|
-
* resWriteHeadPairs ([k0,v0,k1,v1,...] — the env.pairs helper's flat
|
|
2225
|
-
* shape) complete ServerResponse. sockSetTimeout arms the idle
|
|
2226
|
-
* EVFILT_TIMER ('timeout' fires after ms of inactivity, once per idle
|
|
2227
|
-
* period, never destroying the socket — Node's semantics). */
|
|
2228
|
-
| "http.reqStatusCode" | "http.reqSocket" | "http.reqH2Stream" | "http.reqH2StreamOrThrow" | "http.reqResume"
|
|
2229
|
-
/** req.rawHeaders — [name, value, name, value, ...] in arrival order,
|
|
2230
|
-
* names in their ORIGINAL case (Node's shape); a fresh string[] per
|
|
2231
|
-
* read. reqStatusMessage answers the interned `string | undefined`
|
|
2232
|
-
* union — the reason phrase on client responses ("" when the status
|
|
2233
|
-
* line carried none), the undefined arm on server requests (the
|
|
2234
|
-
* statusCode split). sockDestroyed is socket.destroyed — true once the
|
|
2235
|
-
* fd is gone (destroy() or full close). */
|
|
2236
|
-
| "http.reqRawHeaders" | "http.reqRawTrailers" | "http.reqStatusMessage"
|
|
2237
|
-
/** The `{ ...req.headers }` snapshot feed: [lowercased name, value,
|
|
2238
|
-
* ...] pairs in arrival order — the interned %headers.snapshot helper
|
|
2239
|
-
* builds the record over it, exactly the process.envPairs pattern. */
|
|
2240
|
-
| "http.reqHeaderPairs" | "http.reqTrailerPairs" | "net.sockDestroyed"
|
|
2241
|
-
/** socket.writable — the write half is open: no end() yet, no FIN sent,
|
|
2242
|
-
* fd alive (connecting sockets answer true; writes queue). Node's
|
|
2243
|
-
* stream flag. Borrows; never throws. */
|
|
2244
|
-
| "net.sockWritable"
|
|
2245
|
-
/** The 'upgrade' events, both sides (SEMANTICS.md — the WebSocket
|
|
2246
|
-
* proxying surface): serverOnUpgrade registers (req, socket, head)
|
|
2247
|
-
* listeners fired INSTEAD of 'request' for Connection: upgrade
|
|
2248
|
-
* requests (the parser steps aside; the socket is raw; `head` carries
|
|
2249
|
-
* bytes past the request head; no listener = the socket destroys,
|
|
2250
|
-
* Node's default). clientOnUpgrade is the client twin: a 101 response
|
|
2251
|
-
* fires (res, socket, head) INSTEAD of 'response'. */
|
|
2252
|
-
| "http.serverOnUpgrade" | "http.clientOnUpgrade"
|
|
2253
|
-
/** server.on("connect", ...) — HTTP CONNECT tunneling, the 'upgrade'
|
|
2254
|
-
* machinery's twin: (req, socket, head) fired INSTEAD of 'request' for
|
|
2255
|
-
* CONNECT-method requests (no listener = the socket destroys, Node's
|
|
2256
|
-
* default). The h2 compat server's 'connect' (portless's RFC 8441
|
|
2257
|
-
* handler) only ever sees the HTTP/1.1 arm under the allowHTTP1
|
|
2258
|
-
* lowering, so a listener whose second parameter is a UNION with a
|
|
2259
|
-
* netSocket arm takes the socket wrapped at that arm (an emitted
|
|
2260
|
-
* per-shape adapter — the tags are program data). */
|
|
2261
|
-
| "http.serverOnConnect"
|
|
2262
|
-
/** req.pipe(dest) — the IncomingMessage body streaming into a
|
|
2263
|
-
* ServerResponse (the proxy's response leg), a ClientRequest (the
|
|
2264
|
-
* request-body forward), or a raw socket (the upgrade-rejection leg);
|
|
2265
|
-
* chunk-for-chunk, natural end ends the destination (Node's pipe
|
|
2266
|
-
* default; no backpressure — divergence 54's stream model). */
|
|
2267
|
-
| "http.reqPipeRes" | "http.reqPipeClient" | "http.reqPipeSock" | "http.reqDestroy" | "http.reqOnError" | "http.reqOnClose" | "http.reqOnAborted" | "http.reqHttpVersion" | "http.reqHttpVersionMajor" | "http.reqHttpVersionMinor" | "http.reqAborted" | "http.reqComplete" | "http.resDestroy" | "http.resOnClose" | "http.resWriteHeadPairs"
|
|
2268
|
-
/** writeHead(status, headers) with a checked-dynamic headers value —
|
|
2269
|
-
* the runtime OBJ walk (string/number values; loud fences otherwise;
|
|
2270
|
-
* may throw). */
|
|
2271
|
-
| "http.resWriteHeadDyn" | "net.sockSetTimeout"
|
|
2272
|
-
/** setEncoding('utf8') — 'data' delivers strings inside the chunk-encoding window; other real encodings fence loudly, unknown names throw ERR_UNKNOWN_ENCODING (may throw). */
|
|
2273
|
-
| "net.sockSetEncoding" | "http.reqSetEncoding" | "net.sockOnTimeout" | "net.sockRemoteAddress"
|
|
2274
|
-
/** The paused-mode demux surface (portless's first-byte TLS peek:
|
|
2275
|
-
* once('readable') + read(1) + unshift + emit('connection')).
|
|
2276
|
-
* sockOnReadable registers a zero-param listener (a consumer: arrived
|
|
2277
|
-
* bytes buffer instead of flowing, and EOF announces too); sockRead
|
|
2278
|
-
* answers `Buffer | null` (exactly n buffered bytes, or null — Node's
|
|
2279
|
-
* less-than-n answer; n <= 0 drains everything); sockUnshift returns
|
|
2280
|
-
* bytes to the front of the stream; serverEmitConnection routes a
|
|
2281
|
-
* socket into another server's protocol layer (a TLS target's
|
|
2282
|
-
* 'connection' waits for its handshake). */
|
|
2283
|
-
| "net.sockOnReadable" | "net.sockRead" | "net.sockUnshift"
|
|
2284
|
-
/** Socket flow control and the compat surface: pause/resume (reads
|
|
2285
|
-
* gate off/on — kernel backpressure holds paused bytes; resume flows
|
|
2286
|
-
* and discards sans listeners) and setNoDelay answer the SOCKET (+1,
|
|
2287
|
-
* Node's chaining); destroySoon ends now and destroys once the FIN
|
|
2288
|
-
* flushed; bytesWritten counts accepted bytes; readable is true until
|
|
2289
|
-
* the read half ends. */
|
|
2290
|
-
| "net.sockPause" | "net.sockResume" | "net.sockSetNoDelay" | "net.sockDestroySoon" | "net.sockBytesWritten" | "net.sockReadable"
|
|
2291
|
-
/** socket.on('finish', cb) / end(cb): fires once when the FIN goes out
|
|
2292
|
-
* (sweep-deferred, never the registering stack). */
|
|
2293
|
-
| "net.sockOnFinish" | "net.serverEmitConnection"
|
|
2294
|
-
/** node:http, the CLIENT slice (http.request/http.get over the net
|
|
2295
|
-
* client machinery): request/requestCb take (host, port, path, method,
|
|
2296
|
-
* timeoutMs, headerPairs, autoEnd[, responseCb]) — headerPairs is the
|
|
2297
|
-
* flat [k0,v0,...] array (empty for none), autoEnd true is http.get's
|
|
2298
|
-
* eager end(). The handle owns one dialed connection (NO pooling — the
|
|
2299
|
-
* wire still carries Node's exact head: user headers, then Host,
|
|
2300
|
-
* Connection: keep-alive, and the framing header; the socket closes
|
|
2301
|
-
* when the response completes). The response delivered to responseCb /
|
|
2302
|
-
* 'response' listeners IS an httpReq (IncomingMessage), status and
|
|
2303
|
-
* headers parsed from the wire, body via reqOnData/reqOnEnd. Errors are
|
|
2304
|
-
* Node-shaped ('connect ECONNREFUSED ip:port', 'socket hang up') and
|
|
2305
|
-
* fire 'error' then 'close'; an unhandled 'error' exits 1 like every
|
|
2306
|
-
* net handle. clientWrite before end commits to chunked framing unless
|
|
2307
|
-
* the caller set content-length; clientEnd(data) before any write sends
|
|
2308
|
-
* Content-Length exactly like Node. */
|
|
2309
|
-
| "http.request" | "http.requestCb"
|
|
2310
|
-
/** new http.Agent(opts) / new https.Agent(opts): (secure, keepAlive,
|
|
2311
|
-
* keepAliveMsecs, maxSockets, maxFreeSockets, timeoutMs, port) — the
|
|
2312
|
-
* numeric options arrive < 0 for "unset" (Infinity/256/none; port
|
|
2313
|
-
* seeds the settable defaultPort, Node's option merge). Returns the
|
|
2314
|
-
* Agent as a checked-dynamic HANDLE (getName/destroy and the
|
|
2315
|
-
* sockets/requests/freeSockets counters dispatch through the dyn
|
|
2316
|
-
* handle ops). keepAlive: true THROWS the named construction fence —
|
|
2317
|
-
* socket POOLING is not modeled (one dial per request); maxSockets
|
|
2318
|
-
* accounting is real: over-limit requests defer their dial and queue.
|
|
2319
|
-
* MAY THROW. */
|
|
2320
|
-
| "http.agentNew"
|
|
2321
|
-
/** The agent-threaded request rows: the http.request/https.request
|
|
2322
|
-
* shape with a trailing `agent` dyn argument (an Agent handle, false —
|
|
2323
|
-
* the one-shot Connection: close dial — or null/undefined for the
|
|
2324
|
-
* default path). port < 0 means "no port option": the agent's settable
|
|
2325
|
-
* defaultPort, then the scheme's. MAY THROW (a non-Agent value is
|
|
2326
|
-
* Node's ERR_INVALID_ARG_TYPE). */
|
|
2327
|
-
| "http.requestAgent" | "http.requestAgentCb" | "https.requestAgent" | "https.requestAgentCb"
|
|
2328
|
-
/** The createConnection form (the proxy's own dialer): args are
|
|
2329
|
-
* (connCb, path, method, timeout, headers, autoEnd[, cb]) — connCb is
|
|
2330
|
-
* a `() => net.Socket` closure the runtime invokes ONCE, synchronously
|
|
2331
|
-
* (Node's onSocket timing); everything else matches http.request. The
|
|
2332
|
-
* Host header defaults to "localhost" — a headers.host entry wins
|
|
2333
|
-
* verbatim, the proxy shape. */
|
|
2334
|
-
| "http.requestConn" | "http.requestConnCb"
|
|
2335
|
-
/** node:tls + node:https (scr_tls.c over scr_net.c/scr_http.c, with
|
|
2336
|
-
* the vendored mbedTLS archive — linked only when one of these appears
|
|
2337
|
-
* on the IR; moduleUsesTls is the switch, and every tls/https libCall
|
|
2338
|
-
* also counts as net AND http use so both units link and install).
|
|
2339
|
-
* tls.createServer takes (cert, key[, handler]) — cert/key are PEM
|
|
2340
|
-
* strings or Buffers (the emitter passes data+len for either); the
|
|
2341
|
-
* handler is Node's 'secureConnection' (fires post-handshake with a
|
|
2342
|
-
* socket that behaves exactly like a net socket, the same adapters as
|
|
2343
|
-
* net.createServer). https.createServer is (cert, key, handler) with
|
|
2344
|
-
* the http request-handler adapters. https.request/requestCb extend
|
|
2345
|
-
* the http client row with (…, rejectUnauthorized: bool, ca: PEM
|
|
2346
|
-
* string/Buffer — "" for none) and default port 443; everything else
|
|
2347
|
-
* (write/end/destroy/events, the response surface) IS the http client
|
|
2348
|
-
* surface — the handles are the same kinds. */
|
|
2349
|
-
| "tls.createServer" | "tls.createServerCb"
|
|
2350
|
-
/** RUNTIME options records (the divergence-66 stance): the *Dyn
|
|
2351
|
-
* creators take a checked-dynamic (dyn) options value whose members
|
|
2352
|
-
* read at runtime — cert/key extract like the literal path, members
|
|
2353
|
-
* whose literal forms fence THROW the catchable fence at runtime, and
|
|
2354
|
-
* undocumented keys drop like Node drops them. tls.pemDyn is the
|
|
2355
|
-
* literal walk's runtime-valued cert/key extraction: (value, whatLit)
|
|
2356
|
-
* → PEM bytes (strings/Buffers/one-element arrays of those) or the
|
|
2357
|
-
* thrown fence. All of them may throw. */
|
|
2358
|
-
| "tls.pemDyn" | "tls.createServerDyn" | "tls.createServerDynCb" | "https.createServerDyn" | "https.createServerDynCb"
|
|
2359
|
-
/** tls.connect — the TLS client socket: (port, host, opts[, cb]) where
|
|
2360
|
-
* port -1 reads options.port, host "" reads options.host, and opts is
|
|
2361
|
-
* the runtime (dyn) options record (rejectUnauthorized/ca/servername
|
|
2362
|
-
* implemented; other documented members throw the runtime fence). The
|
|
2363
|
-
* callback fires post-handshake — Node's secureConnect timing. */
|
|
2364
|
-
| "tls.connect" | "tls.connectCb"
|
|
2365
|
-
/** The TLSSocket member surface on the socket kind: authorized (bool —
|
|
2366
|
-
* Node's verify verdict), authorizationError (the verify-failure CODE
|
|
2367
|
-
* STRING or null), the 'secureConnect' registration (a TLS socket's
|
|
2368
|
-
* conn list fires at establishment; plain sockets never fire it), and
|
|
2369
|
-
* the 'session' registration (fires once with the serialized session —
|
|
2370
|
-
* a Buffer; the received-ticket event). */
|
|
2371
|
-
| "tls.sockAuthorized" | "tls.sockAuthError" | "tls.sockOnSecureConnect" | "tls.sockOnSession"
|
|
2372
|
-
/** tls.createSecureContext({ cert, key }) — parses the PEM pair into an
|
|
2373
|
-
* opaque SecureContext handle (secureCtx kind) for SNI callbacks to
|
|
2374
|
-
* answer with; cert/key are PEM strings or Buffers like createServer's. */
|
|
2375
|
-
| "tls.createSecureContext"
|
|
2376
|
-
/** createSecureContext over a RUNTIME options record (the checked-
|
|
2377
|
-
* dynamic lane): Node's typed option validations first (the ciphers/
|
|
2378
|
-
* passphrase/engine/version/timeout/ticketKeys ladders), then the pem
|
|
2379
|
-
* walk — a validated { cert, key } bag builds the real context.
|
|
2380
|
-
* May-throw. */
|
|
2381
|
-
| "tls.createSecureContextDyn"
|
|
2382
|
-
/** tls.getCACertificates(type): validateString + the documented name
|
|
2383
|
-
* set, then the trailing compiler-rendered fence — ALWAYS THROWS (the
|
|
2384
|
-
* error.nodeThrow polymorphic-result carve-out). May-throw seed. */
|
|
2385
|
-
| "tls.caCertsChk"
|
|
2386
|
-
/** The CA-store introspection surface (scr_tls_ca.c — its own unit and
|
|
2387
|
-
* link gate, "tlsca." NOT "tls.", so a getCACertificates-only binary
|
|
2388
|
-
* never pulls mbedTLS): tlsca.get is tls.getCACertificates(type) — the
|
|
2389
|
-
* cached per-type string[] of PEM blocks (identity-stable across calls,
|
|
2390
|
-
* Node's caching; an unknown type throws Node's ERR_INVALID_ARG_VALUE
|
|
2391
|
-
* TypeError); tlsca.root is the tls.rootCertificates value read;
|
|
2392
|
-
* tlsca.set is tls.setDefaultCACertificates(certs) — replaces the
|
|
2393
|
-
* default set (deduped) and the anchors the TLS client verifies
|
|
2394
|
-
* against, throwing Node's ERR_CRYPTO_OPERATION_FAILED when no entry
|
|
2395
|
-
* carries a certificate block. */
|
|
2396
|
-
| "tlsca.get" | "tlsca.root" | "tlsca.set" | "https.createServer" | "https.request" | "https.requestCb"
|
|
2397
|
-
/** The URL-string first argument, the http.requestUrl row over TLS:
|
|
2398
|
-
* no options means Node's defaults (verification on, default trust
|
|
2399
|
-
* anchors), and a non-https scheme is ERR_INVALID_PROTOCOL. */
|
|
2400
|
-
| "https.requestUrl" | "https.requestUrlCb"
|
|
2401
|
-
/** A call through a `const requestFn = tls ? https.request :
|
|
2402
|
-
* http.request` binding — the module-function-as-value ternary between
|
|
2403
|
-
* the two known clients: the https.request row with a leading `secure`
|
|
2404
|
-
* bool that picks the dial at RUNTIME (true = the TLS client, exactly
|
|
2405
|
-
* https.request; false = the plain client, exactly http.request —
|
|
2406
|
-
* rejectUnauthorized/ca ignored there like Node ignores TLS options on
|
|
2407
|
-
* http.request). The "https." prefix keeps the TLS unit linked. */
|
|
2408
|
-
| "https.requestFn" | "https.requestFnCb"
|
|
2409
|
-
/** node:http2 allowHTTP1: one TLS server advertises h2 + http/1.1 and
|
|
2410
|
-
* dispatches to the matching parser after ALPN. Request listeners mirror
|
|
2411
|
-
* into both compatibility lists; the remaining session/req.stream rows
|
|
2412
|
-
* below retain their explicitly limited behavior. */
|
|
2413
|
-
| "http2.createSecureServer"
|
|
2414
|
-
/** createSecureServer(options, handler) — the eager COMPAT handler as
|
|
2415
|
-
* the first 'request' listener (Node's exact route), on both literal
|
|
2416
|
-
* flavors: Req is the dual ALPN allowHTTP1 server, H2Req the ALPN=h2-only
|
|
2417
|
-
* server (both use compat handles over h2 streams). Args are
|
|
2418
|
-
* (cert, key, cb, enableConnectProtocol). */
|
|
2419
|
-
| "http2.createSecureServerReq" | "http2.createSecureServerH2Req"
|
|
2420
|
-
/** createSecureServer with a RUNTIME options record (the divergence-66
|
|
2421
|
-
* stance): allowHTTP1/cert/key read at runtime — allowHTTP1 picks the
|
|
2422
|
-
* flavor, the TLS server walk fences its out-of-bounds members with
|
|
2423
|
-
* the catchable runtime fence, and h2 session-tuning keys drop exactly
|
|
2424
|
-
* like the literal walk ignores them. May throw. The Cb form carries
|
|
2425
|
-
* the eager compat handler. */
|
|
2426
|
-
| "http2.createSecureServerDyn" | "http2.createSecureServerDynCb"
|
|
2427
|
-
/** createSecureServer with an SNI callback: args are (cert, key, sniCb)
|
|
2428
|
-
* where sniCb is the JS SNICallback — a `(servername, cb) => void`
|
|
2429
|
-
* closure, or the `SNICallback | undefined` union from the conditional-
|
|
2430
|
-
* spread spelling (`...(x ? { SNICallback: x } : {})`; the emitter
|
|
2431
|
-
* unwraps the union — the undefined arm means "no callback", exactly
|
|
2432
|
-
* the no-SNI server). The runtime parses each connection's ClientHello
|
|
2433
|
-
* for the server_name extension BEFORE the TLS handshake begins, calls
|
|
2434
|
-
* the callback with (servername, answer-closure), and resumes the
|
|
2435
|
-
* handshake when the answer arrives — cb(err) tears the socket down
|
|
2436
|
-
* silently (Node's 'tlsClientError' default), cb(null, ctx) serves
|
|
2437
|
-
* ctx's cert/key, cb(null, undefined) serves the default pair. */
|
|
2438
|
-
| "http2.createSecureServerSni"
|
|
2439
|
-
/** The REAL h2-over-TLS server (createSecureServer WITHOUT allowHTTP1):
|
|
2440
|
-
* scr_http2_create_secure_server — the h2c session machinery behind an
|
|
2441
|
-
* mbedTLS handshake whose ALPN advertises h2 alone (an http/1.1-only
|
|
2442
|
-
* client fails the handshake with no_application_protocol, Node's
|
|
2443
|
-
* h2-only split). args are (cert, key) — PEM strings or Buffers. */
|
|
2444
|
-
| "http2.createSecureServerH2" | "http.serverOnRequest" | "http2.serverOnSessionError"
|
|
2445
|
-
/** The guarded absent-session compatibility call remains a no-op. */
|
|
2446
|
-
| "http2.streamNoop"
|
|
2447
|
-
/** The UNGUARDED h2-only stream call (`req.stream.on(...)`): stream is
|
|
2448
|
-
* undefined on every connection the allowHTTP1 lowering accepts — and
|
|
2449
|
-
* on every HTTP/1.1 connection of Node's own allowHTTP1 server — so the
|
|
2450
|
-
* call IS Node's member read on undefined: throws the exact catchable
|
|
2451
|
-
* TypeError ("Cannot read properties of undefined (reading 'on')").
|
|
2452
|
-
* One arg: the read member's name (a string literal). Never returns. */
|
|
2453
|
-
| "http2.streamUndefCall"
|
|
2454
|
-
/** node:http2, the REAL h2c surface (scr_http2.c — frame codec + HPACK
|
|
2455
|
-
* over the net loop; the design note atop that file has the story).
|
|
2456
|
-
* Sessions and streams are first-class handle kinds; 'stream'/'response'
|
|
2457
|
-
* payloads cross as flat [name, value, ...] pairs arrays and an EMITTED
|
|
2458
|
-
* adapter closure builds the program-side headers record (the response
|
|
2459
|
-
* :status rides separately as a number). */
|
|
2460
|
-
| "http2.createServer" | "http2.createServerReq" | "http2.serverOnStream" | "http2.serverOnSession"
|
|
2461
|
-
/** connect(authority[, listener]) — h2c prior knowledge; the listener
|
|
2462
|
-
* closure (if any) is the 'connect' once-listener. */
|
|
2463
|
-
| "http2.connect" | "http2.connectCb"
|
|
2464
|
-
/** session.request(pairs?, endStream) — endStream is a tri-state f64:
|
|
2465
|
-
* -1 the method's payload-meaningless default, 0/1 explicit. */
|
|
2466
|
-
| "http2.sessionRequest" | "http2.sessionClose" | "http2.sessionCloseCb" | "http2.sessionDestroy" | "http2.sessionOnClose" | "http2.sessionOnError" | "http2.sessionOnConnect" | "http2.sessionOnStream" | "http2.sessionOnGoaway" | "http2.sessionSettings0" | "http2.sessionSettings" | "http2.sessionSettingsDynCb" | "http2.sessionSettingsCb0" | "http2.sessionOnSettingsDyn" | "http2.sessionOnSettings0" | "http2.sessionSettingsGet" | "http2.sessionPendingSettingsAck" | "http2.getDefaultSettings" | "http2.sessionClosed" | "http2.sessionDestroyed" | "http2.sessionEncrypted" | "http2.sessionType" | "http2.sessionAlpn" | "http2.sessionSocket"
|
|
2467
|
-
/** stream.respond(pairs?, endStream) — the server answer. */
|
|
2468
|
-
| "http2.streamRespond" | "http2.streamWrite" | "http2.streamWriteBytes" | "http2.streamEnd" | "http2.streamEndStr" | "http2.streamEndBytes" | "http2.streamClose" | "http2.streamCloseCb" | "http2.streamDestroy" | "http2.streamSetEncoding" | "http2.streamSetEncodingRet" | "http2.streamResume" | "http2.streamPause" | "http2.streamOnData" | "http2.streamOnEnd" | "http2.streamOnClose" | "http2.streamOnAborted" | "http2.streamOnError" | "http2.streamOnResponse" | "http2.streamId" | "http2.streamRstCode" | "http2.streamDestroyed" | "http2.streamClosed" | "http2.streamAborted" | "http2.streamPending" | "http2.streamSession"
|
|
2469
|
-
/** socket.encrypted — `boolean | undefined`: the true arm iff the
|
|
2470
|
-
* socket carries a TLS transport (Node types `encrypted: true` on
|
|
2471
|
-
* TLSSocket; plain sockets answer undefined — the proxy.ts isEncrypted
|
|
2472
|
-
* idiom reads it through a cast). */
|
|
2473
|
-
| "net.sockEncrypted" | "http.clientWrite" | "http.clientSetHeader" | "http.clientGetHeader" | "http.clientHasHeader" | "http.clientRemoveHeader" | "http.clientGetHeaderNames" | "http.clientGetRawHeaderNames" | "http.clientGetHeaders" | "http.clientWriteBytes" | "http.clientEnd" | "http.clientEndStr" | "http.clientEndBytes"
|
|
2474
|
-
/** The checked-dynamic chunk twins (the net.sockWriteDyn story). */
|
|
2475
|
-
| "http.clientWriteDyn" | "http.clientEndDyn" | "http.clientFlushHeaders" | "http.clientAddTrailers" | "http.clientCork" | "http.clientUncork" | "http.clientWritableCorked" | "http.clientMethod" | "http.clientPath" | "http.clientHost" | "http.clientProtocol" | "http.clientHeadersSent" | "http.clientWritableEnded" | "http.clientWritableFinished" | "http.clientSocket" | "http.clientReusedSocket" | "http.clientSetNoDelay" | "http.clientSetSocketKeepAlive" | "http.clientSetTimeout" | "http.clientSetTimeoutCb" | "http.statusCodes" | "http.methods" | "http.reqSetTimeout" | "http.reqSetTimeoutCb"
|
|
2476
|
-
/** request/get with a URL-STRING first argument: the runtime parses it
|
|
2477
|
-
* (WHATWG) and dials — throws catchably on an unparsable input or a
|
|
2478
|
-
* non-http scheme. */
|
|
2479
|
-
| "http.requestUrl" | "http.requestUrlCb" | "http.clientDestroy" | "http.clientAbort" | "http.clientAborted" | "http.clientDestroyed" | "http.clientOnResponse" | "http.clientOnSocket" | "http.clientOnFinish" | "http.clientOnError" | "http.clientOnTimeout" | "http.clientOnClose" | "http.clientOnAbort"
|
|
2480
|
-
/** fs/promises (scr_lib.c over scr_async.c's settled minting): the SAME
|
|
2481
|
-
* sync syscalls, wrapped in an ALREADY-SETTLED promise — failure
|
|
2482
|
-
* REJECTS (catchable at the await) instead of throwing, so none of
|
|
2483
|
-
* these are in the may-throw seed. readFile is utf8-fenced like
|
|
2484
|
-
* readFileSync. The non-interleaving divergence is documented in
|
|
2485
|
-
* SEMANTICS.md. */
|
|
2486
|
-
/** node:crypto randomness: randomUUID plus randomBytes as either a real
|
|
2487
|
-
* Buffer or the fused randomBytes(n).toString("hex"|"base64") path.
|
|
2488
|
-
* The size-taking forms throw Node's RangeError on invalid values. */
|
|
2489
|
-
| "crypto.randomUUID" | "crypto.randomBytesToString"
|
|
2490
|
-
/** The fused createHash(alg).update(data).digest(enc) fast path and the
|
|
2491
|
-
* one-shot crypto.hash implementation. First-class Hash/Hmac handles use
|
|
2492
|
-
* the entries below; all paths share the incremental runtime core. */
|
|
2493
|
-
| "crypto.hashDigestStr" | "crypto.hashDigestBytes"
|
|
2494
|
-
/** First-class static Hash/Hmac handles. Constructors validate the
|
|
2495
|
-
* runtime algorithm string (MD5, SHA-1, or SHA-2); update returns the same
|
|
2496
|
-
* handle by retained identity, copy snapshots Hash state, and digest
|
|
2497
|
-
* finalizes the handle and returns either a Buffer or encoded string. */
|
|
2498
|
-
| "crypto.native" | "crypto.hashNew" | "crypto.hmacNewStr" | "crypto.hmacNewBytes" | "crypto.hashUpdateStr" | "crypto.hashUpdateBytes" | "crypto.hmacUpdateStr" | "crypto.hmacUpdateBytes" | "crypto.hashCopy" | "crypto.hashDigestString" | "crypto.hashDigestBuffer" | "crypto.hmacDigestString" | "crypto.hmacDigestBuffer" | "crypto.timingSafeEqual" | "crypto.randomFill" | "crypto.randomFillRest" | "crypto.randomInt" | "crypto.pbkdf2" | "crypto.randomBytesCb" | "crypto.pbkdf2Cb" | "crypto.hkdf" | "crypto.hkdfCb" | "crypto.scrypt" | "crypto.scryptCb"
|
|
2499
|
-
/** crypto.randomBytes(n) → a real u8 Buffer (+1). THROWS Node's
|
|
2500
|
-
* RangeError on out-of-range sizes, exactly like the composed
|
|
2501
|
-
* randomBytesToString (which keeps its one-libCall lowering — the two
|
|
2502
|
-
* coexist: the composed form never materializes the Buffer). */
|
|
2503
|
-
| "crypto.randomBytes"
|
|
2504
|
-
/** The Buffer statics with fixed (always-u8) signatures. fromStr is
|
|
2505
|
-
* `Buffer.from(string, enc)` — the frontend completes an omitted
|
|
2506
|
-
* encoding to "utf8" and fences non-literal/unsupported ones; hex and
|
|
2507
|
-
* base64 decode Node-leniently, so it never throws. concat takes ONE
|
|
2508
|
-
* bytes<u8>[] arg (the list) and returns a fresh copy. `Buffer.from(u8)`
|
|
2509
|
-
* and `Buffer.alloc(n)` need no libFn — they lower to bytesNew. */
|
|
2510
|
-
| "buffer.fromStr" | "buffer.brand"
|
|
2511
|
-
/** Buffer.from on checked-native strings, bytes, arrays and data-only
|
|
2512
|
-
* array-like/Buffer-JSON objects. The encoding is a normalized literal;
|
|
2513
|
-
* non-string inputs ignore it. Copies the input and may throw during
|
|
2514
|
-
* element coercion or argument validation. Custom object valueOf and
|
|
2515
|
-
* opaque reference inputs retain explicit runtime refusals. */
|
|
2516
|
-
| "buffer.fromDyn" | "buffer.concat"
|
|
2517
|
-
/** Buffer.byteLength(string, enc) — enc a NORMALIZED literal like
|
|
2518
|
-
* fromStr's — and Buffer.isEncoding(name) over a runtime string
|
|
2519
|
-
* (case-insensitive against Node's alias set). Pure; never throw. */
|
|
2520
|
-
| "buffer.byteLenDyn" | "buffer.byteLenStr" | "buffer.isEncoding"
|
|
2521
|
-
/** Buffer.concat(list, totalLength): the concatenation truncated or
|
|
2522
|
-
* zero-padded to the total. THROWS Node's 'length' RangeError on a
|
|
2523
|
-
* negative/non-integer total (may-throw seed). */
|
|
2524
|
-
| "buffer.concatLen"
|
|
2525
|
-
/** The checked-dynamic compare/equals validators (scr_bytes_io.c) —
|
|
2526
|
-
* the lowered form when an argument is NOT statically bytes<u8> (the
|
|
2527
|
-
* invalid-input probes; a dyn from an untyped JS helper): Node's own
|
|
2528
|
-
* argument ladders run at runtime — ERR_INVALID_ARG_TYPE with the
|
|
2529
|
-
* API's argument name ("buf1"/"buf2", "otherBuffer", "target"; offsets
|
|
2530
|
-
* "of type number"), validateOffset's ERR_OUT_OF_RANGE for bad
|
|
2531
|
-
* numbers, undefined offsets taking their Node defaults — and a
|
|
2532
|
-
* well-typed value still computes the real answer. All args borrowed
|
|
2533
|
-
* dyn; compareChk's four offset slots pass the undefined dyn when
|
|
2534
|
-
* syntactically absent. May-throw seeds. */
|
|
2535
|
-
| "buffer.compareChk" | "bytes.equalsChk" | "bytes.compareChk"
|
|
2536
|
-
/** The deprecated `new Buffer(number, 'enc')` string-arm rejection:
|
|
2537
|
-
* always throws Node's ERR_INVALID_ARG_TYPE ("The \"string\" argument
|
|
2538
|
-
* must be of type string. Received ..."). Borrowed dyn; may-throw. */
|
|
2539
|
-
| "buffer.newStringFail"
|
|
2540
|
-
/** fs._toUnixTimestamp(time) over a dyn value: numeric strings and
|
|
2541
|
-
* finite numbers coerce (negatives answer now/1000, Node's shape);
|
|
2542
|
-
* everything else throws Node's ERR_INVALID_ARG_TYPE. May-throw. */
|
|
2543
|
-
| "fs.toUnixTimestamp"
|
|
2544
|
-
/** The fs argument-validation ladders (checked-dynamic lane): each Chk
|
|
2545
|
-
* replicates its API's Node-order validation over dyn values (Node's
|
|
2546
|
-
* exact typed errors — ERR_INVALID_ARG_TYPE/VALUE, ERR_OUT_OF_RANGE),
|
|
2547
|
-
* and a full pass meets the trailing compiler-rendered SC2020 fence
|
|
2548
|
-
* string — so the ALWAYS-THROW forms take the error.nodeThrow
|
|
2549
|
-
* polymorphic-result carve-out. mkdtempSyncChk and the lchmod sync/
|
|
2550
|
-
* promise pair run the REAL operation on a validated pass instead
|
|
2551
|
-
* (macOS lchmod(2); non-APPLE answers Node's not-a-function /
|
|
2552
|
-
* ERR_METHOD_NOT_IMPLEMENTED shapes). May-throw seeds, all of them. */
|
|
2553
|
-
| "fs.existsChk" | "fs.mkdtempChk" | "fs.mkdtempSyncChk" | "fs.readFileChk" | "fs.opendirChk" | "fs.watchFileChk" | "fs.lchmodChk" | "fs.lchmodSyncChk" | "fsp.lchmodChk" | "fs.readChk" | "fs.streamOptsChk"
|
|
2554
|
-
/** The compiler-resolved ERR_INVALID_ARG_TYPE throw with a RUNTIME-
|
|
2555
|
-
* rendered Received tail: args [argname, "of type ..." clause, the
|
|
2556
|
-
* offending dyn value]. ALWAYS THROWS; polymorphic result (the
|
|
2557
|
-
* error.nodeThrow pattern). May-throw seed. */
|
|
2558
|
-
| "error.argTypeThrow"
|
|
2559
|
-
/** The property flavor of argTypeThrow ("The \"options.x\" property
|
|
2560
|
-
* must be ..."): the option-bag ladders' provably-invalid arms. ALWAYS
|
|
2561
|
-
* THROWS; polymorphic result. May-throw seed. */
|
|
2562
|
-
| "error.propTypeThrow"
|
|
2563
|
-
/** The checked-dynamic max-listeners ladders: setMaxChk is the
|
|
2564
|
-
* instance form over a dyn n (non-numbers ERR_INVALID_ARG_TYPE,
|
|
2565
|
-
* negatives/NaN ERR_OUT_OF_RANGE; +1 receiver back — chaining);
|
|
2566
|
-
* setDefaultMaxChk is the static/property form, its second argument
|
|
2567
|
-
* naming the message slot ("setMaxListeners" for the static call,
|
|
2568
|
-
* "defaultMaxListeners" for the module-property assignment). */
|
|
2569
|
-
| "emitter.setMaxChk" | "emitter.setDefaultMaxChk"
|
|
2570
|
-
/** The Buffer forms of fs: readFileSync(path) with NO
|
|
2571
|
-
* encoding → bytes<u8> (+1), writeFileSync/appendFileSync(path, bytes), and the
|
|
2572
|
-
* fs/promises readFile(path) no-encoding form (an already-settled
|
|
2573
|
-
* promise, rejecting on failure like the other fsp members). The sync
|
|
2574
|
-
* forms THROW catchably on failure exactly like the utf8 forms. */
|
|
2575
|
-
| "fs.readFileSyncBytes" | "fs.writeFileSyncBytes" | "fs.appendFileSyncBytes" | "fsp.readFileBytes"
|
|
2576
|
-
/** node:zlib (scr_zlib.c — native-toolchain.ts compiles/links it ONLY when these
|
|
2577
|
-
* appear on the IR, the regex/libcurl gating precedent): one-shot zlib,
|
|
2578
|
-
* raw-DEFLATE, gzip, and auto-detect codecs over u8 bytes with Node's
|
|
2579
|
-
* default options, or a validated literal compression level from -1 to 9.
|
|
2580
|
-
* Compression never throws (OOM aborts); decompression
|
|
2581
|
-
* of corrupt input THROWS Node's error catchably. */
|
|
2582
|
-
| "zlib.deflateSync" | "zlib.inflateSync" | "zlib.deflateRawSync"
|
|
2583
|
-
/** bytes, mode (0 zlib / 1 raw / 2 gzip), validated compression level. */
|
|
2584
|
-
| "zlib.deflateLevelSync" | "zlib.inflateRawSync" | "zlib.gzipSync" | "zlib.gunzipSync" | "zlib.unzipSync"
|
|
2585
|
-
/** The default-options callback twins run on the executable's shared
|
|
2586
|
-
* native work pool and deliver (Error | null, Buffer) on a later loop
|
|
2587
|
-
* turn. crc32 validates its optional uint32 seed synchronously. */
|
|
2588
|
-
| "zlib.deflateCb" | "zlib.inflateCb" | "zlib.deflateRawCb" | "zlib.inflateRawCb" | "zlib.gzipCb" | "zlib.gunzipCb" | "zlib.unzipCb" | "zlib.crc32"
|
|
2589
|
-
/** The Buffer overloads of the raw stream writes — same promptly
|
|
2590
|
-
* submitted streams as process.stdoutWrite/stderrWrite, constantly true.
|
|
2591
|
-
* The encoding arg is evaluated but ignored for bytes, like Node. The Cb
|
|
2592
|
-
* forms move their program-shaped completion callback to the tick queue. */
|
|
2593
|
-
| "process.stdoutWriteBytes" | "process.stderrWriteBytes" | "process.stdoutWriteBytesCb" | "process.stderrWriteBytesCb" | "fsp.readFile" | "fsp.writeFile"
|
|
2594
|
-
/** fs.promises.writeFile(path, data, { mode }): the settled-promise
|
|
2595
|
-
* twin of fs.writeFileModeSync. */
|
|
2596
|
-
| "fsp.writeFileMode" | "fsp.mkdir"
|
|
2597
|
-
/** The fs/promises option/member tail the certs pipeline uses: mkdir's
|
|
2598
|
-
* literal { recursive?, mode? } options (the mkdirSync matrix behind
|
|
2599
|
-
* settled promises), unlink, chmod. Failures REJECT (catchable at the
|
|
2600
|
-
* await), like the rest of the fsp family. */
|
|
2601
|
-
| "fsp.mkdirMode" | "fsp.mkdirRecursive" | "fsp.mkdirRecursiveMode" | "fsp.unlink" | "fsp.chmod" | "fsp.link" | "fsp.symlink" | "fsp.readlink" | "fsp.statfs" | "fsp.readlinkStr" | "fsp.readlinkBuffer" | "fsp.utimes" | "fsp.lutimes" | "fsp.rename" | "fsp.readdir"
|
|
2602
|
-
/** `fs.promises.readdir(path, { withFileTypes: true })` — the settled-
|
|
2603
|
-
* promise twin of fs.readdirTypesSync. The backends assemble the same
|
|
2604
|
-
* call-site-shaped Dirent rows, then move the array into a promise;
|
|
2605
|
-
* scandir failure becomes its rejection. */
|
|
2606
|
-
| "fsp.readdirTypes" | "fsp.rm" | "fsp.stat" | "fsp.realpath" | "fsp.lstat"
|
|
2607
|
-
/** fs/promises.open and the statically represented FileHandle surface.
|
|
2608
|
-
* Every operation returns an already-settled promise; syscall failures
|
|
2609
|
-
* become rejections rather than escaping synchronously. read/write
|
|
2610
|
-
* results are call-site record shapes ({ bytesRead/bytesWritten,
|
|
2611
|
-
* buffer }) assembled by the backends around the fixed runtime ABI. */
|
|
2612
|
-
| "fsp.open" | "fileHandle.fd" | "fileHandle.close" | "fileHandle.sync" | "fileHandle.datasync" | "fileHandle.truncate" | "fileHandle.chmod" | "fileHandle.utimes" | "fileHandle.readv" | "fileHandle.writev" | "fileHandle.read" | "fileHandle.writeBytes" | "fileHandle.writeStr" | "fileHandle.readFile" | "fileHandle.readFileBytes" | "fileHandle.writeFile" | "fileHandle.writeFileBytes" | "fileHandle.stat" | "process.argv" | "process.platform"
|
|
2613
|
-
/** getenv(3): one string key arg → the interned `string | undefined`
|
|
2614
|
-
* union (present: +1 string wrapped into the string arm; absent: the
|
|
2615
|
-
* interned undefined-arm instance). BOTH source forms — `process.env.FOO`
|
|
2616
|
-
* and `process.env[expr]` — lower here. Purely static; never throws. */
|
|
2617
|
-
| "process.envGet"
|
|
2618
|
-
/** setenv(3): (name, value) string args → void. Later envGet reads and
|
|
2619
|
-
* spawned children observe the write, like Node (values are strings —
|
|
2620
|
-
* the frontend fences non-string RHS). Never throws. */
|
|
2621
|
-
| "process.envSet"
|
|
2622
|
-
/** The whole environment as alternating [k0, v0, k1, v1, ...] strings in
|
|
2623
|
-
* environ order — the raw material of the process.env SNAPSHOT record
|
|
2624
|
-
* (the frontend's interned %env.snapshot helper keyed-writes the pairs
|
|
2625
|
-
* into a fresh `{ [k: string]: string | undefined }` record). Fresh +1
|
|
2626
|
-
* array; never throws. */
|
|
2627
|
-
| "process.envPairs" | "process.exit"
|
|
2628
|
-
/** Numeric process.exitCode write (integer validation, implicit exit status). */
|
|
2629
|
-
| "process.setExitCode"
|
|
2630
|
-
/** The code for process.exit() with no argument, or zero when unset. */
|
|
2631
|
-
| "process.currentExitCode" | "process.cwd"
|
|
2632
|
-
/** getpid(2) / getuid(2): zero args → f64. POSIX-only target, so both
|
|
2633
|
-
* always answer (the checker's `getuid?` optionality covers Windows —
|
|
2634
|
-
* `process.getuid?.()` lowers as the plain call). Never throw. */
|
|
2635
|
-
| "process.pid" | "process.getuid" | "process.getgid"
|
|
2636
|
-
/** The ambient receiver — JS `this` in a plain (non-method) function
|
|
2637
|
-
* body: the innermost binding the current firing/dispatch window
|
|
2638
|
-
* pushed (Node's listener receiver, a dyn OBJ method's object, an
|
|
2639
|
-
* apply/call thisArg), or the undefined dyn singleton with none bound
|
|
2640
|
-
* (the strict-mode plain-call answer, the old constant). Zero args →
|
|
2641
|
-
* dyn (+1). Never throws. */
|
|
2642
|
-
| "dyn.dataViewIs" | "dyn.construct" | "dyn.this" | "dyn.generatorThis"
|
|
2643
|
-
/** process.execPath: the compiled binary's own resolved absolute path
|
|
2644
|
-
* (one interned string, +1 per read) — the honest answer where Node's
|
|
2645
|
-
* is the node executable's (SEMANTICS.md divergence 12). Never throws. */
|
|
2646
|
-
| "process.execPath"
|
|
2647
|
-
/** process.arch: the compiled binary's OWN architecture ("arm64",
|
|
2648
|
-
* "x64") — Node's answer for its own build on the same machine.
|
|
2649
|
-
* Interned; +1 per read. Never throws. */
|
|
2650
|
-
| "process.arch"
|
|
2651
|
-
/** Stable native version dictionary. node/openssl identify compatibility
|
|
2652
|
-
* targets; components absent from the native runtime are omitted. */
|
|
2653
|
-
| "process.versions" | "process.builtinId" | "process.builtinModule" | "process.builtinUnsupported" | "fs.callbackValue" | "fs.callbackCall" | "process.hrtimeValue"
|
|
2654
|
-
/** process.versions.node: the runtime's Node COMPATIBILITY TARGET —
|
|
2655
|
-
* there is no Node under the binary, so this reports the version whose
|
|
2656
|
-
* semantics the runtime implements (SEMANTICS.md divergence 60, the
|
|
2657
|
-
* execPath stance). Interned; +1 per read. Never throws. */
|
|
2658
|
-
| "process.versionsNode" | "process.versionsOpenssl"
|
|
2659
|
-
/** umask(2): arg < 0 reads without setting (umask has no read-only form
|
|
2660
|
-
* — set 0, restore); otherwise sets and answers the PREVIOUS mask.
|
|
2661
|
-
* Never throws. */
|
|
2662
|
-
| "process.umask"
|
|
2663
|
-
/** chdir(2) — throws Node's fs-shaped error (ENOENT/EACCES/ENOTDIR,
|
|
2664
|
-
* syscall "chdir") on failure. */
|
|
2665
|
-
| "process.chdir" | "process.loadEnvFile"
|
|
2666
|
-
/** process._exiting: true once the exit sequence began (exit listeners
|
|
2667
|
-
* running) — the runtime flag scr_run_exit_listeners/process.exit set.
|
|
2668
|
-
* Never throws. */
|
|
2669
|
-
| "process.exiting"
|
|
2670
|
-
/** os.type(): uname(2)'s sysname ("Darwin", "Linux"; "Windows_NT" on
|
|
2671
|
-
* win32) — Node's uv_os_uname answer. Interned per call; never throws. */
|
|
2672
|
-
| "os.type"
|
|
2673
|
-
/** os.totalmem(): total physical memory in bytes. Never throws. */
|
|
2674
|
-
| "os.totalmem"
|
|
2675
|
-
/** net's process-wide happy-eyeballs attempt budget (Node's default
|
|
2676
|
-
* 250ms): one runtime double in the core unit, so reading/writing it
|
|
2677
|
-
* never forces the net unit into the link. Never throw. */
|
|
2678
|
-
| "net.getAutoSelTimeout" | "net.setAutoSelTimeout"
|
|
2679
|
-
/** realpath(3) with Node's error shape (syscall "lstat" in the message,
|
|
2680
|
-
* Node's own spelling for realpathSync failures). +1 fresh string. */
|
|
2681
|
-
| "fs.realpathSync"
|
|
2682
|
-
/** Native realpath with syscall "realpath" on failure. +1 fresh string. */
|
|
2683
|
-
| "fs.realpathNativeSync"
|
|
2684
|
-
/** kill(2) with Node's exact semantics and error shapes: the pid must be
|
|
2685
|
-
* an int32 (else the ERR_INVALID_ARG_TYPE TypeError text), the named
|
|
2686
|
-
* form resolves Node's signal-name table (unknown names throw the
|
|
2687
|
-
* ERR_UNKNOWN_SIGNAL TypeError), an omitted signal completes to
|
|
2688
|
-
* "SIGTERM" in the frontend, signal 0 probes, and a kill(2) failure
|
|
2689
|
-
* throws Node's `kill ESRCH`/`kill EPERM` Error. Result is Node's
|
|
2690
|
-
* constant true. */
|
|
2691
|
-
| "process.kill" | "process.killNum"
|
|
2692
|
-
/** execFileSync/execSync as ONE entry (args: cmd, argv, shell, input,
|
|
2693
|
-
* cwd, hasEnv, envPairs, timeoutMs, stdoutMode, stderrMode — see
|
|
2694
|
-
* scr_runtime.h). Throws Node's exact errors: "Command failed: <cmd>"
|
|
2695
|
-
* (+ captured stderr) on non-zero exit or signal death, "spawnSync
|
|
2696
|
-
* <file> ENOENT" on spawn failure, "spawnSync <file> ETIMEDOUT" after
|
|
2697
|
-
* the SIGTERM timeout. Result is the captured utf8 stdout (+1). */
|
|
2698
|
-
| "cp.execSync"
|
|
2699
|
-
/** The promisified-execFile capture (args: cmd, argv, cwd, hasEnv,
|
|
2700
|
-
* envPairs, timeoutMs): the same exec core in the async shape — both
|
|
2701
|
-
* streams captured, no echo, Node's ASYNC messages on the throw paths
|
|
2702
|
-
* ("Command failed: <cmd>\n<stderr>" with the unconditional newline,
|
|
2703
|
-
* "spawn <file> ENOENT" with .code, timeouts reporting as ordinary
|
|
2704
|
-
* SIGTERM command failures — never ETIMEDOUT). Result reuses the
|
|
2705
|
-
* ScrSpawnRes container (+1; stdout/stderr strings, status unused).
|
|
2706
|
-
* Called only from the frontend's interned %execFileAsync ASYNC helper,
|
|
2707
|
-
* whose fiber turns the throw into the rejection. */
|
|
2708
|
-
| "cp.execCapture"
|
|
2709
|
-
/** The raw byte writes: one borrowed string arg → bool (constantly true
|
|
2710
|
-
* — this synchronous runtime never queues backpressure). stdoutWrite
|
|
2711
|
-
* shares console.log's stream, each call is submitted promptly, and
|
|
2712
|
-
* interleaved output keeps source order. No newline, no formatting,
|
|
2713
|
-
* never throws. */
|
|
2714
|
-
| "process.stdoutWrite" | "process.stderrWrite" | "process.stdio" | "timers.setTimeout"
|
|
2715
|
-
/** The repeating timer pair. setInterval takes (callback, ms) like
|
|
2716
|
-
* setTimeout and RETURNS the f64 handle the fallback declarations
|
|
2717
|
-
* promise (ids start at 1, so truthiness narrowing works); the loop
|
|
2718
|
-
* owns the callback until clearInterval removes the entry (eagerly — a
|
|
2719
|
-
* live interval keeps the loop alive, a cleared one releases it, like
|
|
2720
|
-
* Node). Neither throws; a throw ESCAPING an interval callback ends the
|
|
2721
|
-
* program like a setTimeout throw. */
|
|
2722
|
-
| "timers.setInterval" | "timers.clearInterval"
|
|
2723
|
-
/** setTimeout WITH a clear handle (the f64 id) — the clearable/unref-able
|
|
2724
|
-
* one-shot; clearTimeout cancels it, .unref() drops it from loop
|
|
2725
|
-
* liveness. The plain timers.setTimeout stays the handle-less
|
|
2726
|
-
* fire-and-forget. */
|
|
2727
|
-
| "timers.setTimeoutHandle" | "timers.clearTimeout"
|
|
2728
|
-
/** Timeout.unref()/ref()/hasRef() — loop-liveness bookkeeping over the
|
|
2729
|
-
* handle id. unref/ref RETURN the handle (f64) for chaining; hasRef
|
|
2730
|
-
* returns bool. */
|
|
2731
|
-
| "timers.unref" | "timers.ref" | "timers.hasRef"
|
|
2732
|
-
/** Timeout.refresh() — re-arm to now + the original delay (from the
|
|
2733
|
-
* heap or from inside the firing callback; a one-shot that fired on an
|
|
2734
|
-
* earlier turn is gone and no-ops — documented divergence). Returns
|
|
2735
|
-
* the handle for chaining like unref/ref. */
|
|
2736
|
-
| "timers.refresh"
|
|
2737
|
-
/** setImmediate/clearImmediate — Node's check phase: callbacks run
|
|
2738
|
-
* once per loop turn AFTER due timers, FIFO, and immediates queued
|
|
2739
|
-
* mid-phase wait for the next turn. setImmediate returns the f64
|
|
2740
|
-
* handle (its own id space — clearTimeout of an Immediate no-ops,
|
|
2741
|
-
* like Node); the Immediate ref trio mirrors the Timeout one (an
|
|
2742
|
-
* unref'd pending immediate neither keeps the loop alive nor fires
|
|
2743
|
-
* once nothing reffed remains). */
|
|
2744
|
-
| "timers.setImmediate" | "timers.clearImmediate" | "timers.immediateUnref" | "timers.immediateRef" | "timers.immediateHasRef"
|
|
2745
|
-
/** queueMicrotask (scr_async.c): the callback enters the SAME FIFO
|
|
2746
|
-
* promise continuations ride — one microtask order, like V8's queue —
|
|
2747
|
-
* and a throw is an UNCAUGHT exception (never a rejection).
|
|
2748
|
-
* timers.queueMicrotask takes an owned zero-param closure and never
|
|
2749
|
-
* throws; the Dyn form (checked-dynamic arguments — the mustCall
|
|
2750
|
-
* wrapper, the suite's invalid-input probes) throws Node's
|
|
2751
|
-
* ERR_INVALID_ARG_TYPE synchronously on a non-function value and calls
|
|
2752
|
-
* the function with zero arguments at drain. */
|
|
2753
|
-
| "timers.queueMicrotask" | "timers.queueMicrotaskDyn"
|
|
2754
|
-
/** The tolerated non-handle clear (`clearTimeout(null)`,
|
|
2755
|
-
* `clearInterval({})`, zero-argument forms): Node silently ignores
|
|
2756
|
-
* anything that is not a live handle — a VOID no-op the emitter drops
|
|
2757
|
-
* (only syntactically side-effect-free arguments take this path). */
|
|
2758
|
-
| "timers.clearNoop"
|
|
2759
|
-
/** process.nextTick(cb, ...args) — the user tick queue. args: [cb
|
|
2760
|
-
* (() => void; trailing call arguments ride the timer surface's
|
|
2761
|
-
* interned dyn thunk)]. Ticks drain BEFORE promise jobs at every loop
|
|
2762
|
-
* checkpoint, to joint exhaustion with them (Node's tick-then-
|
|
2763
|
-
* microtask order); ticks enqueued by station listeners run at the
|
|
2764
|
-
* NEXT checkpoint (the stream-tick station divergence, SEMANTICS.md).
|
|
2765
|
-
* Pending ticks are always-ready work — the loop neither sleeps nor
|
|
2766
|
-
* exits while any exist; ticks scheduled from 'exit' listeners never
|
|
2767
|
-
* run (Node). The enqueue itself never throws. */
|
|
2768
|
-
| "process.nextTick"
|
|
2769
|
-
/** The process introspection statics. uptime: seconds since the
|
|
2770
|
-
* binary's own start (fractional — a load-time monotonic anchor).
|
|
2771
|
-
* availableMemory/constrainedMemory: libuv's numbers (free-ish bytes;
|
|
2772
|
-
* the cgroup cap or 0). cpuUser/cpuSystem (+ threadCpu twins): the
|
|
2773
|
-
* process/thread CPU clocks in microseconds — the frontend composes
|
|
2774
|
-
* the {user, system} records. The *Diff forms answer current − prev
|
|
2775
|
-
* for one field; cpuPrevValidate throws Node's ERR_INVALID_ARG_VALUE
|
|
2776
|
-
* RangeError for negative/non-finite prev fields (user first, then
|
|
2777
|
-
* system — Node's order; MAY THROW). rusage(idx): one
|
|
2778
|
-
* process.resourceUsage() field by canonical index (Node's units).
|
|
2779
|
-
* activeResources: the loop's own bookkeeping — 'Timeout' per armed
|
|
2780
|
-
* (or firing, uncleared) timer, 'Immediate' per queued unfired
|
|
2781
|
-
* immediate; unmodeled resource kinds are absent (SEMANTICS.md). */
|
|
2782
|
-
| "process.uptime"
|
|
2783
|
-
/** perf_hooks performance.now(): fractional ms since process start. */
|
|
2784
|
-
| "perf.now" | "process.availableMemory" | "process.constrainedMemory" | "process.cpuUser" | "process.cpuSystem" | "process.cpuUserDiff" | "process.cpuSystemDiff" | "process.threadCpuUser" | "process.threadCpuSystem" | "process.threadCpuUserDiff" | "process.threadCpuSystemDiff" | "process.cpuPrevValidate" | "process.rusage" | "process.activeResources"
|
|
2785
|
-
/** Named process signal events: [name string, callback dyn, once bool]
|
|
2786
|
-
* or [name, callback] for removal. The runtime resolves platform signal
|
|
2787
|
-
* numbers and delivers (name, number). Listeners do not keep the loop
|
|
2788
|
-
* alive. Invalid callbacks and uncatchable signals throw. */
|
|
2789
|
-
| "process.onSignal" | "process.offSignal"
|
|
2790
|
-
/** The process 'exit' event — process.on/once/off("exit"). args: [cb,
|
|
2791
|
-
* once bool] / [cb]. Listeners run SYNCHRONOUSLY at termination
|
|
2792
|
-
* (normal exit, process.exit(), the uncaught/unhandled exit-1 paths)
|
|
2793
|
-
* with the exit code; anything they schedule never runs, like Node.
|
|
2794
|
-
* Callback shapes: () => void or (code: number) => void — the emitter
|
|
2795
|
-
* picks the runtime adapter. Never throw. */
|
|
2796
|
-
| "process.onExit" | "process.offExit"
|
|
2797
|
-
/** process.stdin listener registration — stdin.on/once("data" | "end" |
|
|
2798
|
-
* "error", cb). args: [cb, once bool]. data callbacks: () => void or
|
|
2799
|
-
* (chunk: Uint8Array) => void; end: () => void; error: () => void or
|
|
2800
|
-
* (err: Error) => void (the child error adapters are reused). While a
|
|
2801
|
-
* data listener (or a parked for-await chunk promise) exists, stdin
|
|
2802
|
-
* keeps the loop alive — Node's flowing-stdin keep-alive. Never
|
|
2803
|
-
* throw. */
|
|
2804
|
-
| "stdin.onData" | "stdin.onEnd" | "stdin.onError"
|
|
2805
|
-
/** The for-await chunk source over process.stdin: no args, result
|
|
2806
|
-
* Promise<Uint8Array> (+1). Fulfills with the next arrived chunk; the
|
|
2807
|
-
* EMPTY bytes value is the done sentinel (POSIX reads never deliver
|
|
2808
|
-
* empty data chunks), which the for-await desugar turns into loop
|
|
2809
|
-
* exit. Never throws itself; awaiting it re-throws nothing (stdin
|
|
2810
|
-
* errors surface through 'error' listeners, not the iterator). */
|
|
2811
|
-
| "stdin.nextChunk"
|
|
2812
|
-
/** The runtime-provided Error hierarchy's entry points (scr_error.c).
|
|
2813
|
-
* error.new: one borrowed string arg (the message), result an owned (+1)
|
|
2814
|
-
* builtin error instance — the result TYPE names which builtin class
|
|
2815
|
-
* (backends derive the runtime kind from it). error.ctor: the
|
|
2816
|
-
* super(message) call of an `extends Error` constructor — borrowed
|
|
2817
|
-
* receiver (already allocated by the derived class's new) + borrowed
|
|
2818
|
-
* message, void; the receiver's type names the builtin class whose name
|
|
2819
|
-
* field to stamp. error.toString: borrowed `%Error`-typed receiver, +1
|
|
2820
|
-
* string in Node's "name: message" shape. Formatting can invoke a user
|
|
2821
|
-
* message accessor, which can throw. */
|
|
2822
|
-
| "error.new"
|
|
2823
|
-
/** ECMAScript constructors with raw checked-dynamic message/options.
|
|
2824
|
-
* Options retain cause presence; constructor calls borrow their args.
|
|
2825
|
-
* Message coercion may throw before the cause is installed. */
|
|
2826
|
-
| "error.newOptions" | "error.ctorOptions"
|
|
2827
|
-
/** Borrowed Error receiver. cause returns an owned dyn value (undefined
|
|
2828
|
-
* when absent); hasCause distinguishes absence from present undefined. */
|
|
2829
|
-
| "error.cause" | "error.hasCause"
|
|
2830
|
-
/** Assignment borrows both operands and retains the new cause. */
|
|
2831
|
-
| "error.setCause" | "error.defineCause" | "error.deleteCause"
|
|
2832
|
-
/** The compiler-resolved Node-parity throw for always-throwing lowered
|
|
2833
|
-
* arms (ERR_INVALID_THIS receivers, ERR_MISSING_ARGS arity ladders,
|
|
2834
|
-
* the symbol-to-string TypeError): args are [error-kind f64 (the
|
|
2835
|
-
* SCR_ERR_* index: 0 Error, 1 TypeError, 2 RangeError), code (empty =
|
|
2836
|
-
* no code slot), message]. ALWAYS THROWS catchably; the result type is
|
|
2837
|
-
* the replaced expression's own (never materialized — the
|
|
2838
|
-
* global.undefRead pattern). May-throw seed. */
|
|
2839
|
-
| "error.nodeThrow"
|
|
2840
|
-
/** JS ToString over a dyn value WITH the object protocol (a user
|
|
2841
|
-
* toString/valueOf member is CALLED and its throw propagates;
|
|
2842
|
-
* exhaustion throws "Cannot convert object to primitive value"; units
|
|
2843
|
-
* render "null"/"undefined") — the WHATWG USVString conversions
|
|
2844
|
-
* (URLSearchParams names/values). Borrowed dyn; +1 string. May-throw. */
|
|
2845
|
-
| "dyn.toStringCoerce" | "dyn.stringConstructor" | "dyn.propertyKey" | "dyn.toNumeric" | "dyn.increment"
|
|
2846
|
-
/** JS ToNumber over a dyn value WITH the object protocol (number-hint
|
|
2847
|
-
* valueOf/toString ordering; user throws propagate). Borrowed dyn;
|
|
2848
|
-
* f64 result, or a throw. Used by statically lowered numeric coercions
|
|
2849
|
-
* whose checker type remained any. */
|
|
2850
|
-
| "dyn.numberConstructor" | "dyn.bigintConstructor" | "dyn.toNumberCoerce" | "dyn.add" | "dyn.arithmetic" | "dyn.compare" | "dyn.bitwise" | "dyn.proxyNew"
|
|
2851
|
-
/** A read of a `declare`d const NOTHING defines (the bundler-define
|
|
2852
|
-
* pattern — __VERSION__): always throws the catchable ReferenceError
|
|
2853
|
-
* Node raises at the access ("<name> is not defined"). args[0] is the
|
|
2854
|
-
* name; the result type is the read's declared type (a typed dummy the
|
|
2855
|
-
* unwind abandons — the value never exists). */
|
|
2856
|
-
| "global.undefRead"
|
|
2857
|
-
/** A native reference to the global object; known names retain value fences. */
|
|
2858
|
-
| "global.native" | "console.native"
|
|
2859
|
-
/** `X.name` through a class VALUE (scr_object.c): args[0] is a borrowed
|
|
2860
|
-
* classval; the result is the class object's stored .name string,
|
|
2861
|
-
* retained (+1 — the string is an interned immortal, so the retain is a
|
|
2862
|
-
* no-op, kept for ownership uniformity). Never throws. A direct
|
|
2863
|
-
* `C.name` on the class name itself folds to a strLit instead. */
|
|
2864
|
-
| "class.name" | "error.ctor" | "error.toString" | "error.stack" | "error.stackLimitGet" | "error.stackLimitSet"
|
|
2865
|
-
/** `new DOMException(message?, nameOrOptions?)` (scr_error.c): both args
|
|
2866
|
-
* are borrowed dyn values (the lowering passes the dyn undefined for an
|
|
2867
|
-
* absent argument, so WebIDL's optionality lives in one place). The
|
|
2868
|
-
* runtime ToStrings the message ("" for absent/undefined), resolves the
|
|
2869
|
-
* name — absent/undefined → "Error", a non-null object → ToString of its
|
|
2870
|
-
* `name` member plus the `cause` own-property record, anything else →
|
|
2871
|
-
* ToString — and stamps the legacy code from the WebIDL name table (0
|
|
2872
|
-
* off-table). Result is an owned (+1) %DOMException. Never throws (dyn
|
|
2873
|
-
* ToString is total). */
|
|
2874
|
-
| "error.newDom"
|
|
2875
|
-
/** DOMException's own read surface (scr_error.c; %DOMException receivers
|
|
2876
|
-
* only — borrowed). domCode: the legacy numeric code. domHasCause: the
|
|
2877
|
-
* options form's own-property record (`'cause' in e`). domCause: the
|
|
2878
|
-
* cause value, +1 (the dyn undefined when absent — matching Node's
|
|
2879
|
-
* undefined read). None throws. */
|
|
2880
|
-
| "error.domCode" | "error.domHasCause" | "error.domCause"
|
|
2881
|
-
/** structuredClone of a %DOMException receiver (scr_error.c): WebIDL
|
|
2882
|
-
* serialization — name/message copy, the legacy code re-derives, cause
|
|
2883
|
-
* does not serialize. args are the borrowed receiver and the borrowed
|
|
2884
|
-
* options dyn value (the dyn undefined when absent — the shared
|
|
2885
|
-
* validation throws Node's exact option errors; any non-empty transfer
|
|
2886
|
-
* list throws DataCloneError, nothing static is transferable). Result
|
|
2887
|
-
* +1 %DOMException. */
|
|
2888
|
-
| "error.domClone"
|
|
2889
|
-
/** `d instanceof TypeError` (and the other BUILTIN error classes) on a
|
|
2890
|
-
* checked-dynamic value (scr_json.c): the from_error cache holds the
|
|
2891
|
-
* dyn↔error identity edge, so the test resolves the runtime error and
|
|
2892
|
-
* asks its vtable's stamped preorder interval — exact for every error
|
|
2893
|
-
* that crossed the boundary. A dyn object that never came from an
|
|
2894
|
-
* error (a hand-built {%error} literal) answers false: subclass
|
|
2895
|
-
* identity is unknowable there (the root keeps dynTest's marker
|
|
2896
|
-
* answer). args are the borrowed dyn and the SCR_ERR_* kind literal.
|
|
2897
|
-
* Never throws. */
|
|
2898
|
-
| "dyn.errInstanceof"
|
|
2899
|
-
/** Object.keys/values/entries over a CHECKED-DYNAMIC receiver
|
|
2900
|
-
* (scr_json.c): the runtime walks the dyn node's own members in JS
|
|
2901
|
-
* own-key order (array-index keys ascending first, then insertion
|
|
2902
|
-
* order) and answers a dyn array (entries: an array of [key, value]
|
|
2903
|
-
* pairs; values RETAIN the member nodes — reference semantics, like
|
|
2904
|
-
* JS). Strings/arrays/bytes answer their index keys; other scalars an
|
|
2905
|
-
* empty array; null/undefined throw Node's catchable TypeError
|
|
2906
|
-
* ("Cannot convert undefined or null to object"). */
|
|
2907
|
-
| "dyn.objKeys" | "dyn.forInKeys" | "dyn.hasOwn" | "dyn.propertyIsEnumerable" | "dyn.assign" | "dyn.copyDataProperties" | "dyn.objectRest"
|
|
2908
|
-
/** Variadic Object.assign over CHECKED-DYNAMIC targets (`Object.assign(
|
|
2909
|
-
* {}, ...arr.map(f), tail)` — the option-table merge): the lowering
|
|
2910
|
-
* builds one fresh dyn pack of sources (packPush retains a plain source
|
|
2911
|
-
* in; packPushSpread flattens a spread source through the spread-call
|
|
2912
|
-
* walk — V8's exact TypeError texts, the string arg spelling the spread
|
|
2913
|
-
* expression for the nullish form), so every source evaluates and
|
|
2914
|
-
* flattens BEFORE any copying (JS's ArgumentListEvaluation), then
|
|
2915
|
-
* assignAll copies each pack element's own enumerable keys onto the
|
|
2916
|
-
* target left to right and answers the TARGET (+1) — identity, like JS.
|
|
2917
|
-
* assignAll throws Node's ToObject TypeError on a nullish target. */
|
|
2918
|
-
| "dyn.packPush" | "dyn.packPushSpread"
|
|
2919
|
-
/** The iterated-path spread twin: V8 spells the optimized apply-path
|
|
2920
|
-
* texts (packPushSpread's — the expression named for nullish sources)
|
|
2921
|
-
* only for the SINGLE LAST argument's spread; any other spread position
|
|
2922
|
-
* drives the real iterator protocol, whose failure describes the VALUE
|
|
2923
|
-
* ("object null is not iterable (cannot read property
|
|
2924
|
-
* Symbol(Symbol.iterator))"). The frontend picks by position. */
|
|
2925
|
-
| "dyn.packPushSpreadIter" | "dyn.assignAll" | "dyn.reflectApply" | "dyn.reflectGet" | "dyn.reflectSet" | "dyn.reflectDefine" | "dyn.abstractEq"
|
|
2926
|
-
/** `Object.create(null)` (scr_json.c): a fresh NULL-PROTOTYPE dyn
|
|
2927
|
-
* dictionary. The checked-dynamic tree's OBJ dispatch is already own-member-only —
|
|
2928
|
-
* Node's null-proto answer — so the flag's whole job is the observations
|
|
2929
|
-
* that SEE the prototype: inspect's "[Object: null prototype]" prefix
|
|
2930
|
-
* and deepStrictEqual's prototype gate. Never throws. Static builds
|
|
2931
|
-
* only; --dynamic routes Object.create through the engine instead. */
|
|
2932
|
-
| "dyn.objCreateNullProto" | "dyn.arrayPrototype" | "dyn.arrayConstructor" | "dyn.objectPrototype" | "dyn.functionApply" | "dyn.builtinMethod" | "dyn.classPrototype" | "dyn.classBasePrototype" | "dyn.classInherit" | "dyn.classSuper" | "dyn.assignPrototype" | "dyn.definePrototypeProps" | "dyn.bagGet" | "dyn.bagSet" | "dyn.objCreate" | "dyn.objCreateWithProperties" | "dyn.getPrototype" | "dyn.setPrototype" | "dyn.getOwnPropertyNames" | "dyn.ownKeys" | "dyn.getOwnPropertySymbols" | "dyn.getOwnPropertyDescriptors" | "dyn.preventExtensions" | "dyn.isExtensible" | "dyn.seal" | "dyn.isSealed" | "dyn.objValues" | "dyn.objEntries"
|
|
2933
|
-
/** structuredClone over the checked-dynamic tree (scr_json.c): the JSON-safe subset plus
|
|
2934
|
-
* bytes (a fresh copy — a Buffer clones as a plain Uint8Array, like
|
|
2935
|
-
* Node), deep. Functions and handle kinds throw the spec's catchable
|
|
2936
|
-
* DataCloneError; CYCLES throw the scriptc fence (the checked-dynamic tree cannot
|
|
2937
|
-
* represent them — Node clones cycles; documented divergence). The
|
|
2938
|
-
* options dyn value validates with Node's exact errors (dictionary
|
|
2939
|
-
* conversion, the transfer-sequence member; any non-empty transfer
|
|
2940
|
-
* list throws DataCloneError). dyn.cloneMissing is the zero-argument
|
|
2941
|
-
* call: always throws Node's TypeError [ERR_MISSING_ARGS] with Node's
|
|
2942
|
-
* own (verbatim, doubly-wrapped) message. */
|
|
2943
|
-
| "dyn.structuredClone" | "dyn.cloneMissing"
|
|
2944
|
-
/** `new RegExp(pattern, flags?)` (scr_regex.c): a heap regex over the
|
|
2945
|
-
* same libregexp engine the literals use. The pattern compiles EAGERLY
|
|
2946
|
-
* so an invalid pattern (or an unknown flag letter) throws Node's
|
|
2947
|
-
* catchable SyntaxError at construction — Node's message shape with
|
|
2948
|
-
* libregexp's detail text (approximate fidelity; e.name exact). An
|
|
2949
|
-
* empty pattern stores the spec's "(?:)" source. Both args borrowed
|
|
2950
|
-
* strings (the lowering completes an absent flags to ""); result +1.
|
|
2951
|
-
* The result TYPE is the regex kind, so the link switch pulls the
|
|
2952
|
-
* engine exactly like a literal. */
|
|
2953
|
-
| "regex.new" | "regex.resetLastIndex" | "regex.newChecked"
|
|
2954
|
-
/** structuredClone with a NON-EMPTY transfer array of static values:
|
|
2955
|
-
* nothing static is transferable, so the call always throws Node's
|
|
2956
|
-
* catchable DataCloneError ("Found invalid value in transferList.") —
|
|
2957
|
-
* lowered directly (the list's values need no dyn representation to
|
|
2958
|
-
* fail). */
|
|
2959
|
-
| "dyn.cloneTransferFail"
|
|
2960
|
-
/** node:events EventEmitter (scr_events_emitter.c, link-gated by
|
|
2961
|
-
* moduleUsesEmitter). The receiver of every instance form is a borrowed
|
|
2962
|
-
* emitter-hierarchy object (`%EventEmitter` or a user subclass — the
|
|
2963
|
-
* backend reinterprets to ScrEmitter*, the identical prefix); event
|
|
2964
|
-
* names are borrowed strings (compile-time literals — the frontend
|
|
2965
|
-
* fences non-literals and unifies each event's argument tuple program-
|
|
2966
|
-
* wide). The chaining forms (on/off/removeAll/setMax) return the
|
|
2967
|
-
* receiver +1 typed as its static class, Node's `return this`.
|
|
2968
|
-
*
|
|
2969
|
-
* emitter.new: `new EventEmitter()` → a +1 bare emitter. emitter.ctor:
|
|
2970
|
-
* super() into the prefix of an emitted subclass (borrowed receiver,
|
|
2971
|
-
* void — allocation already initialized the prefix). emitter.on:
|
|
2972
|
-
* (recv, name, cb /moves/, once, prepend) — the backend synthesizes the
|
|
2973
|
-
* per-signature va_list invoke adapter from the cb's func type.
|
|
2974
|
-
* emitter.emit: (recv, name, ...tuple) — VARIADIC, the one libCall
|
|
2975
|
-
* whose arg count exceeds its signature; args are borrowed, result is
|
|
2976
|
-
* the had-listeners bool. emitter.emitError: emit('error', err) —
|
|
2977
|
-
* throws err when unhandled. count/countFn/names/listeners/getMax/
|
|
2978
|
-
* setMax/setDefaultMax/getDefaultMax are the introspection surface. */
|
|
2979
|
-
| "emitter.new" | "emitter.ctor" | "emitter.on" | "emitter.off" | "emitter.checkListener" | "emitter.onDyn" | "emitter.onFlex" | "emitter.offDyn" | "emitter.removeAll" | "emitter.emit" | "emitter.emitFlex" | "emitter.emitError" | "emitter.count" | "emitter.countFn" | "emitter.countDyn" | "emitter.names" | "emitter.listeners" | "emitter.setMax" | "emitter.getMax"
|
|
2980
|
-
/** Stream-'data' registration twins of emitter.on/onDyn (same args):
|
|
2981
|
-
* chosen at registration sites whose receiver is stream-rooted, so the
|
|
2982
|
-
* backend emits DATA thunks — the runtime's 'data' emission carries
|
|
2983
|
-
* BOTH payload slots (bytes, string; exactly one non-NULL — encoded
|
|
2984
|
-
* streams deliver strings), and the thunk unwraps the listener's
|
|
2985
|
-
* declared side (typed) or boxes by tag (dyn). emitter.emitData is the
|
|
2986
|
-
* user-emit form: (recv, name, chunk) with a bytes OR string chunk. */
|
|
2987
|
-
| "emitter.onData" | "emitter.onDataDyn" | "emitter.emitData" | "emitter.setDefaultMax" | "emitter.getDefaultMax"
|
|
2988
|
-
/** node:stream (scr_stream.c, link-gated by moduleUsesStream — which
|
|
2989
|
-
* implies the emitter unit: stream events dispatch through the embedded
|
|
2990
|
-
* ScrEmitter registry). Receivers are borrowed stream-class objects
|
|
2991
|
-
* (`%Readable`/`%Writable`/`%Duplex`/`%Transform`/`%PassThrough` — one
|
|
2992
|
-
* runtime layout, reinterpreted by side).
|
|
2993
|
-
*
|
|
2994
|
-
* Constructors (`readable.new` et al): args are [hwmR, hwmW, flags]
|
|
2995
|
-
* followed by the PRESENT user callbacks in canonical order (read,
|
|
2996
|
-
* write, final, destroy, transform, flush — the flags f64 is a bitmask
|
|
2997
|
-
* naming which follow; absent ones emit NULL). Every callback closure
|
|
2998
|
-
* MOVES and carries a leading `this` param (the stream), invoked
|
|
2999
|
-
* through compiler-emitted adapters. Results are +1.
|
|
3000
|
-
*
|
|
3001
|
-
* readable.push / readable.pushStr / readable.pushNull: Node's push —
|
|
3002
|
-
* buffers or delivers (bytes chunk borrowed; string converted utf8);
|
|
3003
|
-
* returns the below-hwm answer. readable.read: (recv, size — -1 for
|
|
3004
|
-
* absent) → Buffer|null union. pause/resume return recv +1 (`this`);
|
|
3005
|
-
* isPaused answers the flag. readable.pipe: (recv, dst, end) → dst +1,
|
|
3006
|
-
* fires 'pipe' on dst; readable.unpipe (recv[, dst]) → recv +1.
|
|
3007
|
-
* writable.write/writeStr: (recv, chunk[, cb]) → below-hwm bool (cb
|
|
3008
|
-
* MOVES when present, called after the user write completes).
|
|
3009
|
-
* writable.end: (recv, flags[, chunk][, cb]) → recv +1. cork/uncork are
|
|
3010
|
-
* void. stream.destroy/destroyErr: (recv[, err]) → recv +1.
|
|
3011
|
-
* stream.prop: (recv, name-literal) → the flag/number the name asks
|
|
3012
|
-
* for; stream.errored → Error|null union; readable.flowing →
|
|
3013
|
-
* bool|null union. All may leave a listener's exception pending
|
|
3014
|
-
* (dispatch runs user code synchronously, like emit). */
|
|
3015
|
-
| "readable.new" | "writable.new" | "duplex.new" | "transform.new" | "passthrough.new"
|
|
3016
|
-
/** Subclass initialization (`super(options?)` in a user `extends
|
|
3017
|
-
* Readable` constructor): same tail as the `.new` forms, prefixed with
|
|
3018
|
-
* the BORROWED receiver (the emitted subclass allocation — vtable and
|
|
3019
|
-
* display name stamped, state NULL until here). Overridden underscore
|
|
3020
|
-
* methods arrive as synthesized wrapper closures dispatching through
|
|
3021
|
-
* the vtable. Void result. */
|
|
3022
|
-
| "readable.init" | "writable.init" | "duplex.init" | "transform.init" | "passthrough.init"
|
|
3023
|
-
/** The dyn-options twins (a checked-dynamic options record — the JS
|
|
3024
|
-
* lane's `super(options)` forwarding and `new Readable(dynVar)`): the
|
|
3025
|
-
* option walk runs at RUNTIME with Node's reading rules. newDyn:
|
|
3026
|
-
* (optsDyn) → the fresh stream; initDyn: (recv, optsDyn, flags,
|
|
3027
|
-
* ...fallback wrapper closures in canonical order — the flags literal
|
|
3028
|
-
* names which ride, exactly the .init callback ABI). MAY THROW (a
|
|
3029
|
-
* consumed-but-unlowered option is the compile fence's runtime twin). */
|
|
3030
|
-
/** stream.finished(s, cb) — the callback form: the watcher fires once
|
|
3031
|
-
* at the terminal point with the finish status; the result is the +1
|
|
3032
|
-
* cleanup closure. stream.pipeline(count, s1..sn, cb): chains pipes,
|
|
3033
|
-
* propagates the first error by destroying the rest, calls cb after the
|
|
3034
|
-
* last 'close'; answers the destination +1. The Dyn twins take the
|
|
3035
|
-
* callback as a checked-dynamic VALUE (mustCall wrappers). */
|
|
3036
|
-
| "stream.finished" | "stream.finishedDyn" | "stream.pipeline" | "stream.pipelineDyn"
|
|
3037
|
-
/** node:stream/promises — the promise forms over the same machinery:
|
|
3038
|
-
* sp.finished: (s) → a pending void promise the terminal watcher
|
|
3039
|
-
* settles; sp.pipeline: (count, s1..sn) → the callback pipeline's
|
|
3040
|
-
* chaining/destroyer semantics settling a void promise (fulfilled on a
|
|
3041
|
-
* clean finish, rejected with the finish status otherwise). */
|
|
3042
|
-
| "sp.finished" | "sp.pipeline"
|
|
3043
|
-
/** node:stream/consumers — the promise consumers over the readable
|
|
3044
|
-
* machinery: (s) → a pending promise settled at the terminal point
|
|
3045
|
-
* with the accumulated result (sc.text: the utf8 decode, sc.json: the
|
|
3046
|
-
* parsed dyn — malformed input rejects with the parse's SyntaxError,
|
|
3047
|
-
* sc.buffer: the concatenated bytes) or rejected with the stream's
|
|
3048
|
-
* error / ERR_STREAM_PREMATURE_CLOSE. */
|
|
3049
|
-
| "sc.text" | "sc.json" | "sc.buffer" | "readable.newDyn" | "writable.newDyn" | "duplex.newDyn" | "transform.newDyn" | "passthrough.newDyn" | "readable.initDyn" | "writable.initDyn" | "duplex.initDyn" | "transform.initDyn" | "passthrough.initDyn" | "readable.push" | "readable.pushStr" | "readable.pushNull" | "readable.pushU" | "readable.pushDyn" | "readable.unshift" | "readable.unshiftStr" | "readable.read" | "readable.readDyn" | "stream.onDyn" | "readable.pause" | "readable.resume" | "readable.setEncoding"
|
|
3050
|
-
/** push(chunk, enc) with a literal non-utf8 encoding, and the
|
|
3051
|
-
* defaultEncoding option's push side (how push(string) decodes —
|
|
3052
|
-
* Buffer.from(chunk, enc)); both carry the CANONICAL literal. */
|
|
3053
|
-
| "readable.pushStrEnc" | "readable.pushEncoding"
|
|
3054
|
-
/** for-await over a readable (the desugared loop's per-pass promise):
|
|
3055
|
-
* +1 promise of the next chunk — buffered content, the EOF sentinel
|
|
3056
|
-
* (empty Buffer / dyn undefined), or a rejection with the stream's
|
|
3057
|
-
* error. The Dyn twin boxes chunks by runtime tag (the JS lane).
|
|
3058
|
-
* readable.fromArr is Readable.from(array): a fully-seeded object-
|
|
3059
|
-
* entry stream (one whole chunk per element; strings per the flag). */
|
|
3060
|
-
| "readable.nextChunk" | "readable.nextChunkDyn" | "readable.fromArr" | "readable.isPaused" | "readable.pipe" | "readable.unpipe" | "readable.flowing" | "writable.write" | "writable.writeStr" | "writable.writeU" | "writable.writeDyn" | "writable.end" | "writable.cork" | "writable.uncork" | "stream.destroy" | "stream.destroyErr"
|
|
3061
|
-
/** AsyncIteratorClose for Readable[Symbol.asyncIterator](): destroy with
|
|
3062
|
-
* Node's AbortError/ABORT_ERR payload while the iterator's internal error
|
|
3063
|
-
* consumer prevents an unhandled-error crash. */
|
|
3064
|
-
| "stream.iteratorClose" | "stream.prop" | "stream.errored"
|
|
3065
|
-
/** The underscore-method assignment surface (`r._read = fn` after
|
|
3066
|
-
* construction — Node's own-property shadow of the prototype method):
|
|
3067
|
-
* args [stream receiver (borrowed), callback closure (+1 moves)]. The
|
|
3068
|
-
* runtime slot the matching option callback fills swaps its closure
|
|
3069
|
-
* and invoke thunk; the next dispatch uses it (Node's timing). The
|
|
3070
|
-
* setters themselves never throw. */
|
|
3071
|
-
| "stream.setRead" | "stream.setWrite" | "stream.setFinal" | "stream.setDestroy" | "stream.setTransform" | "stream.setFlush"
|
|
3072
|
-
/** NodeJS.ErrnoException's `.code` read: borrowed error-hierarchy
|
|
3073
|
-
* receiver → the interned `string | undefined` union (type-directed
|
|
3074
|
-
* construction in the backend, the process.envGet pattern) — the errno
|
|
3075
|
-
* name where a throw site stamped one (fs, exec spawn/timeout,
|
|
3076
|
-
* process.kill, the spawn 'error' event), the undefined arm everywhere
|
|
3077
|
-
* else. Never throws. */
|
|
3078
|
-
| "error.code"
|
|
3079
|
-
/** node:assert (scr_assert.c; assert.match in scr_regex.c — every call
|
|
3080
|
-
* site carries a regex value, so the regex link switch is already on).
|
|
3081
|
-
* Failures throw a catchable AssertionError — a runtime %Error whose
|
|
3082
|
-
* name is "AssertionError" and whose code slot is "ERR_ASSERTION" — so
|
|
3083
|
-
* `instanceof Error`, `.name`, `.message`, and `.code` all answer like
|
|
3084
|
-
* Node's. Generated messages are Node's assertion_error.js scalar forms
|
|
3085
|
-
* byte-exactly (the short `a !== b` form, the stacked `+ actual
|
|
3086
|
-
* - expected` diff with the string `^` indicator, the inline-vs-block
|
|
3087
|
-
* not-equal split); composite deep failures carry the header line
|
|
3088
|
-
* without the rendered inspect diff (documented divergence).
|
|
3089
|
-
*
|
|
3090
|
-
* assert.ok: (pass, message) — the frontend computed the truthiness AND
|
|
3091
|
-
* the full message (the user's, or the compile-time source-text form —
|
|
3092
|
-
* assert.fail lowers here too with pass=false). assert.eqF64/eqBigInt/
|
|
3093
|
-
* eqStr/eqBool: (a, b, negated, deep, msg, hasMsg) — Object.is comparison,
|
|
3094
|
-
* covering strictEqual/notStrictEqual and the scalar deepStrictEqual
|
|
3095
|
-
* pair; msg is a typed dummy ("" literal) when hasMsg is false (Node
|
|
3096
|
-
* distinguishes an omitted message from an empty one per operator).
|
|
3097
|
-
* assert.deepResult: (equal, negated, msg, hasMsg) — the verdict of a
|
|
3098
|
-
* frontend-synthesized structural comparison, turned into Node's throw.
|
|
3099
|
-
* assert.sameValue: Object.is over doubles (the deep-equal helpers'
|
|
3100
|
-
* number leaf; never throws). assert.match: (s, regex, negated, msg,
|
|
3101
|
-
* hasMsg) — a fresh exec from index 0. assert.throwsNone: (rejection,
|
|
3102
|
-
* ename, hasEname, msg, hasMsg) — the "Missing expected
|
|
3103
|
-
* exception|rejection" throw of assert.throws/rejects whose callback
|
|
3104
|
-
* returned (fulfilled) normally, with Node's ` (${expected.name})`
|
|
3105
|
-
* detail when the expected class or shape carries a name.
|
|
3106
|
-
* assert.throwsMismatch: (expectedName, error) — the wrong-class throw
|
|
3107
|
-
* of the assert.throws(fn, ErrorClass) form. assert.eqSym:
|
|
3108
|
-
* (a, b, negated, deep, msg, hasMsg) — strict equality over symbol
|
|
3109
|
-
* values, pointer identity with v24's "Symbol(desc)" stacked-diff
|
|
3110
|
-
* messages (scr_symbol.c, the assert.match pattern — symbol-typed
|
|
3111
|
-
* slots already flip the symbol link switch). assert.eqDyn:
|
|
3112
|
-
* (a, b, negated, deep, msg, hasMsg) — the whole quartet over
|
|
3113
|
-
* checked-dynamic operands (both slots dyn; the frontend boxes a
|
|
3114
|
-
* static side with dynFrom first): SameValue for the strict pair over
|
|
3115
|
-
* the dyn kinds (boxed-closure identity for functions), the structural
|
|
3116
|
-
* dyn walk for the deep pair, with assertion_error.js's messages —
|
|
3117
|
-
* scalar forms byte-exact, composites rendered compact:false/sorted
|
|
3118
|
-
* through the checked-dynamic tree and diffed with the real myers line printer.
|
|
3119
|
-
*
|
|
3120
|
-
* The assert.throws(fn, {name/code/message}) shape check
|
|
3121
|
-
* (expectedException over the static error surface): shapeBegin
|
|
3122
|
-
* stashes the caught error, shapeStr/shapeRe add one expected key each
|
|
3123
|
-
* (key ids 0 code / 1 message / 2 name; shapeRe lives in scr_regex.c —
|
|
3124
|
-
* its regex argument flips the regex link switch — and tests eagerly
|
|
3125
|
-
* so scr_assert.c stays libregexp-free), then shapeEnd throws Node's
|
|
3126
|
-
* deep-equal Comparison diff BYTE-EXACTLY (the bounded key set makes
|
|
3127
|
-
* the rendering enumerable) or the custom message.
|
|
3128
|
-
* assert.throwsRegex: (regex, error, msg, hasMsg) — the
|
|
3129
|
-
* assert.throws(fn, /re/) check over String(error), Node's
|
|
3130
|
-
* regex-mismatch message. assert.regexErrTest: doesNotReject's silent
|
|
3131
|
-
* regex predicate over String(error) (never throws).
|
|
3132
|
-
* assert.unwantedRejection: (error, msg, hasMsg) — doesNotReject's
|
|
3133
|
-
* "Got unwanted rejection" throw.
|
|
3134
|
-
* assert.ifErrorErr/F64/Str/Bool: assert.ifError's per-type throws
|
|
3135
|
-
* ("ifError got unwanted exception: " + the error's message/name or
|
|
3136
|
-
* the value's inspection) — the frontend routes null/undefined to a
|
|
3137
|
-
* no-op and everything else here (Node throws for falsy values too).
|
|
3138
|
-
* All arguments are borrowed. */
|
|
3139
|
-
| "assert.ok" | "assert.eqF64" | "assert.eqBigInt" | "assert.eqStr" | "assert.eqBool" | "assert.eqSym" | "assert.eqDyn" | "assert.looseResult" | "assert.deepResult" | "assert.sameValue" | "assert.deqEnter" | "assert.deqLeave" | "assert.match" | "assert.throwsNone" | "assert.throwsMismatch" | "assert.throwsRegex" | "assert.shapeBegin" | "assert.shapeStr" | "assert.shapeRe" | "assert.shapeEnd" | "assert.regexErrTest" | "assert.unwantedRejection" | "assert.unwantedError" | "assert.noErrorPredicate" | "assert.regexDynTest"
|
|
3140
|
-
/** Node's expectsError over an error-INSTANCE expected (assert.throws/
|
|
3141
|
-
* rejects second argument): walk the expected dyn error's keys (name,
|
|
3142
|
-
* message, code — the %error marker skipped) and deep-compare each
|
|
3143
|
-
* against the caught value's; a mismatch throws the deep-equal
|
|
3144
|
-
* AssertionError (scr_assert.c). MAY THROW by design. */
|
|
3145
|
-
| "assert.expectsErrDyn" | "assert.ifErrorErr" | "assert.ifErrorF64" | "assert.ifErrorStr" | "assert.ifErrorBool" | "assert.ifErrorDyn" | "assert.refEqBytes" | "assert.refEqFn" | "assert.bytesDeepEq"
|
|
3146
|
-
/** util.inspect (scr_inspect.c — its own link switch, moduleUsesInspect):
|
|
3147
|
-
* the runtime half of the static rendering. Scalar formatters return +1
|
|
3148
|
-
* strings (insp.f64: JS ToString except -0; insp.str: the quoting
|
|
3149
|
-
* ladder + line splitting; insp.regex: /source/flags; insp.buffer:
|
|
3150
|
-
* <Buffer aa ..>). insp.error renders the STACKLESS [Name: message]
|
|
3151
|
-
* form with the code slot as its one property. insp.dyn walks the
|
|
3152
|
-
* checked-dynamic tree entirely in the runtime (its shape lives in the
|
|
3153
|
-
* value); insp.dynS is format's %s twin (dyn strings pass verbatim).
|
|
3154
|
-
* insp.jsval ([value, recurse, depth], --dynamic only) renders the
|
|
3155
|
-
* island scalars and THROWS a catchable TypeError on composites (the
|
|
3156
|
-
* may-throw seed set). begin/entry/moreItems/end drive the frame
|
|
3157
|
-
* engine from the compiler-synthesized per-type traversal helpers
|
|
3158
|
-
* (%util.insp.N — the deepStrictEqual precedent). */
|
|
3159
|
-
| "insp.f64"
|
|
3160
|
-
/** util.format %j over a checked-dynamic argument: the runtime dyn
|
|
3161
|
-
* walk (JS-exact stringify; root undefined/function prints
|
|
3162
|
-
* "undefined"; a handle in the tree throws the loud fence). */
|
|
3163
|
-
| "insp.jsonDyn" | "insp.str" | "insp.regex" | "insp.buffer" | "insp.error" | "insp.dyn" | "insp.dynS" | "insp.jsval" | "insp.begin" | "insp.entry" | "insp.key" | "insp.moreItems" | "insp.circCheck" | "insp.seenPush" | "insp.refWrap" | "insp.circular" | "insp.end"
|
|
3164
|
-
/** node:string_decoder's utf8 StringDecoder (scr_string.c): the decoder
|
|
3165
|
-
* value is a one-field record whose f64 PACKS the pending partial
|
|
3166
|
-
* sequence (count + up to 3 raw bytes — Node buffers at most 3 for
|
|
3167
|
-
* every encoding); the frontend's interned %strdec helpers thread it,
|
|
3168
|
-
* with the decoder's CANONICAL encoding name first, through these pure
|
|
3169
|
-
* functions. write: (enc, pending, chunk) → the decoded complete
|
|
3170
|
-
* prefix of pending+chunk (+1); next: (enc, pending, chunk) → the
|
|
3171
|
-
* packed NEW pending; end: (enc, pending) → the buffered partial's
|
|
3172
|
-
* flush (+1). Node-exact per encoding (oracle-pinned); none throws. */
|
|
3173
|
-
| "strdec.write" | "strdec.next" | "strdec.end"
|
|
3174
|
-
/** node:readline's question/close slice (scr_readline.c, linked under
|
|
3175
|
-
* the events gate — these fns imply moduleUsesProcessEvents). The
|
|
3176
|
-
* interface value is an f64 handle (the Timeout-id precedent).
|
|
3177
|
-
* rl.create: [] → f64 — createInterface({ input: process.stdin,
|
|
3178
|
-
* output: process.stdout }), registering the unit's shared stdin
|
|
3179
|
-
* consumer (an OPEN interface keeps the loop alive until close/EOF,
|
|
3180
|
-
* Node's semantics). rl.question: [handle, query, cb] — writes the
|
|
3181
|
-
* query to stdout (Node writes under pipes too) and delivers the next
|
|
3182
|
-
* line's text through a backend-picked adapter (zero-param or
|
|
3183
|
-
* (answer: string)); THROWS Node's "readline was closed" on a closed
|
|
3184
|
-
* interface (may-throw). rl.close: [handle] — fires 'close' listeners
|
|
3185
|
-
* SYNCHRONOUSLY (Node's inline emit) and detaches the consumer (the
|
|
3186
|
-
* loop stops waiting on fd 0). rl.onClose: [handle, cb] — a zero-arg
|
|
3187
|
-
* listener (moves); stdin EOF closes every open interface with the
|
|
3188
|
-
* buffered partial line DISCARDED, like Node. */
|
|
3189
|
-
| "rl.create" | "rl.question" | "rl.close" | "rl.onClose"
|
|
3190
|
-
/** node:timers/promises — the promisified pair (scr_async.c, beside
|
|
3191
|
-
* the timer heap they ride): tp.setTimeout: [ms] → a pending void
|
|
3192
|
-
* promise a one-shot heap timer fulfills (the loop's timer phase, FIFO
|
|
3193
|
-
* against equal deadlines like Node); tp.setImmediate: [] → the same
|
|
3194
|
-
* through the immediate queue (fires before due timers of later loop
|
|
3195
|
-
* turns, Node's check phase). Neither throws. */
|
|
3196
|
-
| "tp.setTimeout" | "tp.setImmediate"
|
|
3197
|
-
/** node:diagnostics_channel (scr_dc.c, linked when any dc.* appears —
|
|
3198
|
-
* the zlib gating precedent): a process-global name→channel registry;
|
|
3199
|
-
* channel values are f64 handles (type-mapper.ts maps Channel to F64, the
|
|
3200
|
-
* readline.Interface pattern). Subscribers are dyn function values —
|
|
3201
|
-
* identity-compared by unsubscribe, called (message, name) by publish
|
|
3202
|
-
* over a SNAPSHOT of the list (a subscriber unsubscribing itself
|
|
3203
|
-
* mid-publish still lets its siblings fire, Node's behavior). dc.publish
|
|
3204
|
-
* MAY THROW: a subscriber's throw propagates out of publish (catchable
|
|
3205
|
-
* there) where Node routes it to triggerUncaughtException — the
|
|
3206
|
-
* documented divergence. subscribe/unsubscribe throw Node's
|
|
3207
|
-
* ERR_INVALID_ARG_TYPE TypeError for non-function subscribers. */
|
|
3208
|
-
| "dc.channel" | "dc.subscribe" | "dc.unsubscribe" | "dc.hasSubscribers" | "dc.publish" | "dc.chanSubscribe" | "dc.chanUnsubscribe" | "dc.chanHasSubscribers" | "dc.chanName"
|
|
3209
|
-
/** TracingChannel (dc.tracingChannel): a registry entry of the five
|
|
3210
|
-
* event channels, an f64 handle like Channel (type-mapper.ts). tcSubscribe/
|
|
3211
|
-
* tcUnsubscribe walk a dyn handlers object's five event keys (truthy
|
|
3212
|
-
* non-function slots throw the per-channel ERR_INVALID_ARG_TYPE);
|
|
3213
|
-
* tcTraceSync/tcTraceCallback/tcTracePromise run Node's publish choreography in C over
|
|
3214
|
-
* dyn values (fn, ctx, thisArg, args-array) with thisArg bound as the
|
|
3215
|
-
* ambient receiver — the traced call's throw and any subscriber throw
|
|
3216
|
-
* both propagate (MAY THROW). tcTraceCallback wraps args[position] in a
|
|
3217
|
-
* native error/result + asyncStart/asyncEnd publisher and throws Node's
|
|
3218
|
-
* TypeError when that slot is not callable. tracingChannelOf is the
|
|
3219
|
-
* five-Channel collection form of the constructor. */
|
|
3220
|
-
/** setImmediate as a first-class dyn value (scr_async.c): a minted dyn
|
|
3221
|
-
* callable scheduling args[0](args[1..]) on the immediate queue — the
|
|
3222
|
-
* Node-suite traceCallback shape (`traceCallback(setImmediate, ...)`).
|
|
3223
|
-
* Calling it validates the callback (the dyn call machinery); minting
|
|
3224
|
-
* never throws. */
|
|
3225
|
-
| "timers.setImmediateFnValue"
|
|
3226
|
-
/** `new Promise(setImmediate)` (the Node-suite early-exit shape): a
|
|
3227
|
-
* fresh promise an immediate fulfills with the undefined dyn value —
|
|
3228
|
-
* the executor IS setImmediate, so resolve rides the immediate queue
|
|
3229
|
-
* (scr_async.c). Never throws. */
|
|
3230
|
-
| "timers.immediatePromise" | "dc.tracingChannel" | "dc.tracingChannelOf" | "dc.tcChannel" | "dc.tcHasSubscribers" | "dc.tcSubscribe" | "dc.tcUnsubscribe" | "dc.tcTraceSync" | "dc.tcTraceCallback"
|
|
3231
|
-
/** tracePromise (scr_dc.c): start publish, the traced call, a wrap of
|
|
3232
|
-
* non-promise results, the end publish, and a REACTION FIBER that
|
|
3233
|
-
* awaits the traced promise and publishes asyncStart/asyncEnd (error
|
|
3234
|
-
* first on rejection) before settling the returned promise<dyn> with
|
|
3235
|
-
* the passed-through outcome. MAY THROW (the traced call and the
|
|
3236
|
-
* synchronous publishes). */
|
|
3237
|
-
| "dc.tcTracePromise"
|
|
3238
|
-
/** AsyncLocalStorage (node:async_hooks — scr_async.c): stores are f64
|
|
3239
|
-
* handles; contexts are immutable fiber-carried snapshots (spawned
|
|
3240
|
-
* fibers inherit the spawner's — Node's init-time capture). run/exit
|
|
3241
|
-
* enter (or clear) the store, call the dyn function with forwarded
|
|
3242
|
-
* arguments, and restore (the finally); getStore answers the current
|
|
3243
|
-
* dyn value or undefined; enterWith installs with no restore point.
|
|
3244
|
-
* run/exit MAY THROW (the callback's own throws propagate). */
|
|
3245
|
-
/** `await v` over a checked-dynamic VALUE (scr_async.c): a dyn promise
|
|
3246
|
-
* adopts (rejections re-throw — MAY THROW), anything else takes JS's
|
|
3247
|
-
* one-microtask non-thenable await and answers itself. Only emitted
|
|
3248
|
-
* inside async bodies (the frontend's isAsync gate). */
|
|
3249
|
-
| "async.awaitDyn"
|
|
3250
|
-
/** The bare one-microtask hop (scr_await_hop): `await v` over a typed
|
|
3251
|
-
* NON-promise value — JS awaits non-thenables through exactly one
|
|
3252
|
-
* microtask turn and yields the value itself. Never throws. */
|
|
3253
|
-
| "async.hop" | "als.new" | "als.get" | "als.run" | "als.exitRun" | "als.enterWith" | "als.disable"
|
|
3254
|
-
/** Channel.bindStore/unbindStore/runStores (scr_dc.c): the
|
|
3255
|
-
* AsyncLocalStorage integration — set-semantics bindings per store,
|
|
3256
|
-
* runStores entering every bound store with transform(data) around the
|
|
3257
|
-
* publish and the callback (MAY THROW: transforms, subscribers, and
|
|
3258
|
-
* the callback all run). */
|
|
3259
|
-
| "dc.chanBindStore" | "dc.chanUnbindStore" | "dc.chanRunStores"
|
|
3260
|
-
/** process warnings (scr_lib.c): onWarning/offWarning register dyn
|
|
3261
|
-
* listeners; emitWarning applies Node's full argument grammar over the
|
|
3262
|
-
* call's dyn argument vector (ERR_INVALID_ARG_TYPE TypeErrors — MAY
|
|
3263
|
-
* THROW; a listener throw propagates too) and always prints Node's
|
|
3264
|
-
* stderr report. Emission is synchronous (SEMANTICS.md). */
|
|
3265
|
-
| "process.onWarning" | "process.offWarning" | "process.emitWarning"
|
|
3266
|
-
/** process.on/once('unhandledRejection', fn): registers a dyn listener
|
|
3267
|
-
* the checkpoint report dispatches per never-observed rejection —
|
|
3268
|
-
* (reason, promise) — instead of printing and exiting 1 (scr_async.c).
|
|
3269
|
-
* The bool second arg is `once` (auto-removed after one delivery,
|
|
3270
|
-
* Node's once); off/removeListener remove by closure identity, the
|
|
3271
|
-
* offWarning stance. Throws Node's ERR_INVALID_ARG_TYPE on a
|
|
3272
|
-
* non-function. */
|
|
3273
|
-
/** Uncaught exception handlers and monitors: [callback dyn, once, monitor]. */
|
|
3274
|
-
| "process.onUncaughtException" | "process.offUncaughtException" | "process.onUnhandledRejection" | "process.offUnhandledRejection"
|
|
3275
|
-
/** process.on/once/off('rejectionHandled', fn): the sibling registry.
|
|
3276
|
-
* A handler attached after unhandledRejection delivery fires the event
|
|
3277
|
-
* once. Dispatch is synchronous at the attach, with the promise,
|
|
3278
|
-
* Node's payload. */
|
|
3279
|
-
| "process.onRejectionHandled" | "process.offRejectionHandled"
|
|
3280
|
-
/** The Number statics with a static C implementation (scr_lib.c): one
|
|
3281
|
-
* f64 arg → bool, JS-exact BY CONSTRUCTION — Number.isFinite/isNaN/
|
|
3282
|
-
* isInteger/isSafeInteger never coerce, and the frontend routes only
|
|
3283
|
-
* f64-typed arguments here (other static types fence). None throws. */
|
|
3284
|
-
| "number.isFinite" | "number.isNaN" | "number.isInteger" | "number.isSafeInteger"
|
|
3285
|
-
/** Date (scr_lib.c). Values are TimeClip'd epoch-millisecond scalars:
|
|
3286
|
-
* construction/store/pass/getters are exact while identity and mutation
|
|
3287
|
-
* remain fenced. date.now is Node's integer milliseconds since epoch;
|
|
3288
|
-
* date.toISOString formats one raw f64 millisecond time value and
|
|
3289
|
-
* date.toISOStringValue formats a stored Date, both with Node's rules (UTC,
|
|
3290
|
-
* YYYY-MM-DDTHH:mm:ss.sssZ, expanded ±YYYYYY years outside 0–9999,
|
|
3291
|
-
* ToInteger truncation of fractional ms) and THROWS Node's "Invalid
|
|
3292
|
-
* time value" RangeError on NaN / out-of-range input (may-throw seed).
|
|
3293
|
-
* Results: f64 / owned (+1) string. */
|
|
3294
|
-
| "date.now" | "date.newNow" | "date.newMs" | "date.newString"
|
|
3295
|
-
/** Date.parse(dateString), with its own reach witness for exact fences. */
|
|
3296
|
-
| "date.parse" | "date.getTime" | "date.valueOf" | "date.toISOString" | "date.toISOStringValue" | "date.getFullYear" | "date.getUTCFullYear" | "date.getMonth" | "date.getUTCMonth" | "date.getDate" | "date.getUTCDate" | "date.getDay" | "date.getUTCDay" | "date.getHours" | "date.getUTCHours" | "date.getMinutes" | "date.getUTCMinutes" | "date.getSeconds" | "date.getUTCSeconds" | "date.getMilliseconds" | "date.getUTCMilliseconds" | "date.getTimezoneOffset"
|
|
3297
|
-
/** The composed `new Date(dateString).getTime()` read: one borrowed
|
|
3298
|
-
* string, f64 milliseconds since epoch. The parsed grammar is BOUNDED
|
|
3299
|
-
* (documented divergence — V8's parser accepts far more): the ASN.1
|
|
3300
|
-
* validity shape X509Certificate.validFrom/validTo answer ("Jul 1
|
|
3301
|
-
* 00:00:00 2026 GMT" — the portless cert-expiry read), and ECMA's own
|
|
3302
|
-
* date-time string format (YYYY-MM-DD[THH:mm[:ss[.sss]]][Z|±HH:MM] —
|
|
3303
|
-
* date-only forms are UTC, exactly the spec). Anything else is NaN,
|
|
3304
|
-
* Node's invalid-date getTime. Never throws. */
|
|
3305
|
-
| "date.parseGetTime"
|
|
3306
|
-
/** `Date.UTC(...)` — seven f64 arguments (the frontend completes the
|
|
3307
|
-
* spec's defaults for omitted trailing parts: month 0, date 1, time
|
|
3308
|
-
* parts 0), the spec's MakeDay/MakeTime/TimeClip exactly: 0–99 years
|
|
3309
|
-
* map to 1900+year, out-of-range months/dates roll over, non-finite
|
|
3310
|
-
* parts and out-of-range results answer NaN. Never throws. */
|
|
3311
|
-
| "date.utc"
|
|
3312
|
-
/** The fs option forms and friends (scr_lib.c), all throwing catchably
|
|
3313
|
-
* like the rest of sync fs. mkdirRecursiveSync is Node's recursive
|
|
3314
|
-
* algorithm (try mkdir, EEXIST-dir is fine, ENOENT creates the parent
|
|
3315
|
-
* first — errors report Node's errno at Node's path, EEXIST at a file
|
|
3316
|
-
* target, ENOTDIR at the full path past a file); the first-created-dir
|
|
3317
|
-
* return value has no lowering (statement position only, frontend-
|
|
3318
|
-
* fenced). rmOptsSync is rmSync with (recursive, force) bools: force
|
|
3319
|
-
* swallows ENOENT, recursive removes trees post-order, a directory
|
|
3320
|
-
* without recursive throws the EISDIR-worded error (divergence 13's
|
|
3321
|
-
* wording note). mkdtempSync appends the six X's and returns the
|
|
3322
|
-
* created path (+1). accessSync takes the F_OK/R_OK/W_OK/X_OK bits as
|
|
3323
|
-
* one f64 (the frontend bakes fs.constants.* as literals and completes
|
|
3324
|
-
* an omitted mode to 0). readFdSync/readFdSyncBytes are the
|
|
3325
|
-
* readFileSync(fd[, "utf8"]) forms — a read(2) loop to EOF on the fd
|
|
3326
|
-
* (the stdin path); errors carry Node's no-path message shape. */
|
|
3327
|
-
| "fs.mkdirRecursiveSync" | "fs.rmOptsSync"
|
|
3328
|
-
/** rmOptsSync's maxRetries/retryDelay form (path, recursive, force,
|
|
3329
|
-
* maxRetries, retryDelay): Node's linear-backoff retry on
|
|
3330
|
-
* EBUSY/EMFILE/ENFILE/ENOTEMPTY/EPERM — the tmpdir-harness shape
|
|
3331
|
-
* rmSync(p, { maxRetries: 3, recursive: true, force: true }). */
|
|
3332
|
-
| "fs.rmRetrySync" | "fs.mkdtempSync" | "fs.accessSync" | "fs.readFdSync" | "fs.readFdSyncBytes"
|
|
3333
|
-
/** isatty(3) over an fd literal (0/1/2 — process.stdin/stdout/stderr
|
|
3334
|
-
* .isTTY reads). A real boolean: false where Node's non-TTY streams
|
|
3335
|
-
* expose undefined (documented divergence). Never throws. */
|
|
3336
|
-
| "process.isTTY"
|
|
3337
|
-
/** process.stdin.destroy(): a deliberate no-op (no stream machinery
|
|
3338
|
-
* exists to tear down; documented in SEMANTICS.md). */
|
|
3339
|
-
| "process.stdinDestroy"
|
|
3340
|
-
/** process.stdin.setRawMode(mode) — one borrowed bool arg, void. On a
|
|
3341
|
-
* TTY stdin: termios raw mode on/off (libuv's UV_TTY_MODE_RAW flag set,
|
|
3342
|
-
* the mode Node's setRawMode(true) applies; false restores the entry
|
|
3343
|
-
* state). On a NON-TTY stdin Node's process.stdin has no such method at
|
|
3344
|
-
* all, so the call throws Node's exact catchable TypeError
|
|
3345
|
-
* ("process.stdin.setRawMode is not a function") — the may-throw seed
|
|
3346
|
-
* carries it. */
|
|
3347
|
-
| "process.stdinSetRawMode"
|
|
3348
|
-
/** Terminal width over an fd literal (1/2 — process.stdout/stderr
|
|
3349
|
-
* .columns): ioctl(TIOCGWINSZ). The result is the module's interned
|
|
3350
|
-
* `number | undefined` union — a non-TTY stream (or an ioctl refusal)
|
|
3351
|
-
* yields the undefined arm, exactly Node's missing `.columns`. Never
|
|
3352
|
-
* throws. */
|
|
3353
|
-
| "process.columns"
|
|
3354
|
-
/** Terminal height, with the same fd and optional-number contract. */
|
|
3355
|
-
| "process.rows"
|
|
3356
|
-
/** fromCharCode takes one packed f64[] or bytes arg and builds a string
|
|
3357
|
-
* from UTF-16 code units. Adjacent surrogate pairs combine; lone
|
|
3358
|
-
* surrogates follow the runtime's replacement policy. */
|
|
3359
|
-
| "string.fromCharCode"
|
|
3360
|
-
/** Numeric code points, with catchable RangeError for non-integers or
|
|
3361
|
-
* values outside 0..0x10ffff. Uses the same UTF-8 surrogate policy. */
|
|
3362
|
-
| "string.fromCodePoint"
|
|
3363
|
-
/** lastIndexOf returns the last UTF-16 start index, or -1. The two-arg
|
|
3364
|
-
* form searches at or before its numeric position; NaN starts at the end.
|
|
3365
|
-
* String arguments are borrowed and neither form throws. */
|
|
3366
|
-
| "string.lastIndexOf" | "string.lastIndexOfFrom"
|
|
3367
|
-
/** String.raw(template, ...subs): the raw literals array (a string[]
|
|
3368
|
-
* read off the template record) interleaved with the PRE-STRINGIFIED
|
|
3369
|
-
* substitutions (the frontend applies the static ToString and packs
|
|
3370
|
-
* them into one string[] literal) — extra substitutions drop, missing
|
|
3371
|
-
* ones skip, the spec's loop exactly (scr_array.c). Borrowed args;
|
|
3372
|
-
* +1 string; never throws. */
|
|
3373
|
-
| "string.raw"
|
|
3374
|
-
/** WHATWG TextDecoder.decode over u8 bytes (scr_bytes.c): utf-8 with
|
|
3375
|
-
* default options — the same maximal-subpart replacement decode as
|
|
3376
|
-
* Buffer.toString("utf8"), with the leading BOM stripped (the one
|
|
3377
|
-
* behavioral difference; ignoreBOM defaults to false). Inline calls
|
|
3378
|
-
* lower directly; stored decoder records dispatch by encoding id.
|
|
3379
|
-
* TextEncoder.encode needs no libFn: its matching forms
|
|
3380
|
-
* lower to buffer.fromStr(s, "utf8") (identical bytes — ScrStr storage
|
|
3381
|
-
* is well-formed UTF-8). Borrowed arg; owned (+1) string; never throws. */
|
|
3382
|
-
| "text.decode" | "bytes.bufferSource" | "text.decodeBufferSource" | "text.decodeOptions" | "text.decodeStream" | "text.decodeLegacyOptions"
|
|
3383
|
-
/** TextDecoder.decode for a compile-time non-UTF-8 WHATWG label. The
|
|
3384
|
-
* second f64 is the frontend-owned encoding id consumed by scr_bytes.c;
|
|
3385
|
-
* label aliases/case/ASCII whitespace are canonicalized before IR. The
|
|
3386
|
-
* mapping tables are generated from the pinned Node 24 oracle, keeping
|
|
3387
|
-
* output portable without an ICU/iconv dependency. Borrowed args; owned
|
|
3388
|
-
* (+1) string; never throws. */
|
|
3389
|
-
| "text.decodeLegacy" | "text.decoderEncoding" | "text.decoderName" | "text.encodeInto" | "buffer.isAscii" | "buffer.isUtf8" | "buffer.transcode"
|
|
3390
|
-
/** The wider sync fs slice (scr_lib.c), all throwing catchably with
|
|
3391
|
-
* Node's errno message shapes and `.code` stamped like the rest of
|
|
3392
|
-
* sync fs. unlink/chmod/chown wrap the syscalls 1:1 (Node reports the
|
|
3393
|
-
* syscall's own name). copyFileSync copies contents into a fresh (or
|
|
3394
|
-
* truncated) destination carrying the SOURCE's mode (libuv's
|
|
3395
|
-
* uv_fs_copyfile behavior); its errors carry BOTH paths — Node's
|
|
3396
|
-
* "copyfile 'src' -> 'dest'". lstatSync is statSync without following
|
|
3397
|
-
* a trailing symlink (Node reports lstat); stats.isSymbolicLink /
|
|
3398
|
-
* stats.dev / ino / blocks / nlink / atimeMs / mtimeMs / ctimeMs are pure reads on the widened
|
|
3399
|
-
* snapshot (blocks is allocated 512-byte units; the times are milliseconds
|
|
3400
|
-
* with their sub-second fractions, Node's arithmetic).
|
|
3401
|
-
* writeFileModeSync is writeFileSync(path, data, { mode }): the mode
|
|
3402
|
-
* applies at CREATION only (open(2) with O_CREAT, umask applying),
|
|
3403
|
-
* exactly Node — an existing file keeps its permissions. mkdirModeSync
|
|
3404
|
-
* / mkdirRecursiveModeSync are the mkdirSync option forms with an
|
|
3405
|
-
* explicit mode (the recursive walk passes it to every directory it
|
|
3406
|
-
* creates, like Node's). */
|
|
3407
|
-
| "fs.unlinkSync" | "fs.chmodSync" | "fs.chownSync" | "fs.copyFileSync"
|
|
3408
|
-
/** renameSync is the direct two-path syscall wrapper. renameCb defers
|
|
3409
|
-
* the operation to the loop and fires a program-shaped Error | null
|
|
3410
|
-
* callback through a backend-emitted adapter. */
|
|
3411
|
-
| "fs.renameSync" | "fs.renameCb" | "fs.lstatSync" | "fs.fstatSync" | "fs.fchmodSync" | "fs.fsyncSync" | "fs.fdatasyncSync" | "fs.ftruncateSync" | "fs.utimesSync" | "fs.futimesSync" | "fs.lutimesSync" | "fs.readvSync" | "fs.writevSync" | "fs.linkSync" | "fs.symlinkSync" | "fs.readlinkSync" | "fs.statfsSync" | "fs.readlinkSyncStr" | "fs.readlinkSyncBuffer"
|
|
3412
|
-
/** fs.openSync(path, flags) → the raw fd as f64; fs.readSync/fs.writeSync
|
|
3413
|
-
* over Buffer windows perform sequential I/O when position is -1 and
|
|
3414
|
-
* offset-preserving positioned I/O otherwise; fs.writeStrSync is the
|
|
3415
|
-
* utf8 string twin; and fs.closeSync(fd) closes the descriptor. This is
|
|
3416
|
-
* the fd slice behind spawn/log-processing forms.
|
|
3417
|
-
* flags is Node's string
|
|
3418
|
-
* grammar ("r", "w", "a" and the +/x variants; unknown flags throw
|
|
3419
|
-
* Node's ERR_INVALID_ARG_VALUE TypeError text). All throw Node-shaped
|
|
3420
|
-
* fs errors (openSync ENOENT/EACCES..., readSync EBADF/range errors,
|
|
3421
|
-
* closeSync EBADF). */
|
|
3422
|
-
| "fs.openSync" | "fs.openNumericSync" | "fs.readSync" | "fs.writeSync" | "fs.writeStrSync" | "fs.closeSync"
|
|
3423
|
-
/** fs.watch(path, listener?) → an FSWatcher handle (scr_watch.c —
|
|
3424
|
-
* linked, and scr_watch_install() emitted, only when these appear on
|
|
3425
|
-
* the IR; moduleUsesFsWatch is the switch). The path opens NOW —
|
|
3426
|
-
* failure throws Node's fs error synchronously ("ENOENT: ..., watch
|
|
3427
|
-
* 'x'", the polling-fallback catch shape) — and the unit's kqueue
|
|
3428
|
-
* (EVFILT_VNODE) delivers "rename"/"change" through the loop's watch
|
|
3429
|
-
* hook. The callback (nullable) MOVES in with an adapter per listener
|
|
3430
|
-
* shape (zero-param, or the (eventType: string) form — runtime-
|
|
3431
|
-
* provided); an open watcher keeps the loop alive until watcher.close()
|
|
3432
|
-
* (idempotent, receiver borrowed, statement position only). */
|
|
3433
|
-
| "fs.watch" | "fs.watchCb" | "watcher.close"
|
|
3434
|
-
/** The composed `new crypto.X509Certificate(data).fingerprint` read
|
|
3435
|
-
* (scr_lib.c — no certificate handle exists): the SHA-1 of the DER,
|
|
3436
|
-
* uppercase colon-separated, over PEM or raw-DER Buffer input; other
|
|
3437
|
-
* inputs throw Node's ERR_OSSL_PEM_NO_START_LINE Error (may-throw). */
|
|
3438
|
-
| "crypto.x509Fingerprint" | "crypto.x509FingerprintStr"
|
|
3439
|
-
/** The certificate's Validity window (validFrom / validTo reads —
|
|
3440
|
-
* scr_lib.c's minimal ASN.1 walk to the TBSCertificate validity
|
|
3441
|
-
* SEQUENCE): UTCTime and GeneralizedTime render in Node's exact
|
|
3442
|
-
* ASN1_TIME_print shape ("Jul 1 00:00:00 2026 GMT" — %2d space-padded
|
|
3443
|
-
* day). Same input contract and PEM error as the fingerprint pair
|
|
3444
|
-
* (may-throw). */
|
|
3445
|
-
| "crypto.x509ValidFrom" | "crypto.x509ValidFromStr" | "crypto.x509ValidTo" | "crypto.x509ValidToStr" | "stats.isSymbolicLink" | "stats.blocks" | "stats.nlink" | "stats.atimeMs" | "stats.mtimeMs" | "stats.ctimeMs" | "fs.writeFileModeSync" | "fs.mkdirModeSync" | "fs.mkdirRecursiveModeSync"
|
|
3446
|
-
/** spawnSync with options (scr_child.c): the cp.spawnSync core plus the
|
|
3447
|
-
* option slice portless-class CLIs pass — timeout (killSignal fires at
|
|
3448
|
-
* the deadline and the result carries error: ETIMEDOUT + the signal,
|
|
3449
|
-
* Node's shape), killSignal (a signal NAME; "" = the SIGTERM default),
|
|
3450
|
-
* and per-fd stdio modes (in: 0 /dev/null, 1 ignore, 2 inherit; out/
|
|
3451
|
-
* err: 0 capture, 1 ignore → "", 2 inherit → ""). NEVER throws — spawn
|
|
3452
|
-
* failure and timeout are data on the result, like Node's error
|
|
3453
|
-
* property. spawnRes.signal is the result's termination signal as the
|
|
3454
|
-
* call site's `Signals | null` union (null = exited normally or spawn
|
|
3455
|
-
* failure), constructed type-directedly like spawnRes.status. */
|
|
3456
|
-
| "cp.spawnSyncOpts"
|
|
3457
|
-
/** cp.spawnSyncOpts with the stdio carried as a RUNTIME string —
|
|
3458
|
-
* "pipe" | "ignore" | "inherit", proven by the call site's TYPE (the
|
|
3459
|
-
* defaultRunner idiom `stdio: options?.stdio ?? "pipe"`); the runtime
|
|
3460
|
-
* maps the value to the three modes. Args (cmd, argv, timeout,
|
|
3461
|
-
* killSignal, stdio). Never throws, like the other spawnSync forms. */
|
|
3462
|
-
| "cp.spawnSyncStdioStr" | "spawnRes.signal"
|
|
3463
|
-
/** spawn with options (scr_child.c): the cp.spawn core plus PER-SLOT
|
|
3464
|
-
* stdio — args are (cmd, argv, inMode, outMode, errMode, outFd, errFd,
|
|
3465
|
-
* detached, hasEnv, envPairs, cwd); modes 0 ignore (/dev/null), 1
|
|
3466
|
-
* inherit, 2 fd (out/err only — the fd dup2s into the child's slot,
|
|
3467
|
-
* Node's stdio fd form; the daemon-log idiom ["ignore", logFd, logFd]).
|
|
3468
|
-
* detached is POSIX_SPAWN_SETSID (the child gets its own session and
|
|
3469
|
-
* process group, Node's semantics), env is a REPLACEMENT ([k,v,...]
|
|
3470
|
-
* pairs like cp.execSync's), cwd ""=inherit. Same event/loop story as
|
|
3471
|
-
* cp.spawn. */
|
|
3472
|
-
| "cp.spawnOpts"
|
|
3473
|
-
/** Runtime options normalized into the native spawn core; unsupported
|
|
3474
|
-
* process features retain explicit refusals. (command, args, options). */
|
|
3475
|
-
| "cp.spawnDynamic"
|
|
3476
|
-
/** Atomics.wait(int32Array, idx, expected, timeoutMs) → "not-equal"
|
|
3477
|
-
* when the element differs from `expected`, else a real nanosleep for
|
|
3478
|
-
* the timeout and "timed-out" (scr_lib.c). scriptc has no threads —
|
|
3479
|
-
* no other agent can ever notify, so for every compilable program this
|
|
3480
|
-
* IS the spec's behavior, and "ok" is unreachable; the frontend
|
|
3481
|
-
* REQUIRES the timeout argument (an infinite wait here is a certain
|
|
3482
|
-
* deadlock, fenced). The SharedArrayBuffer the lib types demand exists
|
|
3483
|
-
* only syntactically (new Int32Array(new SharedArrayBuffer(n)) lowers
|
|
3484
|
-
* to a plain i32 typed array — sharing is unobservable without
|
|
3485
|
-
* threads; SEMANTICS.md documents the stance). Never throws; +1 string
|
|
3486
|
-
* result. */
|
|
3487
|
-
| "atomics.wait";
|
|
3488
1602
|
/** Numeric binary ops. The bitwise six (`&`/`|`/`^`/`<<`/`>>`/`>>>`) have
|
|
3489
1603
|
* JS ToInt32/ToUint32 semantics — operands convert (NaN/±Infinity → 0,
|
|
3490
1604
|
* truncate, wrap mod 2^32), the operation runs in 32-bit space (shift
|
|
@@ -5259,258 +3373,3 @@ export declare function canMarshalIntoIsland(t: IrType, getRecord: (shapeId: str
|
|
|
5259
3373
|
* Promise.all arm). Null = outside the domain (the boundary fence). */
|
|
5260
3374
|
export declare function islandPromisePayloadTag(inner: IrType): "void" | "f64" | "bool" | "string" | "jsval" | "jsvalArr" | null;
|
|
5261
3375
|
export declare function canExitIslandToType(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
5262
|
-
export interface RuntimeFeatures {
|
|
5263
|
-
regex: boolean;
|
|
5264
|
-
copying: boolean;
|
|
5265
|
-
legacyTextDecoder: boolean;
|
|
5266
|
-
fileHandle: boolean;
|
|
5267
|
-
fetch: boolean;
|
|
5268
|
-
processEvents: boolean;
|
|
5269
|
-
emitter: boolean;
|
|
5270
|
-
stream: boolean;
|
|
5271
|
-
zlib: boolean;
|
|
5272
|
-
dc: boolean;
|
|
5273
|
-
assert: boolean;
|
|
5274
|
-
dynInvoke: boolean;
|
|
5275
|
-
dynAsync: boolean;
|
|
5276
|
-
inspect: boolean;
|
|
5277
|
-
childProcess: boolean;
|
|
5278
|
-
net: boolean;
|
|
5279
|
-
symbol: boolean;
|
|
5280
|
-
bigint: boolean;
|
|
5281
|
-
searchParams: boolean;
|
|
5282
|
-
qs: boolean;
|
|
5283
|
-
parseArgs: boolean;
|
|
5284
|
-
fsWatch: boolean;
|
|
5285
|
-
nodeTest: boolean;
|
|
5286
|
-
dgram: boolean;
|
|
5287
|
-
http: boolean;
|
|
5288
|
-
http2: boolean;
|
|
5289
|
-
tls: boolean;
|
|
5290
|
-
tlsCa: boolean;
|
|
5291
|
-
}
|
|
5292
|
-
/** Inspect types and expressions together in one traversal. This is a fresh
|
|
5293
|
-
* snapshot: callers may mutate an IR module between compilation passes. */
|
|
5294
|
-
export declare function moduleRuntimeFeatures(mod: IrModule): RuntimeFeatures;
|
|
5295
|
-
/** True when the module contains any regex construct — a regexLit /
|
|
5296
|
-
* regexIntrinsic node or a regex-typed slot anywhere. This is the link
|
|
5297
|
-
* switch that pulls scr_regex.c + the vendored libregexp into the binary
|
|
5298
|
-
* (native-toolchain.ts); regex-free programs keep the historical command line. The
|
|
5299
|
-
* typed traversal visits type slots as well as executable nodes. */
|
|
5300
|
-
export declare function moduleUsesRegex(mod: IrModule): boolean;
|
|
5301
|
-
/** True when the module contains an intrinsic whose implementation lives
|
|
5302
|
-
* in scr_copying.c. This is the link switch that keeps the optional
|
|
5303
|
-
* Array-copying and typed-array bridge TU out of unrelated binaries. */
|
|
5304
|
-
export declare function moduleUsesCopying(mod: IrModule): boolean;
|
|
5305
|
-
/** True when a non-UTF-8 TextDecoder call survives lowering. This gates the
|
|
5306
|
-
* generated legacy mapping tables inside scr_bytes.c; the default UTF-8
|
|
5307
|
-
* decoder and unrelated Buffer users keep their prior runtime object. */
|
|
5308
|
-
export declare function moduleUsesLegacyTextDecoder(mod: IrModule): boolean;
|
|
5309
|
-
/** True when a FileHandle type survives in the module. This is the link
|
|
5310
|
-
* switch for scr_file_handle.c; fs/promises.open carries the type inside its
|
|
5311
|
-
* promise result even when no handle method is called. */
|
|
5312
|
-
export declare function moduleUsesFileHandle(mod: IrModule): boolean;
|
|
5313
|
-
/** True when user code lowers static fetch or the embedded npm graph
|
|
5314
|
-
* reaches the engine's global fetch — the link switch that pulls scr_fetch.c +
|
|
5315
|
-
* its socket/tls/zlib dependencies into the binary (native-toolchain.ts) and has the
|
|
5316
|
-
* emitted main call scr_fetch_install. The npm graph records the embedded
|
|
5317
|
-
* source fact with a parser + binder, so comments, strings, property names,
|
|
5318
|
-
* and local `fetch` bindings do not change the link or target capability.
|
|
5319
|
-
* Fetch-free graphs keep their exact historical link lines. */
|
|
5320
|
-
export declare function moduleUsesFetch(mod: IrModule): boolean;
|
|
5321
|
-
/** True when the module uses the process-events surface — the link switch
|
|
5322
|
-
* that pulls scr_events.c into the binary and has the emitted main call
|
|
5323
|
-
* scr_events_install (native-toolchain.ts + emitter; the scr_regex/scr_fetch/scr_zlib
|
|
5324
|
-
* gating precedent). Event-free programs pay zero bytes and keep their
|
|
5325
|
-
* exact link line. Same generic-walk shape as moduleUsesRegex. */
|
|
5326
|
-
export declare function moduleUsesProcessEvents(mod: IrModule): boolean;
|
|
5327
|
-
/** True when the module uses the node:events EventEmitter surface — the
|
|
5328
|
-
* link switch that pulls scr_events_emitter.c into the binary (native-toolchain.ts; the
|
|
5329
|
-
* scr_events.c gating precedent, but pure data structure: no install, no
|
|
5330
|
-
* loop hooks). Two signals: the `%EventEmitter` class def rides the
|
|
5331
|
-
* module (any emitter-typed value or `extends EventEmitter` subclass
|
|
5332
|
-
* references it, and the emitted RC/trace helpers call scr_emitter_*),
|
|
5333
|
-
* or an emitter.* libCall survived (the defaultMaxListeners statics carry
|
|
5334
|
-
* no emitter-typed value). Emitter-free programs pay zero bytes and keep
|
|
5335
|
-
* their exact link line. */
|
|
5336
|
-
export declare function moduleUsesEmitter(mod: IrModule): boolean;
|
|
5337
|
-
/** True when the program touches the node:stream surface (scr_stream.c —
|
|
5338
|
-
* the moduleUsesEmitter story: the class defs ride the module whenever a
|
|
5339
|
-
* stream-typed value exists, and every stream libCall names its unit).
|
|
5340
|
-
* Stream programs always use the emitter unit too — the stream class
|
|
5341
|
-
* defs pull `%EventEmitter` through their base chain, so
|
|
5342
|
-
* moduleUsesEmitter answers true whenever this does. Stream-free
|
|
5343
|
-
* programs pay zero bytes and keep their exact link line. */
|
|
5344
|
-
export declare function moduleUsesStream(mod: IrModule): boolean;
|
|
5345
|
-
/** True when the embedded npm graph has an edge into `builtin` — the
|
|
5346
|
-
* island shim needs the corresponding native bridge linked (zlib's is
|
|
5347
|
-
* the first; the emitted main installs it before any island entry). */
|
|
5348
|
-
export declare function moduleEmbedsBuiltin(mod: IrModule, builtin: string): boolean;
|
|
5349
|
-
/** Embedded module texts at least this long are DEFLATE-compressed into
|
|
5350
|
-
* the emitted LLVM (island.ts; each stays plain when deflate does not
|
|
5351
|
-
* shrink it) and inflated lazily by the island's module loader at first
|
|
5352
|
-
* load. Below it the zlib round trip cannot pay for itself. */
|
|
5353
|
-
export declare const NPM_COMPRESS_MIN = 1024;
|
|
5354
|
-
/** True when the emitted npm tables will carry compressed module text —
|
|
5355
|
-
* the SAME candidate test island.ts compresses by, so index.ts's
|
|
5356
|
-
* zlib link switch and emitter.ts's inflater installation stay in
|
|
5357
|
-
* lockstep with the emission (a candidate whose deflate happens not to
|
|
5358
|
-
* shrink stays plain; the installed inflater is then just unused). */
|
|
5359
|
-
export declare function moduleEmbedsCompressedNpm(mod: IrModule): boolean;
|
|
5360
|
-
/** True when the module contains any zlib libCall (the static lowering)
|
|
5361
|
-
* OR the embedded npm graph imports node:zlib (the island shim) — the
|
|
5362
|
-
* link switch that pulls scr_zlib.c + the system libz into the binary
|
|
5363
|
-
* (native-toolchain.ts); zlib-free programs keep their exact link line. Same
|
|
5364
|
-
* generic-walk shape as moduleUsesRegex: `kind`/`fn` discriminants live
|
|
5365
|
-
* only on IR objects. */
|
|
5366
|
-
export declare function moduleUsesZlib(mod: IrModule): boolean;
|
|
5367
|
-
/** True when the module contains any dc.* libCall — the link switch that
|
|
5368
|
-
* pulls scr_dc.c (the diagnostics_channel registry and pub/sub) into the
|
|
5369
|
-
* binary (native-toolchain.ts). Channel-free binaries keep their exact size class.
|
|
5370
|
-
* Same walk shape as moduleUsesZlib. */
|
|
5371
|
-
export declare function moduleUsesDc(mod: IrModule): boolean;
|
|
5372
|
-
/** True when the module contains any assert libCall — the link switch
|
|
5373
|
-
* that pulls scr_assert.c into the binary (native-toolchain.ts). scr_regex.c calls the
|
|
5374
|
-
* assert throw/inspect helpers (assert.match lives there), so the regex
|
|
5375
|
-
* switch also pulls scr_assert.c; assert-free, regex-free binaries keep
|
|
5376
|
-
* the historical command line and size. Same walk shape as
|
|
5377
|
-
* moduleUsesZlib. */
|
|
5378
|
-
export declare function moduleUsesAssert(mod: IrModule): boolean;
|
|
5379
|
-
/** True when the module contains any dynInvoke node or dyn.defineProps
|
|
5380
|
-
* libCall — the link switch that pulls scr_dyn_invoke.c (the prototype-
|
|
5381
|
-
* method dispatch on dyn receivers, plus scr_dyn_display and
|
|
5382
|
-
* scr_dyn_define_props) into the binary (native-toolchain.ts; the assert gating
|
|
5383
|
-
* precedent — dispatch-free binaries keep their exact size class). Same
|
|
5384
|
-
* walk shape as moduleUsesZlib. */
|
|
5385
|
-
export declare function moduleUsesDynInvoke(mod: IrModule): boolean;
|
|
5386
|
-
/** True when the module contains any insp libCall — the link switch that
|
|
5387
|
-
* pulls scr_inspect.c into the binary (native-toolchain.ts; the assert gating
|
|
5388
|
-
* precedent — inspect-free binaries keep the historical command line and
|
|
5389
|
-
* size class). Same walk shape as moduleUsesZlib. */
|
|
5390
|
-
/** True when the module needs scr_async_dyn.c — the checked-dynamic
|
|
5391
|
-
* async surfaces (dyn-promise then/catch/finally reactions, await of a
|
|
5392
|
-
* dyn value, `new Promise(setImmediate)`, AsyncLocalStorage, the
|
|
5393
|
-
* unhandledRejection/warning process events). Also pulled by the
|
|
5394
|
-
* dynInvoke and dc gates (their TUs call into this one) — native-toolchain.ts. Same
|
|
5395
|
-
* walk shape as moduleUsesZlib. */
|
|
5396
|
-
export declare function moduleUsesDynAsync(mod: IrModule): boolean;
|
|
5397
|
-
export declare function moduleUsesInspect(mod: IrModule): boolean;
|
|
5398
|
-
/** True when the module reaches child_process or carries one of its runtime
|
|
5399
|
-
* handle/result types. Besides the existing link consequence, this gates the
|
|
5400
|
-
* checked-dynamic ChildProcess handle table installed from scr_child.c. */
|
|
5401
|
-
export declare function moduleUsesChildProcess(mod: IrModule): boolean;
|
|
5402
|
-
/** True when the module contains any net libCall — the link switch that
|
|
5403
|
-
* pulls scr_net.c into the binary and has the emitted main call
|
|
5404
|
-
* scr_net_install (native-toolchain.ts + emitter; the scr_events gating precedent).
|
|
5405
|
-
* Net-free programs pay zero bytes and keep their exact link line. Same
|
|
5406
|
-
* generic-walk shape as moduleUsesZlib. */
|
|
5407
|
-
export declare function moduleUsesNet(mod: IrModule): boolean;
|
|
5408
|
-
/** True when the module contains any sym.* libCall or a symbol-kind type
|
|
5409
|
-
* anywhere in the IR — the link switch that pulls scr_symbol.c into the
|
|
5410
|
-
* binary (native-toolchain.ts; the scr_net gating precedent — no install call, the
|
|
5411
|
-
* Symbol.for registry initializes lazily). The TYPE check matters like
|
|
5412
|
-
* net's: a symbol-typed local whose initializer compiled to a runtime
|
|
5413
|
-
* fence still emits release calls that need the unit linked. Symbol-free
|
|
5414
|
-
* programs pay zero bytes and keep their exact link line. */
|
|
5415
|
-
export declare function moduleUsesSymbol(mod: IrModule): boolean;
|
|
5416
|
-
/** True when bigint runtime operations or bigint-typed storage appears in
|
|
5417
|
-
* the IR. The type check keeps retain/release references link-safe even
|
|
5418
|
-
* when a producing statement was replaced by a runtime fence. */
|
|
5419
|
-
export declare function moduleUsesBigInt(mod: IrModule): boolean;
|
|
5420
|
-
/** True when the module uses the URLSearchParams surface — sp.* libCalls,
|
|
5421
|
-
* the url.searchParams getter, or a searchParams-kind type anywhere on
|
|
5422
|
-
* the IR (a fenced statement can leave a typed local whose release call
|
|
5423
|
-
* still needs the unit linked) — the link switch that pulls
|
|
5424
|
-
* scr_url_params.c into the binary (the moduleUsesSymbol precedent: pure
|
|
5425
|
-
* data structure, no loop hooks, cross-compiles everywhere). sp-free
|
|
5426
|
-
* programs keep their exact link line; scr_url.c itself stays
|
|
5427
|
-
* always-linked and never references the unit. */
|
|
5428
|
-
export declare function moduleUsesSearchParams(mod: IrModule): boolean;
|
|
5429
|
-
/** True when the module uses the node:querystring surface — the qs.*
|
|
5430
|
-
* libCalls that live in scr_qs.c (parse/stringify/unescape; qs.escape
|
|
5431
|
-
* emits the always-linked component encoder and deliberately does NOT
|
|
5432
|
-
* flip this switch) — the link switch that pulls scr_qs.c into the
|
|
5433
|
-
* binary (the moduleUsesSearchParams precedent: pure data transforms, no
|
|
5434
|
-
* loop hooks, cross-compiles everywhere). qs-free programs keep their
|
|
5435
|
-
* exact link line. Same generic-walk shape as moduleUsesZlib. */
|
|
5436
|
-
export declare function moduleUsesQs(mod: IrModule): boolean;
|
|
5437
|
-
/** True when the module uses native util parsing, comparison, or styling.
|
|
5438
|
-
* The utility units also follow their required symbol, inspection, and
|
|
5439
|
-
* warning features, independently of the island's node:util shim. */
|
|
5440
|
-
export declare function moduleUsesParseArgs(mod: IrModule): boolean;
|
|
5441
|
-
/** True when the module contains any fs.watch/watcher.* libCall — the
|
|
5442
|
-
* link switch that pulls scr_watch.c into the binary and has the emitted
|
|
5443
|
-
* main call scr_watch_install (native-toolchain.ts + emitter; the scr_net gating
|
|
5444
|
-
* precedent). Watch-free programs pay zero bytes and keep their exact
|
|
5445
|
-
* link line. Same generic-walk shape as moduleUsesZlib. */
|
|
5446
|
-
export declare function moduleUsesFsWatch(mod: IrModule): boolean;
|
|
5447
|
-
/** True when the module contains any test.* libCall or a testCtx handle
|
|
5448
|
-
* type — the link switch that pulls scr_test.c into the binary and has
|
|
5449
|
-
* the emitted main return scr_test_exit_code() after the loop drains
|
|
5450
|
-
* (native-toolchain.ts + emitter; the moduleUsesDgram shape). Test-free programs pay
|
|
5451
|
-
* zero bytes and keep their exact link line. */
|
|
5452
|
-
export declare function moduleUsesNodeTest(mod: IrModule): boolean;
|
|
5453
|
-
/** True when the module contains any dgram.* or dns.* libCall — the
|
|
5454
|
-
* link switch that pulls scr_dgram.c into the binary and has the emitted
|
|
5455
|
-
* main call scr_dgram_install (native-toolchain.ts + emitter; the scr_net gating
|
|
5456
|
-
* precedent — dns.lookup lives in the same unit, so either prefix
|
|
5457
|
-
* answers). Dgram-free programs pay zero bytes and keep their exact link
|
|
5458
|
-
* line. Same generic-walk shape as moduleUsesZlib. */
|
|
5459
|
-
export declare function moduleUsesDgram(mod: IrModule): boolean;
|
|
5460
|
-
/** True when the module contains any http.* libCall — the link switch
|
|
5461
|
-
* that pulls scr_http.c into the binary (native-toolchain.ts; moduleUsesNet already
|
|
5462
|
-
* answers true for these, so scr_net.c comes along). */
|
|
5463
|
-
export declare function moduleUsesHttpServer(mod: IrModule): boolean;
|
|
5464
|
-
/** True when the module uses the REAL h2 surface (scr_http2.c): any core
|
|
5465
|
-
* http2.* libCall, or an h2 handle type left behind by a fenced statement
|
|
5466
|
-
* (its emitted release call needs the unit — the moduleUsesNet story). */
|
|
5467
|
-
export declare function moduleUsesHttp2(mod: IrModule): boolean;
|
|
5468
|
-
/** True when the module contains any tls.* or https.* libCall — the link
|
|
5469
|
-
* switch that pulls scr_tls.c and the vendored mbedTLS archive into the
|
|
5470
|
-
* binary (native-toolchain.ts; moduleUsesNet and moduleUsesHttpServer already answer
|
|
5471
|
-
* true for these, so scr_net.c and scr_http.c come along). TLS-free
|
|
5472
|
-
* programs keep their exact link line and never build mbedTLS. */
|
|
5473
|
-
export declare function moduleUsesTls(mod: IrModule): boolean;
|
|
5474
|
-
/** True when the module contains any tlsca.* libCall — the link switch
|
|
5475
|
-
* for scr_tls_ca.c, the CA-store introspection unit (getCACertificates /
|
|
5476
|
-
* rootCertificates / setDefaultCACertificates). Deliberately SEPARATE
|
|
5477
|
-
* from moduleUsesTls: the unit is plain PEM-block bookkeeping, so a
|
|
5478
|
-
* program that only inspects the CA store never pulls mbedTLS. native-toolchain.ts
|
|
5479
|
-
* also compiles the unit whenever TLS itself links — scr_tls.c consults
|
|
5480
|
-
* the unit's default-set override for its trust anchors. */
|
|
5481
|
-
export declare function moduleUsesTlsCa(mod: IrModule): boolean;
|
|
5482
|
-
/** First async/event-loop/ambient-process surface the module graph
|
|
5483
|
-
* reaches, or null when the graph is async_free (the v1 library requirement).
|
|
5484
|
-
* Typed slots use their declaration location and executable nodes use their
|
|
5485
|
-
* own location, so the refusal anchors at the reaching construct; the
|
|
5486
|
-
* coarse moduleUses* predicates are the safety net behind the fine-grained
|
|
5487
|
-
* table (a surface reached only through a spelling the table misses still
|
|
5488
|
-
* refuses, anchored at the entry). */
|
|
5489
|
-
export declare function moduleLibAsyncSurface(mod: IrModule): {
|
|
5490
|
-
surface: string;
|
|
5491
|
-
loc: SrcLoc;
|
|
5492
|
-
} | null;
|
|
5493
|
-
/** libCall families that demote `deterministic` (prefix match over
|
|
5494
|
-
* IrLibFn spellings). process.stdout/stderr writes are deliberately NOT
|
|
5495
|
-
* here: output is an effect, not a nondeterminism input, and console
|
|
5496
|
-
* policy is the profile's ask-5 business. process.platform/arch and the
|
|
5497
|
-
* version constants fold at compile time, so they are per-binary
|
|
5498
|
-
* constants, not ambient reads. Exported for the attestation-parity test
|
|
5499
|
-
* (tests/harness/surface-manifest.test.ts): every spelling this table
|
|
5500
|
-
* demotes on must be deniable by a manifest-id fence, or the ask-5 §4
|
|
5501
|
-
* invariant (compiles under full fences ⇒ deterministic) cannot be
|
|
5502
|
-
* stated. */
|
|
5503
|
-
export declare const LIB_NONDETERMINISTIC_PREFIXES: readonly [string, string][];
|
|
5504
|
-
/** First ambient-nondeterminism or ambient-authority surface the module
|
|
5505
|
-
* graph reaches, or null when the graph is clean (the sidecar then
|
|
5506
|
-
* attests `deterministic: true`). */
|
|
5507
|
-
export declare function moduleLibNondeterministicSurface(mod: IrModule): string | null;
|
|
5508
|
-
/** The may-throw seed: libCall members that can raise. Every fs.* member
|
|
5509
|
-
* EXCEPT existsSync (which, like Node's, swallows errors and returns false)
|
|
5510
|
-
* throws a catchable error on failure; json.parse throws a catchable
|
|
5511
|
-
* SyntaxError-shaped string on malformed input. Backends' may-throw analyses must treat a function containing one
|
|
5512
|
-
* of these as throwing, exactly like a `throw` statement (and must ALSO
|
|
5513
|
-
* seed on `dynCheck` and `awaitExpr` nodes, which throw on validation
|
|
5514
|
-
* failure / promise rejection). */
|
|
5515
|
-
export declare const MAY_THROW_LIB_FNS: ReadonlySet<IrLibFn>;
|
|
5516
|
-
export {};
|