@scriptc/compiler 0.1.7 → 0.2.1
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 +98 -39
- package/ambient/scriptc-overrides.d.ts +10 -6
- package/ambient/scriptc.d.ts +15 -0
- package/dist/backend/build-cache.d.ts +1 -3
- package/dist/backend/build-cache.js +3 -22
- package/dist/backend/build-cache.js.map +1 -1
- package/dist/backend/cache-root.d.ts +3 -0
- package/dist/backend/cache-root.js +23 -0
- package/dist/backend/cache-root.js.map +1 -0
- package/dist/backend/cycle-analysis.d.ts +15 -0
- package/dist/backend/cycle-analysis.js +108 -0
- package/dist/backend/cycle-analysis.js.map +1 -0
- package/dist/backend/cycle-analysis.test.js +124 -0
- package/dist/backend/cycle-analysis.test.js.map +1 -0
- package/dist/backend/executable-features.d.ts +4 -0
- package/dist/backend/executable-features.js +42 -0
- package/dist/backend/executable-features.js.map +1 -0
- package/dist/backend/external-c.d.ts +5 -27
- package/dist/backend/external-c.js +5 -40
- package/dist/backend/external-c.js.map +1 -1
- package/dist/backend/ffi-callbacks.d.ts +2 -3
- package/dist/backend/ffi-callbacks.js +2 -3
- package/dist/backend/ffi-callbacks.js.map +1 -1
- package/dist/backend/library-identity-markers.d.ts +4 -9
- package/dist/backend/library-identity-markers.js +11 -49
- package/dist/backend/library-identity-markers.js.map +1 -1
- package/dist/backend/library-pack.d.ts +5 -0
- package/dist/backend/library-pack.js +123 -0
- package/dist/backend/library-pack.js.map +1 -0
- package/dist/backend/link-plan-core.d.ts +20 -0
- package/dist/backend/link-plan-core.js +18 -0
- package/dist/backend/link-plan-core.js.map +1 -0
- package/dist/backend/link-plan.d.ts +1 -1
- package/dist/backend/link-plan.js +16 -17
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/link-trace.d.ts +2 -0
- package/dist/backend/link-trace.js +24 -0
- package/dist/backend/link-trace.js.map +1 -0
- package/dist/backend/linker.js +1 -1
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/literals.d.ts +9 -0
- package/dist/backend/literals.js +35 -0
- package/dist/backend/literals.js.map +1 -0
- package/dist/backend/literals.test.d.ts +1 -0
- package/dist/backend/literals.test.js +53 -0
- package/dist/backend/literals.test.js.map +1 -0
- package/dist/backend/llvm/blocks.d.ts +2 -0
- package/dist/backend/llvm/blocks.js +9 -4
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/blocks.test.d.ts +1 -0
- package/dist/backend/llvm/blocks.test.js +91 -0
- package/dist/backend/llvm/blocks.test.js.map +1 -0
- package/dist/backend/llvm/classes.d.ts +14 -8
- package/dist/backend/llvm/classes.js +88 -30
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +5 -1
- package/dist/backend/llvm/common.js +45 -4
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/debug-info.js +2 -7
- package/dist/backend/llvm/debug-info.js.map +1 -1
- package/dist/backend/llvm/debug-info.test.d.ts +1 -0
- package/dist/backend/llvm/debug-info.test.js +110 -0
- package/dist/backend/llvm/debug-info.test.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +21 -2
- package/dist/backend/llvm/dyn.js +647 -251
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +596 -1
- package/dist/backend/llvm/emitter.js +769 -425
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.d.ts +1 -0
- package/dist/backend/llvm/emitter.test.js +179 -0
- package/dist/backend/llvm/emitter.test.js.map +1 -0
- package/dist/backend/llvm/expr-async.js +23 -14
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +2 -2
- package/dist/backend/llvm/expr-bytes.js +60 -31
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.d.ts +1 -1
- package/dist/backend/llvm/expr-callbacks.js +25 -22
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +136 -35
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +1 -1
- package/dist/backend/llvm/expr-containers.js +43 -14
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +5 -260
- package/dist/backend/llvm/expr-control.js +10 -6
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.d.ts +1 -1
- package/dist/backend/llvm/expr-dispatch.js +2 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +78 -81
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-island.d.ts +1 -1
- package/dist/backend/llvm/expr-island.js +11 -7
- package/dist/backend/llvm/expr-island.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +1 -1
- package/dist/backend/llvm/expr-primitives.js +62 -31
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +1 -1
- package/dist/backend/llvm/expr-records.d.ts +5 -1
- package/dist/backend/llvm/expr-records.js +54 -7
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.d.ts +4 -4
- package/dist/backend/llvm/expr-stream-bridges.js +220 -131
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.d.ts +1 -0
- package/dist/backend/llvm/expr-stream-bridges.test.js +55 -0
- package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -0
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.js +12 -12
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/layouts.d.ts +19 -0
- package/dist/backend/llvm/layouts.js +12 -0
- package/dist/backend/llvm/layouts.js.map +1 -0
- package/dist/backend/llvm/lib-abi.d.ts +19 -0
- package/dist/backend/llvm/lib-abi.js +82 -0
- package/dist/backend/llvm/lib-abi.js.map +1 -0
- package/dist/backend/llvm/lib-connect.d.ts +2 -0
- package/dist/backend/llvm/lib-connect.js +51 -0
- package/dist/backend/llvm/lib-connect.js.map +1 -0
- package/dist/backend/llvm/lib-datagram.d.ts +2 -0
- package/dist/backend/llvm/lib-datagram.js +135 -0
- package/dist/backend/llvm/lib-datagram.js.map +1 -0
- package/dist/backend/llvm/lib-dispatch.js +50 -6
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +30 -18
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.d.ts +2 -0
- package/dist/backend/llvm/lib-http2.js +215 -0
- package/dist/backend/llvm/lib-http2.js.map +1 -0
- package/dist/backend/llvm/lib-lookup.d.ts +2 -0
- package/dist/backend/llvm/lib-lookup.js +39 -0
- package/dist/backend/llvm/lib-lookup.js.map +1 -0
- package/dist/backend/llvm/lib-network.js +25 -2
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +44 -19
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +162 -3
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +3 -2
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/lib-test.d.ts +2 -0
- package/dist/backend/llvm/lib-test.js +34 -0
- package/dist/backend/llvm/lib-test.js.map +1 -0
- package/dist/backend/llvm/lib-tls.d.ts +2 -0
- package/dist/backend/llvm/lib-tls.js +82 -0
- package/dist/backend/llvm/lib-tls.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +10 -9
- package/dist/backend/llvm/shapes.js +42 -131
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/unsupported.d.ts +1 -0
- package/dist/backend/llvm/unsupported.js +1 -2
- package/dist/backend/llvm/unsupported.js.map +1 -1
- package/dist/backend/llvm/walkers.js +1 -7
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/mangle.d.ts +2 -2
- package/dist/backend/mangle.js +16 -5
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/{c/may-throw.d.ts → may-throw.d.ts} +1 -1
- package/dist/backend/{c/may-throw.js → may-throw.js} +51 -46
- package/dist/backend/may-throw.js.map +1 -0
- package/dist/backend/may-throw.test.d.ts +1 -0
- package/dist/backend/may-throw.test.js +58 -0
- package/dist/backend/may-throw.test.js.map +1 -0
- package/dist/backend/native-codegen-core.d.ts +22 -0
- package/dist/backend/native-codegen-core.js +44 -0
- package/dist/backend/native-codegen-core.js.map +1 -0
- package/dist/backend/native-codegen.d.ts +3 -19
- package/dist/backend/native-codegen.js +5 -44
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +2 -2
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +94 -0
- package/dist/backend/native-link-info-core.js +62 -0
- package/dist/backend/native-link-info-core.js.map +1 -0
- package/dist/backend/native-link-info.d.ts +3 -88
- package/dist/backend/native-link-info.js +12 -243
- package/dist/backend/native-link-info.js.map +1 -1
- package/dist/backend/native-link-info.test.js +41 -146
- package/dist/backend/native-link-info.test.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +12 -30
- package/dist/backend/native-toolchain.js +83 -233
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +77 -5
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/native-tools.d.ts +24 -0
- package/dist/backend/native-tools.js +33 -0
- package/dist/backend/native-tools.js.map +1 -0
- package/dist/backend/object-localize.js +19 -8
- package/dist/backend/object-localize.js.map +1 -1
- package/dist/backend/object-localize.test.js +22 -0
- package/dist/backend/object-localize.test.js.map +1 -1
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-core.d.ts +101 -0
- package/dist/backend/runtime-pack-core.js +172 -0
- package/dist/backend/runtime-pack-core.js.map +1 -0
- package/dist/backend/runtime-pack-native.d.ts +21 -0
- package/dist/backend/runtime-pack-native.js +73 -0
- package/dist/backend/runtime-pack-native.js.map +1 -0
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack.d.ts +3 -83
- package/dist/backend/runtime-pack.js +8 -151
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +24 -1
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/target-diagnostics.d.ts +22 -0
- package/dist/backend/target-diagnostics.js +108 -0
- package/dist/backend/target-diagnostics.js.map +1 -0
- package/dist/backend/target-platform.d.ts +15 -0
- package/dist/backend/target-platform.js +72 -0
- package/dist/backend/target-platform.js.map +1 -0
- package/dist/backend/targets.d.ts +13 -4
- package/dist/backend/targets.js +103 -34
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +72 -4
- package/dist/backend/targets.test.js.map +1 -1
- package/dist/backend/toolchain-environment.d.ts +6 -0
- package/dist/backend/toolchain-environment.js +99 -0
- package/dist/backend/toolchain-environment.js.map +1 -0
- package/dist/backend/vendor-archives.d.ts +1 -9
- package/dist/backend/vendor-archives.js +2 -9
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/backend/vendor-inputs.d.ts +9 -0
- package/dist/backend/vendor-inputs.js +10 -0
- package/dist/backend/vendor-inputs.js.map +1 -0
- package/dist/backend/warm-cache.d.ts +3 -0
- package/dist/backend/warm-cache.js +41 -0
- package/dist/backend/warm-cache.js.map +1 -0
- package/dist/cli/command.d.ts +3 -0
- package/dist/cli/command.js +328 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/host.d.ts +24 -0
- package/dist/cli/host.js +2 -0
- package/dist/cli/host.js.map +1 -0
- package/dist/cli/output-options.d.ts +26 -0
- package/dist/cli/output-options.js +60 -0
- package/dist/cli/output-options.js.map +1 -0
- package/dist/cli/paths.d.ts +12 -0
- package/dist/cli/paths.js +42 -0
- package/dist/cli/paths.js.map +1 -0
- package/dist/cli/usage.d.ts +74 -0
- package/dist/cli/usage.js +86 -0
- package/dist/cli/usage.js.map +1 -0
- package/dist/cli/wasi-paths.d.ts +8 -0
- package/dist/cli/wasi-paths.js +41 -0
- package/dist/cli/wasi-paths.js.map +1 -0
- package/dist/cli/wasi-runner.d.ts +2 -0
- package/dist/cli/wasi-runner.js +28 -0
- package/dist/cli/wasi-runner.js.map +1 -0
- package/dist/compat/fetch-profile.js +37 -7
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/compile-types.d.ts +162 -0
- package/dist/compile-types.js +2 -0
- package/dist/compile-types.js.map +1 -0
- package/dist/coverage/report.js +11 -5
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +5 -2
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.js +5 -10
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +3 -4
- package/dist/executable/executable-cache.js +5 -6
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +16 -17
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.d.ts +14 -0
- package/dist/executable/prepare.js +66 -0
- package/dist/executable/prepare.js.map +1 -0
- package/dist/ffi/ffi-manifest.d.ts +11 -4
- package/dist/ffi/ffi-manifest.js +170 -58
- package/dist/ffi/ffi-manifest.js.map +1 -1
- package/dist/ffi/ffi-manifest.test.d.ts +1 -0
- package/dist/ffi/ffi-manifest.test.js +111 -0
- package/dist/ffi/ffi-manifest.test.js.map +1 -0
- package/dist/format-integer.d.ts +3 -0
- package/dist/format-integer.js +14 -0
- package/dist/format-integer.js.map +1 -0
- package/dist/frontend/analysis.d.ts +5 -0
- package/dist/frontend/analysis.js +88 -0
- package/dist/frontend/analysis.js.map +1 -0
- package/dist/frontend/arguments-usage.d.ts +1 -3
- package/dist/frontend/arguments-usage.js.map +1 -1
- package/dist/frontend/builtin-modules.d.ts +1 -1
- package/dist/frontend/builtin-modules.js +1 -1
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/cjs-lexer.d.ts +4 -25
- package/dist/frontend/cjs-lexer.js +6 -806
- package/dist/frontend/cjs-lexer.js.map +1 -1
- package/dist/frontend/cjs-resolve.d.ts +5 -0
- package/dist/frontend/cjs-resolve.js +429 -0
- package/dist/frontend/cjs-resolve.js.map +1 -0
- package/dist/frontend/cjs-syntax.d.ts +26 -0
- package/dist/frontend/cjs-syntax.js +806 -0
- package/dist/frontend/cjs-syntax.js.map +1 -0
- package/dist/frontend/comptime-node.d.ts +4 -0
- package/dist/frontend/comptime-node.js +16 -0
- package/dist/frontend/comptime-node.js.map +1 -0
- package/dist/frontend/comptime-node.test.d.ts +1 -0
- package/dist/frontend/comptime-node.test.js +37 -0
- package/dist/frontend/comptime-node.test.js.map +1 -0
- package/dist/frontend/dts-paths.d.ts +3 -4
- package/dist/frontend/dts-paths.js +15 -8
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/fork-target.js +2 -2
- package/dist/frontend/fork-target.js.map +1 -1
- package/dist/frontend/helper-tokens.d.ts +1 -0
- package/dist/frontend/helper-tokens.js +147 -0
- package/dist/frontend/helper-tokens.js.map +1 -0
- package/dist/frontend/helper-tokens.test.d.ts +1 -0
- package/dist/frontend/helper-tokens.test.js +35 -0
- package/dist/frontend/helper-tokens.test.js.map +1 -0
- package/dist/frontend/inferred-js-diagnostics.d.ts +5 -0
- package/dist/frontend/inferred-js-diagnostics.js +69 -0
- package/dist/frontend/inferred-js-diagnostics.js.map +1 -0
- package/dist/frontend/inferred-js-diagnostics.test.d.ts +1 -0
- package/dist/frontend/inferred-js-diagnostics.test.js +58 -0
- package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -0
- package/dist/frontend/input-tracker.d.ts +5 -2
- package/dist/frontend/input-tracker.js +24 -3
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +23 -0
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lib-contract.js +32 -24
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/literal-values.d.ts +4 -0
- package/dist/frontend/literal-values.js +21 -0
- package/dist/frontend/literal-values.js.map +1 -0
- package/dist/frontend/literal-values.test.d.ts +1 -0
- package/dist/frontend/literal-values.test.js +91 -0
- package/dist/frontend/literal-values.test.js.map +1 -0
- package/dist/frontend/lowering/abstract-equality.d.ts +1 -1
- package/dist/frontend/lowering/abstract-equality.js +3 -0
- package/dist/frontend/lowering/abstract-equality.js.map +1 -1
- package/dist/frontend/lowering/array-indexed-mutation.js +11 -6
- package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
- package/dist/frontend/lowering/array-values.d.ts +4 -1
- package/dist/frontend/lowering/array-values.js +43 -1
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/callback-arg.js +1 -0
- package/dist/frontend/lowering/callback-arg.js.map +1 -1
- package/dist/frontend/lowering/class-callbacks.d.ts +12 -0
- package/dist/frontend/lowering/class-callbacks.js +74 -0
- package/dist/frontend/lowering/class-callbacks.js.map +1 -0
- package/dist/frontend/lowering/class-construction.d.ts +12 -0
- package/dist/frontend/lowering/class-construction.js +156 -0
- package/dist/frontend/lowering/class-construction.js.map +1 -0
- package/dist/frontend/lowering/class-descriptors.d.ts +10 -0
- package/dist/frontend/lowering/class-descriptors.js +114 -0
- package/dist/frontend/lowering/class-descriptors.js.map +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +51 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +1158 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.d.ts +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +93 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -0
- package/dist/frontend/lowering/class-instance-constructor.d.ts +7 -0
- package/dist/frontend/lowering/class-instance-constructor.js +67 -0
- package/dist/frontend/lowering/class-instance-constructor.js.map +1 -0
- package/dist/frontend/lowering/class-method-values.d.ts +13 -0
- package/dist/frontend/lowering/class-method-values.js +235 -0
- package/dist/frontend/lowering/class-method-values.js.map +1 -0
- package/dist/frontend/lowering/class-prototypes.d.ts +19 -0
- package/dist/frontend/lowering/class-prototypes.js +242 -0
- package/dist/frontend/lowering/class-prototypes.js.map +1 -0
- package/dist/frontend/lowering/class-runtime-statics.d.ts +8 -0
- package/dist/frontend/lowering/class-runtime-statics.js +66 -0
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -0
- package/dist/frontend/lowering/class-static-data.d.ts +6 -0
- package/dist/frontend/lowering/class-static-data.js +56 -0
- package/dist/frontend/lowering/class-static-data.js.map +1 -0
- package/dist/frontend/lowering/containers/buffer-numeric-methods.d.ts +4 -0
- package/dist/frontend/lowering/containers/buffer-numeric-methods.js +26 -0
- package/dist/frontend/lowering/containers/buffer-numeric-methods.js.map +1 -0
- package/dist/frontend/lowering/containers/bytes.d.ts +11 -7
- package/dist/frontend/lowering/containers/bytes.js +208 -163
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.d.ts +2 -2
- package/dist/frontend/lowering/containers/string-and-regexp.js +58 -63
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.d.ts +7 -0
- package/dist/frontend/lowering/containers/string-replacement.js +217 -0
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -0
- package/dist/frontend/lowering/error-methods.d.ts +14 -0
- package/dist/frontend/lowering/error-methods.js +177 -0
- package/dist/frontend/lowering/error-methods.js.map +1 -0
- package/dist/frontend/lowering/expressions/global-symbols.d.ts +6 -0
- package/dist/frontend/lowering/expressions/global-symbols.js +11 -0
- package/dist/frontend/lowering/expressions/global-symbols.js.map +1 -0
- package/dist/frontend/lowering/expressions/native-proxy.d.ts +7 -0
- package/dist/frontend/lowering/expressions/native-proxy.js +51 -0
- package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.d.ts +6 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js +132 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -0
- package/dist/frontend/lowering/expressions/object-literals.d.ts +8 -8
- package/dist/frontend/lowering/expressions/object-literals.js +509 -183
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +3 -4
- package/dist/frontend/lowering/expressions/optional-chains.js +88 -24
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/try-lower-expression.js +1 -0
- package/dist/frontend/lowering/expressions/try-lower-expression.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-field-write.d.ts +8 -0
- package/dist/frontend/lowering/expressions/union-field-write.js +71 -0
- package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -0
- package/dist/frontend/lowering/function-context.d.ts +101 -0
- package/dist/frontend/lowering/function-context.js +109 -0
- package/dist/frontend/lowering/function-context.js.map +1 -0
- package/dist/frontend/lowering/generator-delegation.d.ts +7 -0
- package/dist/frontend/lowering/generator-delegation.js +85 -0
- package/dist/frontend/lowering/generator-delegation.js.map +1 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +11 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +143 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.d.ts +4 -1
- package/dist/frontend/lowering/lib-boundary.js +112 -20
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lib-boundary.test.d.ts +1 -0
- package/dist/frontend/lowering/lib-boundary.test.js +45 -0
- package/dist/frontend/lowering/lib-boundary.test.js.map +1 -0
- package/dist/frontend/lowering/lower-array-sort.d.ts +1 -1
- package/dist/frontend/lowering/lower-assert.d.ts +1 -1
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.d.ts +1 -1
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.d.ts +18 -0
- package/dist/frontend/lowering/lower-builtin-values.js +249 -0
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -0
- package/dist/frontend/lowering/lower-builtins.d.ts +33 -46
- package/dist/frontend/lowering/lower-builtins.js +676 -365
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +28 -22
- package/dist/frontend/lowering/lower-calls.js +1660 -412
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +95 -57
- package/dist/frontend/lowering/lower-classes.js +1491 -404
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +1 -1
- package/dist/frontend/lowering/lower-comptime.js +23 -32
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +36 -32
- package/dist/frontend/lowering/lower-containers.js +925 -181
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.d.ts +1 -1
- package/dist/frontend/lowering/lower-dgram.js +3 -2
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-enums.d.ts +1 -1
- package/dist/frontend/lowering/lower-enums.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +30 -1
- package/dist/frontend/lowering/lower-event-emitter.js +58 -26
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-expando.d.ts +7 -1
- package/dist/frontend/lowering/lower-expando.js +14 -6
- package/dist/frontend/lowering/lower-expando.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +37 -13
- package/dist/frontend/lowering/lower-exprs.js +2163 -863
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +2 -5
- package/dist/frontend/lowering/lower-generators.js +88 -46
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.d.ts +7 -0
- package/dist/frontend/lowering/lower-global-value.js +17 -0
- package/dist/frontend/lowering/lower-global-value.js.map +1 -0
- package/dist/frontend/lowering/lower-inspect.d.ts +1 -1
- package/dist/frontend/lowering/lower-inspect.js +17 -8
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +7 -8
- package/dist/frontend/lowering/lower-island.js +66 -33
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.d.ts +2 -2
- package/dist/frontend/lowering/lower-mixins.js +5 -3
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +1 -1
- package/dist/frontend/lowering/lower-modules.js +445 -39
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.test.d.ts +1 -0
- package/dist/frontend/lowering/lower-modules.test.js +39 -0
- package/dist/frontend/lowering/lower-modules.test.js.map +1 -0
- package/dist/frontend/lowering/lower-namespaces.d.ts +1 -1
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-node-module.d.ts +1 -1
- package/dist/frontend/lowering/lower-node-module.js +13 -10
- package/dist/frontend/lowering/lower-node-module.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +1 -1
- package/dist/frontend/lowering/lower-server.js +6 -10
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +17 -17
- package/dist/frontend/lowering/lower-stmts.js +855 -514
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +1 -1
- package/dist/frontend/lowering/lower-stream.js +20 -11
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-test.d.ts +1 -1
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lower-url.d.ts +6 -0
- package/dist/frontend/lowering/lower-url.js +77 -0
- package/dist/frontend/lowering/lower-url.js.map +1 -0
- package/dist/frontend/lowering/lowerer.d.ts +140 -190
- package/dist/frontend/lowering/lowerer.js +1193 -712
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.d.ts +1 -0
- package/dist/frontend/lowering/lowerer.test.js +172 -0
- package/dist/frontend/lowering/lowerer.test.js.map +1 -0
- package/dist/frontend/lowering/native-ffi.d.ts +5 -0
- package/dist/frontend/lowering/native-ffi.js +40 -0
- package/dist/frontend/lowering/native-ffi.js.map +1 -0
- package/dist/frontend/lowering/object-enumeration-receiver.d.ts +7 -0
- package/dist/frontend/lowering/object-enumeration-receiver.js +33 -0
- package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -0
- package/dist/frontend/lowering/object-factory-new.d.ts +8 -0
- package/dist/frontend/lowering/object-factory-new.js +68 -0
- package/dist/frontend/lowering/object-factory-new.js.map +1 -0
- package/dist/frontend/lowering/optional-arguments.js +6 -1
- package/dist/frontend/lowering/optional-arguments.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.js +2 -1
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-locals.d.ts +14 -0
- package/dist/frontend/lowering/runtime-optional-locals.js +41 -0
- package/dist/frontend/lowering/runtime-optional-locals.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-locals.test.d.ts +1 -0
- package/dist/frontend/lowering/runtime-optional-locals.test.js +85 -0
- package/dist/frontend/lowering/runtime-optional-locals.test.js.map +1 -0
- package/dist/frontend/lowering/sanitize-class-types.d.ts +8 -0
- package/dist/frontend/lowering/sanitize-class-types.js +79 -0
- package/dist/frontend/lowering/sanitize-class-types.js.map +1 -0
- package/dist/frontend/lowering/sanitize-class-types.test.d.ts +1 -0
- package/dist/frontend/lowering/sanitize-class-types.test.js +60 -0
- package/dist/frontend/lowering/sanitize-class-types.test.js.map +1 -0
- package/dist/frontend/lowering/static-this.d.ts +5 -1
- package/dist/frontend/lowering/static-this.js +28 -2
- package/dist/frontend/lowering/static-this.js.map +1 -1
- package/dist/frontend/lowering/string-index.d.ts +7 -0
- package/dist/frontend/lowering/string-index.js +39 -0
- package/dist/frontend/lowering/string-index.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +10 -3
- package/dist/frontend/lowering/surfaces.js +86 -37
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/symbol-fields.d.ts +22 -0
- package/dist/frontend/lowering/symbol-fields.js +183 -0
- package/dist/frontend/lowering/symbol-fields.js.map +1 -0
- package/dist/frontend/lowering/symbol-methods.d.ts +7 -0
- package/dist/frontend/lowering/symbol-methods.js +30 -0
- package/dist/frontend/lowering/symbol-methods.js.map +1 -0
- package/dist/frontend/lowering/text-decoder-encoding.d.ts +12 -0
- package/dist/frontend/lowering/text-decoder-encoding.js +82 -0
- package/dist/frontend/lowering/text-decoder-encoding.js.map +1 -0
- package/dist/frontend/lowering/text-decoder-encoding.test.d.ts +1 -0
- package/dist/frontend/lowering/text-decoder-encoding.test.js +38 -0
- package/dist/frontend/lowering/text-decoder-encoding.test.js.map +1 -0
- package/dist/frontend/lowering/union-narrow.d.ts +9 -0
- package/dist/frontend/lowering/union-narrow.js +59 -0
- package/dist/frontend/lowering/union-narrow.js.map +1 -0
- package/dist/frontend/lowering/union-narrow.test.d.ts +1 -0
- package/dist/frontend/lowering/union-narrow.test.js +72 -0
- package/dist/frontend/lowering/union-narrow.test.js.map +1 -0
- package/dist/frontend/lowering/union-retag.d.ts +43 -0
- package/dist/frontend/lowering/union-retag.js +259 -0
- package/dist/frontend/lowering/union-retag.js.map +1 -0
- package/dist/frontend/lowering/union-retag.test.d.ts +1 -0
- package/dist/frontend/lowering/union-retag.test.js +405 -0
- package/dist/frontend/lowering/union-retag.test.js.map +1 -0
- package/dist/frontend/lowering/unregistered-class-types.d.ts +14 -0
- package/dist/frontend/lowering/unregistered-class-types.js +94 -0
- package/dist/frontend/lowering/unregistered-class-types.js.map +1 -0
- package/dist/frontend/lowering/unregistered-class-types.test.d.ts +1 -0
- package/dist/frontend/lowering/unregistered-class-types.test.js +65 -0
- package/dist/frontend/lowering/unregistered-class-types.test.js.map +1 -0
- package/dist/frontend/lowering/width-lift.d.ts +40 -0
- package/dist/frontend/lowering/width-lift.js +2 -0
- package/dist/frontend/lowering/width-lift.js.map +1 -0
- package/dist/frontend/module-syntax.d.ts +58 -0
- package/dist/frontend/module-syntax.js +123 -0
- package/dist/frontend/module-syntax.js.map +1 -0
- package/dist/frontend/module-syntax.test.d.ts +1 -0
- package/dist/frontend/module-syntax.test.js +78 -0
- package/dist/frontend/module-syntax.test.js.map +1 -0
- package/dist/frontend/npm-fetch-analysis.d.ts +17 -0
- package/dist/frontend/npm-fetch-analysis.js +100 -0
- package/dist/frontend/npm-fetch-analysis.js.map +1 -0
- package/dist/frontend/npm-fetch-analysis.test.d.ts +1 -0
- package/dist/frontend/npm-fetch-analysis.test.js +107 -0
- package/dist/frontend/npm-fetch-analysis.test.js.map +1 -0
- package/dist/frontend/npm-fetch-node.d.ts +2 -0
- package/dist/frontend/npm-fetch-node.js +12 -0
- package/dist/frontend/npm-fetch-node.js.map +1 -0
- package/dist/frontend/npm-fetch-syntax.d.ts +6 -0
- package/dist/frontend/npm-fetch-syntax.js +207 -0
- package/dist/frontend/npm-fetch-syntax.js.map +1 -0
- package/dist/frontend/npm-node.d.ts +10 -0
- package/dist/frontend/npm-node.js +14 -0
- package/dist/frontend/npm-node.js.map +1 -0
- package/dist/frontend/npm-static-bundled-cjs.d.ts +8 -0
- package/dist/frontend/npm-static-bundled-cjs.js +236 -0
- package/dist/frontend/npm-static-bundled-cjs.js.map +1 -0
- package/dist/frontend/npm-static-bundled-cjs.test.d.ts +1 -0
- package/dist/frontend/npm-static-bundled-cjs.test.js +69 -0
- package/dist/frontend/npm-static-bundled-cjs.test.js.map +1 -0
- package/dist/frontend/npm-static-declaration-syntax.d.ts +57 -0
- package/dist/frontend/npm-static-declaration-syntax.js +944 -0
- package/dist/frontend/npm-static-declaration-syntax.js.map +1 -0
- package/dist/frontend/npm-static-declarations.d.ts +11 -39
- package/dist/frontend/npm-static-declarations.js +22 -561
- package/dist/frontend/npm-static-declarations.js.map +1 -1
- package/dist/frontend/npm-static-declarations.test.js +245 -6
- package/dist/frontend/npm-static-declarations.test.js.map +1 -1
- package/dist/frontend/npm-static-prune.d.ts +1 -1
- package/dist/frontend/npm-static-prune.js +121 -38
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-prune.test.js +9 -1
- package/dist/frontend/npm-static-prune.test.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-host.d.ts +4 -0
- package/dist/frontend/npm-static-rewrite-host.js +179 -0
- package/dist/frontend/npm-static-rewrite-host.js.map +1 -0
- package/dist/frontend/npm-static-rewrite-syntax.d.ts +16 -0
- package/dist/frontend/npm-static-rewrite-syntax.js +905 -0
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -0
- package/dist/frontend/npm-static-rewrite.d.ts +0 -5
- package/dist/frontend/npm-static-rewrite.js +2 -1079
- package/dist/frontend/npm-static-rewrite.js.map +1 -1
- package/dist/frontend/npm-static-subtyping.d.ts +5 -0
- package/dist/frontend/npm-static-subtyping.js +55 -0
- package/dist/frontend/npm-static-subtyping.js.map +1 -0
- package/dist/frontend/npm-static-subtyping.test.d.ts +1 -0
- package/dist/frontend/npm-static-subtyping.test.js +58 -0
- package/dist/frontend/npm-static-subtyping.test.js.map +1 -0
- package/dist/frontend/npm-static.d.ts +7 -15
- package/dist/frontend/npm-static.js +19 -28
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.d.ts +8 -69
- package/dist/frontend/npm.js +21 -361
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/npm.test.js +2 -2
- package/dist/frontend/npm.test.js.map +1 -1
- package/dist/frontend/pipeline-native.d.ts +6 -0
- package/dist/frontend/pipeline-native.js +32 -0
- package/dist/frontend/pipeline-native.js.map +1 -0
- package/dist/frontend/pipeline.d.ts +54 -0
- package/dist/frontend/pipeline.js +382 -0
- package/dist/frontend/pipeline.js.map +1 -0
- package/dist/frontend/pipeline.test.d.ts +1 -0
- package/dist/frontend/pipeline.test.js +77 -0
- package/dist/frontend/pipeline.test.js.map +1 -0
- package/dist/frontend/program-analysis.d.ts +10 -0
- package/dist/frontend/program-analysis.js +14 -0
- package/dist/frontend/program-analysis.js.map +1 -0
- package/dist/frontend/program-node.d.ts +9 -0
- package/dist/frontend/program-node.js +48 -0
- package/dist/frontend/program-node.js.map +1 -0
- package/dist/frontend/program.d.ts +39 -20
- package/dist/frontend/program.js +393 -189
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +105 -2
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/provenance-core.d.ts +9 -0
- package/dist/frontend/provenance-core.js +435 -0
- package/dist/frontend/provenance-core.js.map +1 -0
- package/dist/frontend/provenance.d.ts +0 -4
- package/dist/frontend/provenance.js +4 -459
- package/dist/frontend/provenance.js.map +1 -1
- package/dist/frontend/resolve.d.ts +3 -1
- package/dist/frontend/resolve.js +6 -3
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/runtime-resolve.d.ts +4 -3
- package/dist/frontend/runtime-resolve.js +22 -18
- package/dist/frontend/runtime-resolve.js.map +1 -1
- package/dist/frontend/runtime-resolve.test.js +53 -0
- package/dist/frontend/runtime-resolve.test.js.map +1 -1
- package/dist/frontend/services-node.d.ts +5 -0
- package/dist/frontend/services-node.js +19 -0
- package/dist/frontend/services-node.js.map +1 -0
- package/dist/frontend/services-node.test.d.ts +1 -0
- package/dist/frontend/services-node.test.js +70 -0
- package/dist/frontend/services-node.test.js.map +1 -0
- package/dist/frontend/services.d.ts +44 -0
- package/dist/frontend/services.js +90 -0
- package/dist/frontend/services.js.map +1 -0
- package/dist/frontend/services.test.d.ts +1 -0
- package/dist/frontend/services.test.js +174 -0
- package/dist/frontend/services.test.js.map +1 -0
- package/dist/frontend/ts7/adapter.d.ts +3 -3
- package/dist/frontend/ts7/adapter.js +14 -31
- package/dist/frontend/ts7/adapter.js.map +1 -1
- package/dist/frontend/ts7/api.d.ts +16 -0
- package/dist/frontend/ts7/api.js +24 -0
- package/dist/frontend/ts7/api.js.map +1 -0
- package/dist/frontend/ts7/ast-bytes.d.ts +31 -0
- package/dist/frontend/ts7/ast-bytes.js +137 -0
- package/dist/frontend/ts7/ast-bytes.js.map +1 -0
- package/dist/frontend/ts7/ast-bytes.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-bytes.test.js +73 -0
- package/dist/frontend/ts7/ast-bytes.test.js.map +1 -0
- package/dist/frontend/ts7/ast-guards.generated.d.ts +353 -0
- package/dist/frontend/ts7/ast-guards.generated.js +1951 -0
- package/dist/frontend/ts7/ast-guards.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-guards.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-guards.test.js +43 -0
- package/dist/frontend/ts7/ast-guards.test.js.map +1 -0
- package/dist/frontend/ts7/ast-node.d.ts +194 -0
- package/dist/frontend/ts7/ast-node.js +448 -0
- package/dist/frontend/ts7/ast-node.js.map +1 -0
- package/dist/frontend/ts7/ast-node.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-node.test.js +266 -0
- package/dist/frontend/ts7/ast-node.test.js.map +1 -0
- package/dist/frontend/ts7/ast-schema.generated.d.ts +503 -0
- package/dist/frontend/ts7/ast-schema.generated.js +1446 -0
- package/dist/frontend/ts7/ast-schema.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-text.d.ts +6 -0
- package/dist/frontend/ts7/ast-text.js +124 -0
- package/dist/frontend/ts7/ast-text.js.map +1 -0
- package/dist/frontend/ts7/ast-text.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-text.test.js +38 -0
- package/dist/frontend/ts7/ast-text.test.js.map +1 -0
- package/dist/frontend/ts7/ast-tokens.generated.d.ts +2 -0
- package/dist/frontend/ts7/ast-tokens.generated.js +155 -0
- package/dist/frontend/ts7/ast-tokens.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-types.d.ts +42 -0
- package/dist/frontend/ts7/ast-types.generated.d.ts +1615 -0
- package/dist/frontend/ts7/ast-types.generated.js +5 -0
- package/dist/frontend/ts7/ast-types.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-types.js +3 -0
- package/dist/frontend/ts7/ast-types.js.map +1 -0
- package/dist/frontend/ts7/ast-wire.d.ts +58 -0
- package/dist/frontend/ts7/ast-wire.js +267 -0
- package/dist/frontend/ts7/ast-wire.js.map +1 -0
- package/dist/frontend/ts7/ast-wire.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-wire.test.js +151 -0
- package/dist/frontend/ts7/ast-wire.test.js.map +1 -0
- package/dist/frontend/ts7/ast.d.ts +14 -14
- package/dist/frontend/ts7/ast.js +25 -18
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/census-check.js +1 -0
- package/dist/frontend/ts7/census-check.js.map +1 -1
- package/dist/frontend/ts7/checker-cache.d.ts +48 -0
- package/dist/frontend/ts7/checker-cache.js +92 -0
- package/dist/frontend/ts7/checker-cache.js.map +1 -0
- package/dist/frontend/ts7/checker.d.ts +19 -46
- package/dist/frontend/ts7/checker.js +231 -161
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.d.ts +1 -0
- package/dist/frontend/ts7/checker.test.js +335 -0
- package/dist/frontend/ts7/checker.test.js.map +1 -0
- package/dist/frontend/ts7/enums.d.ts +4 -27
- package/dist/frontend/ts7/enums.generated.d.ts +878 -0
- package/dist/frontend/ts7/enums.generated.js +1313 -0
- package/dist/frontend/ts7/enums.generated.js.map +1 -0
- package/dist/frontend/ts7/enums.js +4 -45
- package/dist/frontend/ts7/enums.js.map +1 -1
- package/dist/frontend/ts7/enums.test.d.ts +1 -0
- package/dist/frontend/ts7/enums.test.js +48 -0
- package/dist/frontend/ts7/enums.test.js.map +1 -0
- package/dist/frontend/ts7/native-api.d.ts +10 -0
- package/dist/frontend/ts7/native-api.js +10 -0
- package/dist/frontend/ts7/native-api.js.map +1 -0
- package/dist/frontend/ts7/native-host.d.ts +2 -0
- package/dist/frontend/ts7/native-host.js +11 -0
- package/dist/frontend/ts7/native-host.js.map +1 -0
- package/dist/frontend/ts7/native-process.d.ts +14 -0
- package/dist/frontend/ts7/native-process.js +62 -0
- package/dist/frontend/ts7/native-process.js.map +1 -0
- package/dist/frontend/ts7/program-adapter.d.ts +10 -98
- package/dist/frontend/ts7/program-adapter.js +16 -310
- package/dist/frontend/ts7/program-adapter.js.map +1 -1
- package/dist/frontend/ts7/program-host.d.ts +115 -0
- package/dist/frontend/ts7/program-host.js +347 -0
- package/dist/frontend/ts7/program-host.js.map +1 -0
- package/dist/frontend/ts7/program-host.test.d.ts +1 -0
- package/dist/frontend/ts7/program-host.test.js +207 -0
- package/dist/frontend/ts7/program-host.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-api.d.ts +12 -0
- package/dist/frontend/ts7/rpc-api.js +23 -0
- package/dist/frontend/ts7/rpc-api.js.map +1 -0
- package/dist/frontend/ts7/rpc-client.d.ts +27 -0
- package/dist/frontend/ts7/rpc-client.js +102 -0
- package/dist/frontend/ts7/rpc-client.js.map +1 -0
- package/dist/frontend/ts7/rpc-client.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-client.test.js +133 -0
- package/dist/frontend/ts7/rpc-client.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-filesystem.d.ts +16 -0
- package/dist/frontend/ts7/rpc-filesystem.js +42 -0
- package/dist/frontend/ts7/rpc-filesystem.js.map +1 -0
- package/dist/frontend/ts7/rpc-filesystem.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-filesystem.test.js +89 -0
- package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-process.d.ts +2 -0
- package/dist/frontend/ts7/rpc-process.js +148 -0
- package/dist/frontend/ts7/rpc-process.js.map +1 -0
- package/dist/frontend/ts7/rpc-process.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-process.test.js +29 -0
- package/dist/frontend/ts7/rpc-process.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-wire.d.ts +46 -0
- package/dist/frontend/ts7/rpc-wire.js +195 -0
- package/dist/frontend/ts7/rpc-wire.js.map +1 -0
- package/dist/frontend/ts7/rpc-wire.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-wire.test.js +168 -0
- package/dist/frontend/ts7/rpc-wire.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-checker.d.ts +137 -0
- package/dist/frontend/ts7/semantic-checker.js +221 -0
- package/dist/frontend/ts7/semantic-checker.js.map +1 -0
- package/dist/frontend/ts7/semantic-checker.test.d.ts +1 -0
- package/dist/frontend/ts7/semantic-checker.test.js +119 -0
- package/dist/frontend/ts7/semantic-checker.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-json.d.ts +5 -0
- package/dist/frontend/ts7/semantic-json.js +47 -0
- package/dist/frontend/ts7/semantic-json.js.map +1 -0
- package/dist/frontend/ts7/semantic-json.test.d.ts +1 -0
- package/dist/frontend/ts7/semantic-json.test.js +42 -0
- package/dist/frontend/ts7/semantic-json.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-model.d.ts +222 -0
- package/dist/frontend/ts7/semantic-model.js +423 -0
- package/dist/frontend/ts7/semantic-model.js.map +1 -0
- package/dist/frontend/ts7/semantic-model.test.d.ts +1 -0
- package/dist/frontend/ts7/semantic-model.test.js +322 -0
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-schema.generated.d.ts +283 -0
- package/dist/frontend/ts7/semantic-schema.generated.js +222 -0
- package/dist/frontend/ts7/semantic-schema.generated.js.map +1 -0
- package/dist/frontend/ts7/semantic-types.d.ts +5 -0
- package/dist/frontend/ts7/semantic-types.js +2 -0
- package/dist/frontend/ts7/semantic-types.js.map +1 -0
- package/dist/frontend/ts7/session-cache.d.ts +17 -0
- package/dist/frontend/ts7/session-cache.js +97 -0
- package/dist/frontend/ts7/session-cache.js.map +1 -0
- package/dist/frontend/ts7/session-cache.test.d.ts +1 -0
- package/dist/frontend/ts7/session-cache.test.js +87 -0
- package/dist/frontend/ts7/session-cache.test.js.map +1 -0
- package/dist/frontend/ts7/session-path.d.ts +18 -0
- package/dist/frontend/ts7/session-path.js +203 -0
- package/dist/frontend/ts7/session-path.js.map +1 -0
- package/dist/frontend/ts7/session-path.test.d.ts +1 -0
- package/dist/frontend/ts7/session-path.test.js +34 -0
- package/dist/frontend/ts7/session-path.test.js.map +1 -0
- package/dist/frontend/ts7/session-schema.generated.d.ts +167 -0
- package/dist/frontend/ts7/session-schema.generated.js +5 -0
- package/dist/frontend/ts7/session-schema.generated.js.map +1 -0
- package/dist/frontend/ts7/session-timing.d.ts +50 -0
- package/dist/frontend/ts7/session-timing.js +61 -0
- package/dist/frontend/ts7/session-timing.js.map +1 -0
- package/dist/frontend/ts7/session-timing.test.d.ts +1 -0
- package/dist/frontend/ts7/session-timing.test.js +52 -0
- package/dist/frontend/ts7/session-timing.test.js.map +1 -0
- package/dist/frontend/ts7/session.d.ts +105 -0
- package/dist/frontend/ts7/session.js +233 -0
- package/dist/frontend/ts7/session.js.map +1 -0
- package/dist/frontend/ts7/session.test.d.ts +1 -0
- package/dist/frontend/ts7/session.test.js +215 -0
- package/dist/frontend/ts7/session.test.js.map +1 -0
- package/dist/frontend/ts7/source-parser-node.d.ts +6 -0
- package/dist/frontend/ts7/source-parser-node.js +15 -0
- package/dist/frontend/ts7/source-parser-node.js.map +1 -0
- package/dist/frontend/ts7/source-parser.d.ts +25 -0
- package/dist/frontend/ts7/source-parser.js +96 -0
- package/dist/frontend/ts7/source-parser.js.map +1 -0
- package/dist/frontend/ts7/source-parser.test.d.ts +1 -0
- package/dist/frontend/ts7/source-parser.test.js +151 -0
- package/dist/frontend/ts7/source-parser.test.js.map +1 -0
- package/dist/frontend/ts7/syntax.d.ts +3 -0
- package/dist/frontend/ts7/syntax.js +4 -0
- package/dist/frontend/ts7/syntax.js.map +1 -0
- package/dist/frontend/tsc-codes.js +3 -0
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +34 -18
- package/dist/frontend/type-mapper.js +552 -131
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.js +146 -2
- package/dist/frontend/type-mapper.test.js.map +1 -1
- package/dist/frontend/union-discriminants.d.ts +16 -0
- package/dist/frontend/union-discriminants.js +98 -0
- package/dist/frontend/union-discriminants.js.map +1 -0
- package/dist/frontend/union-discriminants.test.d.ts +1 -0
- package/dist/frontend/union-discriminants.test.js +182 -0
- package/dist/frontend/union-discriminants.test.js.map +1 -0
- package/dist/index.d.ts +7 -198
- package/dist/index.js +369 -1572
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +16 -4
- package/dist/ir/analysis.js +23 -4
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/analysis.test.js +15 -2
- package/dist/ir/analysis.test.js.map +1 -1
- package/dist/ir/constant-tables.js +67 -49
- package/dist/ir/constant-tables.js.map +1 -1
- package/dist/ir/constant-tables.test.js +1 -1
- package/dist/ir/control-flow.d.ts +6 -0
- package/dist/ir/control-flow.js +142 -0
- package/dist/ir/control-flow.js.map +1 -0
- package/dist/ir/control-flow.test.d.ts +1 -0
- package/dist/ir/control-flow.test.js +113 -0
- package/dist/ir/control-flow.test.js.map +1 -0
- package/dist/ir/integer-loops.js +7 -18
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-ranges.js +53 -27
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/ir.d.ts +334 -176
- package/dist/ir/ir.js +710 -903
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +162 -1
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/scalar-records.js +165 -134
- package/dist/ir/scalar-records.js.map +1 -1
- package/dist/ir/scalar-records.test.js +1 -1
- package/dist/ir/serialize.d.ts +4 -2
- package/dist/ir/serialize.js +33 -14
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.d.ts +1 -0
- package/dist/ir/serialize.test.js +57 -0
- package/dist/ir/serialize.test.js.map +1 -0
- package/dist/ir/traverse.d.ts +41 -0
- package/dist/ir/traverse.js +660 -0
- package/dist/ir/traverse.js.map +1 -0
- package/dist/ir/traverse.test.d.ts +1 -0
- package/dist/ir/traverse.test.js +242 -0
- package/dist/ir/traverse.test.js.map +1 -0
- package/dist/ir/validate.js +2018 -1498
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +536 -2
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/cache-primitives.d.ts +2 -3
- package/dist/library/cache-primitives.js +4 -6
- package/dist/library/cache-primitives.js.map +1 -1
- package/dist/library/fence-eval.js +2 -2
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/int-infer.js +7 -6
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/int-infer.test.js +4 -4
- package/dist/library/library-cache.d.ts +3 -2
- package/dist/library/library-cache.js +5 -17
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +54 -41
- package/dist/library/library-cache.test.js.map +1 -1
- package/dist/library/library-profile.d.ts +3 -1
- package/dist/library/library-profile.js +15 -6
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/prepare.d.ts +15 -0
- package/dist/library/prepare.js +584 -0
- package/dist/library/prepare.js.map +1 -0
- package/dist/library/semantic-source.d.ts +1 -1
- package/dist/library/semantic-source.js +8 -6
- package/dist/library/semantic-source.js.map +1 -1
- package/dist/library/sidecar-validate.js +4 -4
- package/dist/library/sidecar-validate.js.map +1 -1
- package/dist/library/sidecar.d.ts +2 -0
- package/dist/library/sidecar.js +10 -3
- package/dist/library/sidecar.js.map +1 -1
- package/dist/native/cache.d.ts +11 -0
- package/dist/native/cache.js +113 -0
- package/dist/native/cache.js.map +1 -0
- package/dist/native/cache.test.d.ts +1 -0
- package/dist/native/cache.test.js +66 -0
- package/dist/native/cache.test.js.map +1 -0
- package/dist/native/cli.d.ts +1 -0
- package/dist/native/cli.js +112 -0
- package/dist/native/cli.js.map +1 -0
- package/dist/native/compiler.d.ts +15 -0
- package/dist/native/compiler.js +336 -0
- package/dist/native/compiler.js.map +1 -0
- package/dist/native/compiler.test.d.ts +1 -0
- package/dist/native/compiler.test.js +174 -0
- package/dist/native/compiler.test.js.map +1 -0
- package/dist/native/comptime.d.ts +5 -0
- package/dist/native/comptime.js +73 -0
- package/dist/native/comptime.js.map +1 -0
- package/dist/native/comptime.test.d.ts +1 -0
- package/dist/native/comptime.test.js +65 -0
- package/dist/native/comptime.test.js.map +1 -0
- package/dist/native/executable-cache.d.ts +26 -0
- package/dist/native/executable-cache.js +228 -0
- package/dist/native/executable-cache.js.map +1 -0
- package/dist/native/executable-cache.test.d.ts +1 -0
- package/dist/native/executable-cache.test.js +151 -0
- package/dist/native/executable-cache.test.js.map +1 -0
- package/dist/native/file-identity.d.ts +4 -0
- package/dist/native/file-identity.js +14 -0
- package/dist/native/file-identity.js.map +1 -0
- package/dist/native/file-identity.test.d.ts +1 -0
- package/dist/native/file-identity.test.js +43 -0
- package/dist/native/file-identity.test.js.map +1 -0
- package/dist/native/library.d.ts +22 -0
- package/dist/native/library.js +83 -0
- package/dist/native/library.js.map +1 -0
- package/dist/native/prepare.d.ts +21 -0
- package/dist/native/prepare.js +174 -0
- package/dist/native/prepare.js.map +1 -0
- package/dist/native/prepare.test.d.ts +1 -0
- package/dist/native/prepare.test.js +70 -0
- package/dist/native/prepare.test.js.map +1 -0
- package/dist/native/sanitizer.d.ts +11 -0
- package/dist/native/sanitizer.js +137 -0
- package/dist/native/sanitizer.js.map +1 -0
- package/dist/native/sanitizer.test.d.ts +1 -0
- package/dist/native/sanitizer.test.js +58 -0
- package/dist/native/sanitizer.test.js.map +1 -0
- package/dist/native/task.d.ts +4 -0
- package/dist/native/task.js +16 -0
- package/dist/native/task.js.map +1 -0
- package/dist/native/task.test.d.ts +1 -0
- package/dist/native/task.test.js +17 -0
- package/dist/native/task.test.js.map +1 -0
- package/dist/native/toolchain.d.ts +45 -0
- package/dist/native/toolchain.js +94 -0
- package/dist/native/toolchain.js.map +1 -0
- package/dist/native/toolchain.test.d.ts +1 -0
- package/dist/native/toolchain.test.js +85 -0
- package/dist/native/toolchain.test.js.map +1 -0
- package/dist/startup-cache.d.ts +1 -1
- package/dist/startup-cache.js +2 -5
- package/dist/startup-cache.js.map +1 -1
- package/dist/timing.d.ts +4 -0
- package/dist/timing.js +19 -0
- package/dist/timing.js.map +1 -0
- package/dist/wasi-paths.js +10 -7
- package/dist/wasi-paths.js.map +1 -1
- package/package.json +28 -19
- package/surface-manifest.json +107 -98
- package/dist/backend/c/async.d.ts +0 -171
- package/dist/backend/c/async.js +0 -1317
- package/dist/backend/c/async.js.map +0 -1
- package/dist/backend/c/c-emitter.d.ts +0 -536
- package/dist/backend/c/c-emitter.js +0 -1932
- package/dist/backend/c/c-emitter.js.map +0 -1
- package/dist/backend/c/exprs.d.ts +0 -15
- package/dist/backend/c/exprs.js +0 -8847
- package/dist/backend/c/exprs.js.map +0 -1
- package/dist/backend/c/island.d.ts +0 -45
- package/dist/backend/c/island.js +0 -281
- package/dist/backend/c/island.js.map +0 -1
- package/dist/backend/c/may-throw.js.map +0 -1
- package/dist/backend/c/shapes.d.ts +0 -142
- package/dist/backend/c/shapes.js +0 -603
- package/dist/backend/c/shapes.js.map +0 -1
- package/dist/backend/c/stmts.d.ts +0 -76
- package/dist/backend/c/stmts.js +0 -1108
- package/dist/backend/c/stmts.js.map +0 -1
- package/dist/backend/c/types.d.ts +0 -71
- package/dist/backend/c/types.js +0 -459
- package/dist/backend/c/types.js.map +0 -1
- package/dist/backend/c/types.test.js +0 -32
- package/dist/backend/c/types.test.js.map +0 -1
- package/dist/backend/c/walkers.d.ts +0 -134
- package/dist/backend/c/walkers.js +0 -1772
- package/dist/backend/c/walkers.js.map +0 -1
- /package/dist/backend/{c/types.test.d.ts → cycle-analysis.test.d.ts} +0 -0
package/dist/ir/ir.d.ts
CHANGED
|
@@ -4,10 +4,11 @@ export interface SrcLoc {
|
|
|
4
4
|
start: number;
|
|
5
5
|
end: number;
|
|
6
6
|
}
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
|
|
10
|
-
export
|
|
7
|
+
/** Numeric typed-array element kinds with a native representation. Float16
|
|
8
|
+
* and BigInt typed arrays remain frontend-fenced. */
|
|
9
|
+
export type IrBytesElem = "u8" | "u8c" | "i8" | "u16" | "i16" | "u32" | "i32" | "f32" | "f64";
|
|
10
|
+
export declare const BYTES_ELEMENT_SIZE: Record<IrBytesElem, number>;
|
|
11
|
+
export declare const BYTES_ELEMENT_NAME: Record<IrBytesElem, string>;
|
|
11
12
|
export type IrType = {
|
|
12
13
|
kind: "f64";
|
|
13
14
|
}
|
|
@@ -36,10 +37,10 @@ export type IrType = {
|
|
|
36
37
|
}
|
|
37
38
|
/** ES `Map<K, V>` — heap, refcounted, insertion-ordered hash map with ONE
|
|
38
39
|
* runtime representation (ScrMap) and type-directed key/value handling,
|
|
39
|
-
* exactly the array pattern (never per-instantiation structs). Keys
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
40
|
+
* exactly the array pattern (never per-instantiation structs). Keys use
|
|
41
|
+
* numeric SameValueZero, string content, or reference identity, including
|
|
42
|
+
* payload identity for unions of reference keys. isSupportedMapKey and
|
|
43
|
+
* isSupportedMapValue define the frontend/validator storage fences. */
|
|
43
44
|
| {
|
|
44
45
|
kind: "map";
|
|
45
46
|
key: IrType;
|
|
@@ -48,10 +49,8 @@ export type IrType = {
|
|
|
48
49
|
/** ES `Set<T>` — heap, refcounted, insertion-ordered. Map's sibling with
|
|
49
50
|
* the value slot removed: ONE runtime representation (the backend lowers
|
|
50
51
|
* sets onto the map runtime with a constant unit value), elements are
|
|
51
|
-
* exactly Map's KEY types
|
|
52
|
-
*
|
|
53
|
-
* of sets, not JSON-safe) and never cycle-capable: elements are scalars
|
|
54
|
-
* or strings, which cannot point back. */
|
|
52
|
+
* exactly Map's KEY types and use the same equality. Reference elements
|
|
53
|
+
* carry retain/release and, when cycle-capable, tracing adapters. */
|
|
55
54
|
| {
|
|
56
55
|
kind: "set";
|
|
57
56
|
elem: IrType;
|
|
@@ -293,11 +292,9 @@ export type IrType = {
|
|
|
293
292
|
}
|
|
294
293
|
/** The class STATIC side as a value — `typeof C`, the type of the class
|
|
295
294
|
* name itself and of `new (…) => T` constructor-typed slots. Runtime
|
|
296
|
-
* representation is
|
|
297
|
-
*
|
|
298
|
-
*
|
|
299
|
-
* and retains/releases are no-ops on the immortal (the regex-literal
|
|
300
|
-
* discipline; isRefCounted says true for container/RC uniformity).
|
|
295
|
+
* representation is ScrClassObj: an immortal top-level template or a fresh
|
|
296
|
+
* function-local object owning captured binding boxes. Identity is one
|
|
297
|
+
* pointer comparison; local instances retain their constructor object.
|
|
301
298
|
* Values of `classval:C` are C's class object or a STRICT DESCENDANT's —
|
|
302
299
|
* the object kind's nominal, upcast-only story — and every legal flow
|
|
303
300
|
* preserves the constructor ABI (upcast requires the descendant's
|
|
@@ -305,7 +302,8 @@ export type IrType = {
|
|
|
305
302
|
* completion against C's one signature sound. Allowed in locals,
|
|
306
303
|
* globals, params, returns, class/record fields, capture boxes, array
|
|
307
304
|
* elements, Map VALUES, and union arms; fenced out of Map keys, Set
|
|
308
|
-
* elements, JSON,
|
|
305
|
+
* elements, JSON, jsval conversion, and ToString. Unknown slots retain
|
|
306
|
+
* class identity and allow an exact typed constructor round trip. */
|
|
309
307
|
| {
|
|
310
308
|
kind: "classval";
|
|
311
309
|
className: string;
|
|
@@ -362,8 +360,8 @@ export type IrType = {
|
|
|
362
360
|
| {
|
|
363
361
|
kind: "jsval";
|
|
364
362
|
}
|
|
365
|
-
/** A catch binding
|
|
366
|
-
*
|
|
363
|
+
/** A catch binding or its closure capture (never parameters, returns,
|
|
364
|
+
* fields, arms, elements or globals).
|
|
367
365
|
* Runtime representation is a refcounted snapshot box (ScrCaught) holding
|
|
368
366
|
* the taken exception: a kind tag plus the payload. Even NARROWER than
|
|
369
367
|
* dyn: the only expressions a caught value may appear in are `caughtTest`
|
|
@@ -424,7 +422,7 @@ interface IrKindSet<K extends IrType["kind"]> extends ReadonlySet<IrType["kind"]
|
|
|
424
422
|
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"];
|
|
425
423
|
export type HandleKind = typeof HANDLE_KIND_LIST[number];
|
|
426
424
|
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">;
|
|
427
|
-
/** The IR kinds represented as pointers in
|
|
425
|
+
/** The IR kinds represented as pointers in native code. */
|
|
428
426
|
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"];
|
|
429
427
|
export type PointerKind = typeof POINTER_KIND_LIST[number];
|
|
430
428
|
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">;
|
|
@@ -482,36 +480,28 @@ export declare const NULL_T: IrType;
|
|
|
482
480
|
* wrapping allocates no payload, narrowing to a unit arm produces no value
|
|
483
481
|
* (the frontend never emits it), and releasing has nothing to release. */
|
|
484
482
|
export declare function isUnitType(t: IrType): boolean;
|
|
485
|
-
/** Element kinds with a real ScrArr storage/RC representation
|
|
486
|
-
*
|
|
483
|
+
/** Element kinds with a real ScrArr storage/RC representation.
|
|
484
|
+
* Array-producing lowerings can learn their result element from
|
|
487
485
|
* a callback rather than through mapType's ordinary T[] gate, so they must
|
|
488
486
|
* share this predicate instead of reconstructing an array around an
|
|
489
|
-
* otherwise-valid standalone type (
|
|
487
|
+
* otherwise-valid standalone type (Date, opaque handles, ...). */
|
|
490
488
|
export declare function isSupportedArrayElem(t: IrType): boolean;
|
|
491
489
|
export declare function arrayOf(elem: IrType): IrType;
|
|
492
490
|
export declare function bytesOf(elem: IrBytesElem): IrType;
|
|
493
491
|
export declare function mapOf(key: IrType, value: IrType): IrType;
|
|
494
492
|
export declare function setOf(elem: IrType): IrType;
|
|
495
|
-
/**
|
|
496
|
-
*
|
|
497
|
-
*
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
*
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
*
|
|
507
|
-
* listener closures at close, so a set-in-listener cycle is temporary —
|
|
508
|
-
* the child precedent's story. Symbols are identity values by DESIGN —
|
|
509
|
-
* SameValueZero on a symbol IS pointer identity, so a Set of symbols (the
|
|
510
|
-
* sentinel-registry idiom) is the same honest hashed storage with no
|
|
511
|
-
* cycle risk at all (symbols hold only strings). */
|
|
512
|
-
export declare function isSupportedSetElem(t: IrType): boolean;
|
|
513
|
-
/** The Map VALUE fence: scalars plus every refcounted kind EXCEPT
|
|
514
|
-
* func/promise/dyn/jsval (and map itself — no maps of maps).
|
|
493
|
+
/** Values whose native reference represents JavaScript identity. Records,
|
|
494
|
+
* classes and arrays can point back at their collection, so constructors
|
|
495
|
+
* must carry key tracing as well as retain/release adapters. */
|
|
496
|
+
export declare function isIdentityCollectionKey(t: IrType): boolean;
|
|
497
|
+
/** Numbers use SameValueZero, strings use content, and reference keys use
|
|
498
|
+
* identity. A union of identity arms hashes its payload, never its temporary
|
|
499
|
+
* wrapper. Mixed scalar/reference unions remain outside this contract. */
|
|
500
|
+
export declare function isSupportedMapKey(t: IrType, unionArms?: IrType[]): boolean;
|
|
501
|
+
/** Set elements and Map keys share storage, equality and ownership rules. */
|
|
502
|
+
export declare function isSupportedSetElem(t: IrType, unionArms?: IrType[]): boolean;
|
|
503
|
+
/** The Map VALUE fence: scalars, supported native references and checked
|
|
504
|
+
* values. Functions require checked-value boxing; jsval has no native slot.
|
|
515
505
|
* Record/object/union values can point back at the map holding them, which
|
|
516
506
|
* is exactly why ref-valued maps are cycle-capable (see the backend's
|
|
517
507
|
* cycle analysis and docs/memory.md). Shared frontend/validator. */
|
|
@@ -519,28 +509,19 @@ export declare function isSupportedMapValue(t: IrType): boolean;
|
|
|
519
509
|
/** The INDEX-SIGNATURE value fence (`{ [k: string]: V }` shapes): the map
|
|
520
510
|
* VALUE kinds — the overflow portion IS a string-keyed map — plus dyn
|
|
521
511
|
* (`unknown`, an unknown-valued pricing-table shape: overflow reads surface ordinary
|
|
522
|
-
* dyn values validated by the usual checked casts) and
|
|
523
|
-
* overflow store carries that user Maps don't admit yet:
|
|
512
|
+
* dyn values validated by the usual checked casts) and callable values:
|
|
524
513
|
* func — `Record<string, () => void>`, the command-registry pattern
|
|
525
514
|
* (scr_closure adapters; closures are cycle-headered and traced,
|
|
526
515
|
* so a handler capturing its own registry collects)
|
|
527
|
-
* map/set — `Record<string, Map<K, V>>`/`Record<string, Set<T>>`
|
|
528
|
-
* nested-container tables (scr_map adapters; a map value's own
|
|
529
|
-
* cycle capability propagates through the trace fixpoint)
|
|
530
516
|
* Nested index-signature RECORDS ride the record kind like any other.
|
|
531
517
|
* Shared frontend (mapType) / validator. */
|
|
532
518
|
export declare function isSupportedIndexValue(t: IrType): boolean;
|
|
533
519
|
export declare function funcOf(params: IrType[], ret: IrType): IrType;
|
|
534
|
-
/**
|
|
535
|
-
*
|
|
536
|
-
*
|
|
537
|
-
*
|
|
538
|
-
|
|
539
|
-
* narrowing (the primitive-constructor tables' `StringConstructor |
|
|
540
|
-
* NumberConstructor` field, and LinkOptions' `false | ((s: string) =>
|
|
541
|
-
* string)`). A SET arm keeps the unit-only rule (no narrowing test
|
|
542
|
-
* against data arms). */
|
|
543
|
-
export declare function unionFuncSetArmsOk(arms: IrType[]): boolean;
|
|
520
|
+
/** Maps, sets and promises may share a union with null/undefined only.
|
|
521
|
+
* Unit tag tests can narrow nullable containers without losing identity;
|
|
522
|
+
* arbitrary data siblings require a separate runtime narrowing operation.
|
|
523
|
+
* Share this rule across checker mapping, synthesized unions and validation. */
|
|
524
|
+
export declare function unionContainerArmsOk(arms: IrType[]): boolean;
|
|
544
525
|
/** Canonical, injective text form of an IrType — the building block of
|
|
545
526
|
* shape/union identity keys, generic-function instantiation keys, and the
|
|
546
527
|
* backend's per-type helper interning (jsonStringify/dynCheck walkers).
|
|
@@ -557,7 +538,7 @@ export declare function typeEquals(a: IrType, b: IrType): boolean;
|
|
|
557
538
|
export declare function isRefCounted(t: IrType): boolean;
|
|
558
539
|
export interface IrModule {
|
|
559
540
|
/** Bumped on any breaking IR change; serialize.ts refuses mismatches. */
|
|
560
|
-
irVersion:
|
|
541
|
+
irVersion: 13;
|
|
561
542
|
sourceFile: string;
|
|
562
543
|
functions: IrFunction[];
|
|
563
544
|
/** Class shapes. Constructors and methods are ordinary module functions
|
|
@@ -624,15 +605,15 @@ export interface IrModule {
|
|
|
624
605
|
* and system-library inputs. Absent when the build has no FFI manifest. */
|
|
625
606
|
ffiImports?: IrFfiImport[];
|
|
626
607
|
/** LIBRARY mode: the profile's resolved export map plus the
|
|
627
|
-
* mode-provided symbol names, landed ON the IR so
|
|
608
|
+
* mode-provided symbol names, landed ON the IR so the backend emits the
|
|
628
609
|
* external-linkage wrappers and entries from the same facts — the two
|
|
629
610
|
* emissions stay conformance-identical by construction. Absent on every
|
|
630
611
|
* executable build (the backends emit main() exactly as always). */
|
|
631
612
|
lib?: IrLibSection;
|
|
632
613
|
}
|
|
633
|
-
export type IrFfiValueParamClass = "f64" | "bool" | "u8" | "u32" | "i32" | "string" | "bytes";
|
|
634
|
-
export type IrFfiCallbackParamClass = "f64" | "bool" | "u8" | "u32" | "i32" | "cstring" | "string" | "bytes";
|
|
635
|
-
export type IrFfiReturnClass = "f64" | "bool" | "u8" | "u32" | "i32" | "void";
|
|
614
|
+
export type IrFfiValueParamClass = "f64" | "f32" | "bool" | "u8" | "i8" | "u16" | "i16" | "u32" | "i32" | "i64" | "u64" | "pointer" | "string" | "bytes" | "mutable-bytes";
|
|
615
|
+
export type IrFfiCallbackParamClass = "f64" | "f32" | "bool" | "u8" | "i8" | "u16" | "i16" | "u32" | "i32" | "i64" | "u64" | "pointer" | "cstring" | "string" | "bytes";
|
|
616
|
+
export type IrFfiReturnClass = "f64" | "f32" | "bool" | "u8" | "i8" | "u16" | "i16" | "u32" | "i32" | "i64" | "u64" | "pointer" | "void";
|
|
636
617
|
export interface IrFfiContextParam {
|
|
637
618
|
/** Manifest-local id of the callback whose ScrClosure* occupies this ABI slot. */
|
|
638
619
|
context: string;
|
|
@@ -680,6 +661,10 @@ export interface IrFfiImport {
|
|
|
680
661
|
name: string;
|
|
681
662
|
/** The external C symbol. */
|
|
682
663
|
symbol: string;
|
|
664
|
+
/** Exact node:ffi.dlopen library name when exposed as a checked callable. */
|
|
665
|
+
library?: string;
|
|
666
|
+
callbackOperation?: "register" | "release";
|
|
667
|
+
callbackTarget?: string;
|
|
683
668
|
params: IrFfiParam[];
|
|
684
669
|
returns: IrFfiReturnClass;
|
|
685
670
|
}
|
|
@@ -723,7 +708,7 @@ export interface IrLibTrapOverlay {
|
|
|
723
708
|
}
|
|
724
709
|
/** One resolved host-callback channel (the profile's `callbacks` entry
|
|
725
710
|
* landed on the IR): compiled call sites of the channel's ambient binding
|
|
726
|
-
* lower as ffiCall nodes carrying the channel name, and
|
|
711
|
+
* lower as ffiCall nodes carrying the channel name, and the backend emits
|
|
727
712
|
* the same dispatch — fetch the slot's registered pointer through
|
|
728
713
|
* scr_library_cb_require (which delivers `unregisteredTrap` through the
|
|
729
714
|
* library funnel when the host never registered), then the typed indirect
|
|
@@ -735,11 +720,11 @@ export interface IrLibCallback {
|
|
|
735
720
|
/** The runtime channel slot (profile declaration order). */
|
|
736
721
|
slot: number;
|
|
737
722
|
params: ("f64" | "bool" | "string" | "bytes" | "u8" | "u32" | "i32")[];
|
|
738
|
-
returns: "f64" | "bool" | "u8" | "u32" | "i32" | "void";
|
|
723
|
+
returns: "f64" | "bool" | "u8" | "u32" | "i32" | "i64" | "u64" | "pointer" | "void";
|
|
739
724
|
/** The unregistered-call trap text (a DETECTED trap: plain bytes the
|
|
740
725
|
* library funnel classifies SC4025 and assembles with the current
|
|
741
726
|
* entry's symbol — unlike the SC4012 wrapper traps, the entry is only
|
|
742
|
-
* known at runtime). Built once at export resolution so
|
|
727
|
+
* known at runtime). Built once at export resolution so generated wrappers
|
|
743
728
|
* emit identical constants by construction. */
|
|
744
729
|
unregisteredTrap: string;
|
|
745
730
|
}
|
|
@@ -798,6 +783,14 @@ export interface IrLibIdentity {
|
|
|
798
783
|
}
|
|
799
784
|
export interface IrClassDef {
|
|
800
785
|
name: string;
|
|
786
|
+
/** Present for a class evaluated inside a function. Each evaluation owns
|
|
787
|
+
* fresh identity and these shared binding boxes; instance layouts carry a
|
|
788
|
+
* private class-object pointer after their source fields. */
|
|
789
|
+
localCaptures?: IrParam[];
|
|
790
|
+
/** Capture holding the evaluated local base constructor, if any. */
|
|
791
|
+
localBaseCapture?: number;
|
|
792
|
+
/** Evaluated module-scope heritage constructor for a factory-produced base. */
|
|
793
|
+
baseValueGlobal?: string;
|
|
801
794
|
/** The JS-observable `.name` of the class (the runtime class object's
|
|
802
795
|
* name string, and what `C.name` folds to). Differs from `name` because
|
|
803
796
|
* IR names are program-qualified (`%m1.C`, `%cx…` for class
|
|
@@ -805,6 +798,18 @@ export interface IrClassDef {
|
|
|
805
798
|
* binding name for `const x = class {}`, or "" for truly anonymous
|
|
806
799
|
* expressions. Absent on the runtime-provided defs (never valuable). */
|
|
807
800
|
jsName?: string;
|
|
801
|
+
/** JavaScript constructor arity, ending before the first default or rest parameter. */
|
|
802
|
+
jsLength?: number;
|
|
803
|
+
/** Zero-argument native helper returning the shared prototype data object.
|
|
804
|
+
* Used when materializing an instance's own-property view. */
|
|
805
|
+
prototypeDataHelper?: string;
|
|
806
|
+
/** Native instance to its actual prototype, including factory captures and subclasses. */
|
|
807
|
+
instancePrototypeHelper?: string;
|
|
808
|
+
/** Stable module symbol identities for public instance layout fields. */
|
|
809
|
+
symbolFields?: {
|
|
810
|
+
field: string;
|
|
811
|
+
globalId: string;
|
|
812
|
+
}[];
|
|
808
813
|
/** RUNTIME-PROVIDED class (the builtin Error hierarchy): the struct, RC
|
|
809
814
|
* helpers, and vtable live in the runtime (ScrError / scr_error_*), so
|
|
810
815
|
* backends emit no definitions for it — only the preorder-interval
|
|
@@ -860,7 +865,7 @@ export interface IrClassDef {
|
|
|
860
865
|
* `class Error` can never collide). `lib` is the standard-library name the
|
|
861
866
|
* frontend recognizes; `kind` is the runtime's SCR_ERR_* index (backends
|
|
862
867
|
* stamp scr_error_vts[kind] and pick constructor kinds by it). Every
|
|
863
|
-
* emitted module carries
|
|
868
|
+
* emitted module carries the builtin class defs (flagged `runtime`) so the
|
|
864
869
|
* program's preorder numbering always covers them — the runtime's own
|
|
865
870
|
* throws (JSON/dynCheck/regex) mint instances of these classes whether or
|
|
866
871
|
* not user code mentions Error. */
|
|
@@ -942,6 +947,9 @@ export interface IrRecordShape {
|
|
|
942
947
|
* %dtype) — hidden from every key-order surface, JSON included. */
|
|
943
948
|
declaredOrder?: string[];
|
|
944
949
|
}
|
|
950
|
+
/** Codec records have private native state, not a structurally checkable
|
|
951
|
+
* data surface. Reserve the same '%' namespace as other internal slots. */
|
|
952
|
+
export declare function recordTextCodecClass(shape: IrRecordShape): "TextEncoder" | "TextDecoder" | null;
|
|
945
953
|
/** Object-literal ACCESSOR properties (`{ get x() {...}, set x(v) {...} }`)
|
|
946
954
|
* live on the shape as reserved '%'-fields holding closures: `%get:x` a
|
|
947
955
|
* `() => T` invoked once per property READ (side effects and all — JS's
|
|
@@ -960,6 +968,16 @@ export declare function accessorSlotProp(fieldName: string): {
|
|
|
960
968
|
* accessorSlotProp) — the predicate behind every enumeration-surface
|
|
961
969
|
* fence. */
|
|
962
970
|
export declare function shapeHasAccessorSlots(shape: IrRecordShape): boolean;
|
|
971
|
+
/** Literal fields that select a record layout at a checked-dynamic boundary.
|
|
972
|
+
* These are part of union identity: equal storage arms can have different
|
|
973
|
+
* discriminator contracts. Several source variants can share one layout. */
|
|
974
|
+
export interface IrUnionDiscriminant {
|
|
975
|
+
field: string;
|
|
976
|
+
cases: {
|
|
977
|
+
tag: number;
|
|
978
|
+
values: (string | number | boolean)[];
|
|
979
|
+
}[];
|
|
980
|
+
}
|
|
963
981
|
export interface IrUnionDef {
|
|
964
982
|
/** Frontend-assigned union id (`u0`, `u1`, ...). */
|
|
965
983
|
id: string;
|
|
@@ -967,6 +985,7 @@ export interface IrUnionDef {
|
|
|
967
985
|
* an arm's index here is its runtime tag. Never void/func/union; the
|
|
968
986
|
* unit kinds (undefinedT/nullT) are payload-less arms. */
|
|
969
987
|
arms: IrType[];
|
|
988
|
+
discriminant?: IrUnionDiscriminant;
|
|
970
989
|
}
|
|
971
990
|
export interface IrFunction {
|
|
972
991
|
/** Original TS name (mangling is a backend concern). Lifted lambdas get
|
|
@@ -982,6 +1001,12 @@ export interface IrFunction {
|
|
|
982
1001
|
* variables received through the closure environment, in caps[] order.
|
|
983
1002
|
* Each is also listed in `locals` (with boxed: true); it is NOT a param. */
|
|
984
1003
|
captures?: IrParam[];
|
|
1004
|
+
/** Instance methods/constructors of local classes borrow captures through
|
|
1005
|
+
* their first (`this`) parameter. The slot indexes the class object's
|
|
1006
|
+
* capture array; no closure parameter is added to the method ABI. */
|
|
1007
|
+
classCaptures?: (IrParam & {
|
|
1008
|
+
slot: number;
|
|
1009
|
+
})[];
|
|
985
1010
|
/** Async: the body runs on a fiber; `returnType` is the INNER type T (a
|
|
986
1011
|
* `return v` fulfills with v) while ordinary call sites receive
|
|
987
1012
|
* Promise<T>. With `generator` present, call sites receive the lazy
|
|
@@ -1014,6 +1039,10 @@ export interface IrFunction {
|
|
|
1014
1039
|
kind: "record";
|
|
1015
1040
|
};
|
|
1016
1041
|
};
|
|
1042
|
+
/** Source function name for native error stack frames. */
|
|
1043
|
+
sourceName?: string;
|
|
1044
|
+
/** Ordinary authored function declarations/expressions own a prototype. */
|
|
1045
|
+
ownsPrototype?: true;
|
|
1017
1046
|
body: IrStmt[];
|
|
1018
1047
|
loc: SrcLoc;
|
|
1019
1048
|
}
|
|
@@ -1028,6 +1057,9 @@ export interface IrGlobal {
|
|
|
1028
1057
|
name: string;
|
|
1029
1058
|
type: IrType;
|
|
1030
1059
|
mutable: boolean;
|
|
1060
|
+
/** Lexical record/function/checked-value bindings use their initially-null
|
|
1061
|
+
* pointer as a TDZ sentinel. Reads and later writes throw until initializing assign. */
|
|
1062
|
+
tdz?: true;
|
|
1031
1063
|
/** Original declaration and lexical scope, when this is a source binding. */
|
|
1032
1064
|
source?: IrBindingSource;
|
|
1033
1065
|
}
|
|
@@ -1046,14 +1078,15 @@ export interface IrLocal {
|
|
|
1046
1078
|
* (a shared binding — mutations are visible through every capture). All
|
|
1047
1079
|
* access, including in the declaring function, goes through the box. */
|
|
1048
1080
|
boxed?: true;
|
|
1049
|
-
/** A forward-captured
|
|
1081
|
+
/** A forward-captured lexical binding (a function declared BEFORE the binding it
|
|
1050
1082
|
* captures): the box is allocated TDZ-empty at scope entry (a `varDecl`
|
|
1051
1083
|
* with `init: null`) so earlier closures can capture it, and the source
|
|
1052
|
-
* declaration initializes it via `assign
|
|
1084
|
+
* declaration initializes it via `assign` with `initializes: true`.
|
|
1085
|
+
* Every read and non-initializing write tests the box —
|
|
1053
1086
|
* empty throws JS's catchable ReferenceError ("Cannot access 'name'
|
|
1054
1087
|
* before initialization"), exactly Node's temporal dead zone. Always
|
|
1055
|
-
* paired with `boxed`;
|
|
1056
|
-
*
|
|
1088
|
+
* paired with `boxed`; scalar payloads use a one-element array cell so
|
|
1089
|
+
* the NULL slot remains the TDZ sentinel. Capture entries inherit the flag. */
|
|
1057
1090
|
tdz?: true;
|
|
1058
1091
|
}
|
|
1059
1092
|
export type IrStmt =
|
|
@@ -1069,10 +1102,14 @@ export type IrStmt =
|
|
|
1069
1102
|
localId: string;
|
|
1070
1103
|
init: IrExpr | null;
|
|
1071
1104
|
loc: SrcLoc;
|
|
1072
|
-
}
|
|
1105
|
+
}
|
|
1106
|
+
/** `initializes` marks a TDZ binding's declaration, whose store may
|
|
1107
|
+
* initialize an empty box. Ordinary assignments must check it first. */
|
|
1108
|
+
| {
|
|
1073
1109
|
kind: "assign";
|
|
1074
1110
|
localId: string;
|
|
1075
1111
|
value: IrExpr;
|
|
1112
|
+
initializes?: true;
|
|
1076
1113
|
loc: SrcLoc;
|
|
1077
1114
|
} | {
|
|
1078
1115
|
kind: "exprStmt";
|
|
@@ -1468,7 +1505,10 @@ export type IrStrIntrinsicMethod = "length" | "charCodeAt" | "charAt" | "indexOf
|
|
|
1468
1505
|
* constant RangeError on any bad offset; values coerce JS-exactly
|
|
1469
1506
|
* (integer kinds by modular truncation, Float32 by double→float
|
|
1470
1507
|
* rounding). No BIG setters exist — bigint arguments never lower. */
|
|
1471
|
-
export type IrBytesIntrinsicMethod = "length" | "byteLength" | "get" | "slice" | "subarray"
|
|
1508
|
+
export type IrBytesIntrinsicMethod = "buffer" | "length" | "byteLength" | "get" | "slice" | "subarray"
|
|
1509
|
+
/** In-place overlapping copy, [target, start, end] relative indices;
|
|
1510
|
+
* returns the receiver (+1). */
|
|
1511
|
+
| "copyWithin"
|
|
1472
1512
|
/** Fresh Uint8Array copying methods. `with` takes [index, value] and
|
|
1473
1513
|
* throws a catchable RangeError for an invalid relative index. */
|
|
1474
1514
|
| "toReversed" | "with"
|
|
@@ -1477,7 +1517,7 @@ export type IrBytesIntrinsicMethod = "length" | "byteLength" | "get" | "slice" |
|
|
|
1477
1517
|
| "join"
|
|
1478
1518
|
/** Drain numeric typed-array elements into a fresh number[]. Used by
|
|
1479
1519
|
* array spread and typed-array destructuring rest. */
|
|
1480
|
-
| "toArray" | "setFrom" | "toString"
|
|
1520
|
+
| "toArray" | "setFrom" | "setFromDyn" | "toString"
|
|
1481
1521
|
/** Buffer.toString with a runtime-valued encoding. Same signature as
|
|
1482
1522
|
* toString, but canonicalizes aliases/case and may throw
|
|
1483
1523
|
* ERR_UNKNOWN_ENCODING. */
|
|
@@ -1519,14 +1559,15 @@ export declare const MAY_THROW_BYTES_METHODS: ReadonlySet<IrBytesIntrinsicMethod
|
|
|
1519
1559
|
* capture groups (JS would splice the captured values into the result) —
|
|
1520
1560
|
* both catchable: backends' may-throw analyses must seed on these two
|
|
1521
1561
|
* methods like a `throw`. */
|
|
1522
|
-
/** `match` takes a STRING receiver with args[0] the regex
|
|
1523
|
-
*
|
|
1524
|
-
*
|
|
1525
|
-
* `string[] | null` union: the matched slice [whole, ...captures] wrapped
|
|
1526
|
-
* into the array arm, or the interned null-arm instance for no match. A
|
|
1562
|
+
/** `match` takes a STRING receiver with args[0] the regex and produces
|
|
1563
|
+
* the PROGRAM-DEPENDENT `string[] | null` union: all whole matches for a
|
|
1564
|
+
* global regex, otherwise [whole, ...captures], or null for no match. A
|
|
1527
1565
|
* NONPARTICIPATING capture holds "" where Node's slot is undefined
|
|
1528
1566
|
* (SEMANTICS.md divergence). Never throws. */
|
|
1529
1567
|
export type IrRegexIntrinsicMethod = "test" | "match"
|
|
1568
|
+
/** exec uses the same string-first operands but keeps the g/y
|
|
1569
|
+
* lastIndex refusal, independently of global String.match iteration. */
|
|
1570
|
+
| "exec" | "lastIndex"
|
|
1530
1571
|
/** `s.matchAll(re)` — every match as its honest string[] slice (match's
|
|
1531
1572
|
* rule), drained EAGERLY into a fresh string[][]: the lazy iterator is
|
|
1532
1573
|
* unobservable across the lowered surface (strings are immutable; the
|
|
@@ -1543,24 +1584,25 @@ export type IrRegexIntrinsicMethod = "test" | "match"
|
|
|
1543
1584
|
* neither reads nor writes lastIndex (a fresh exec from position 0), so
|
|
1544
1585
|
* no g/y fence applies: /g is irrelevant and /y anchors at 0 — exactly
|
|
1545
1586
|
* Node. Never throws. */
|
|
1546
|
-
| "search" | "source" | "flags" | "replace" | "replaceAll" | "split";
|
|
1587
|
+
| "search" | "source" | "flags" | "toString" | "replace" | "replaceAll" | "split";
|
|
1547
1588
|
/** The complete standard-library surface (mirrors ambient/scriptc.d.ts: the
|
|
1548
1589
|
* `process` and `JSON` globals and `declare module "node:fs"`). A closed
|
|
1549
1590
|
* union — every member has a signature in the validator's LIB_FN_SIGS and a
|
|
1550
1591
|
* scr_* implementation in the runtime (scr_lib.c / scr_json.c). fs.*
|
|
1551
1592
|
* failures and json.parse syntax errors THROW (catchable, via the runtime
|
|
1552
|
-
* exception cell); process.* members never throw. JSON.stringify
|
|
1553
|
-
*
|
|
1593
|
+
* exception cell); process.* members never throw. JSON.stringify without a
|
|
1594
|
+
* callback lowers to the type-directed `jsonStringify` node below; callback
|
|
1595
|
+
* forms use the shared native JSON walker through libCall.
|
|
1554
1596
|
* island.eval (the internal __island_eval testing hook) exists only in
|
|
1555
1597
|
* --dynamic builds — the frontend rejects it otherwise, so backends may
|
|
1556
1598
|
* assume the island runtime is linked when they see it; island exceptions
|
|
1557
1599
|
* bridge into the exception cell as catchable strings (may-throw). */
|
|
1558
|
-
export type IrLibFn =
|
|
1600
|
+
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"
|
|
1559
1601
|
/** Native static fetch and its Web-platform companions. fetch.start
|
|
1560
1602
|
* answers once the response head arrives; the response body readers
|
|
1561
1603
|
* consume the native body stream. AbortSignal and ReadableStream values
|
|
1562
1604
|
* are opaque checked-dynamic handles. */
|
|
1563
|
-
"fetch.start" | "fetch.responseNew" | "fetch.responseJson" | "fetch.responseText" | "fetch.responseBytes" | "fetch.abortControllerNew" | "fetch.abortTimeout" | "fetch.abortNow" | "fetch.abortAny" | "fetch.streamNew" | "fetch.streamFrom" | "fetch.readerRead" | "island.eval"
|
|
1605
|
+
| "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" | "fetch.webIs" | "fetch.streamIs" | "fetch.streamNew" | "fetch.streamFrom" | "fetch.readerRead" | "island.eval"
|
|
1564
1606
|
/** Load an embedded npm package's runtime entry in the island (cached by
|
|
1565
1607
|
* the engine's module registry) and take one export: args are the entry
|
|
1566
1608
|
* KEY (an embedded module's key, from IrModule.embedded) and the export
|
|
@@ -1586,7 +1628,7 @@ export type IrLibFn =
|
|
|
1586
1628
|
* pending). Documented divergence: JS `as` never checks — like the dyn
|
|
1587
1629
|
* boundary, a conversion that cannot happen throws instead of lying.
|
|
1588
1630
|
* --dynamic only. */
|
|
1589
|
-
| "island.castFail" | "json.parse"
|
|
1631
|
+
| "island.castFail" | "json.parse" | "json.parseReviver" | "json.stringifyReplacer" | "json.stringifyValue"
|
|
1590
1632
|
/** Keyed WRITE on a dyn value — `h.onDone = cb` / `h["k"] = v` on a
|
|
1591
1633
|
* checked-dynamic object (args: receiver, key string, value — all
|
|
1592
1634
|
* borrowed; the runtime copies the key and retains the value in). An
|
|
@@ -1598,7 +1640,14 @@ export type IrLibFn =
|
|
|
1598
1640
|
* (sloppy mode would silently ignore — suite tests are 'use strict';
|
|
1599
1641
|
* SEMANTICS.md notes the sloppy divergence: loud, never silent). Void
|
|
1600
1642
|
* result; in the may-throw seed set. */
|
|
1601
|
-
| "dyn.keySet"
|
|
1643
|
+
| "dyn.keySet" | "dyn.keySetComputed"
|
|
1644
|
+
/** Delete an ordinary checked-native object's own key. Borrows both
|
|
1645
|
+
* arguments; other receiver representations retain a runtime refusal. */
|
|
1646
|
+
| "dyn.keyDelete" | "dyn.keyDeleteComputed" | "dyn.hasKeyComputed" | "dyn.hasOwnComputed" | "dyn.propertyIsEnumerableComputed"
|
|
1647
|
+
/** Native own properties on globalThis keyed by symbol identity. */
|
|
1648
|
+
| "dyn.globalSymbolGet" | "dyn.globalSymbolSet" | "dyn.globalSymbolHas" | "dyn.globalSymbolDelete"
|
|
1649
|
+
/** Exact native class capsule identity, without materializing its fields. */
|
|
1650
|
+
| "dyn.typedRefIs" | "dyn.classIs"
|
|
1602
1651
|
/** Destructuring pack over a dyn source — `const [a, b] = d`, a
|
|
1603
1652
|
* destructured dyn callback param (args: the source and the STATIC
|
|
1604
1653
|
* TypeError spelling, "" when the source has none — both borrowed;
|
|
@@ -1608,7 +1657,7 @@ export type IrLibFn =
|
|
|
1608
1657
|
* verbatim when non-empty, else the runtime kind wording ("number 5 is
|
|
1609
1658
|
* not iterable (cannot read property Symbol(Symbol.iterator))"). In the
|
|
1610
1659
|
* may-throw seed set. */
|
|
1611
|
-
| "dyn.iterPack"
|
|
1660
|
+
| "dyn.iterPack" | "dyn.arrayFromIterator" | "dyn.iterator" | "dyn.iteratorResult" | "dyn.mapSeedEntries" | "dyn.mapSeedEntry"
|
|
1612
1661
|
/** The for-of-over-dyn pack accessors — the emitted index loop drives
|
|
1613
1662
|
* them over a dyn.iterPack result (ARR by construction). arrLen: the
|
|
1614
1663
|
* ARR length as f64 (0 for non-ARR kinds; arg borrowed). arrAt: the
|
|
@@ -1618,17 +1667,16 @@ export type IrLibFn =
|
|
|
1618
1667
|
/** `key in v` with a RUNTIME (string) key on a checked-dynamic
|
|
1619
1668
|
* receiver (args: value dyn, key string; result bool): OBJ answers
|
|
1620
1669
|
* own-member presence, ARR answers 'length'/a valid index — exactly
|
|
1621
|
-
* the
|
|
1670
|
+
* the literal-key dynHasKey path. Proxy has traps may throw. */
|
|
1622
1671
|
| "dyn.hasKey"
|
|
1623
1672
|
/** Object.defineProperties over dyn values (args: target, descriptors —
|
|
1624
1673
|
* both borrowed dyn; result: the target, +1 — JS's return value).
|
|
1625
|
-
* Value descriptors become
|
|
1626
|
-
*
|
|
1627
|
-
* properties are plain data properties, SEMANTICS.md); get/set
|
|
1674
|
+
* Value descriptors become own properties on OBJ and FUNC targets;
|
|
1675
|
+
* OBJ targets preserve data attributes. get/set
|
|
1628
1676
|
* descriptors and non-object targets/descriptors throw catchably
|
|
1629
1677
|
* (Node's TypeError texts; accessors the loud unsupported Error). In
|
|
1630
1678
|
* the may-throw seed set. */
|
|
1631
|
-
| "dyn.defineProps"
|
|
1679
|
+
| "dyn.defineProps" | "dyn.defineProperty" | "dyn.getOwnPropertyDescriptor" | "dyn.arrayProtoCall"
|
|
1632
1680
|
/** Bare `typeof v` on a dyn value AS A STRING (arg: the dyn value,
|
|
1633
1681
|
* borrowed; result: an owned string) — the dyn kind's JS answer:
|
|
1634
1682
|
* undefined→"undefined", null/object/array/bytes→"object" (JS's oldest
|
|
@@ -1636,7 +1684,7 @@ export type IrLibFn =
|
|
|
1636
1684
|
* Never throws. */
|
|
1637
1685
|
| "dyn.typeof"
|
|
1638
1686
|
/** Object.prototype.toString.call on a checked-dynamic value. */
|
|
1639
|
-
| "dyn.objectTag"
|
|
1687
|
+
| "dyn.objectTag" | "dyn.freeze" | "dyn.isFrozen" | "dyn.nativeSetNew" | "dyn.nativeSetIs" | "dyn.nativeMapIs" | "dyn.nativeUrlIs" | "dyn.nativeDateIs" | "date.nativeNew" | "date.checkedValue" | "dyn.nativeRegexIs"
|
|
1640
1688
|
/** toString() on a checked-dynamic receiver: runtime kind dispatch
|
|
1641
1689
|
* (bytes decode per the literal encoding — utf8 default; strings,
|
|
1642
1690
|
* numbers, booleans, arrays, objects answer JS-exactly; undefined and
|
|
@@ -1759,7 +1807,7 @@ export type IrLibFn =
|
|
|
1759
1807
|
* forms, surrogate code points, and >U+10FFFF refused, per UTF8-decode
|
|
1760
1808
|
* without replacement); bad hex or an invalid sequence THROWS the
|
|
1761
1809
|
* spec's URIError ("URI malformed"), catchable. Borrow; results +1. */
|
|
1762
|
-
| "str.encodeUriComponent" | "str.decodeUriComponent"
|
|
1810
|
+
| "str.encodeUriComponent" | "str.decodeUriComponent" | "str.decodeUri"
|
|
1763
1811
|
/** RegExp.escape (ES2025): per-code-point EncodeForRegExpEscape —
|
|
1764
1812
|
* leading ASCII alphanumeric hex-escapes, syntax characters and '/'
|
|
1765
1813
|
* take a backslash, other punctuators/whitespace/line terminators
|
|
@@ -1788,12 +1836,14 @@ export type IrLibFn =
|
|
|
1788
1836
|
* toFixed() fast path; num.toFixed implements an explicit fractionDigits
|
|
1789
1837
|
* with exact binary-value rounding and THROWS RangeError outside 0..100.
|
|
1790
1838
|
* Successful results +1. */
|
|
1791
|
-
| "num.toExponential" | "num.toFixed0" | "num.toFixed"
|
|
1839
|
+
| "num.toExponential" | "num.toFixed0" | "num.toFixed" | "num.toStringRadix"
|
|
1792
1840
|
/** Object.is over two numbers — the spec's SameValue on doubles: NaN
|
|
1793
1841
|
* equals NaN, +0 differs from -0, everything else is `===`. Plain bool
|
|
1794
1842
|
* result; never throws. (Union-armed operands take unionEq's sameValue
|
|
1795
1843
|
* flag instead — this is the both-f64 fast path.) */
|
|
1796
1844
|
| "num.sameValue"
|
|
1845
|
+
/** SameValue over checked values, including NaN, signed zero and reference identity. */
|
|
1846
|
+
| "dyn.sameValue"
|
|
1797
1847
|
/** `new Intl.NumberFormat("en-US").format(x)` and
|
|
1798
1848
|
* `x.toLocaleString("en-US")` with DEFAULT options — the one locale
|
|
1799
1849
|
* whose data the runtime embeds (Node's default-build locale): decimal
|
|
@@ -1816,7 +1866,10 @@ export type IrLibFn =
|
|
|
1816
1866
|
* value / string) — both THROW Node's TypeErrors on non-file schemes,
|
|
1817
1867
|
* encoded slashes, and non-empty hosts. url.pathToFileURL resolves the
|
|
1818
1868
|
* path (getcwd) and never throws. */
|
|
1819
|
-
| "url.new" | "url.protocol" | "url.origin" | "url.username" | "url.password" | "url.host" | "url.hostname" | "url.port" | "url.pathname" | "url.href" | "url.fileURLToPathUrl" | "url.fileURLToPathStr" | "url.pathToFileURL"
|
|
1869
|
+
| "url.new" | "url.newBase" | "url.protocol" | "url.origin" | "url.username" | "url.password" | "url.host" | "url.hostname" | "url.port" | "url.pathname" | "url.href" | "url.fileURLToPathUrl" | "url.fileURLToPathChecked" | "url.fileURLToPathStr" | "url.pathToFileURL"
|
|
1870
|
+
/** Explicit path syntax from the options.windows argument, independent
|
|
1871
|
+
* of the executable's host platform. Windows UNC input can throw. */
|
|
1872
|
+
| "url.pathToFileURLPlatform"
|
|
1820
1873
|
/** pathToFileURL under a win32 TARGET: the same scr_url_from_path call
|
|
1821
1874
|
* (the runtime selects the win32 arm by _WIN32), but a distinct IR name
|
|
1822
1875
|
* because that arm THROWS for malformed UNC inputs — may-throw seeds on
|
|
@@ -1839,7 +1892,7 @@ export type IrLibFn =
|
|
|
1839
1892
|
* bools; sp.size/sp.toString are pure reads. sp.keyAt/sp.valAt are
|
|
1840
1893
|
* the for-of/forEach desugar's index reads (live — the loop re-reads
|
|
1841
1894
|
* sp.size each pass). */
|
|
1842
|
-
| "sp.new" | "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"
|
|
1895
|
+
| "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"
|
|
1843
1896
|
/** node:querystring (scr_qs.c — link-gated by moduleUsesQs; NOT
|
|
1844
1897
|
* URLSearchParams: the legacy codec's escaping and '+' rules differ).
|
|
1845
1898
|
* qs.escape is Node's qsEscape, which encodes exactly the component
|
|
@@ -1876,7 +1929,7 @@ export type IrLibFn =
|
|
|
1876
1929
|
* sym.desc / sym.keyFor answer the interned `string | undefined` union
|
|
1877
1930
|
* (the runtime returns +1-or-NULL; the backend builds the union arms —
|
|
1878
1931
|
* the child.stdout pattern). None of these throw. */
|
|
1879
|
-
| "sym.new" | "sym.newAnon" | "sym.for" | "sym.keyFor" | "sym.desc" | "sym.toString"
|
|
1932
|
+
| "sym.new" | "sym.newAnon" | "sym.for" | "sym.wellKnown" | "sym.keyFor" | "sym.desc" | "sym.toString"
|
|
1880
1933
|
/** Engine-free arbitrary-precision bigint operations (scr_bigint.c).
|
|
1881
1934
|
* parse accepts the ECMAScript BigInt string grammar; fromF64 accepts
|
|
1882
1935
|
* finite integral Numbers. Arithmetic returns fresh immutable values.
|
|
@@ -1930,7 +1983,9 @@ export type IrLibFn =
|
|
|
1930
1983
|
/** Static-native fork startup and IPC. process.forkTarget initializes a
|
|
1931
1984
|
* re-executed child's inherited channel and returns its embedded target id
|
|
1932
1985
|
* (-1 in the parent). The remaining entries mirror Node's JSON channel. */
|
|
1933
|
-
| "process.forkTarget" | "cp.fork" | "child.connected" | "child.send" | "child.sendCb" | "child.disconnect" | "child.onMessage" | "child.onDisconnect" | "
|
|
1986
|
+
| "process.forkTarget" | "cp.fork" | "child.connected" | "child.send" | "child.sendCb" | "child.disconnect" | "child.onMessage" | "child.onDisconnect" | "child.onSpawn"
|
|
1987
|
+
/** Rest listeners use the checked function bridge to pack event arguments. */
|
|
1988
|
+
| "child.onDyn" | "process.connected" | "process.send" | "process.sendCb" | "process.disconnect" | "process.onMessage" | "process.onDisconnect"
|
|
1934
1989
|
/** child_process.execFile's callback slice: starts an all-piped child,
|
|
1935
1990
|
* captures stdout/stderr, and moves the error-first callback into the
|
|
1936
1991
|
* child registry. The callback shape is program-dependent and checked
|
|
@@ -1950,7 +2005,7 @@ export type IrLibFn =
|
|
|
1950
2005
|
* child from the loop's keep-alive set — it is still reaped while the
|
|
1951
2006
|
* loop runs for other reasons, and one the loop never reaps is left to
|
|
1952
2007
|
* the OS at exit. All receivers borrowed. */
|
|
1953
|
-
| "child.pid" | "child.exitCode" | "child.killed" | "child.kill" | "child.killNum" | "child.unref"
|
|
2008
|
+
| "child.pid" | "child.exitCode" | "child.killed" | "child.kill" | "child.killNum" | "child.unref" | "child.ref"
|
|
1954
2009
|
/** The piped-output streams (stdio mode 3 — scr_child.c's stream
|
|
1955
2010
|
* slice). child.stdout/child.stderr answer the checker's
|
|
1956
2011
|
* `Readable | null` union (type-directed construction in the backend
|
|
@@ -2426,7 +2481,7 @@ export type IrLibFn =
|
|
|
2426
2481
|
* runtime algorithm string (md5/sha1/sha256); update returns the same
|
|
2427
2482
|
* handle by retained identity, copy snapshots Hash state, and digest
|
|
2428
2483
|
* finalizes the handle and returns either a Buffer or encoded string. */
|
|
2429
|
-
| "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"
|
|
2484
|
+
| "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"
|
|
2430
2485
|
/** crypto.randomBytes(n) → a real u8 Buffer (+1). THROWS Node's
|
|
2431
2486
|
* RangeError on out-of-range sizes, exactly like the composed
|
|
2432
2487
|
* randomBytesToString (which keeps its one-libCall lowering — the two
|
|
@@ -2438,11 +2493,17 @@ export type IrLibFn =
|
|
|
2438
2493
|
* base64 decode Node-leniently, so it never throws. concat takes ONE
|
|
2439
2494
|
* bytes<u8>[] arg (the list) and returns a fresh copy. `Buffer.from(u8)`
|
|
2440
2495
|
* and `Buffer.alloc(n)` need no libFn — they lower to bytesNew. */
|
|
2441
|
-
| "buffer.fromStr" | "buffer.
|
|
2496
|
+
| "buffer.fromStr" | "buffer.brand"
|
|
2497
|
+
/** Buffer.from on checked-native strings, bytes, arrays and data-only
|
|
2498
|
+
* array-like/Buffer-JSON objects. The encoding is a normalized literal;
|
|
2499
|
+
* non-string inputs ignore it. Copies the input and may throw during
|
|
2500
|
+
* element coercion or argument validation. Custom object valueOf and
|
|
2501
|
+
* opaque reference inputs retain explicit runtime refusals. */
|
|
2502
|
+
| "buffer.fromDyn" | "buffer.concat"
|
|
2442
2503
|
/** Buffer.byteLength(string, enc) — enc a NORMALIZED literal like
|
|
2443
2504
|
* fromStr's — and Buffer.isEncoding(name) over a runtime string
|
|
2444
2505
|
* (case-insensitive against Node's alias set). Pure; never throw. */
|
|
2445
|
-
| "buffer.byteLenStr" | "buffer.isEncoding"
|
|
2506
|
+
| "buffer.byteLenDyn" | "buffer.byteLenStr" | "buffer.isEncoding"
|
|
2446
2507
|
/** Buffer.concat(list, totalLength): the concatenation truncated or
|
|
2447
2508
|
* zero-padded to the total. THROWS Node's 'length' RangeError on a
|
|
2448
2509
|
* negative/non-integer total (may-throw seed). */
|
|
@@ -2492,18 +2553,21 @@ export type IrLibFn =
|
|
|
2492
2553
|
* naming the message slot ("setMaxListeners" for the static call,
|
|
2493
2554
|
* "defaultMaxListeners" for the module-property assignment). */
|
|
2494
2555
|
| "emitter.setMaxChk" | "emitter.setDefaultMaxChk"
|
|
2495
|
-
/** The Buffer forms of
|
|
2496
|
-
* encoding → bytes<u8> (+1), writeFileSync(path, bytes), and the
|
|
2556
|
+
/** The Buffer forms of fs: readFileSync(path) with NO
|
|
2557
|
+
* encoding → bytes<u8> (+1), writeFileSync/appendFileSync(path, bytes), and the
|
|
2497
2558
|
* fs/promises readFile(path) no-encoding form (an already-settled
|
|
2498
2559
|
* promise, rejecting on failure like the other fsp members). The sync
|
|
2499
|
-
*
|
|
2500
|
-
| "fs.readFileSyncBytes" | "fs.writeFileSyncBytes" | "fsp.readFileBytes"
|
|
2560
|
+
* forms THROW catchably on failure exactly like the utf8 forms. */
|
|
2561
|
+
| "fs.readFileSyncBytes" | "fs.writeFileSyncBytes" | "fs.appendFileSyncBytes" | "fsp.readFileBytes"
|
|
2501
2562
|
/** node:zlib (scr_zlib.c — native-toolchain.ts compiles/links it ONLY when these
|
|
2502
2563
|
* appear on the IR, the regex/libcurl gating precedent): one-shot zlib,
|
|
2503
2564
|
* raw-DEFLATE, gzip, and auto-detect codecs over u8 bytes with Node's
|
|
2504
|
-
* default options
|
|
2565
|
+
* default options, or a validated literal compression level from -1 to 9.
|
|
2566
|
+
* Compression never throws (OOM aborts); decompression
|
|
2505
2567
|
* of corrupt input THROWS Node's error catchably. */
|
|
2506
|
-
| "zlib.deflateSync" | "zlib.inflateSync" | "zlib.deflateRawSync"
|
|
2568
|
+
| "zlib.deflateSync" | "zlib.inflateSync" | "zlib.deflateRawSync"
|
|
2569
|
+
/** bytes, mode (0 zlib / 1 raw / 2 gzip), validated compression level. */
|
|
2570
|
+
| "zlib.deflateLevelSync" | "zlib.inflateRawSync" | "zlib.gzipSync" | "zlib.gunzipSync" | "zlib.unzipSync"
|
|
2507
2571
|
/** The default-options callback twins run on the executable's shared
|
|
2508
2572
|
* native work pool and deliver (Error | null, Buffer) on a later loop
|
|
2509
2573
|
* turn. crc32 validates its optional uint32 seed synchronously. */
|
|
@@ -2561,7 +2625,7 @@ export type IrLibFn =
|
|
|
2561
2625
|
* apply/call thisArg), or the undefined dyn singleton with none bound
|
|
2562
2626
|
* (the strict-mode plain-call answer, the old constant). Zero args →
|
|
2563
2627
|
* dyn (+1). Never throws. */
|
|
2564
|
-
| "dyn.this"
|
|
2628
|
+
| "dyn.dataViewIs" | "dyn.construct" | "dyn.this" | "dyn.generatorThis"
|
|
2565
2629
|
/** process.execPath: the compiled binary's own resolved absolute path
|
|
2566
2630
|
* (one interned string, +1 per read) — the honest answer where Node's
|
|
2567
2631
|
* is the node executable's (SEMANTICS.md divergence 12). Never throws. */
|
|
@@ -2570,6 +2634,9 @@ export type IrLibFn =
|
|
|
2570
2634
|
* "x64") — Node's answer for its own build on the same machine.
|
|
2571
2635
|
* Interned; +1 per read. Never throws. */
|
|
2572
2636
|
| "process.arch"
|
|
2637
|
+
/** Stable native version dictionary. node/openssl identify compatibility
|
|
2638
|
+
* targets; components absent from the native runtime are omitted. */
|
|
2639
|
+
| "process.versions" | "process.builtinId" | "process.builtinModule" | "process.builtinUnsupported" | "fs.callbackValue" | "fs.callbackCall" | "process.hrtimeValue"
|
|
2573
2640
|
/** process.versions.node: the runtime's Node COMPATIBILITY TARGET —
|
|
2574
2641
|
* there is no Node under the binary, so this reports the version whose
|
|
2575
2642
|
* semantics the runtime implements (SEMANTICS.md divergence 60, the
|
|
@@ -2598,6 +2665,8 @@ export type IrLibFn =
|
|
|
2598
2665
|
/** realpath(3) with Node's error shape (syscall "lstat" in the message,
|
|
2599
2666
|
* Node's own spelling for realpathSync failures). +1 fresh string. */
|
|
2600
2667
|
| "fs.realpathSync"
|
|
2668
|
+
/** Native realpath with syscall "realpath" on failure. +1 fresh string. */
|
|
2669
|
+
| "fs.realpathNativeSync"
|
|
2601
2670
|
/** kill(2) with Node's exact semantics and error shapes: the pid must be
|
|
2602
2671
|
* an int32 (else the ERR_INVALID_ARG_TYPE TypeError text), the named
|
|
2603
2672
|
* form resolves Node's signal-name table (unknown names throw the
|
|
@@ -2628,7 +2697,7 @@ export type IrLibFn =
|
|
|
2628
2697
|
* shares console.log's stream, each call is submitted promptly, and
|
|
2629
2698
|
* interleaved output keeps source order. No newline, no formatting,
|
|
2630
2699
|
* never throws. */
|
|
2631
|
-
| "process.stdoutWrite" | "process.stderrWrite" | "timers.setTimeout"
|
|
2700
|
+
| "process.stdoutWrite" | "process.stderrWrite" | "process.stdio" | "timers.setTimeout"
|
|
2632
2701
|
/** The repeating timer pair. setInterval takes (callback, ms) like
|
|
2633
2702
|
* setTimeout and RETURNS the f64 handle the fallback declarations
|
|
2634
2703
|
* promise (ids start at 1, so truthiness narrowing works); the loop
|
|
@@ -2699,14 +2768,10 @@ export type IrLibFn =
|
|
|
2699
2768
|
| "process.uptime"
|
|
2700
2769
|
/** perf_hooks performance.now(): fractional ms since process start. */
|
|
2701
2770
|
| "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"
|
|
2702
|
-
/**
|
|
2703
|
-
*
|
|
2704
|
-
*
|
|
2705
|
-
*
|
|
2706
|
-
* macrotasks at loop turns; watching replaces the default disposition
|
|
2707
|
-
* and removing the last listener restores it; signal listeners never
|
|
2708
|
-
* keep the loop alive (Node). Zero-param callbacks only (the ambient
|
|
2709
|
-
* shape). Never throw. */
|
|
2771
|
+
/** Named process signal events: [name string, callback dyn, once bool]
|
|
2772
|
+
* or [name, callback] for removal. The runtime resolves platform signal
|
|
2773
|
+
* numbers and delivers (name, number). Listeners do not keep the loop
|
|
2774
|
+
* alive. Invalid callbacks and uncatchable signals throw. */
|
|
2710
2775
|
| "process.onSignal" | "process.offSignal"
|
|
2711
2776
|
/** The process 'exit' event — process.on/once/off("exit"). args: [cb,
|
|
2712
2777
|
* once bool] / [cb]. Listeners run SYNCHRONOUSLY at termination
|
|
@@ -2738,8 +2803,18 @@ export type IrLibFn =
|
|
|
2738
2803
|
* receiver (already allocated by the derived class's new) + borrowed
|
|
2739
2804
|
* message, void; the receiver's type names the builtin class whose name
|
|
2740
2805
|
* field to stamp. error.toString: borrowed `%Error`-typed receiver, +1
|
|
2741
|
-
* string in Node's "name: message" shape.
|
|
2806
|
+
* string in Node's "name: message" shape. Formatting can invoke a user
|
|
2807
|
+
* message accessor, which can throw. */
|
|
2742
2808
|
| "error.new"
|
|
2809
|
+
/** ECMAScript constructors with raw checked-dynamic message/options.
|
|
2810
|
+
* Options retain cause presence; constructor calls borrow their args.
|
|
2811
|
+
* Message coercion may throw before the cause is installed. */
|
|
2812
|
+
| "error.newOptions" | "error.ctorOptions"
|
|
2813
|
+
/** Borrowed Error receiver. cause returns an owned dyn value (undefined
|
|
2814
|
+
* when absent); hasCause distinguishes absence from present undefined. */
|
|
2815
|
+
| "error.cause" | "error.hasCause"
|
|
2816
|
+
/** Assignment borrows both operands and retains the new cause. */
|
|
2817
|
+
| "error.setCause" | "error.defineCause" | "error.deleteCause"
|
|
2743
2818
|
/** The compiler-resolved Node-parity throw for always-throwing lowered
|
|
2744
2819
|
* arms (ERR_INVALID_THIS receivers, ERR_MISSING_ARGS arity ladders,
|
|
2745
2820
|
* the symbol-to-string TypeError): args are [error-kind f64 (the
|
|
@@ -2753,24 +2828,26 @@ export type IrLibFn =
|
|
|
2753
2828
|
* exhaustion throws "Cannot convert object to primitive value"; units
|
|
2754
2829
|
* render "null"/"undefined") — the WHATWG USVString conversions
|
|
2755
2830
|
* (URLSearchParams names/values). Borrowed dyn; +1 string. May-throw. */
|
|
2756
|
-
| "dyn.toStringCoerce"
|
|
2831
|
+
| "dyn.toStringCoerce" | "dyn.stringConstructor" | "dyn.propertyKey" | "dyn.toNumeric" | "dyn.increment"
|
|
2757
2832
|
/** JS ToNumber over a dyn value WITH the object protocol (number-hint
|
|
2758
2833
|
* valueOf/toString ordering; user throws propagate). Borrowed dyn;
|
|
2759
2834
|
* f64 result, or a throw. Used by statically lowered numeric coercions
|
|
2760
2835
|
* whose checker type remained any. */
|
|
2761
|
-
| "dyn.toNumberCoerce"
|
|
2836
|
+
| "dyn.numberConstructor" | "dyn.bigintConstructor" | "dyn.toNumberCoerce" | "dyn.add" | "dyn.arithmetic" | "dyn.compare" | "dyn.bitwise" | "dyn.proxyNew"
|
|
2762
2837
|
/** A read of a `declare`d const NOTHING defines (the bundler-define
|
|
2763
2838
|
* pattern — __VERSION__): always throws the catchable ReferenceError
|
|
2764
2839
|
* Node raises at the access ("<name> is not defined"). args[0] is the
|
|
2765
2840
|
* name; the result type is the read's declared type (a typed dummy the
|
|
2766
2841
|
* unwind abandons — the value never exists). */
|
|
2767
2842
|
| "global.undefRead"
|
|
2843
|
+
/** A native reference to the global object; known names retain value fences. */
|
|
2844
|
+
| "global.native" | "console.native"
|
|
2768
2845
|
/** `X.name` through a class VALUE (scr_object.c): args[0] is a borrowed
|
|
2769
2846
|
* classval; the result is the class object's stored .name string,
|
|
2770
2847
|
* retained (+1 — the string is an interned immortal, so the retain is a
|
|
2771
2848
|
* no-op, kept for ownership uniformity). Never throws. A direct
|
|
2772
2849
|
* `C.name` on the class name itself folds to a strLit instead. */
|
|
2773
|
-
| "class.name" | "error.ctor" | "error.toString"
|
|
2850
|
+
| "class.name" | "error.ctor" | "error.toString" | "error.stack" | "error.stackLimitGet" | "error.stackLimitSet"
|
|
2774
2851
|
/** `new DOMException(message?, nameOrOptions?)` (scr_error.c): both args
|
|
2775
2852
|
* are borrowed dyn values (the lowering passes the dyn undefined for an
|
|
2776
2853
|
* absent argument, so WebIDL's optionality lives in one place). The
|
|
@@ -2813,7 +2890,7 @@ export type IrLibFn =
|
|
|
2813
2890
|
* JS). Strings/arrays/bytes answer their index keys; other scalars an
|
|
2814
2891
|
* empty array; null/undefined throw Node's catchable TypeError
|
|
2815
2892
|
* ("Cannot convert undefined or null to object"). */
|
|
2816
|
-
| "dyn.objKeys" | "dyn.hasOwn" | "dyn.assign"
|
|
2893
|
+
| "dyn.objKeys" | "dyn.forInKeys" | "dyn.hasOwn" | "dyn.propertyIsEnumerable" | "dyn.assign" | "dyn.copyDataProperties" | "dyn.objectRest"
|
|
2817
2894
|
/** Variadic Object.assign over CHECKED-DYNAMIC targets (`Object.assign(
|
|
2818
2895
|
* {}, ...arr.map(f), tail)` — the option-table merge): the lowering
|
|
2819
2896
|
* builds one fresh dyn pack of sources (packPush retains a plain source
|
|
@@ -2831,14 +2908,14 @@ export type IrLibFn =
|
|
|
2831
2908
|
* drives the real iterator protocol, whose failure describes the VALUE
|
|
2832
2909
|
* ("object null is not iterable (cannot read property
|
|
2833
2910
|
* Symbol(Symbol.iterator))"). The frontend picks by position. */
|
|
2834
|
-
| "dyn.packPushSpreadIter" | "dyn.assignAll"
|
|
2911
|
+
| "dyn.packPushSpreadIter" | "dyn.assignAll" | "dyn.reflectApply"
|
|
2835
2912
|
/** `Object.create(null)` (scr_json.c): a fresh NULL-PROTOTYPE dyn
|
|
2836
2913
|
* dictionary. The checked-dynamic tree's OBJ dispatch is already own-member-only —
|
|
2837
2914
|
* Node's null-proto answer — so the flag's whole job is the observations
|
|
2838
2915
|
* that SEE the prototype: inspect's "[Object: null prototype]" prefix
|
|
2839
2916
|
* and deepStrictEqual's prototype gate. Never throws. Static builds
|
|
2840
2917
|
* only; --dynamic routes Object.create through the engine instead. */
|
|
2841
|
-
| "dyn.objCreateNullProto" | "dyn.objValues" | "dyn.objEntries"
|
|
2918
|
+
| "dyn.objCreateNullProto" | "dyn.arrayPrototype" | "dyn.objectPrototype" | "dyn.functionApply" | "dyn.builtinMethod" | "dyn.classPrototype" | "dyn.classBasePrototype" | "dyn.classInherit" | "dyn.classSuper" | "dyn.assignPrototype" | "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"
|
|
2842
2919
|
/** structuredClone over the checked-dynamic tree (scr_json.c): the JSON-safe subset plus
|
|
2843
2920
|
* bytes (a fresh copy — a Buffer clones as a plain Uint8Array, like
|
|
2844
2921
|
* Node), deep. Functions and handle kinds throw the spec's catchable
|
|
@@ -2859,7 +2936,7 @@ export type IrLibFn =
|
|
|
2859
2936
|
* strings (the lowering completes an absent flags to ""); result +1.
|
|
2860
2937
|
* The result TYPE is the regex kind, so the link switch pulls the
|
|
2861
2938
|
* engine exactly like a literal. */
|
|
2862
|
-
| "regex.new"
|
|
2939
|
+
| "regex.new" | "regex.resetLastIndex" | "regex.newChecked"
|
|
2863
2940
|
/** structuredClone with a NON-EMPTY transfer array of static values:
|
|
2864
2941
|
* nothing static is transferable, so the call always throws Node's
|
|
2865
2942
|
* catchable DataCloneError ("Found invalid value in transferList.") —
|
|
@@ -2885,7 +2962,7 @@ export type IrLibFn =
|
|
|
2885
2962
|
* the had-listeners bool. emitter.emitError: emit('error', err) —
|
|
2886
2963
|
* throws err when unhandled. count/countFn/names/listeners/getMax/
|
|
2887
2964
|
* setMax/setDefaultMax/getDefaultMax are the introspection surface. */
|
|
2888
|
-
| "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.names" | "emitter.listeners" | "emitter.setMax" | "emitter.getMax"
|
|
2965
|
+
| "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"
|
|
2889
2966
|
/** Stream-'data' registration twins of emitter.on/onDyn (same args):
|
|
2890
2967
|
* chosen at registration sites whose receiver is stream-rooted, so the
|
|
2891
2968
|
* backend emits DATA thunks — the runtime's 'data' emission carries
|
|
@@ -2955,7 +3032,7 @@ export type IrLibFn =
|
|
|
2955
3032
|
* parsed dyn — malformed input rejects with the parse's SyntaxError,
|
|
2956
3033
|
* sc.buffer: the concatenated bytes) or rejected with the stream's
|
|
2957
3034
|
* error / ERR_STREAM_PREMATURE_CLOSE. */
|
|
2958
|
-
| "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.pause" | "readable.resume" | "readable.setEncoding"
|
|
3035
|
+
| "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"
|
|
2959
3036
|
/** push(chunk, enc) with a literal non-utf8 encoding, and the
|
|
2960
3037
|
* defaultEncoding option's push side (how push(string) decodes —
|
|
2961
3038
|
* Buffer.from(chunk, enc)); both carry the CANONICAL literal. */
|
|
@@ -3179,7 +3256,8 @@ export type IrLibFn =
|
|
|
3179
3256
|
* Node's once); off/removeListener remove by closure identity, the
|
|
3180
3257
|
* offWarning stance. Throws Node's ERR_INVALID_ARG_TYPE on a
|
|
3181
3258
|
* non-function. */
|
|
3182
|
-
|
|
3259
|
+
/** Uncaught exception handlers and monitors: [callback dyn, once, monitor]. */
|
|
3260
|
+
| "process.onUncaughtException" | "process.offUncaughtException" | "process.onUnhandledRejection" | "process.offUnhandledRejection"
|
|
3183
3261
|
/** process.on/once/off('rejectionHandled', fn): the sibling registry.
|
|
3184
3262
|
* A handler attached after unhandledRejection delivery fires the event
|
|
3185
3263
|
* once. Dispatch is synchronous at the attach, with the promise,
|
|
@@ -3265,6 +3343,9 @@ export type IrLibFn =
|
|
|
3265
3343
|
* from UTF-16 code units. Adjacent surrogate pairs combine; lone
|
|
3266
3344
|
* surrogates follow the runtime's replacement policy. */
|
|
3267
3345
|
| "string.fromCharCode"
|
|
3346
|
+
/** Numeric code points, with catchable RangeError for non-integers or
|
|
3347
|
+
* values outside 0..0x10ffff. Uses the same UTF-8 surrogate policy. */
|
|
3348
|
+
| "string.fromCodePoint"
|
|
3268
3349
|
/** lastIndexOf returns the last UTF-16 start index, or -1. The two-arg
|
|
3269
3350
|
* form searches at or before its numeric position; NaN starts at the end.
|
|
3270
3351
|
* String arguments are borrowed and neither form throws. */
|
|
@@ -3279,20 +3360,19 @@ export type IrLibFn =
|
|
|
3279
3360
|
/** WHATWG TextDecoder.decode over u8 bytes (scr_bytes.c): utf-8 with
|
|
3280
3361
|
* default options — the same maximal-subpart replacement decode as
|
|
3281
3362
|
* Buffer.toString("utf8"), with the leading BOM stripped (the one
|
|
3282
|
-
* behavioral difference; ignoreBOM defaults to false).
|
|
3283
|
-
*
|
|
3284
|
-
*
|
|
3285
|
-
* representation. TextEncoder.encode needs no libFn: its matching forms
|
|
3363
|
+
* behavioral difference; ignoreBOM defaults to false). Inline calls
|
|
3364
|
+
* lower directly; stored decoder records dispatch by encoding id.
|
|
3365
|
+
* TextEncoder.encode needs no libFn: its matching forms
|
|
3286
3366
|
* lower to buffer.fromStr(s, "utf8") (identical bytes — ScrStr storage
|
|
3287
3367
|
* is well-formed UTF-8). Borrowed arg; owned (+1) string; never throws. */
|
|
3288
|
-
| "text.decode"
|
|
3368
|
+
| "text.decode" | "bytes.bufferSource" | "text.decodeBufferSource" | "text.decodeOptions" | "text.decodeStream" | "text.decodeLegacyOptions"
|
|
3289
3369
|
/** TextDecoder.decode for a compile-time non-UTF-8 WHATWG label. The
|
|
3290
3370
|
* second f64 is the frontend-owned encoding id consumed by scr_bytes.c;
|
|
3291
3371
|
* label aliases/case/ASCII whitespace are canonicalized before IR. The
|
|
3292
3372
|
* mapping tables are generated from the pinned Node 24 oracle, keeping
|
|
3293
3373
|
* output portable without an ICU/iconv dependency. Borrowed args; owned
|
|
3294
3374
|
* (+1) string; never throws. */
|
|
3295
|
-
| "text.decodeLegacy"
|
|
3375
|
+
| "text.decodeLegacy" | "text.decoderEncoding"
|
|
3296
3376
|
/** The wider sync fs slice (scr_lib.c), all throwing catchably with
|
|
3297
3377
|
* Node's errno message shapes and `.code` stamped like the rest of
|
|
3298
3378
|
* sync fs. unlink/chmod/chown wrap the syscalls 1:1 (Node reports the
|
|
@@ -3376,6 +3456,9 @@ export type IrLibFn =
|
|
|
3376
3456
|
* pairs like cp.execSync's), cwd ""=inherit. Same event/loop story as
|
|
3377
3457
|
* cp.spawn. */
|
|
3378
3458
|
| "cp.spawnOpts"
|
|
3459
|
+
/** Runtime options normalized into the native spawn core; unsupported
|
|
3460
|
+
* process features retain explicit refusals. (command, args, options). */
|
|
3461
|
+
| "cp.spawnDynamic"
|
|
3379
3462
|
/** Atomics.wait(int32Array, idx, expected, timeoutMs) → "not-equal"
|
|
3380
3463
|
* when the element differs from `expected`, else a real nanosleep for
|
|
3381
3464
|
* the timeout and "timed-out" (scr_lib.c). scriptc has no threads —
|
|
@@ -3446,8 +3529,7 @@ export type IrExpr =
|
|
|
3446
3529
|
/** Numeric operands; comparisons yield bool. `===`/`!==` additionally
|
|
3447
3530
|
* accept two same-typed arrays: reference identity (pointer compare),
|
|
3448
3531
|
* matching JS object equality — and two same-typed CLASS VALUES, where
|
|
3449
|
-
* the pointer compare IS class identity
|
|
3450
|
-
* class). */
|
|
3532
|
+
* the pointer compare IS class identity. */
|
|
3451
3533
|
| {
|
|
3452
3534
|
kind: "bin";
|
|
3453
3535
|
op: IrNumBinOp;
|
|
@@ -3629,11 +3711,11 @@ export type IrExpr =
|
|
|
3629
3711
|
loc: SrcLoc;
|
|
3630
3712
|
}
|
|
3631
3713
|
/** Optional chaining `a?.b` / `a?.m(...)` / `f?.()` / `a?.[i]` — the
|
|
3632
|
-
* `nullish` test inverted: `receiver` is a unit-armed union with
|
|
3633
|
-
*
|
|
3714
|
+
* `nullish` test inverted: `receiver` is a unit-armed union with at least
|
|
3715
|
+
* one non-unit arm, evaluated exactly once; when its runtime tag is a
|
|
3634
3716
|
* unit arm the result is the interned undefined arm of `type` (JS-exact:
|
|
3635
3717
|
* a null receiver still yields undefined) and `body` never evaluates —
|
|
3636
|
-
* argument side effects included. Otherwise the
|
|
3718
|
+
* argument side effects included. Otherwise the receiver binds
|
|
3637
3719
|
* to `id` (read via chainRecv inside `body`, +1 per read for ref kinds)
|
|
3638
3720
|
* and `body` produces the result: `type` when non-void (an
|
|
3639
3721
|
* undefined-armed union; the frontend pre-wraps the member value into
|
|
@@ -3648,7 +3730,9 @@ export type IrExpr =
|
|
|
3648
3730
|
loc: SrcLoc;
|
|
3649
3731
|
}
|
|
3650
3732
|
/** The narrowed receiver inside an enclosing optChain's `body`, by the
|
|
3651
|
-
* chain's `id` — typed as the
|
|
3733
|
+
* chain's `id` — typed as the single non-unit arm when there is one,
|
|
3734
|
+
* or as the original union when there are several (the body can retag
|
|
3735
|
+
* it to the present sub-union). Each read is
|
|
3652
3736
|
* +1 for ref kinds (a borrowed bind temp backs it). Valid nowhere else
|
|
3653
3737
|
* (validated against the active-chain stack). */
|
|
3654
3738
|
| {
|
|
@@ -3818,14 +3902,17 @@ export type IrExpr =
|
|
|
3818
3902
|
* truncate; a negative/huge result THROWS Node's "Invalid typed array
|
|
3819
3903
|
* length" RangeError catchably — backends' may-throw analyses seed on
|
|
3820
3904
|
* bytesNew with a non-bytes, non-array source).
|
|
3821
|
-
* - bytes
|
|
3822
|
-
* throws.
|
|
3905
|
+
* - bytes — an independent, element-coerced COPY. Never throws.
|
|
3823
3906
|
* - array of f64 — a per-element-coerced copy (ToUint8/ToUint32/float).
|
|
3824
3907
|
* Never throws.
|
|
3908
|
+
* - dyn — checked native input; can throw on invalid lengths/coercion.
|
|
3909
|
+
* `from` selects TypedArray.from's iterable/array-like semantics instead
|
|
3910
|
+
* of constructor length coercion (notably for strings and numbers).
|
|
3825
3911
|
* The source is BORROWED; the result is owned (+1). */
|
|
3826
3912
|
| {
|
|
3827
3913
|
kind: "bytesNew";
|
|
3828
3914
|
source: IrExpr | null;
|
|
3915
|
+
from?: true;
|
|
3829
3916
|
type: IrType;
|
|
3830
3917
|
loc: SrcLoc;
|
|
3831
3918
|
}
|
|
@@ -3951,10 +4038,13 @@ export type IrExpr =
|
|
|
3951
4038
|
}
|
|
3952
4039
|
/** Indirect call of a func-typed value. Args follow `call`'s convention
|
|
3953
4040
|
* (callee owns its params, callers pass +1). The callee expression is an
|
|
3954
|
-
* ordinary owned temp, released at statement end.
|
|
4041
|
+
* ordinary owned temp, released at statement end. receiver supplies the
|
|
4042
|
+
* call-time this value; absence means undefined. Evaluate callee, receiver,
|
|
4043
|
+
* then args, and restore the ambient receiver before unwinding. */
|
|
3955
4044
|
| {
|
|
3956
4045
|
kind: "callValue";
|
|
3957
4046
|
callee: IrExpr;
|
|
4047
|
+
receiver?: IrExpr;
|
|
3958
4048
|
args: IrExpr[];
|
|
3959
4049
|
type: IrType;
|
|
3960
4050
|
loc: SrcLoc;
|
|
@@ -3983,6 +4073,9 @@ export type IrExpr =
|
|
|
3983
4073
|
kind: "yieldExpr";
|
|
3984
4074
|
value: IrExpr | null;
|
|
3985
4075
|
awaited?: true;
|
|
4076
|
+
captureCompletion?: {
|
|
4077
|
+
returnType: IrType;
|
|
4078
|
+
};
|
|
3986
4079
|
type: IrType;
|
|
3987
4080
|
loc: SrcLoc;
|
|
3988
4081
|
}
|
|
@@ -4066,16 +4159,16 @@ export type IrExpr =
|
|
|
4066
4159
|
type: IrType;
|
|
4067
4160
|
loc: SrcLoc;
|
|
4068
4161
|
}
|
|
4069
|
-
/** The class itself as
|
|
4070
|
-
*
|
|
4071
|
-
*
|
|
4072
|
-
* pattern). The frontend notes an edge to `%className.constructor` at
|
|
4162
|
+
/** The class itself as an owned value. `captures` creates fresh identity
|
|
4163
|
+
* and retains the named boxes; absent captures use an immortal template.
|
|
4164
|
+
* The frontend notes an edge to `%className.constructor` at
|
|
4073
4165
|
* every classRef, so a value's construct thunk always has a constructor
|
|
4074
4166
|
* to call; backends emit class objects (and thunks) for exactly the
|
|
4075
4167
|
* classes some classRef in the module names. */
|
|
4076
4168
|
| {
|
|
4077
4169
|
kind: "classRef";
|
|
4078
4170
|
className: string;
|
|
4171
|
+
captures?: string[];
|
|
4079
4172
|
type: IrType;
|
|
4080
4173
|
loc: SrcLoc;
|
|
4081
4174
|
}
|
|
@@ -4341,6 +4434,7 @@ export type IrExpr =
|
|
|
4341
4434
|
| {
|
|
4342
4435
|
kind: "dynCall";
|
|
4343
4436
|
callee: IrExpr;
|
|
4437
|
+
receiver?: IrExpr;
|
|
4344
4438
|
calleeName: string;
|
|
4345
4439
|
args: IrExpr[];
|
|
4346
4440
|
spreads?: {
|
|
@@ -4381,10 +4475,8 @@ export type IrExpr =
|
|
|
4381
4475
|
type: IrType;
|
|
4382
4476
|
loc: SrcLoc;
|
|
4383
4477
|
}
|
|
4384
|
-
/** A dyn OBJECT built member-by-member. With no `fields` it is
|
|
4385
|
-
* object
|
|
4386
|
-
* in harness code: the value exists for identity; every reached METHOD
|
|
4387
|
-
* use meets its own fence). With `fields` it is a JS object literal whose
|
|
4478
|
+
/** A dyn OBJECT built member-by-member. With no `fields` it is an empty
|
|
4479
|
+
* object. With `fields` it is a JS object literal whose
|
|
4388
4480
|
* keys are RUNTIME values (the computed-key idiom `{ [field]: criteria,
|
|
4389
4481
|
* actual: 0 }` in test/common's _mustCallInner): each entry's key is a
|
|
4390
4482
|
* string-typed expression (identifier/string keys lower to strLits;
|
|
@@ -4407,9 +4499,9 @@ export type IrExpr =
|
|
|
4407
4499
|
* control flow understands on `unknown`: `typeof v === "string" |
|
|
4408
4500
|
* "number" | "boolean" | "undefined"` and the unit comparisons `v ===
|
|
4409
4501
|
* undefined` / `v === null` (`"nullish"` is the LOOSE `v == null` pair —
|
|
4410
|
-
* undefined or null in one test), and `v instanceof
|
|
4411
|
-
* (`"bytes"`
|
|
4412
|
-
* subclass
|
|
4502
|
+
* undefined or null in one test), and `v instanceof TypedArray`
|
|
4503
|
+
* (`"bytes"` plus bytesElem, default u8; Node's Buffer is a Uint8Array
|
|
4504
|
+
* subclass), plus
|
|
4413
4505
|
* the two object-family tests: `"object"` is `typeof v === "object"`
|
|
4414
4506
|
* exactly (true for the checked-dynamic tree's object, array, bytes, AND null kinds —
|
|
4415
4507
|
* JS's oldest wart preserved), `"array"` is `Array.isArray(v)` (the
|
|
@@ -4433,7 +4525,8 @@ export type IrExpr =
|
|
|
4433
4525
|
* `"object"` test, JS-exact. */
|
|
4434
4526
|
| {
|
|
4435
4527
|
kind: "dynTest";
|
|
4436
|
-
test: "string" | "number" | "boolean" | "undefined" | "null" | "nullish" | "bytes" | "object" | "array" | "truthy" | "error" | "function";
|
|
4528
|
+
test: "promise" | "bigint" | "symbol" | "string" | "number" | "boolean" | "undefined" | "null" | "nullish" | "bytes" | "buffer" | "object" | "array" | "truthy" | "error" | "function";
|
|
4529
|
+
bytesElem?: IrBytesElem;
|
|
4437
4530
|
negated?: true;
|
|
4438
4531
|
value: IrExpr;
|
|
4439
4532
|
type: IrType;
|
|
@@ -4501,13 +4594,16 @@ export type IrExpr =
|
|
|
4501
4594
|
* forms whose statement lowering needs temps and writes (destructuring
|
|
4502
4595
|
* assignments in value position, keyed dyn writes yielding the RHS).
|
|
4503
4596
|
* `type` IS result's type. Restricted on purpose: stmts must be
|
|
4504
|
-
*
|
|
4505
|
-
*
|
|
4506
|
-
*
|
|
4597
|
+
* local statements (including blocks, branches, and loops, but no jumps;
|
|
4598
|
+
* the validator enforces the subset). Hidden locals retain function-wide
|
|
4599
|
+
* ids, but their owned values live through the enclosing expression's
|
|
4600
|
+
* frame: later call arguments may reuse a saved operand. Release them
|
|
4601
|
+
* on the same path that initialized them, not an outer lexical scope. */
|
|
4507
4602
|
| {
|
|
4508
4603
|
kind: "seqExpr";
|
|
4509
4604
|
stmts: IrStmt[];
|
|
4510
4605
|
result: IrExpr;
|
|
4606
|
+
generatorDelegate?: true;
|
|
4511
4607
|
type: IrType;
|
|
4512
4608
|
loc: SrcLoc;
|
|
4513
4609
|
}
|
|
@@ -4542,6 +4638,7 @@ export type IrExpr =
|
|
|
4542
4638
|
kind: "dynIterN";
|
|
4543
4639
|
value: IrExpr;
|
|
4544
4640
|
count: number;
|
|
4641
|
+
notIterableMessage?: string;
|
|
4545
4642
|
type: IrType;
|
|
4546
4643
|
loc: SrcLoc;
|
|
4547
4644
|
}
|
|
@@ -4560,6 +4657,18 @@ export type IrExpr =
|
|
|
4560
4657
|
type: IrType;
|
|
4561
4658
|
loc: SrcLoc;
|
|
4562
4659
|
}
|
|
4660
|
+
/** Own-key presence in an index-signature record's overflow map. Unlike
|
|
4661
|
+
* a keyed read, this distinguishes a missing key from a stored undefined
|
|
4662
|
+
* value. Declared fields are handled separately by the lowering. Both
|
|
4663
|
+
* operands are borrowed, the key is string, the result is bool. */
|
|
4664
|
+
| {
|
|
4665
|
+
kind: "recordOvfHas";
|
|
4666
|
+
obj: IrExpr;
|
|
4667
|
+
shapeId: string;
|
|
4668
|
+
key: IrExpr;
|
|
4669
|
+
type: IrType;
|
|
4670
|
+
loc: SrcLoc;
|
|
4671
|
+
}
|
|
4563
4672
|
/** Union construction: wrap an arm value into a fresh tagged box (the
|
|
4564
4673
|
* frontend inserts these wherever a `B` flows into an `A | B` slot).
|
|
4565
4674
|
* `tag` is the arm's index in the union's canonical arm list; `value` has
|
|
@@ -4807,6 +4916,7 @@ export type IrExpr =
|
|
|
4807
4916
|
| {
|
|
4808
4917
|
kind: "jsonStringify";
|
|
4809
4918
|
value: IrExpr;
|
|
4919
|
+
indent?: string;
|
|
4810
4920
|
type: IrType;
|
|
4811
4921
|
loc: SrcLoc;
|
|
4812
4922
|
}
|
|
@@ -4998,6 +5108,12 @@ export declare function isJsonSafeType(t: IrType, getRecord: (shapeId: string) =
|
|
|
4998
5108
|
* root remains outside the domain because JSON.stringify returns the
|
|
4999
5109
|
* undefined value instead of a string. */
|
|
5000
5110
|
export declare function isJsonStringifySafeType(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
5111
|
+
/** A JSON-shaped container with unknown payloads needs the runtime JSON
|
|
5112
|
+
* traversal. Its declared structure can be boxed, but payloads may carry
|
|
5113
|
+
* omitted values, toJSON methods, or cycles. This predicate does not widen
|
|
5114
|
+
* the type-directed serializer, checked-island boundary, or root-undefined
|
|
5115
|
+
* contract; callers must select the checked runtime traversal explicitly. */
|
|
5116
|
+
export declare function isJsonStringifyDynamicType(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
5001
5117
|
/** THE island boundary predicate: true when a static type can cross into
|
|
5002
5118
|
* the island (jsMarshal — primitives by value, composites as deep JSON
|
|
5003
5119
|
* copies) and back out (jsExit — strict primitive extraction, composites
|
|
@@ -5019,7 +5135,8 @@ export declare const MAX_ISLAND_CALLBACK_ARITY = 16;
|
|
|
5019
5135
|
export declare function canMarshalFuncIntoIsland(t: IrType): boolean;
|
|
5020
5136
|
/** Parameter types a TYPED closure may declare when it crosses INTO the
|
|
5021
5137
|
* island as a host function: jsval params take the engine argument as a
|
|
5022
|
-
* handle (the all-'any' shape above);
|
|
5138
|
+
* handle (the all-'any' shape above); dyn params normalize scalars or retain
|
|
5139
|
+
* engine objects by reference. Every other admitted type converts
|
|
5023
5140
|
* AT CALL TIME through the validated-exit machinery — strict primitives,
|
|
5024
5141
|
* JSON round-trip composites (the dynCheck walker: width-tolerant records,
|
|
5025
5142
|
* path-annotated failures). On top of the jsExit set, a bare `T | undefined`
|
|
@@ -5045,8 +5162,8 @@ export declare function islandCallbackRet(t: IrType, getRecord: (shapeId: string
|
|
|
5045
5162
|
* closures whose params are per-argument-convertible at call time
|
|
5046
5163
|
* (isIslandCallbackParamType) and whose return classifies
|
|
5047
5164
|
* (islandCallbackRet). Same arity cap — the runtime's host-call argument
|
|
5048
|
-
* buffer.
|
|
5049
|
-
*
|
|
5165
|
+
* buffer. Statically typed closure parameters stay fenced; unknown values
|
|
5166
|
+
* enter as checked-dynamic values and are validated at each typed use. */
|
|
5050
5167
|
export declare function canMarshalTypedFuncIntoIsland(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
5051
5168
|
/** The runtime HANDLE kinds that cross the checked-dynamic boundary as
|
|
5052
5169
|
* the checked-dynamic tree's HANDLE kind (SCR_DYN_HANDLE): boxed by REFERENCE (identity —
|
|
@@ -5074,27 +5191,36 @@ export declare function isDynTypedRefType(t: IrType): t is Extract<IrType, {
|
|
|
5074
5191
|
* layout; TypeScript `private`/`protected` fields keep ordinary names and are
|
|
5075
5192
|
* observable properties at runtime. */
|
|
5076
5193
|
export declare function isClassOwnEnumerableFieldName(name: string): boolean;
|
|
5194
|
+
/** Compiler-owned storage for properties added through untyped references. */
|
|
5195
|
+
export declare const DYN_CLASS_PROPERTIES = "%dynProperties";
|
|
5196
|
+
/** A class capsule can always preserve its exact native identity. Its
|
|
5197
|
+
* optional property view additionally needs converters in both directions;
|
|
5198
|
+
* fields such as Maps may remain opaque without preventing the round trip. */
|
|
5199
|
+
export declare function classDynViewSupported(fields: readonly {
|
|
5200
|
+
name: string;
|
|
5201
|
+
type: IrType;
|
|
5202
|
+
}[], getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
5077
5203
|
/** A static type that CONVERTS into a dyn value — the dynFrom domain:
|
|
5078
|
-
* JSON-safe data,
|
|
5204
|
+
* JSON-safe data, numeric typed arrays (retained views), identity-preserving class
|
|
5079
5205
|
* references, undefined-armed unions of those arms, boxable function types,
|
|
5080
5206
|
* and the runtime HANDLE kinds (boxed by reference — DYN_HANDLE_KINDS). */
|
|
5081
|
-
export declare function canConvertToDyn(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
5207
|
+
export declare function canConvertToDyn(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined, visiting?: Set<string>): boolean;
|
|
5082
5208
|
/** A type a dyn value can be VALIDATED into — the dynCheck domain:
|
|
5083
|
-
* JSON-safe data,
|
|
5209
|
+
* JSON-safe data, numeric typed arrays (retained views), the %Error extraction,
|
|
5084
5210
|
* undefined-armed unions of JSON-safe arms, adaptable function types,
|
|
5085
5211
|
* and the runtime HANDLE kinds (a tag-checked reference unwrap —
|
|
5086
5212
|
* DYN_HANDLE_KINDS). */
|
|
5087
|
-
export declare function canDynCheckTo(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
5213
|
+
export declare function canDynCheckTo(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined, visiting?: Set<string>): boolean;
|
|
5088
5214
|
/** A closure type that can BOX into the checked-dynamic tree's function kind (dynFrom):
|
|
5089
5215
|
* every param dyn or dynCheckable (the thunk validates dyn arguments into
|
|
5090
5216
|
* them), return void, dyn, or dyn-convertible (the thunk converts it
|
|
5091
5217
|
* back). */
|
|
5092
|
-
export declare function canBoxFuncIntoDyn(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
5218
|
+
export declare function canBoxFuncIntoDyn(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined, visiting?: Set<string>): boolean;
|
|
5093
5219
|
/** A closure type a dyn function value can ADAPT to (dynCheck): every
|
|
5094
5220
|
* param dyn or dyn-convertible (the adapter converts typed arguments into
|
|
5095
5221
|
* dyn), return void, dyn, or dynCheckable (the adapter validates the dyn
|
|
5096
5222
|
* result). */
|
|
5097
|
-
export declare function canAdaptDynFuncTo(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
5223
|
+
export declare function canAdaptDynFuncTo(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined, visiting?: Set<string>): boolean;
|
|
5098
5224
|
/** The MARSHAL-direction boundary (jsMarshal): everything that can cross
|
|
5099
5225
|
* out and back (canCrossIslandBoundary) plus qualifying closures — those
|
|
5100
5226
|
* enter as host functions but never EXIT (jsExit keeps the narrower
|
|
@@ -5115,12 +5241,44 @@ export declare function canMarshalIntoIsland(t: IrType, getRecord: (shapeId: str
|
|
|
5115
5241
|
* Promise.all arm). Null = outside the domain (the boundary fence). */
|
|
5116
5242
|
export declare function islandPromisePayloadTag(inner: IrType): "void" | "f64" | "bool" | "string" | "jsval" | "jsvalArr" | null;
|
|
5117
5243
|
export declare function canExitIslandToType(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
5244
|
+
export interface RuntimeFeatures {
|
|
5245
|
+
regex: boolean;
|
|
5246
|
+
copying: boolean;
|
|
5247
|
+
legacyTextDecoder: boolean;
|
|
5248
|
+
fileHandle: boolean;
|
|
5249
|
+
fetch: boolean;
|
|
5250
|
+
processEvents: boolean;
|
|
5251
|
+
emitter: boolean;
|
|
5252
|
+
stream: boolean;
|
|
5253
|
+
zlib: boolean;
|
|
5254
|
+
dc: boolean;
|
|
5255
|
+
assert: boolean;
|
|
5256
|
+
dynInvoke: boolean;
|
|
5257
|
+
dynAsync: boolean;
|
|
5258
|
+
inspect: boolean;
|
|
5259
|
+
childProcess: boolean;
|
|
5260
|
+
net: boolean;
|
|
5261
|
+
symbol: boolean;
|
|
5262
|
+
bigint: boolean;
|
|
5263
|
+
searchParams: boolean;
|
|
5264
|
+
qs: boolean;
|
|
5265
|
+
parseArgs: boolean;
|
|
5266
|
+
fsWatch: boolean;
|
|
5267
|
+
nodeTest: boolean;
|
|
5268
|
+
dgram: boolean;
|
|
5269
|
+
http: boolean;
|
|
5270
|
+
http2: boolean;
|
|
5271
|
+
tls: boolean;
|
|
5272
|
+
tlsCa: boolean;
|
|
5273
|
+
}
|
|
5274
|
+
/** Inspect types and expressions together in one traversal. This is a fresh
|
|
5275
|
+
* snapshot: callers may mutate an IR module between compilation passes. */
|
|
5276
|
+
export declare function moduleRuntimeFeatures(mod: IrModule): RuntimeFeatures;
|
|
5118
5277
|
/** True when the module contains any regex construct — a regexLit /
|
|
5119
5278
|
* regexIntrinsic node or a regex-typed slot anywhere. This is the link
|
|
5120
5279
|
* switch that pulls scr_regex.c + the vendored libregexp into the binary
|
|
5121
|
-
* (native-toolchain.ts); regex-free programs keep the historical command line.
|
|
5122
|
-
*
|
|
5123
|
-
* VALUES can never false-positive. */
|
|
5280
|
+
* (native-toolchain.ts); regex-free programs keep the historical command line. The
|
|
5281
|
+
* typed traversal visits type slots as well as executable nodes. */
|
|
5124
5282
|
export declare function moduleUsesRegex(mod: IrModule): boolean;
|
|
5125
5283
|
/** True when the module contains an intrinsic whose implementation lives
|
|
5126
5284
|
* in scr_copying.c. This is the link switch that keeps the optional
|
|
@@ -5171,7 +5329,7 @@ export declare function moduleUsesStream(mod: IrModule): boolean;
|
|
|
5171
5329
|
* the first; the emitted main installs it before any island entry). */
|
|
5172
5330
|
export declare function moduleEmbedsBuiltin(mod: IrModule, builtin: string): boolean;
|
|
5173
5331
|
/** Embedded module texts at least this long are DEFLATE-compressed into
|
|
5174
|
-
* the emitted
|
|
5332
|
+
* the emitted LLVM (island.ts; each stays plain when deflate does not
|
|
5175
5333
|
* shrink it) and inflated lazily by the island's module loader at first
|
|
5176
5334
|
* load. Below it the zlib round trip cannot pay for itself. */
|
|
5177
5335
|
export declare const NPM_COMPRESS_MIN = 1024;
|
|
@@ -5305,8 +5463,8 @@ export declare function moduleUsesTls(mod: IrModule): boolean;
|
|
|
5305
5463
|
export declare function moduleUsesTlsCa(mod: IrModule): boolean;
|
|
5306
5464
|
/** First async/event-loop/ambient-process surface the module graph
|
|
5307
5465
|
* reaches, or null when the graph is async_free (the v1 library requirement).
|
|
5308
|
-
*
|
|
5309
|
-
*
|
|
5466
|
+
* Typed slots use their declaration location and executable nodes use their
|
|
5467
|
+
* own location, so the refusal anchors at the reaching construct; the
|
|
5310
5468
|
* coarse moduleUses* predicates are the safety net behind the fine-grained
|
|
5311
5469
|
* table (a surface reached only through a spelling the table misses still
|
|
5312
5470
|
* refuses, anchored at the entry). */
|