@scriptc/compiler 0.3.0 → 0.3.2
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 +346 -17
- package/dist/backend/executable-features.js +1 -0
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/literals.d.ts +7 -0
- package/dist/backend/literals.js +32 -0
- package/dist/backend/literals.js.map +1 -1
- package/dist/backend/literals.test.js +17 -1
- package/dist/backend/literals.test.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +15 -4
- package/dist/backend/llvm/alloc.js +39 -15
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/alloc.test.js +15 -1
- package/dist/backend/llvm/alloc.test.js.map +1 -1
- package/dist/backend/llvm/appended-array-literals.d.ts +2 -0
- package/dist/backend/llvm/appended-array-literals.js +109 -0
- package/dist/backend/llvm/appended-array-literals.js.map +1 -0
- package/dist/backend/llvm/appended-array-literals.test.d.ts +1 -0
- package/dist/backend/llvm/appended-array-literals.test.js +90 -0
- package/dist/backend/llvm/appended-array-literals.test.js.map +1 -0
- package/dist/backend/llvm/bigint-wrap.d.ts +4 -0
- package/dist/backend/llvm/bigint-wrap.js +590 -0
- package/dist/backend/llvm/bigint-wrap.js.map +1 -0
- package/dist/backend/llvm/blocks.d.ts +2 -0
- package/dist/backend/llvm/blocks.js +4 -0
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.d.ts +4 -1
- package/dist/backend/llvm/call-lifetimes.js +66 -7
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +14 -3
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/checked-narrows.test.js +1 -1
- package/dist/backend/llvm/checked-narrows.test.js.map +1 -1
- package/dist/backend/llvm/classes.js +67 -14
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +6 -6
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +7 -5
- package/dist/backend/llvm/common.js +7 -5
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.js +10 -28
- package/dist/backend/llvm/constant-callbacks.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.js +146 -53
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.test.js +68 -3
- package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +4 -0
- package/dist/backend/llvm/dyn.js +15 -2
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +163 -8
- package/dist/backend/llvm/emitter.js +973 -100
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +14 -7
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +242 -49
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-async.test.js +1 -1
- package/dist/backend/llvm/expr-async.test.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.js +51 -36
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.d.ts +8 -0
- package/dist/backend/llvm/expr-callbacks.js +153 -4
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +12 -1
- package/dist/backend/llvm/expr-calls.js +279 -78
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-calls.test.d.ts +1 -0
- package/dist/backend/llvm/expr-calls.test.js +132 -0
- package/dist/backend/llvm/expr-calls.test.js.map +1 -0
- package/dist/backend/llvm/expr-containers.d.ts +7 -0
- package/dist/backend/llvm/expr-containers.js +49 -5
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +4 -0
- package/dist/backend/llvm/expr-control.d.ts +8 -0
- package/dist/backend/llvm/expr-control.js +103 -69
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.js +3 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +28 -6
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +14 -0
- package/dist/backend/llvm/expr-primitives.js +110 -48
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +95 -5
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-records.d.ts +9 -0
- package/dist/backend/llvm/expr-records.js +144 -16
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.d.ts +9 -1
- package/dist/backend/llvm/expr-stream-bridges.js +152 -4
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js +98 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
- package/dist/backend/llvm/int32-abi.d.ts +47 -0
- package/dist/backend/llvm/int32-abi.js +83 -0
- package/dist/backend/llvm/int32-abi.js.map +1 -0
- package/dist/backend/llvm/int32-abi.test.d.ts +1 -0
- package/dist/backend/llvm/int32-abi.test.js +181 -0
- package/dist/backend/llvm/int32-abi.test.js.map +1 -0
- package/dist/backend/llvm/int32-locals.d.ts +30 -0
- package/dist/backend/llvm/int32-locals.js +95 -0
- package/dist/backend/llvm/int32-locals.js.map +1 -0
- package/dist/backend/llvm/integer-values.d.ts +4 -0
- package/dist/backend/llvm/integer-values.js +30 -1
- package/dist/backend/llvm/integer-values.js.map +1 -1
- package/dist/backend/llvm/integer-views.d.ts +8 -1
- package/dist/backend/llvm/integer-views.js +47 -2
- package/dist/backend/llvm/integer-views.js.map +1 -1
- package/dist/backend/llvm/lazy-captures.d.ts +16 -0
- package/dist/backend/llvm/lazy-captures.js +88 -2
- package/dist/backend/llvm/lazy-captures.js.map +1 -1
- package/dist/backend/llvm/lazy-captures.test.js +48 -0
- package/dist/backend/llvm/lazy-captures.test.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +21 -0
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +61 -0
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +83 -9
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +26 -5
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +3 -2
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.d.ts +24 -2
- package/dist/backend/llvm/local-union-storage.js +127 -12
- package/dist/backend/llvm/local-union-storage.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +108 -3
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/record-results.d.ts +26 -0
- package/dist/backend/llvm/record-results.js +252 -0
- package/dist/backend/llvm/record-results.js.map +1 -0
- package/dist/backend/llvm/reference-effects.js +4 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-writes.d.ts +3 -0
- package/dist/backend/llvm/reference-writes.js +25 -11
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/regex-matchers.d.ts +39 -0
- package/dist/backend/llvm/regex-matchers.js +1649 -0
- package/dist/backend/llvm/regex-matchers.js.map +1 -0
- package/dist/backend/llvm/regex-matchers.test.d.ts +1 -0
- package/dist/backend/llvm/regex-matchers.test.js +96 -0
- package/dist/backend/llvm/regex-matchers.test.js.map +1 -0
- package/dist/backend/llvm/regions.d.ts +67 -0
- package/dist/backend/llvm/regions.js +309 -0
- package/dist/backend/llvm/regions.js.map +1 -0
- package/dist/backend/llvm/regions.test.d.ts +1 -0
- package/dist/backend/llvm/regions.test.js +173 -0
- package/dist/backend/llvm/regions.test.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +70 -8
- package/dist/backend/llvm/shapes.js +157 -29
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +7 -6
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/split-loops.js +1 -1
- package/dist/backend/llvm/split-loops.js.map +1 -1
- package/dist/backend/llvm/stack-objects.d.ts +29 -0
- package/dist/backend/llvm/stack-objects.js +130 -0
- package/dist/backend/llvm/stack-objects.js.map +1 -0
- package/dist/backend/llvm/stack-objects.test.d.ts +1 -0
- package/dist/backend/llvm/stack-objects.test.js +252 -0
- package/dist/backend/llvm/stack-objects.test.js.map +1 -0
- package/dist/backend/llvm/stack-unions.test.js +1 -1
- package/dist/backend/llvm/stack-unions.test.js.map +1 -1
- package/dist/backend/llvm/string-construction.test.js +2 -2
- package/dist/backend/llvm/string-construction.test.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +5 -5
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-literal-equality.d.ts +22 -0
- package/dist/backend/llvm/string-literal-equality.js +78 -0
- package/dist/backend/llvm/string-literal-equality.js.map +1 -0
- package/dist/backend/llvm/string-reads.d.ts +4 -1
- package/dist/backend/llvm/string-reads.js +89 -9
- package/dist/backend/llvm/string-reads.js.map +1 -1
- package/dist/backend/llvm/switch-dispatch.js +60 -13
- package/dist/backend/llvm/switch-dispatch.js.map +1 -1
- package/dist/backend/llvm/switch-dispatch.test.js +71 -6
- package/dist/backend/llvm/switch-dispatch.test.js.map +1 -1
- package/dist/backend/llvm/union-retype.test.d.ts +1 -0
- package/dist/backend/llvm/union-retype.test.js +229 -0
- package/dist/backend/llvm/union-retype.test.js.map +1 -0
- package/dist/backend/llvm/walkers.d.ts +2 -0
- package/dist/backend/llvm/walkers.js +4 -2
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/llvm/wrapping-sums.d.ts +17 -0
- package/dist/backend/llvm/wrapping-sums.js +113 -0
- package/dist/backend/llvm/wrapping-sums.js.map +1 -0
- package/dist/backend/loop-polls.js +1 -0
- package/dist/backend/loop-polls.js.map +1 -1
- package/dist/backend/mangle.d.ts +9 -0
- package/dist/backend/mangle.js +15 -0
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/may-throw.js +7 -3
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +5 -0
- package/dist/backend/native/executable.js +16 -1
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/library.js +1 -1
- package/dist/backend/native/library.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +2 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +1 -0
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-core.d.ts +1 -0
- package/dist/backend/runtime-pack-core.js +1 -0
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack.test.js +1 -1
- package/dist/backend/target-diagnostics.js +14 -0
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +13 -0
- package/dist/backend/target-diagnostics.test.js.map +1 -1
- package/dist/contracts/check.js +4 -0
- package/dist/contracts/check.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +1 -0
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/frontend/experimental-import.d.ts +12 -0
- package/dist/frontend/experimental-import.js +63 -0
- package/dist/frontend/experimental-import.js.map +1 -0
- package/dist/frontend/lowering/array-values.d.ts +14 -0
- package/dist/frontend/lowering/array-values.js +29 -0
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/builtin-calls.d.ts +6 -1
- package/dist/frontend/lowering/builtin-calls.js +36 -0
- package/dist/frontend/lowering/builtin-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/console.d.ts +16 -6
- package/dist/frontend/lowering/builtins/console.js +33 -9
- package/dist/frontend/lowering/builtins/console.js.map +1 -1
- package/dist/frontend/lowering/builtins/errors.js +20 -0
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/json.d.ts +2 -2
- package/dist/frontend/lowering/builtins/json.js +13 -4
- package/dist/frontend/lowering/builtins/json.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-calls.js +16 -1
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/numbers.d.ts +1 -0
- package/dist/frontend/lowering/builtins/numbers.js +17 -0
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
- package/dist/frontend/lowering/builtins/operating-system.d.ts +18 -0
- package/dist/frontend/lowering/builtins/operating-system.js +361 -1
- package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.js +15 -3
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.js +109 -2
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/text-codecs.d.ts +3 -4
- package/dist/frontend/lowering/builtins/text-codecs.js +3 -4
- package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
- package/dist/frontend/lowering/checked-promise-all.d.ts +10 -3
- package/dist/frontend/lowering/checked-promise-all.js +52 -6
- package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +6 -3
- package/dist/frontend/lowering/class-dynamic-dispatch.js +54 -31
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.js +74 -4
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.js +8 -4
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.d.ts +54 -0
- package/dist/frontend/lowering/containers/array-pipelines.js +1827 -0
- package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -0
- package/dist/frontend/lowering/containers/exec-result-uses.d.ts +10 -0
- package/dist/frontend/lowering/containers/exec-result-uses.js +88 -0
- package/dist/frontend/lowering/containers/exec-result-uses.js.map +1 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js +106 -7
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.d.ts +2 -1
- package/dist/frontend/lowering/containers/string-replacement.js +32 -136
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.d.ts +18 -2
- package/dist/frontend/lowering/cycle-initialization.js +166 -12
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.js +7 -2
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.test.js +28 -0
- package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
- package/dist/frontend/lowering/devirtualize.d.ts +33 -0
- package/dist/frontend/lowering/devirtualize.js +199 -0
- package/dist/frontend/lowering/devirtualize.js.map +1 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js +55 -7
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +5 -56
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/generator-delegation.d.ts +8 -0
- package/dist/frontend/lowering/generator-delegation.js +231 -10
- package/dist/frontend/lowering/generator-delegation.js.map +1 -1
- package/dist/frontend/lowering/identifier-uses.d.ts +7 -0
- package/dist/frontend/lowering/identifier-uses.js +23 -0
- package/dist/frontend/lowering/identifier-uses.js.map +1 -0
- package/dist/frontend/lowering/iterator-adapters.js +51 -3
- package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
- package/dist/frontend/lowering/lifetime-regions.d.ts +11 -0
- package/dist/frontend/lowering/lifetime-regions.js +216 -0
- package/dist/frontend/lowering/lifetime-regions.js.map +1 -0
- package/dist/frontend/lowering/lower-array-sort.d.ts +28 -2
- package/dist/frontend/lowering/lower-array-sort.js +112 -2
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.test.js +99 -2
- package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +135 -131
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +4 -3
- package/dist/frontend/lowering/lower-classes.js +117 -13
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-console.d.ts +27 -0
- package/dist/frontend/lowering/lower-console.js +651 -0
- package/dist/frontend/lowering/lower-console.js.map +1 -0
- package/dist/frontend/lowering/lower-event-emitter.d.ts +6 -0
- package/dist/frontend/lowering/lower-event-emitter.js +124 -38
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.js +272 -25
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +7 -3
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +25 -7
- package/dist/frontend/lowering/lower-generators.js +264 -113
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +8 -1
- package/dist/frontend/lowering/lower-inspect.js +119 -18
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +24 -14
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.d.ts +4 -0
- package/dist/frontend/lowering/lower-stdlib.js +35 -1
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +66 -11
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +13 -10
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +47 -5
- package/dist/frontend/lowering/lowerer.js +235 -54
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/nan-coded-reads.d.ts +16 -0
- package/dist/frontend/lowering/nan-coded-reads.js +108 -1
- package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
- package/dist/frontend/lowering/regex-span-reads.d.ts +12 -0
- package/dist/frontend/lowering/regex-span-reads.js +164 -0
- package/dist/frontend/lowering/regex-span-reads.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-bounds.d.ts +4 -0
- package/dist/frontend/lowering/runtime-optional-bounds.js +2 -0
- package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-bounds.test.js +27 -0
- package/dist/frontend/lowering/runtime-optional-bounds.test.js.map +1 -1
- package/dist/frontend/lowering/split-consumers.js +2 -18
- package/dist/frontend/lowering/split-consumers.js.map +1 -1
- package/dist/frontend/lowering/surfaces.js +115 -18
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/union-retag.d.ts +6 -1
- package/dist/frontend/lowering/union-retag.js +64 -1
- package/dist/frontend/lowering/union-retag.js.map +1 -1
- package/dist/frontend/lowering/union-retag.test.js +46 -0
- package/dist/frontend/lowering/union-retag.test.js.map +1 -1
- package/dist/frontend/lowering/var-hoisting.d.ts +3 -0
- package/dist/frontend/lowering/var-hoisting.js +261 -0
- package/dist/frontend/lowering/var-hoisting.js.map +1 -0
- package/dist/frontend/pipeline.js +5 -3
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/program.d.ts +3 -2
- package/dist/frontend/program.js +23 -5
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +13 -0
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +13 -1
- package/dist/frontend/type-mapper.js +160 -14
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ir/builtin-effects.js +31 -2
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +1 -1
- package/dist/ir/builtin-signatures.js +157 -16
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/function-references.d.ts +12 -0
- package/dist/ir/function-references.js +29 -0
- package/dist/ir/function-references.js.map +1 -0
- package/dist/ir/function-references.test.d.ts +1 -0
- package/dist/ir/function-references.test.js +277 -0
- package/dist/ir/function-references.test.js.map +1 -0
- package/dist/ir/int32-slots.d.ts +7 -4
- package/dist/ir/int32-slots.js +215 -49
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +38 -1
- package/dist/ir/int32-slots.test.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +4 -4
- package/dist/ir/integer-ranges.js +89 -64
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +71 -9
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/intrinsic-signatures.js +3 -0
- package/dist/ir/intrinsic-signatures.js.map +1 -1
- package/dist/ir/ir.d.ts +111 -20
- package/dist/ir/ir.js +6 -0
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +1 -0
- package/dist/ir/runtime-features.js +38 -3
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/scalar-records.js +1 -2
- package/dist/ir/scalar-records.js.map +1 -1
- package/dist/ir/traverse.js +4 -0
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +201 -25
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +90 -7
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/ir-policy.js +1 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/native/sanitizer.test.js +1 -0
- package/dist/native/sanitizer.test.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +159 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regex-span-reads.js","sourceRoot":"","sources":["../../../src/frontend/lowering/regex-span-reads.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,10 @@ export interface BoundsFacts {
|
|
|
17
17
|
* fixed-length typed arrays allocated with the same length), so a guard
|
|
18
18
|
* `i < other.length` bounds `array[i]` as well. */
|
|
19
19
|
sameLength?(array: ts.Expression, other: ts.Expression): boolean;
|
|
20
|
+
/** `bound` always holds `array.length` (for example, a `const` copy of
|
|
21
|
+
* the length of a typed array whose binding is never reassigned), so a
|
|
22
|
+
* guard `i < bound` bounds `array[i]`. */
|
|
23
|
+
lengthAlias?(bound: ts.Expression, array: ts.Expression): boolean;
|
|
20
24
|
/** A read inside an `if` condition is bounded like one in a statement.
|
|
21
25
|
* Opt-in: a caller that does not also prove the index a non-negative
|
|
22
26
|
* integer keeps its established decision for such reads. */
|
|
@@ -178,6 +178,8 @@ function sameReference(a, b) {
|
|
|
178
178
|
}
|
|
179
179
|
function isLengthOf(node, array, facts) {
|
|
180
180
|
const e = peel(node);
|
|
181
|
+
if (ts.isIdentifier(e))
|
|
182
|
+
return facts?.lengthAlias?.(e, array) === true;
|
|
181
183
|
return (ts.isPropertyAccessExpression(e) &&
|
|
182
184
|
!e.questionDotToken &&
|
|
183
185
|
e.name.text === "length" &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-optional-bounds.js","sourceRoot":"","sources":["../../../src/frontend/lowering/runtime-optional-bounds.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime-optional-bounds.js","sourceRoot":"","sources":["../../../src/frontend/lowering/runtime-optional-bounds.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,4 +91,31 @@ test("an if condition reads like a statement, and a same-length fact extends the
|
|
|
91
91
|
});
|
|
92
92
|
expect(plain).toEqual([false, false, false, false, false]);
|
|
93
93
|
});
|
|
94
|
+
test("a length-alias fact lets a cached length bound the read", () => {
|
|
95
|
+
const file = parseSourceFile("length-alias.ts", `function f(src: Uint8Array, dst: Uint8Array) {
|
|
96
|
+
const n = src.length;
|
|
97
|
+
for (let i = 0; i < n; i++) { const c = src[i]; }
|
|
98
|
+
for (let i = 0; i < n; i++) { const c = dst[i]; }
|
|
99
|
+
}`, "ts");
|
|
100
|
+
const results = [];
|
|
101
|
+
const facts = {
|
|
102
|
+
lengthAlias: (bound, array) => ts.isIdentifier(bound) &&
|
|
103
|
+
bound.text === "n" &&
|
|
104
|
+
ts.isIdentifier(array) &&
|
|
105
|
+
array.text === "src",
|
|
106
|
+
};
|
|
107
|
+
ts.walkPreorder(file, (node) => {
|
|
108
|
+
if (ts.isElementAccessExpression(node))
|
|
109
|
+
results.push(indexReadInBounds(node, facts));
|
|
110
|
+
return undefined;
|
|
111
|
+
});
|
|
112
|
+
expect(results).toEqual([true, false]);
|
|
113
|
+
const plain = [];
|
|
114
|
+
ts.walkPreorder(file, (node) => {
|
|
115
|
+
if (ts.isElementAccessExpression(node))
|
|
116
|
+
plain.push(indexReadInBounds(node));
|
|
117
|
+
return undefined;
|
|
118
|
+
});
|
|
119
|
+
expect(plain).toEqual([false, false]);
|
|
120
|
+
});
|
|
94
121
|
//# sourceMappingURL=runtime-optional-bounds.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-optional-bounds.test.js","sourceRoot":"","sources":["../../../src/frontend/lowering/runtime-optional-bounds.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAErF,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAE5B,+EAA+E;AAC/E,SAAS,MAAM,CAAC,IAAY;IAC1B,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;QAC7B,IACE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW;YACrD,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;YAEvC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;IAC5E,MAAM,CACJ,MAAM,CAAC;;;;;;;MAOL,CAAC,CACJ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;IAClE,MAAM,CACJ,MAAM,CAAC;;;;MAIL,CAAC,CACJ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+DAA+D,EAAE,GAAG,EAAE;IACzE,MAAM,CACJ,MAAM,CAAC;;;;;;;;;MASL,CAAC,CACJ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kFAAkF,EAAE,GAAG,EAAE;IAC5F,MAAM,IAAI,GAAG,eAAe,CAC1B,UAAU,EACV;;;;;;;;MAQE,EACF,IAAI,CACL,CAAC;IACF,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;QAC7B,IAAI,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kFAAkF,EAAE,GAAG,EAAE;IAC5F,MAAM,IAAI,GAAG,eAAe,CAC1B,gBAAgB,EAChB;;;;MAIE,EACF,IAAI,CACL,CAAC;IACF,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG;QACZ,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,CAAC,KAAoB,EAAE,KAAoB,EAAE,EAAE,CACzD,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;YACtB,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;YACtB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO;KACrD,CAAC;IACF,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;QAC7B,IAAI,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACrF,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,wEAAwE;IACxE,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;QAC7B,IAAI,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"runtime-optional-bounds.test.js","sourceRoot":"","sources":["../../../src/frontend/lowering/runtime-optional-bounds.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as ts from "../ts7/adapter.js";
|
|
2
2
|
import { stripValueWrappers } from "./binding-analysis.js";
|
|
3
|
+
import { identifiersNamed } from "./identifier-uses.js";
|
|
3
4
|
/** A fresh split array is dense. A stored result has the same guarantee
|
|
4
5
|
* only when this loop is its sole observation: even a const array can be
|
|
5
6
|
* mutated through an alias. Keep the ordinary array protocol otherwise. */
|
|
@@ -36,24 +37,7 @@ export function isPrivateSplitConsumer(lowerer, source, iterable) {
|
|
|
36
37
|
init.arguments.length === 0 ||
|
|
37
38
|
lowerer.mapTypeOf(lowerer.typeOf(init.arguments[0]))?.kind !== "string")
|
|
38
39
|
return false;
|
|
39
|
-
|
|
40
|
-
// positions and shorthand properties conservatively count as uses too.
|
|
41
|
-
const file = decl.getSourceFile();
|
|
42
|
-
let names = lowerer.splitIdentifierUses.get(file);
|
|
43
|
-
if (!names) {
|
|
44
|
-
names = new Map();
|
|
45
|
-
ts.walkPreorder(file, (node) => {
|
|
46
|
-
if (!ts.isIdentifier(node))
|
|
47
|
-
return;
|
|
48
|
-
const uses = names.get(node.text);
|
|
49
|
-
if (uses)
|
|
50
|
-
uses.push(node);
|
|
51
|
-
else
|
|
52
|
-
names.set(node.text, [node]);
|
|
53
|
-
});
|
|
54
|
-
lowerer.splitIdentifierUses.set(file, names);
|
|
55
|
-
}
|
|
56
|
-
for (const use of names.get(name.text) ?? []) {
|
|
40
|
+
for (const use of identifiersNamed(lowerer, decl.getSourceFile(), name.text)) {
|
|
57
41
|
if (use === decl.name || use === name)
|
|
58
42
|
continue;
|
|
59
43
|
if (lowerer.resolveValueSymbol(use) === symbol)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-consumers.js","sourceRoot":"","sources":["../../../src/frontend/lowering/split-consumers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"split-consumers.js","sourceRoot":"","sources":["../../../src/frontend/lowering/split-consumers.ts"],"names":[],"mappings":"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"}
|
|
@@ -492,7 +492,7 @@ export const STR_METHODS = {
|
|
|
492
492
|
// regexIntrinsic). The optional limit is completed to 2^32-1 by the
|
|
493
493
|
// lowering so the IR/runtime always see the spec's effective value.
|
|
494
494
|
// Empty separator splits per UTF-16 code unit —
|
|
495
|
-
// astral halves become
|
|
495
|
+
// astral halves become lone surrogates.
|
|
496
496
|
split: { method: "split", result: arrayOf(STRING), minArgs: 0, maxArgs: 2 },
|
|
497
497
|
// Padding completes omitted lengths and fill strings in its lowering.
|
|
498
498
|
padStart: { method: "padStart", result: STRING, minArgs: 0, maxArgs: 2 },
|
|
@@ -501,10 +501,8 @@ export const STR_METHODS = {
|
|
|
501
501
|
toLowerCase: { method: "toLowerCase", result: STRING, minArgs: 0, maxArgs: 0 },
|
|
502
502
|
toUpperCase: { method: "toUpperCase", result: STRING, minArgs: 0, maxArgs: 0 },
|
|
503
503
|
normalize: { method: "normalize", result: STRING, minArgs: 0, maxArgs: 1 },
|
|
504
|
-
// The ES2024 well-formedness pair
|
|
505
|
-
//
|
|
506
|
-
// well-formed input; where Node would answer false the program already
|
|
507
|
-
// diverged at the string's creation, SEMANTICS.md 2).
|
|
504
|
+
// The ES2024 well-formedness pair: whether the string holds a lone
|
|
505
|
+
// surrogate, and the copy with each one replaced by U+FFFD.
|
|
508
506
|
isWellFormed: { method: "isWellFormed", result: BOOL, minArgs: 0, maxArgs: 0 },
|
|
509
507
|
toWellFormed: { method: "toWellFormed", result: STRING, minArgs: 0, maxArgs: 0 },
|
|
510
508
|
};
|
|
@@ -789,6 +787,17 @@ const PATH_MODULE_FNS = {
|
|
|
789
787
|
result: STRING,
|
|
790
788
|
valueParams: [{ mode: "required", type: STRING }],
|
|
791
789
|
},
|
|
790
|
+
matchesGlob: {
|
|
791
|
+
fn: "path.matchesGlob",
|
|
792
|
+
params: [STRING, STRING],
|
|
793
|
+
result: BOOL,
|
|
794
|
+
valueParams: exactValueParams(STRING, STRING),
|
|
795
|
+
},
|
|
796
|
+
// Special-cased (lowerPathParseCall / lowerPathFormatCall): the
|
|
797
|
+
// ParsedPath record and the pathObject argument follow the call site's
|
|
798
|
+
// mapped shapes.
|
|
799
|
+
parse: { fn: "path.parse", params: [STRING], result: VOID },
|
|
800
|
+
format: { fn: "path.format", params: [], result: STRING },
|
|
792
801
|
};
|
|
793
802
|
/** The win32 twins (scr_path.c's Node-v24 path.win32 port, byte-for-byte):
|
|
794
803
|
* "path/win32" everywhere, and the bare-module table when the build
|
|
@@ -857,6 +866,17 @@ const PATH_WIN32_MODULE_FNS = {
|
|
|
857
866
|
result: STRING,
|
|
858
867
|
valueParams: [{ mode: "required", type: STRING }],
|
|
859
868
|
},
|
|
869
|
+
matchesGlob: {
|
|
870
|
+
fn: "path.win32MatchesGlob",
|
|
871
|
+
params: [STRING, STRING],
|
|
872
|
+
result: BOOL,
|
|
873
|
+
valueParams: exactValueParams(STRING, STRING),
|
|
874
|
+
},
|
|
875
|
+
// Special-cased (lowerPathParseCall / lowerPathFormatCall): the
|
|
876
|
+
// ParsedPath record and the pathObject argument follow the call site's
|
|
877
|
+
// mapped shapes.
|
|
878
|
+
parse: { fn: "path.win32Parse", params: [STRING], result: VOID },
|
|
879
|
+
format: { fn: "path.win32Format", params: [], result: STRING },
|
|
860
880
|
};
|
|
861
881
|
export const BUILTIN_MODULE_FNS = {
|
|
862
882
|
fs: {
|
|
@@ -1136,6 +1156,28 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
1136
1156
|
result: F64,
|
|
1137
1157
|
valueParams: [],
|
|
1138
1158
|
},
|
|
1159
|
+
// os.arch() IS process.arch, like platform().
|
|
1160
|
+
arch: { fn: "process.arch", params: [], result: STRING, valueParams: [] },
|
|
1161
|
+
hostname: { fn: "os.hostname", params: [], result: STRING, valueParams: [] },
|
|
1162
|
+
// uv_os_uname's machine and version fields, read once at module load
|
|
1163
|
+
// in Node (they never change while a process runs).
|
|
1164
|
+
machine: { fn: "os.machine", params: [], result: STRING, valueParams: [] },
|
|
1165
|
+
version: { fn: "os.version", params: [], result: STRING, valueParams: [] },
|
|
1166
|
+
endianness: { fn: "os.endianness", params: [], result: STRING, valueParams: [] },
|
|
1167
|
+
freemem: { fn: "os.freemem", params: [], result: F64, valueParams: [] },
|
|
1168
|
+
uptime: { fn: "os.uptime", params: [], result: F64, valueParams: [] },
|
|
1169
|
+
loadavg: { fn: "os.loadavg", params: [], result: arrayOf(F64), valueParams: [] },
|
|
1170
|
+
// An omitted (or undefined) pid is 0, the current process
|
|
1171
|
+
// (lowerOsGetPriorityCall completes it).
|
|
1172
|
+
getPriority: {
|
|
1173
|
+
fn: "os.getPriority",
|
|
1174
|
+
params: [F64],
|
|
1175
|
+
result: F64,
|
|
1176
|
+
valueParams: [{ mode: "optional", type: F64, defaultValue: 0 }],
|
|
1177
|
+
},
|
|
1178
|
+
// Special-cased (lowerOsCpusCall): the call site's CpuInfo[] assembles
|
|
1179
|
+
// from one uv_cpu_info snapshot.
|
|
1180
|
+
cpus: { fn: "os.cpusTake", params: [], result: VOID },
|
|
1139
1181
|
// Entirely special-cased (lowerOsNetworkInterfacesCall): the result is
|
|
1140
1182
|
// the call site's mapped Dict<NetworkInterfaceInfo[]> shape, verified
|
|
1141
1183
|
// structurally there — this entry only routes the dispatch.
|
|
@@ -1305,6 +1347,53 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
1305
1347
|
result: STRING,
|
|
1306
1348
|
valueParams: exactValueParams(DYN),
|
|
1307
1349
|
},
|
|
1350
|
+
// The function helpers take checked-dynamic arguments and answer native
|
|
1351
|
+
// dyn functions, which a static function slot checks when it receives
|
|
1352
|
+
// one (lowerUtilCallableCall in the util spoke).
|
|
1353
|
+
inherits: {
|
|
1354
|
+
fn: "util.inherits",
|
|
1355
|
+
params: [DYN, DYN],
|
|
1356
|
+
result: VOID,
|
|
1357
|
+
valueParams: [
|
|
1358
|
+
{ mode: "required", type: DYN },
|
|
1359
|
+
{ mode: "required", type: DYN },
|
|
1360
|
+
],
|
|
1361
|
+
},
|
|
1362
|
+
deprecate: {
|
|
1363
|
+
fn: "util.deprecate",
|
|
1364
|
+
params: [DYN, DYN, DYN, DYN],
|
|
1365
|
+
result: DYN,
|
|
1366
|
+
valueParams: [
|
|
1367
|
+
{ mode: "required", type: DYN },
|
|
1368
|
+
{ mode: "required", type: DYN },
|
|
1369
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1370
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1371
|
+
],
|
|
1372
|
+
},
|
|
1373
|
+
callbackify: {
|
|
1374
|
+
fn: "util.callbackify",
|
|
1375
|
+
params: [DYN],
|
|
1376
|
+
result: DYN,
|
|
1377
|
+
valueParams: [{ mode: "required", type: DYN }],
|
|
1378
|
+
},
|
|
1379
|
+
debuglog: {
|
|
1380
|
+
fn: "util.debuglog",
|
|
1381
|
+
params: [DYN, DYN],
|
|
1382
|
+
result: DYN,
|
|
1383
|
+
valueParams: [
|
|
1384
|
+
{ mode: "required", type: DYN },
|
|
1385
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1386
|
+
],
|
|
1387
|
+
},
|
|
1388
|
+
debug: {
|
|
1389
|
+
fn: "util.debuglog",
|
|
1390
|
+
params: [DYN, DYN],
|
|
1391
|
+
result: DYN,
|
|
1392
|
+
valueParams: [
|
|
1393
|
+
{ mode: "required", type: DYN },
|
|
1394
|
+
{ mode: "optional", type: DYN, defaultValue: undefined },
|
|
1395
|
+
],
|
|
1396
|
+
},
|
|
1308
1397
|
},
|
|
1309
1398
|
// The util/types spoke supplies the probe name to the shared brand check.
|
|
1310
1399
|
"util/types": {
|
|
@@ -1435,9 +1524,9 @@ export const BUILTIN_MODULE_FNS = {
|
|
|
1435
1524
|
// exists so unlowered members fence module-qualified.
|
|
1436
1525
|
"stream/promises": {},
|
|
1437
1526
|
// node:stream/consumers rides the stream spoke as well (text/json/
|
|
1438
|
-
// buffer special-case their stream argument);
|
|
1439
|
-
//
|
|
1440
|
-
//
|
|
1527
|
+
// buffer/arrayBuffer special-case their stream argument); blob fences
|
|
1528
|
+
// module-qualified with the pointed hint below — Blob has no
|
|
1529
|
+
// representation in a compiled binary.
|
|
1441
1530
|
"stream/consumers": {},
|
|
1442
1531
|
// node:timers/promises — the delay-only setTimeout and bare setImmediate
|
|
1443
1532
|
// (void promises the shared timer heap settles). The arity completion
|
|
@@ -1475,7 +1564,7 @@ export const BUILTIN_MODULE_CONSTS = {
|
|
|
1475
1564
|
path: { sep: "/", delimiter: ":" },
|
|
1476
1565
|
"path/posix": { sep: "/", delimiter: ":" },
|
|
1477
1566
|
"path/win32": { sep: "\\", delimiter: ";" },
|
|
1478
|
-
os: { EOL: "\n" },
|
|
1567
|
+
os: { EOL: "\n", devNull: "/dev/null" },
|
|
1479
1568
|
worker_threads: { isMainThread: true, threadId: 0 },
|
|
1480
1569
|
cluster: { isPrimary: true, isMaster: true, isWorker: false },
|
|
1481
1570
|
};
|
|
@@ -1550,6 +1639,8 @@ export const BUILTIN_MODULE_FN_ALIASES = {
|
|
|
1550
1639
|
os: {
|
|
1551
1640
|
// lowerOsUserInfoCall assembles the record from scalar libCalls.
|
|
1552
1641
|
userInfo: ["os.userHomedir", "os.userShell"],
|
|
1642
|
+
// lowerOsCpusCall reads the cpusTake snapshot through its accessors.
|
|
1643
|
+
cpus: ["os.cpusModel", "os.cpusField"],
|
|
1553
1644
|
},
|
|
1554
1645
|
};
|
|
1555
1646
|
export const AMBIENT_SURFACE_FNS = [
|
|
@@ -1944,13 +2035,22 @@ export const AMBIENT_SURFACE_FNS = [
|
|
|
1944
2035
|
fns: ["tlsca.set"],
|
|
1945
2036
|
note: "replaces the default set and the client trust anchors for the rest of the process",
|
|
1946
2037
|
},
|
|
2038
|
+
// os.constants is a VALUE read (lowerNamespaceBuiltinProperty and the
|
|
2039
|
+
// named-import path): the platform's null-prototype constants object.
|
|
2040
|
+
{
|
|
2041
|
+
id: "node-builtin.os.constants",
|
|
2042
|
+
kind: "node-builtin",
|
|
2043
|
+
name: "os.constants",
|
|
2044
|
+
fns: ["os.constants"],
|
|
2045
|
+
note: "the platform's dlopen, errno, signals and priority groups; members a platform lacks read as undefined",
|
|
2046
|
+
},
|
|
1947
2047
|
];
|
|
1948
2048
|
/** The win32-target overrides of the bare modules' constants: path's
|
|
1949
2049
|
* constants ARE the path/win32 namespace's, and os.EOL is CRLF (Node's
|
|
1950
2050
|
* `isWindows ? '\r\n' : '\n'`). */
|
|
1951
2051
|
const WIN32_TARGET_CONSTS = {
|
|
1952
2052
|
path: BUILTIN_MODULE_CONSTS["path/win32"],
|
|
1953
|
-
os: { EOL: "\r\n" },
|
|
2053
|
+
os: { EOL: "\r\n", devNull: "\\\\.\\nul" },
|
|
1954
2054
|
};
|
|
1955
2055
|
/** BUILTIN_MODULE_FNS with the platform-conditional modules bound per
|
|
1956
2056
|
* TARGET: a win32 triple compiles Node-on-Windows semantics — `path` is
|
|
@@ -2165,9 +2265,6 @@ const ASSERT_MODULE_HINTS = {
|
|
|
2165
2265
|
'"AssertionError" or err.code === "ERR_ASSERTION"',
|
|
2166
2266
|
};
|
|
2167
2267
|
export const BUILTIN_MODULE_FENCE_HINTS = {
|
|
2168
|
-
console: {
|
|
2169
|
-
Console: "custom Console instances are not supported yet; direct node:console log/info/debug/error/warn calls use the process output streams",
|
|
2170
|
-
},
|
|
2171
2268
|
assert: ASSERT_MODULE_HINTS,
|
|
2172
2269
|
// The strict module's equal/notEqual/deepEqual/notDeepEqual ARE the
|
|
2173
2270
|
// strict comparisons (aliased in the spoke) — only the members with no
|
|
@@ -2182,8 +2279,6 @@ export const BUILTIN_MODULE_FENCE_HINTS = {
|
|
|
2182
2279
|
promisify: "the lowered shapes are const bindings over child_process.execFile and fs.readFile; call the bound function directly",
|
|
2183
2280
|
},
|
|
2184
2281
|
"stream/consumers": {
|
|
2185
|
-
arrayBuffer: "collecting a stream directly into an ArrayBuffer has no native lowering yet; " +
|
|
2186
|
-
"buffer(stream) collects the same bytes as a Buffer",
|
|
2187
2282
|
blob: "Blob values have no representation in a compiled binary — " +
|
|
2188
2283
|
"buffer(stream) collects the same bytes as a Buffer, text(stream) the decoded text",
|
|
2189
2284
|
},
|
|
@@ -2351,9 +2446,11 @@ export function stdlibMemberFence(lowerer, access) {
|
|
|
2351
2446
|
}
|
|
2352
2447
|
else if (container === "console") {
|
|
2353
2448
|
hint =
|
|
2354
|
-
"console.log/info/debug (stdout)
|
|
2355
|
-
"
|
|
2356
|
-
"
|
|
2449
|
+
"console.log/info/debug (stdout), console.error/warn (stderr), assert, count, " +
|
|
2450
|
+
"countReset, dir, dirxml, group, groupCollapsed, groupEnd, table, time, timeEnd, " +
|
|
2451
|
+
"timeLog, clear, profile, profileEnd, and timeStamp are the supported console surface " +
|
|
2452
|
+
"(arguments render with Node's console semantics: strings verbatim, everything else " +
|
|
2453
|
+
"through the static util.inspect)";
|
|
2357
2454
|
}
|
|
2358
2455
|
else if (container === "TextEncoder") {
|
|
2359
2456
|
hint =
|