@scriptc/compiler 0.3.6 → 0.4.0
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 +682 -50
- package/ambient/scriptc.d.ts +134 -0
- package/dist/backend/cycle-analysis.d.ts +1 -1
- package/dist/backend/cycle-analysis.js +1 -0
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-analysis.test.js +13 -1
- package/dist/backend/cycle-analysis.test.js.map +1 -1
- package/dist/backend/cycle-mutability.js +16 -5
- package/dist/backend/cycle-mutability.js.map +1 -1
- package/dist/backend/executable-features.js +13 -0
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/immutability.test.js +1 -1
- package/dist/backend/library-pack.js +6 -0
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +41 -4
- package/dist/backend/llvm/alloc.js +138 -7
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/alloc.test.js +30 -1
- package/dist/backend/llvm/alloc.test.js.map +1 -1
- package/dist/backend/llvm/appended-array-literals.test.js +1 -1
- package/dist/backend/llvm/array-search.test.js +1 -1
- package/dist/backend/llvm/blocks.d.ts +8 -0
- package/dist/backend/llvm/blocks.js +43 -1
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/blocks.test.js +22 -1
- package/dist/backend/llvm/blocks.test.js.map +1 -1
- package/dist/backend/llvm/byte-numbers.js +15 -5
- package/dist/backend/llvm/byte-numbers.js.map +1 -1
- package/dist/backend/llvm/bytes-alias.d.ts +14 -0
- package/dist/backend/llvm/bytes-alias.js +20 -0
- package/dist/backend/llvm/bytes-alias.js.map +1 -0
- package/dist/backend/llvm/bytes-loop-versions.d.ts +86 -0
- package/dist/backend/llvm/bytes-loop-versions.js +506 -0
- package/dist/backend/llvm/bytes-loop-versions.js.map +1 -0
- package/dist/backend/llvm/bytes-loop-versions.test.d.ts +1 -0
- package/dist/backend/llvm/bytes-loop-versions.test.js +244 -0
- package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.js +50 -1
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +34 -0
- 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-value-lifetimes.js +4 -1
- package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +11 -0
- package/dist/backend/llvm/classes.js +71 -14
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +58 -8
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/common.js +1 -0
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.d.ts +5 -1
- package/dist/backend/llvm/constant-callbacks.js +55 -12
- package/dist/backend/llvm/constant-callbacks.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.test.js +88 -1
- package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
- package/dist/backend/llvm/counted-loops.d.ts +4 -0
- package/dist/backend/llvm/counted-loops.js +37 -0
- package/dist/backend/llvm/counted-loops.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.d.ts +12 -3
- package/dist/backend/llvm/dense-array-access.js +72 -14
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.test.js +59 -3
- package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
- package/dist/backend/llvm/dense-array-loops.d.ts +51 -0
- package/dist/backend/llvm/dense-array-loops.js +162 -0
- package/dist/backend/llvm/dense-array-loops.js.map +1 -0
- package/dist/backend/llvm/dense-array-loops.test.d.ts +1 -0
- package/dist/backend/llvm/dense-array-loops.test.js +128 -0
- package/dist/backend/llvm/dense-array-loops.test.js.map +1 -0
- package/dist/backend/llvm/dyn-handle-tags.test.d.ts +1 -0
- package/dist/backend/llvm/dyn-handle-tags.test.js +38 -0
- package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +28 -4
- package/dist/backend/llvm/dyn.js +293 -178
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emit-function.d.ts +64 -0
- package/dist/backend/llvm/emit-function.js +1190 -0
- package/dist/backend/llvm/emit-function.js.map +1 -0
- package/dist/backend/llvm/emit-module.d.ts +24 -0
- package/dist/backend/llvm/emit-module.js +1535 -0
- package/dist/backend/llvm/emit-module.js.map +1 -0
- package/dist/backend/llvm/emit-statements.d.ts +58 -0
- package/dist/backend/llvm/emit-statements.js +1964 -0
- package/dist/backend/llvm/emit-statements.js.map +1 -0
- package/dist/backend/llvm/emitter.d.ts +547 -283
- package/dist/backend/llvm/emitter.js +689 -4643
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +57 -3
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +73 -46
- 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-bytes.d.ts +2 -0
- package/dist/backend/llvm/expr-bytes.js +76 -29
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.d.ts +6 -2
- package/dist/backend/llvm/expr-callbacks.js +48 -11
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +1 -1
- package/dist/backend/llvm/expr-calls.js +71 -53
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-calls.test.js +1 -1
- package/dist/backend/llvm/expr-containers.js +39 -15
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-control.js +16 -16
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.d.ts +3 -0
- package/dist/backend/llvm/expr-dynamic.js +67 -62
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +121 -25
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +2 -2
- package/dist/backend/llvm/expr-records.d.ts +1 -1
- package/dist/backend/llvm/expr-records.js +32 -11
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +54 -12
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js +2 -2
- package/dist/backend/llvm/expr-stream-callbacks.js +22 -1
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/int32-abi.test.js +2 -2
- package/dist/backend/llvm/integer-clones.test.js +3 -3
- package/dist/backend/llvm/integer-remainder.d.ts +34 -13
- package/dist/backend/llvm/integer-remainder.js +156 -22
- package/dist/backend/llvm/integer-remainder.js.map +1 -1
- package/dist/backend/llvm/intern-tables.test.js +1 -1
- package/dist/backend/llvm/jsval-encoding.d.ts +21 -0
- package/dist/backend/llvm/jsval-encoding.js +20 -0
- package/dist/backend/llvm/jsval-encoding.js.map +1 -0
- package/dist/backend/llvm/jsval.d.ts +12 -0
- package/dist/backend/llvm/jsval.js +488 -0
- package/dist/backend/llvm/jsval.js.map +1 -0
- package/dist/backend/llvm/lazy-captures.d.ts +12 -2
- package/dist/backend/llvm/lazy-captures.js +39 -17
- package/dist/backend/llvm/lazy-captures.js.map +1 -1
- package/dist/backend/llvm/lib-abi.js +1 -1
- package/dist/backend/llvm/lib-abi.js.map +1 -1
- package/dist/backend/llvm/lib-connect.js +1 -1
- package/dist/backend/llvm/lib-connect.js.map +1 -1
- package/dist/backend/llvm/lib-datagram.js +14 -8
- package/dist/backend/llvm/lib-datagram.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +189 -23
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +42 -13
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.js +3 -3
- package/dist/backend/llvm/lib-http2.js.map +1 -1
- package/dist/backend/llvm/lib-lookup.js +2 -2
- package/dist/backend/llvm/lib-lookup.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +56 -22
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +90 -50
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.d.ts +12 -0
- package/dist/backend/llvm/lib-shared.js +187 -6
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +46 -16
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/lib-test.js +43 -7
- package/dist/backend/llvm/lib-test.js.map +1 -1
- package/dist/backend/llvm/lib-tls.js +4 -9
- package/dist/backend/llvm/lib-tls.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +2 -2
- package/dist/backend/llvm/local-array-reads.test.js +1 -1
- package/dist/backend/llvm/local-extents.d.ts +19 -0
- package/dist/backend/llvm/local-extents.js +169 -0
- package/dist/backend/llvm/local-extents.js.map +1 -0
- package/dist/backend/llvm/local-extents.test.d.ts +1 -0
- package/dist/backend/llvm/local-extents.test.js +92 -0
- package/dist/backend/llvm/local-extents.test.js.map +1 -0
- package/dist/backend/llvm/local-union-storage.js +7 -7
- package/dist/backend/llvm/local-union-storage.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +2 -2
- package/dist/backend/llvm/map-entry-fusion.test.js +1 -1
- package/dist/backend/llvm/map-number-lookup.js +2 -2
- package/dist/backend/llvm/map-number-lookup.test.js +2 -2
- package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
- package/dist/backend/llvm/narrow-guards.d.ts +38 -0
- package/dist/backend/llvm/narrow-guards.js +151 -0
- package/dist/backend/llvm/narrow-guards.js.map +1 -0
- package/dist/backend/llvm/nullable-unions.d.ts +64 -6
- package/dist/backend/llvm/nullable-unions.js +103 -6
- package/dist/backend/llvm/nullable-unions.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.test.d.ts +1 -0
- package/dist/backend/llvm/nullable-unions.test.js +65 -0
- package/dist/backend/llvm/nullable-unions.test.js.map +1 -0
- package/dist/backend/llvm/publish.d.ts +4 -0
- package/dist/backend/llvm/publish.js +14 -2
- package/dist/backend/llvm/publish.js.map +1 -1
- package/dist/backend/llvm/publish.test.js +1 -1
- package/dist/backend/llvm/receivers.d.ts +31 -0
- package/dist/backend/llvm/receivers.js +395 -0
- package/dist/backend/llvm/receivers.js.map +1 -0
- package/dist/backend/llvm/record-results.d.ts +12 -1
- package/dist/backend/llvm/record-results.js +64 -4
- package/dist/backend/llvm/record-results.js.map +1 -1
- package/dist/backend/llvm/reference-effects.js +9 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-writes.d.ts +4 -0
- package/dist/backend/llvm/reference-writes.js +142 -6
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/reference-writes.test.d.ts +1 -0
- package/dist/backend/llvm/reference-writes.test.js +88 -0
- package/dist/backend/llvm/reference-writes.test.js.map +1 -0
- package/dist/backend/llvm/regex-matchers.d.ts +8 -0
- package/dist/backend/llvm/regex-matchers.js +33 -0
- package/dist/backend/llvm/regex-matchers.js.map +1 -1
- package/dist/backend/llvm/regex-matchers.test.js +23 -1
- package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
- package/dist/backend/llvm/regions.d.ts +1 -1
- package/dist/backend/llvm/regions.js +9 -6
- package/dist/backend/llvm/regions.js.map +1 -1
- package/dist/backend/llvm/regions.test.js +1 -1
- package/dist/backend/llvm/shapes.d.ts +66 -43
- package/dist/backend/llvm/shapes.js +280 -21
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +37 -3
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/split-loops.js +2 -2
- package/dist/backend/llvm/split-loops.js.map +1 -1
- package/dist/backend/llvm/stack-objects.d.ts +26 -6
- package/dist/backend/llvm/stack-objects.js +133 -10
- package/dist/backend/llvm/stack-objects.js.map +1 -1
- package/dist/backend/llvm/stack-objects.test.js +55 -1
- package/dist/backend/llvm/stack-objects.test.js.map +1 -1
- package/dist/backend/llvm/stack-unions.test.js +1 -1
- package/dist/backend/llvm/string-construction.test.js +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +15 -14
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-slices.d.ts +25 -0
- package/dist/backend/llvm/string-slices.js +207 -1
- package/dist/backend/llvm/string-slices.js.map +1 -1
- package/dist/backend/llvm/string-slices.test.js +139 -2
- package/dist/backend/llvm/string-slices.test.js.map +1 -1
- package/dist/backend/llvm/switch-dispatch.test.js +2 -2
- package/dist/backend/llvm/thread-slots.d.ts +5 -0
- package/dist/backend/llvm/thread-slots.js +142 -0
- package/dist/backend/llvm/thread-slots.js.map +1 -0
- package/dist/backend/llvm/thread-slots.test.d.ts +1 -0
- package/dist/backend/llvm/thread-slots.test.js +110 -0
- package/dist/backend/llvm/thread-slots.test.js.map +1 -0
- package/dist/backend/llvm/union-repr.d.ts +7 -7
- package/dist/backend/llvm/union-repr.js +18 -2
- package/dist/backend/llvm/union-repr.js.map +1 -1
- package/dist/backend/llvm/union-retype.test.js +17 -3
- package/dist/backend/llvm/union-retype.test.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +2 -2
- package/dist/backend/llvm/walkers.js +51 -26
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/llvm/wasm-modules.d.ts +16 -0
- package/dist/backend/llvm/wasm-modules.js +66 -0
- package/dist/backend/llvm/wasm-modules.js.map +1 -0
- package/dist/backend/llvm/wrapping-sums.d.ts +7 -0
- package/dist/backend/llvm/wrapping-sums.js +11 -3
- package/dist/backend/llvm/wrapping-sums.js.map +1 -1
- package/dist/backend/mangle.d.ts +7 -0
- package/dist/backend/mangle.js +11 -0
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/may-throw.d.ts +3 -0
- package/dist/backend/may-throw.js +4 -2
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +1 -1
- package/dist/backend/native/contracts.d.ts +37 -0
- package/dist/backend/native/executable.js +192 -137
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/library.js +1 -0
- 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 +1 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +30 -0
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/publication.test.js +1 -1
- package/dist/backend/runtime-pack-core.d.ts +9 -1
- package/dist/backend/runtime-pack-core.js +10 -1
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-native.js +1 -1
- package/dist/backend/runtime-pack-native.js.map +1 -1
- package/dist/backend/runtime-pack-native.test.d.ts +1 -0
- package/dist/backend/runtime-pack-native.test.js +31 -0
- package/dist/backend/runtime-pack-native.test.js.map +1 -0
- package/dist/backend/runtime-pack-targets.test.js +5 -0
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +5 -0
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/stack-observations.d.ts +22 -0
- package/dist/backend/stack-observations.js +382 -0
- package/dist/backend/stack-observations.js.map +1 -0
- package/dist/backend/stack-observations.test.d.ts +1 -0
- package/dist/backend/stack-observations.test.js +233 -0
- package/dist/backend/stack-observations.test.js.map +1 -0
- package/dist/backend/target-diagnostics.js +8 -0
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +1 -1
- package/dist/backend/warm-cache.js +5 -0
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/backend/young-nursery.d.ts +7 -0
- package/dist/backend/young-nursery.js +10 -0
- package/dist/backend/young-nursery.js.map +1 -0
- package/dist/cli/command.js +44 -4
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/usage.d.ts +11 -1
- package/dist/cli/usage.js +20 -1
- package/dist/cli/usage.js.map +1 -1
- package/dist/compat/fetch-profile.js +10 -1
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/compile-types.d.ts +13 -0
- package/dist/contracts/check.js +24 -6
- package/dist/contracts/check.js.map +1 -1
- package/dist/contracts/int32-elements.d.ts +115 -0
- package/dist/contracts/int32-elements.js +1179 -0
- package/dist/contracts/int32-elements.js.map +1 -0
- package/dist/coverage/report.d.ts +16 -0
- package/dist/coverage/report.js +182 -1
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +16 -3
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/coverage/verdict-cache.d.ts +2 -0
- package/dist/coverage/verdict-cache.js +12 -0
- package/dist/coverage/verdict-cache.js.map +1 -1
- package/dist/coverage/verdict-cache.test.js +2 -1
- package/dist/coverage/verdict-cache.test.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +10 -6
- package/dist/diagnostics/diagnostic.js +29 -21
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/envelope.d.ts +39 -2
- package/dist/diagnostics/envelope.js.map +1 -1
- package/dist/diagnostics/render.d.ts +7 -0
- package/dist/diagnostics/render.js +50 -13
- package/dist/diagnostics/render.js.map +1 -1
- package/dist/diagnostics/render.test.d.ts +1 -0
- package/dist/diagnostics/render.test.js +49 -0
- package/dist/diagnostics/render.test.js.map +1 -0
- package/dist/executable/executable-cache.d.ts +17 -0
- package/dist/executable/executable-cache.js +13 -1
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +7 -1
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.js +2 -1
- package/dist/executable/prepare.js.map +1 -1
- package/dist/frontend/analysis.js +6 -1
- package/dist/frontend/analysis.js.map +1 -1
- package/dist/frontend/builtin-modules.d.ts +16 -2
- package/dist/frontend/builtin-modules.js +40 -7
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/cjs-syntax.js +52 -51
- package/dist/frontend/cjs-syntax.js.map +1 -1
- package/dist/frontend/contract-types.d.ts +3 -0
- package/dist/frontend/contract-types.js +36 -7
- package/dist/frontend/contract-types.js.map +1 -1
- package/dist/frontend/experimental-import.d.ts +5 -1
- package/dist/frontend/experimental-import.js +26 -7
- package/dist/frontend/experimental-import.js.map +1 -1
- package/dist/frontend/fork-target.js +20 -22
- package/dist/frontend/fork-target.js.map +1 -1
- package/dist/frontend/fork-target.test.js +2 -1
- package/dist/frontend/fork-target.test.js.map +1 -1
- package/dist/frontend/function-completion.js +6 -6
- package/dist/frontend/function-completion.js.map +1 -1
- package/dist/frontend/helper-tokens.js +15 -3
- package/dist/frontend/helper-tokens.js.map +1 -1
- package/dist/frontend/helper-tokens.test.js +7 -1
- package/dist/frontend/helper-tokens.test.js.map +1 -1
- package/dist/frontend/inferred-js-diagnostics.js +14 -17
- package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
- package/dist/frontend/input-tracker.d.ts +3 -0
- package/dist/frontend/input-tracker.js +32 -3
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/lib-contract.js +36 -32
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/lib-exports.js +3 -3
- package/dist/frontend/lib-exports.js.map +1 -1
- package/dist/frontend/lowering/array-values.d.ts +8 -3
- package/dist/frontend/lowering/array-values.js +60 -11
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/assert-instances.js +4 -4
- package/dist/frontend/lowering/assert-instances.js.map +1 -1
- package/dist/frontend/lowering/assertion-identity.d.ts +12 -0
- package/dist/frontend/lowering/assertion-identity.js +70 -0
- package/dist/frontend/lowering/assertion-identity.js.map +1 -0
- package/dist/frontend/lowering/assertion-members.d.ts +28 -0
- package/dist/frontend/lowering/assertion-members.js +185 -0
- package/dist/frontend/lowering/assertion-members.js.map +1 -0
- package/dist/frontend/lowering/binding-analysis.js +27 -20
- package/dist/frontend/lowering/binding-analysis.js.map +1 -1
- package/dist/frontend/lowering/builtin-calls.js +63 -5
- package/dist/frontend/lowering/builtin-calls.js.map +1 -1
- package/dist/frontend/lowering/builtin-function-fences.d.ts +14 -0
- package/dist/frontend/lowering/builtin-function-fences.js +42 -0
- package/dist/frontend/lowering/builtin-function-fences.js.map +1 -0
- package/dist/frontend/lowering/builtins/arguments.js +1 -1
- package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
- package/dist/frontend/lowering/builtins/async-context.js +53 -52
- package/dist/frontend/lowering/builtins/async-context.js.map +1 -1
- package/dist/frontend/lowering/builtins/atomics.js +6 -6
- package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
- package/dist/frontend/lowering/builtins/blob.js +8 -6
- package/dist/frontend/lowering/builtins/blob.js.map +1 -1
- package/dist/frontend/lowering/builtins/builtin-class-dyn.d.ts +23 -0
- package/dist/frontend/lowering/builtins/builtin-class-dyn.js +156 -0
- package/dist/frontend/lowering/builtins/builtin-class-dyn.js.map +1 -0
- package/dist/frontend/lowering/builtins/callable-aliases.js +16 -5
- package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-async.js +7 -7
- package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-methods.d.ts +6 -4
- package/dist/frontend/lowering/builtins/child-process-methods.js +310 -57
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js +16 -10
- package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process.d.ts +6 -4
- package/dist/frontend/lowering/builtins/child-process.js +85 -61
- package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
- package/dist/frontend/lowering/builtins/class-values.d.ts +60 -0
- package/dist/frontend/lowering/builtins/class-values.js +226 -0
- package/dist/frontend/lowering/builtins/class-values.js.map +1 -0
- package/dist/frontend/lowering/builtins/compression.d.ts +9 -0
- package/dist/frontend/lowering/builtins/compression.js +107 -44
- package/dist/frontend/lowering/builtins/compression.js.map +1 -1
- package/dist/frontend/lowering/builtins/constants.d.ts +9 -1
- package/dist/frontend/lowering/builtins/constants.js +28 -7
- package/dist/frontend/lowering/builtins/constants.js.map +1 -1
- package/dist/frontend/lowering/builtins/crypto.d.ts +19 -0
- package/dist/frontend/lowering/builtins/crypto.js +211 -37
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
- package/dist/frontend/lowering/builtins/dates.d.ts +7 -1
- package/dist/frontend/lowering/builtins/dates.js +92 -16
- package/dist/frontend/lowering/builtins/dates.js.map +1 -1
- package/dist/frontend/lowering/builtins/disposable-stack.d.ts +18 -0
- package/dist/frontend/lowering/builtins/disposable-stack.js +137 -0
- package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -0
- package/dist/frontend/lowering/builtins/environment.js +3 -3
- package/dist/frontend/lowering/builtins/environment.js.map +1 -1
- package/dist/frontend/lowering/builtins/errors.d.ts +14 -10
- package/dist/frontend/lowering/builtins/errors.js +169 -3
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.js +128 -116
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.js +77 -77
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-glob.js +3 -3
- package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-streams.js +10 -11
- package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -1
- package/dist/frontend/lowering/builtins/ipc.js +45 -8
- package/dist/frontend/lowering/builtins/ipc.js.map +1 -1
- package/dist/frontend/lowering/builtins/json.js +232 -24
- package/dist/frontend/lowering/builtins/json.js.map +1 -1
- package/dist/frontend/lowering/builtins/key-object.js +4 -4
- package/dist/frontend/lowering/builtins/key-object.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-bindings.d.ts +8 -0
- package/dist/frontend/lowering/builtins/module-bindings.js +71 -22
- package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-calls.js +55 -44
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-resolution.d.ts +4 -3
- package/dist/frontend/lowering/builtins/module-resolution.js +24 -23
- package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
- package/dist/frontend/lowering/builtins/navigator.d.ts +13 -0
- package/dist/frontend/lowering/builtins/navigator.js +40 -0
- package/dist/frontend/lowering/builtins/navigator.js.map +1 -0
- package/dist/frontend/lowering/builtins/net-address.d.ts +19 -0
- package/dist/frontend/lowering/builtins/net-address.js +156 -0
- package/dist/frontend/lowering/builtins/net-address.js.map +1 -0
- package/dist/frontend/lowering/builtins/numbers.js +25 -9
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
- package/dist/frontend/lowering/builtins/operating-system.d.ts +4 -0
- package/dist/frontend/lowering/builtins/operating-system.js +25 -12
- package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
- package/dist/frontend/lowering/builtins/performance.d.ts +12 -0
- package/dist/frontend/lowering/builtins/performance.js +259 -8
- package/dist/frontend/lowering/builtins/performance.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.d.ts +32 -1
- package/dist/frontend/lowering/builtins/process.js +461 -99
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.d.ts +5 -1
- package/dist/frontend/lowering/builtins/promises.js +326 -43
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/promisify-callback.d.ts +37 -0
- package/dist/frontend/lowering/builtins/promisify-callback.js +320 -0
- package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -0
- package/dist/frontend/lowering/builtins/properties.js +37 -1
- package/dist/frontend/lowering/builtins/properties.js.map +1 -1
- package/dist/frontend/lowering/builtins/querystring.js +14 -14
- package/dist/frontend/lowering/builtins/querystring.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.d.ts +12 -2
- package/dist/frontend/lowering/builtins/readline.js +136 -39
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/receiver-types.js +3 -5
- package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -1
- package/dist/frontend/lowering/builtins/reflection.js +16 -14
- package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
- package/dist/frontend/lowering/builtins/runtime-constructor.d.ts +26 -0
- package/dist/frontend/lowering/builtins/runtime-constructor.js +165 -0
- package/dist/frontend/lowering/builtins/runtime-constructor.js.map +1 -0
- package/dist/frontend/lowering/builtins/strings.js +101 -12
- package/dist/frontend/lowering/builtins/strings.js.map +1 -1
- package/dist/frontend/lowering/builtins/text-codecs.js +41 -38
- package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
- package/dist/frontend/lowering/builtins/timers.js +75 -30
- package/dist/frontend/lowering/builtins/timers.js.map +1 -1
- package/dist/frontend/lowering/builtins/url.d.ts +3 -0
- package/dist/frontend/lowering/builtins/url.js +120 -17
- package/dist/frontend/lowering/builtins/url.js.map +1 -1
- package/dist/frontend/lowering/builtins/util-types.js +20 -4
- package/dist/frontend/lowering/builtins/util-types.js.map +1 -1
- package/dist/frontend/lowering/builtins/v8.d.ts +11 -0
- package/dist/frontend/lowering/builtins/v8.js +105 -0
- package/dist/frontend/lowering/builtins/v8.js.map +1 -0
- package/dist/frontend/lowering/builtins/webassembly.d.ts +33 -0
- package/dist/frontend/lowering/builtins/webassembly.js +388 -0
- package/dist/frontend/lowering/builtins/webassembly.js.map +1 -0
- package/dist/frontend/lowering/builtins/webcrypto.d.ts +20 -0
- package/dist/frontend/lowering/builtins/webcrypto.js +112 -0
- package/dist/frontend/lowering/builtins/webcrypto.js.map +1 -0
- package/dist/frontend/lowering/builtins/workers.d.ts +12 -0
- package/dist/frontend/lowering/builtins/workers.js +193 -8
- package/dist/frontend/lowering/builtins/workers.js.map +1 -1
- package/dist/frontend/lowering/call-arguments.js +69 -14
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.d.ts +19 -1
- package/dist/frontend/lowering/call-signatures.js +254 -47
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/checked-promise-all.d.ts +3 -0
- package/dist/frontend/lowering/checked-promise-all.js +1 -1
- package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
- package/dist/frontend/lowering/cjs-exports-object.d.ts +53 -0
- package/dist/frontend/lowering/cjs-exports-object.js +528 -0
- package/dist/frontend/lowering/cjs-exports-object.js.map +1 -0
- package/dist/frontend/lowering/cjs-inline-require.d.ts +86 -0
- package/dist/frontend/lowering/cjs-inline-require.js +314 -0
- package/dist/frontend/lowering/cjs-inline-require.js.map +1 -0
- package/dist/frontend/lowering/cjs-tsc-interop.d.ts +28 -0
- package/dist/frontend/lowering/cjs-tsc-interop.js +208 -0
- package/dist/frontend/lowering/cjs-tsc-interop.js.map +1 -0
- package/dist/frontend/lowering/class-attributes.d.ts +19 -0
- package/dist/frontend/lowering/class-attributes.js +378 -0
- package/dist/frontend/lowering/class-attributes.js.map +1 -0
- package/dist/frontend/lowering/class-callbacks.d.ts +3 -1
- package/dist/frontend/lowering/class-callbacks.js +21 -10
- package/dist/frontend/lowering/class-callbacks.js.map +1 -1
- package/dist/frontend/lowering/class-construction.js +49 -4
- package/dist/frontend/lowering/class-construction.js.map +1 -1
- package/dist/frontend/lowering/class-descriptors.d.ts +2 -0
- package/dist/frontend/lowering/class-descriptors.js +8 -8
- package/dist/frontend/lowering/class-descriptors.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +64 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +1115 -89
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-instance-constructor.js +1 -1
- package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
- package/dist/frontend/lowering/class-iterables.d.ts +11 -0
- package/dist/frontend/lowering/class-iterables.js +31 -0
- package/dist/frontend/lowering/class-iterables.js.map +1 -0
- package/dist/frontend/lowering/class-method-mutations.js +73 -35
- package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
- package/dist/frontend/lowering/class-method-values.js +56 -10
- package/dist/frontend/lowering/class-method-values.js.map +1 -1
- package/dist/frontend/lowering/class-protocol-dispatch.js +24 -22
- package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.js +25 -44
- package/dist/frontend/lowering/class-protocols.js.map +1 -1
- package/dist/frontend/lowering/class-prototypes.d.ts +6 -0
- package/dist/frontend/lowering/class-prototypes.js +80 -18
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-runtime-statics.js +1 -1
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
- package/dist/frontend/lowering/class-static-data.js +2 -2
- package/dist/frontend/lowering/class-static-data.js.map +1 -1
- package/dist/frontend/lowering/class-to-primitive.d.ts +25 -0
- package/dist/frontend/lowering/class-to-primitive.js +261 -0
- package/dist/frontend/lowering/class-to-primitive.js.map +1 -0
- package/dist/frontend/lowering/class-unions.d.ts +25 -0
- package/dist/frontend/lowering/class-unions.js +102 -1
- package/dist/frontend/lowering/class-unions.js.map +1 -1
- package/dist/frontend/lowering/code-generation.d.ts +14 -0
- package/dist/frontend/lowering/code-generation.js +127 -0
- package/dist/frontend/lowering/code-generation.js.map +1 -0
- package/dist/frontend/lowering/coercions/function-adapters.d.ts +16 -2
- package/dist/frontend/lowering/coercions/function-adapters.js +145 -3
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural-plans.js +25 -3
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +35 -3
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/coercions/unions.d.ts +15 -0
- package/dist/frontend/lowering/coercions/unions.js +57 -1
- package/dist/frontend/lowering/coercions/unions.js.map +1 -1
- package/dist/frontend/lowering/collection-ingestion.js +2 -2
- package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
- package/dist/frontend/lowering/collection-narrowing.js +2 -4
- package/dist/frontend/lowering/collection-narrowing.js.map +1 -1
- package/dist/frontend/lowering/construction-escapes.js +8 -8
- package/dist/frontend/lowering/construction-escapes.js.map +1 -1
- package/dist/frontend/lowering/construction-escapes.test.js +4 -4
- package/dist/frontend/lowering/construction-escapes.test.js.map +1 -1
- package/dist/frontend/lowering/constructor-returns.d.ts +61 -0
- package/dist/frontend/lowering/constructor-returns.js +477 -0
- package/dist/frontend/lowering/constructor-returns.js.map +1 -0
- package/dist/frontend/lowering/containers/array-callback-call.js +1 -1
- package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +9 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +266 -100
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-concat.js +1 -1
- package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.d.ts +0 -1
- package/dist/frontend/lowering/containers/array-construction.js +51 -13
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-from-async.d.ts +6 -5
- package/dist/frontend/lowering/containers/array-from-async.js +159 -14
- package/dist/frontend/lowering/containers/array-from-async.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.js +89 -77
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.js +1 -0
- package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.js +161 -101
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.d.ts +9 -1
- package/dist/frontend/lowering/containers/callback-arguments.js +55 -5
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-grouping.d.ts +7 -8
- package/dist/frontend/lowering/containers/collection-grouping.js +217 -26
- package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +54 -25
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/dynamic-receivers.js +1 -1
- package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -1
- package/dist/frontend/lowering/containers/exec-result-uses.js +2 -2
- package/dist/frontend/lowering/containers/exec-result-uses.js.map +1 -1
- package/dist/frontend/lowering/containers/for-of.d.ts +6 -0
- package/dist/frontend/lowering/containers/for-of.js +19 -19
- package/dist/frontend/lowering/containers/for-of.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +142 -57
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/containers/iterator-helpers.d.ts +53 -4
- package/dist/frontend/lowering/containers/iterator-helpers.js +1581 -462
- package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
- package/dist/frontend/lowering/containers/match-row-uses.d.ts +17 -0
- package/dist/frontend/lowering/containers/match-row-uses.js +264 -0
- package/dist/frontend/lowering/containers/match-row-uses.js.map +1 -0
- package/dist/frontend/lowering/containers/string-and-regexp.d.ts +14 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js +419 -30
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.js +1 -1
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.d.ts +4 -0
- package/dist/frontend/lowering/cycle-initialization.js +39 -0
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.js +47 -43
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/devirtualize.d.ts +1 -1
- package/dist/frontend/lowering/devirtualize.js +27 -7
- package/dist/frontend/lowering/devirtualize.js.map +1 -1
- package/dist/frontend/lowering/divergences.d.ts +0 -5
- package/dist/frontend/lowering/divergences.js +62 -125
- package/dist/frontend/lowering/divergences.js.map +1 -1
- package/dist/frontend/lowering/dyn-streams.d.ts +25 -0
- package/dist/frontend/lowering/dyn-streams.js +257 -0
- package/dist/frontend/lowering/dyn-streams.js.map +1 -0
- package/dist/frontend/lowering/error-methods.js +4 -1
- package/dist/frontend/lowering/error-methods.js.map +1 -1
- package/dist/frontend/lowering/error-name-order.d.ts +19 -0
- package/dist/frontend/lowering/error-name-order.js +93 -0
- package/dist/frontend/lowering/error-name-order.js.map +1 -0
- package/dist/frontend/lowering/expressions/array-literals.d.ts +21 -0
- package/dist/frontend/lowering/expressions/array-literals.js +703 -0
- package/dist/frontend/lowering/expressions/array-literals.js.map +1 -0
- package/dist/frontend/lowering/expressions/binary.d.ts +35 -0
- package/dist/frontend/lowering/expressions/binary.js +2483 -0
- package/dist/frontend/lowering/expressions/binary.js.map +1 -0
- package/dist/frontend/lowering/expressions/element-access.d.ts +31 -0
- package/dist/frontend/lowering/expressions/element-access.js +1797 -0
- package/dist/frontend/lowering/expressions/element-access.js.map +1 -0
- package/dist/frontend/lowering/expressions/evaluation-safety.js +4 -3
- package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
- package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +38 -0
- package/dist/frontend/lowering/expressions/hosted-narrowing.js +160 -0
- package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -0
- package/dist/frontend/lowering/expressions/identifiers.d.ts +4 -0
- package/dist/frontend/lowering/expressions/identifiers.js +830 -0
- package/dist/frontend/lowering/expressions/identifiers.js.map +1 -0
- package/dist/frontend/lowering/expressions/keyed-field-targets.d.ts +40 -0
- package/dist/frontend/lowering/expressions/keyed-field-targets.js +226 -0
- package/dist/frontend/lowering/expressions/keyed-field-targets.js.map +1 -0
- package/dist/frontend/lowering/expressions/narrowing.d.ts +37 -0
- package/dist/frontend/lowering/expressions/narrowing.js +1322 -0
- package/dist/frontend/lowering/expressions/narrowing.js.map +1 -0
- package/dist/frontend/lowering/expressions/native-proxy.js +4 -4
- package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +45 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.d.ts +10 -0
- package/dist/frontend/lowering/expressions/object-literals.js +253 -85
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +2 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +91 -14
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/property-access.d.ts +110 -0
- package/dist/frontend/lowering/expressions/property-access.js +3544 -0
- package/dist/frontend/lowering/expressions/property-access.js.map +1 -0
- package/dist/frontend/lowering/expressions/relational.d.ts +28 -0
- package/dist/frontend/lowering/expressions/relational.js +1679 -0
- package/dist/frontend/lowering/expressions/relational.js.map +1 -0
- package/dist/frontend/lowering/expressions/typeof.d.ts +22 -0
- package/dist/frontend/lowering/expressions/typeof.js +538 -0
- package/dist/frontend/lowering/expressions/typeof.js.map +1 -0
- package/dist/frontend/lowering/expressions/union-fields.js +1 -1
- package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
- package/dist/frontend/lowering/expressions/updates.d.ts +21 -0
- package/dist/frontend/lowering/expressions/updates.js +780 -0
- package/dist/frontend/lowering/expressions/updates.js.map +1 -0
- package/dist/frontend/lowering/function-context.d.ts +10 -0
- package/dist/frontend/lowering/function-context.js +11 -1
- package/dist/frontend/lowering/function-context.js.map +1 -1
- package/dist/frontend/lowering/function-returns.js +52 -28
- package/dist/frontend/lowering/function-returns.js.map +1 -1
- package/dist/frontend/lowering/general-streams.d.ts +25 -0
- package/dist/frontend/lowering/general-streams.js +108 -0
- package/dist/frontend/lowering/general-streams.js.map +1 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +7 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +172 -69
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +39 -0
- package/dist/frontend/lowering/generic-functions.js +393 -75
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/import-meta.js +2 -2
- package/dist/frontend/lowering/import-meta.js.map +1 -1
- package/dist/frontend/lowering/intern-tables.js +10 -9
- package/dist/frontend/lowering/intern-tables.js.map +1 -1
- package/dist/frontend/lowering/iterator-adapters.d.ts +19 -0
- package/dist/frontend/lowering/iterator-adapters.js +331 -3
- package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
- package/dist/frontend/lowering/js-class-fields.d.ts +28 -0
- package/dist/frontend/lowering/js-class-fields.js +170 -0
- package/dist/frontend/lowering/js-class-fields.js.map +1 -0
- package/dist/frontend/lowering/js-dynamic-objects.d.ts +15 -0
- package/dist/frontend/lowering/js-dynamic-objects.js +299 -0
- package/dist/frontend/lowering/js-dynamic-objects.js.map +1 -0
- package/dist/frontend/lowering/js-dynamic-objects.test.d.ts +1 -0
- package/dist/frontend/lowering/js-dynamic-objects.test.js +35 -0
- package/dist/frontend/lowering/js-dynamic-objects.test.js.map +1 -0
- package/dist/frontend/lowering/json-require.d.ts +22 -0
- package/dist/frontend/lowering/json-require.js +131 -0
- package/dist/frontend/lowering/json-require.js.map +1 -0
- package/dist/frontend/lowering/key-order-witness.d.ts +44 -0
- package/dist/frontend/lowering/key-order-witness.js +641 -0
- package/dist/frontend/lowering/key-order-witness.js.map +1 -0
- package/dist/frontend/lowering/key-order-witness.test.d.ts +1 -0
- package/dist/frontend/lowering/key-order-witness.test.js +239 -0
- package/dist/frontend/lowering/key-order-witness.test.js.map +1 -0
- package/dist/frontend/lowering/lifetime-regions.js +7 -7
- package/dist/frontend/lowering/lifetime-regions.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +61 -60
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.d.ts +10 -1
- package/dist/frontend/lowering/lower-async-iteration.js +34 -6
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.d.ts +5 -0
- package/dist/frontend/lowering/lower-builtin-values.js +32 -3
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +1239 -442
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +50 -3
- package/dist/frontend/lowering/lower-classes.js +1473 -468
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +4 -2
- package/dist/frontend/lowering/lower-comptime.js +111 -13
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-console.js +13 -11
- package/dist/frontend/lowering/lower-console.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.d.ts +10 -0
- package/dist/frontend/lowering/lower-dgram.js +179 -8
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-enums.js +113 -14
- package/dist/frontend/lowering/lower-enums.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +16 -7
- package/dist/frontend/lowering/lower-event-emitter.js +258 -70
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-event-target.js +2 -2
- package/dist/frontend/lowering/lower-event-target.js.map +1 -1
- package/dist/frontend/lowering/lower-expando.js +17 -13
- package/dist/frontend/lowering/lower-expando.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +188 -186
- package/dist/frontend/lowering/lower-exprs.js +1481 -12489
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +68 -22
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +6 -0
- package/dist/frontend/lowering/lower-generators.js +29 -16
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.js +5 -1
- package/dist/frontend/lowering/lower-global-value.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +331 -96
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.js +23 -20
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-mock.d.ts +8 -1
- package/dist/frontend/lowering/lower-mock.js +185 -18
- package/dist/frontend/lowering/lower-mock.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +267 -61
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +6 -0
- package/dist/frontend/lowering/lower-namespaces.js +45 -33
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-node-module.d.ts +16 -0
- package/dist/frontend/lowering/lower-node-module.js +147 -14
- package/dist/frontend/lowering/lower-node-module.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +6 -6
- package/dist/frontend/lowering/lower-server.js +488 -100
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.d.ts +4 -0
- package/dist/frontend/lowering/lower-stdlib.js +151 -109
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +28 -2
- package/dist/frontend/lowering/lower-stmts.js +1541 -391
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +3 -0
- package/dist/frontend/lowering/lower-stream.js +398 -56
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-test.d.ts +3 -0
- package/dist/frontend/lowering/lower-test.js +437 -62
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.js +80 -32
- package/dist/frontend/lowering/lower-timers.js.map +1 -1
- package/dist/frontend/lowering/lower-url.js +1 -1
- package/dist/frontend/lowering/lower-url.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +399 -26
- package/dist/frontend/lowering/lowerer.js +1910 -305
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +10 -4
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/maybe-promise.d.ts +46 -0
- package/dist/frontend/lowering/maybe-promise.js +249 -0
- package/dist/frontend/lowering/maybe-promise.js.map +1 -0
- package/dist/frontend/lowering/module-member-this.d.ts +3 -0
- package/dist/frontend/lowering/module-member-this.js +262 -0
- package/dist/frontend/lowering/module-member-this.js.map +1 -0
- package/dist/frontend/lowering/module-namespace-elements.js +1 -1
- package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
- package/dist/frontend/lowering/nan-coded-reads.d.ts +3 -0
- package/dist/frontend/lowering/nan-coded-reads.js +45 -32
- package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
- package/dist/frontend/lowering/narrowing-stability.d.ts +18 -3
- package/dist/frontend/lowering/narrowing-stability.js +104 -32
- package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
- package/dist/frontend/lowering/native-ffi.js +11 -11
- package/dist/frontend/lowering/native-ffi.js.map +1 -1
- package/dist/frontend/lowering/object-factory-new.js +6 -8
- package/dist/frontend/lowering/object-factory-new.js.map +1 -1
- package/dist/frontend/lowering/private-brands.d.ts +46 -0
- package/dist/frontend/lowering/private-brands.js +265 -0
- package/dist/frontend/lowering/private-brands.js.map +1 -0
- package/dist/frontend/lowering/promise-executor-adapter.d.ts +11 -0
- package/dist/frontend/lowering/promise-executor-adapter.js +87 -0
- package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -0
- package/dist/frontend/lowering/require-initialization.d.ts +32 -0
- package/dist/frontend/lowering/require-initialization.js +246 -0
- package/dist/frontend/lowering/require-initialization.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-bounds.js +7 -7
- package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-elements.js +12 -12
- package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-guards.js +10 -10
- package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-guards.test.js +1 -1
- package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-ownership.js +10 -9
- package/dist/frontend/lowering/runtime-optional-ownership.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-provenance.js +2 -2
- package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-records.d.ts +35 -0
- package/dist/frontend/lowering/runtime-optional-records.js +205 -32
- package/dist/frontend/lowering/runtime-optional-records.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-records.test.js +19 -1
- package/dist/frontend/lowering/runtime-optional-records.test.js.map +1 -1
- package/dist/frontend/lowering/sanitize-class-types.test.js +2 -2
- package/dist/frontend/lowering/split-consumers.js +4 -4
- package/dist/frontend/lowering/split-consumers.js.map +1 -1
- package/dist/frontend/lowering/static-function-names.d.ts +28 -0
- package/dist/frontend/lowering/static-function-names.js +212 -0
- package/dist/frontend/lowering/static-function-names.js.map +1 -0
- package/dist/frontend/lowering/static-this.js +6 -6
- package/dist/frontend/lowering/static-this.js.map +1 -1
- package/dist/frontend/lowering/strict-mode.d.ts +5 -0
- package/dist/frontend/lowering/strict-mode.js +31 -0
- package/dist/frontend/lowering/strict-mode.js.map +1 -0
- package/dist/frontend/lowering/string-index-bounds.js +10 -10
- package/dist/frontend/lowering/string-index-bounds.js.map +1 -1
- package/dist/frontend/lowering/string-index.d.ts +12 -0
- package/dist/frontend/lowering/string-index.js +72 -1
- package/dist/frontend/lowering/string-index.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +12 -3
- package/dist/frontend/lowering/surfaces.js +252 -41
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/symbol-fields.d.ts +7 -0
- package/dist/frontend/lowering/symbol-fields.js +204 -36
- package/dist/frontend/lowering/symbol-fields.js.map +1 -1
- package/dist/frontend/lowering/symbol-methods.d.ts +2 -1
- package/dist/frontend/lowering/symbol-methods.js +24 -6
- package/dist/frontend/lowering/symbol-methods.js.map +1 -1
- package/dist/frontend/lowering/thread-slots.d.ts +13 -0
- package/dist/frontend/lowering/thread-slots.js +208 -0
- package/dist/frontend/lowering/thread-slots.js.map +1 -0
- package/dist/frontend/lowering/typed-arguments.d.ts +74 -0
- package/dist/frontend/lowering/typed-arguments.js +472 -0
- package/dist/frontend/lowering/typed-arguments.js.map +1 -0
- package/dist/frontend/lowering/union-retag.d.ts +8 -0
- package/dist/frontend/lowering/union-retag.js +27 -0
- package/dist/frontend/lowering/union-retag.js.map +1 -1
- package/dist/frontend/lowering/union-retag.test.js +24 -1
- package/dist/frontend/lowering/union-retag.test.js.map +1 -1
- package/dist/frontend/lowering/var-hoisting.js +6 -6
- package/dist/frontend/lowering/var-hoisting.js.map +1 -1
- package/dist/frontend/lowering/width-lift.d.ts +4 -0
- package/dist/frontend/mock-shapes.js +13 -6
- package/dist/frontend/mock-shapes.js.map +1 -1
- package/dist/frontend/module-source-candidates.js +1 -1
- package/dist/frontend/module-source-candidates.js.map +1 -1
- package/dist/frontend/module-source-candidates.test.js +2 -1
- package/dist/frontend/module-source-candidates.test.js.map +1 -1
- package/dist/frontend/module-syntax.js +8 -8
- package/dist/frontend/module-syntax.js.map +1 -1
- package/dist/frontend/npm-static-bundled-chunks.d.ts +51 -0
- package/dist/frontend/npm-static-bundled-chunks.js +810 -0
- package/dist/frontend/npm-static-bundled-chunks.js.map +1 -0
- package/dist/frontend/npm-static-bundled-chunks.test.d.ts +1 -0
- package/dist/frontend/npm-static-bundled-chunks.test.js +287 -0
- package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -0
- package/dist/frontend/npm-static-bundled-cjs.js +24 -23
- package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
- package/dist/frontend/npm-static-bundled-esm.d.ts +9 -0
- package/dist/frontend/npm-static-bundled-esm.js +768 -0
- package/dist/frontend/npm-static-bundled-esm.js.map +1 -0
- package/dist/frontend/npm-static-bundled-esm.test.d.ts +1 -0
- package/dist/frontend/npm-static-bundled-esm.test.js +207 -0
- package/dist/frontend/npm-static-bundled-esm.test.js.map +1 -0
- package/dist/frontend/npm-static-cjs-exports-alias.d.ts +2 -0
- package/dist/frontend/npm-static-cjs-exports-alias.js +186 -0
- package/dist/frontend/npm-static-cjs-exports-alias.js.map +1 -0
- package/dist/frontend/npm-static-cjs-exports-alias.test.d.ts +1 -0
- package/dist/frontend/npm-static-cjs-exports-alias.test.js +73 -0
- package/dist/frontend/npm-static-cjs-exports-alias.test.js.map +1 -0
- package/dist/frontend/npm-static-cjs-exports-var.d.ts +2 -0
- package/dist/frontend/npm-static-cjs-exports-var.js +236 -0
- package/dist/frontend/npm-static-cjs-exports-var.js.map +1 -0
- package/dist/frontend/npm-static-declaration-syntax.js +102 -101
- package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
- package/dist/frontend/npm-static-prune.js +36 -24
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-host.d.ts +4 -1
- package/dist/frontend/npm-static-rewrite-host.js +14 -3
- package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-syntax.d.ts +19 -0
- package/dist/frontend/npm-static-rewrite-syntax.js +274 -101
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
- package/dist/frontend/npm-static-subtyping.js +7 -9
- package/dist/frontend/npm-static-subtyping.js.map +1 -1
- package/dist/frontend/npm-static.d.ts +17 -1
- package/dist/frontend/npm-static.js +167 -16
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm-static.test.js +22 -1
- package/dist/frontend/npm-static.test.js.map +1 -1
- package/dist/frontend/pipeline.js +164 -26
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/pipeline.test.js +22 -1
- package/dist/frontend/pipeline.test.js.map +1 -1
- package/dist/frontend/program-analysis.d.ts +6 -1
- package/dist/frontend/program-analysis.js +7 -0
- package/dist/frontend/program-analysis.js.map +1 -1
- package/dist/frontend/program.d.ts +92 -2
- package/dist/frontend/program.js +1557 -255
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +76 -6
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/resolve.js +36 -2
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/resolve.test.js +49 -0
- package/dist/frontend/resolve.test.js.map +1 -1
- package/dist/frontend/services.d.ts +20 -1
- package/dist/frontend/services.js +40 -3
- package/dist/frontend/services.js.map +1 -1
- package/dist/frontend/services.test.js +2 -1
- package/dist/frontend/services.test.js.map +1 -1
- package/dist/frontend/threads-import.js +1 -1
- package/dist/frontend/threads-import.js.map +1 -1
- package/dist/frontend/tier-analysis.d.ts +71 -0
- package/dist/frontend/tier-analysis.js +522 -0
- package/dist/frontend/tier-analysis.js.map +1 -0
- package/dist/frontend/ts7/api-conformance.d.ts +234 -0
- package/dist/frontend/ts7/api-conformance.js +7 -0
- package/dist/frontend/ts7/api-conformance.js.map +1 -0
- package/dist/frontend/ts7/ast-guards.generated.js +2 -1
- package/dist/frontend/ts7/ast-guards.generated.js.map +1 -1
- package/dist/frontend/ts7/ast-node.d.ts +47 -25
- package/dist/frontend/ts7/ast-node.js +64 -18
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +36 -12
- package/dist/frontend/ts7/ast-node.test.js.map +1 -1
- package/dist/frontend/ts7/ast-types.d.ts +10 -3
- package/dist/frontend/ts7/ast-types.generated.d.ts +39 -39
- package/dist/frontend/ts7/ast.d.ts +1 -0
- package/dist/frontend/ts7/ast.js +3 -2
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/checker-backend.d.ts +23 -0
- package/dist/frontend/ts7/checker-backend.js +88 -0
- package/dist/frontend/ts7/checker-backend.js.map +1 -0
- package/dist/frontend/ts7/checker-backend.test.d.ts +1 -0
- package/dist/frontend/ts7/checker-backend.test.js +63 -0
- package/dist/frontend/ts7/checker-backend.test.js.map +1 -0
- package/dist/frontend/ts7/checker-cache.d.ts +0 -3
- package/dist/frontend/ts7/checker-cache.js +0 -6
- package/dist/frontend/ts7/checker-cache.js.map +1 -1
- package/dist/frontend/ts7/checker.d.ts +18 -11
- package/dist/frontend/ts7/checker.js +42 -55
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.js +10 -7
- package/dist/frontend/ts7/checker.test.js.map +1 -1
- package/dist/frontend/ts7/diagnostic.d.ts +19 -0
- package/dist/frontend/ts7/diagnostic.js +22 -0
- package/dist/frontend/ts7/diagnostic.js.map +1 -0
- package/dist/frontend/ts7/node-functions.d.ts +8 -0
- package/dist/frontend/ts7/node-functions.js +18 -0
- package/dist/frontend/ts7/node-functions.js.map +1 -0
- package/dist/frontend/ts7/program-host.d.ts +5 -1
- package/dist/frontend/ts7/program-host.js +12 -0
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/rpc-api.d.ts +5 -1
- package/dist/frontend/ts7/rpc-api.js +8 -1
- package/dist/frontend/ts7/rpc-api.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.d.ts +13 -6
- package/dist/frontend/ts7/semantic-checker.js +26 -8
- package/dist/frontend/ts7/semantic-checker.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.test.js +12 -9
- package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.d.ts +54 -24
- package/dist/frontend/ts7/semantic-model.js +88 -16
- package/dist/frontend/ts7/semantic-model.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.test.js +4 -4
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-types.d.ts +7 -3
- package/dist/frontend/ts7/semantic-types.js +1 -1
- package/dist/frontend/ts7/semantic-types.js.map +1 -1
- package/dist/frontend/ts7/session.d.ts +11 -11
- package/dist/frontend/ts7/session.js +8 -5
- package/dist/frontend/ts7/session.js.map +1 -1
- package/dist/frontend/ts7/session.test.js +9 -5
- package/dist/frontend/ts7/session.test.js.map +1 -1
- package/dist/frontend/ts7/source-parser.d.ts +6 -2
- package/dist/frontend/ts7/source-parser.js +24 -3
- package/dist/frontend/ts7/source-parser.js.map +1 -1
- package/dist/frontend/ts7/source-parser.test.js +38 -17
- package/dist/frontend/ts7/source-parser.test.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +122 -2
- package/dist/frontend/type-mapper.js +2545 -719
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-only-imports.d.ts +28 -0
- package/dist/frontend/type-only-imports.js +122 -0
- package/dist/frontend/type-only-imports.js.map +1 -0
- package/dist/frontend/worker-target.js +8 -8
- package/dist/frontend/worker-target.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +29 -2
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js +4 -2
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/api.d.ts +1 -1
- package/dist/ir/api.js +1 -1
- package/dist/ir/api.js.map +1 -1
- package/dist/ir/array-length-stability.d.ts +30 -0
- package/dist/ir/array-length-stability.js +236 -0
- package/dist/ir/array-length-stability.js.map +1 -0
- package/dist/ir/array-length-stability.test.d.ts +1 -0
- package/dist/ir/array-length-stability.test.js +113 -0
- package/dist/ir/array-length-stability.test.js.map +1 -0
- package/dist/ir/build.d.ts +2 -2
- package/dist/ir/build.js +1 -1
- package/dist/ir/build.js.map +1 -1
- package/dist/ir/builtin-effects.js +103 -0
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +1 -1
- package/dist/ir/builtin-signatures.js +494 -25
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/byte-numbers.js +3 -0
- package/dist/ir/byte-numbers.js.map +1 -1
- package/dist/ir/callback-specialization.d.ts +37 -0
- package/dist/ir/callback-specialization.js +459 -0
- package/dist/ir/callback-specialization.js.map +1 -0
- package/dist/ir/callback-specialization.test.d.ts +1 -0
- package/dist/ir/callback-specialization.test.js +208 -0
- package/dist/ir/callback-specialization.test.js.map +1 -0
- package/dist/ir/capture-values.d.ts +0 -1
- package/dist/ir/capture-values.js +51 -40
- package/dist/ir/capture-values.js.map +1 -1
- package/dist/ir/constant-globals.test.js +1 -1
- package/dist/ir/constant-tables.test.js +1 -1
- package/dist/ir/field-values.test.js +1 -1
- package/dist/ir/final-fields.test.js +1 -1
- package/dist/ir/function-references.test.js +9 -1
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/init-only-globals.test.js +1 -1
- package/dist/ir/initializer-bindings.test.js +1 -1
- package/dist/ir/int32-slots.d.ts +14 -0
- package/dist/ir/int32-slots.js +97 -14
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +1 -1
- package/dist/ir/integer-loop-facts.d.ts +2 -0
- package/dist/ir/integer-loop-facts.js +24 -3
- package/dist/ir/integer-loop-facts.js.map +1 -1
- package/dist/ir/integer-loops.d.ts +1 -1
- package/dist/ir/integer-loops.js +39 -9
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +104 -0
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +3 -0
- package/dist/ir/integer-ranges.js +3 -1
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +82 -1
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/intrinsic-signatures.js +6 -0
- package/dist/ir/intrinsic-signatures.js.map +1 -1
- package/dist/ir/ir.d.ts +221 -58
- package/dist/ir/ir.js +119 -12
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +10 -0
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/jsval.d.ts +8 -0
- package/dist/ir/jsval.js +365 -0
- package/dist/ir/jsval.js.map +1 -0
- package/dist/ir/jsval.test.d.ts +1 -0
- package/dist/ir/jsval.test.js +239 -0
- package/dist/ir/jsval.test.js.map +1 -0
- package/dist/ir/runtime-features.d.ts +148 -33
- package/dist/ir/runtime-features.js +629 -386
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/scalar-records.test.js +1 -1
- package/dist/ir/self-captures.d.ts +33 -0
- package/dist/ir/self-captures.js +245 -0
- package/dist/ir/self-captures.js.map +1 -0
- package/dist/ir/self-captures.test.d.ts +1 -0
- package/dist/ir/self-captures.test.js +135 -0
- package/dist/ir/self-captures.test.js.map +1 -0
- package/dist/ir/serialize.d.ts +1 -1
- package/dist/ir/serialize.js +7 -4
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/tiers.d.ts +26 -0
- package/dist/ir/tiers.js +101 -0
- package/dist/ir/tiers.js.map +1 -0
- package/dist/ir/tiers.test.d.ts +1 -0
- package/dist/ir/tiers.test.js +140 -0
- package/dist/ir/tiers.test.js.map +1 -0
- package/dist/ir/traverse.js +103 -94
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/traverse.test.js +33 -30
- package/dist/ir/traverse.test.js.map +1 -1
- package/dist/ir/unshare.js +65 -3
- package/dist/ir/unshare.js.map +1 -1
- package/dist/ir/unshare.test.js +1 -1
- package/dist/ir/validate.js +175 -68
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +26 -9
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/fence-eval.test.js +1 -1
- package/dist/library/int-infer.test.js +4 -4
- package/dist/library/ir-policy.js +13 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/library/library-cache.d.ts +1 -0
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +5 -5
- package/dist/library/library-profile.d.ts +4 -4
- package/dist/library/library-profile.js +35 -7
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/prepare.js +13 -1
- package/dist/library/prepare.js.map +1 -1
- package/dist/native/cli.js +5 -0
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.js +2 -2
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/compiler.test.js +2 -2
- package/dist/native/prepare.js +7 -0
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/sanitizer.test.js +12 -0
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/native/toolchain.d.ts +2 -0
- package/dist/native/toolchain.js +10 -1
- package/dist/native/toolchain.js.map +1 -1
- package/dist/native/toolchain.test.js +39 -1
- package/dist/native/toolchain.test.js.map +1 -1
- package/dist/startup-cache.d.ts +1 -0
- package/dist/startup-cache.js +1 -0
- package/dist/startup-cache.js.map +1 -1
- package/dist/wasm/base64.d.ts +5 -0
- package/dist/wasm/base64.js +62 -0
- package/dist/wasm/base64.js.map +1 -0
- package/dist/wasm/binary.d.ts +36 -0
- package/dist/wasm/binary.js +1976 -0
- package/dist/wasm/binary.js.map +1 -0
- package/dist/wasm/binary.test.d.ts +1 -0
- package/dist/wasm/binary.test.js +190 -0
- package/dist/wasm/binary.test.js.map +1 -0
- package/dist/wasm/discover.d.ts +38 -0
- package/dist/wasm/discover.js +377 -0
- package/dist/wasm/discover.js.map +1 -0
- package/dist/wasm/discover.test.d.ts +1 -0
- package/dist/wasm/discover.test.js +24 -0
- package/dist/wasm/discover.test.js.map +1 -0
- package/dist/wasm/module.d.ts +151 -0
- package/dist/wasm/module.js +575 -0
- package/dist/wasm/module.js.map +1 -0
- package/dist/wasm/translate.d.ts +48 -0
- package/dist/wasm/translate.js +2129 -0
- package/dist/wasm/translate.js.map +1 -0
- package/dist/wasm/translate.test.d.ts +1 -0
- package/dist/wasm/translate.test.js +207 -0
- package/dist/wasm/translate.test.js.map +1 -0
- package/package.json +21 -20
- package/surface-manifest.json +303 -19
package/dist/ir/ir.d.ts
CHANGED
|
@@ -6,9 +6,9 @@ export interface SrcLoc {
|
|
|
6
6
|
start: number;
|
|
7
7
|
end: number;
|
|
8
8
|
}
|
|
9
|
-
/** Numeric typed-array element kinds with a native representation.
|
|
10
|
-
*
|
|
11
|
-
export type IrBytesElem = "u8" | "u8c" | "i8" | "u16" | "i16" | "u32" | "i32" | "f32" | "f64";
|
|
9
|
+
/** Numeric typed-array element kinds with a native representation. BigInt
|
|
10
|
+
* typed arrays remain frontend-fenced. */
|
|
11
|
+
export type IrBytesElem = "u8" | "u8c" | "i8" | "u16" | "i16" | "u32" | "i32" | "f16" | "f32" | "f64";
|
|
12
12
|
export declare const BYTES_ELEMENT_SIZE: Record<IrBytesElem, number>;
|
|
13
13
|
/** Integer element kinds: a valid element read is never NaN. */
|
|
14
14
|
export declare function isIntegerBytesElem(elem: IrBytesElem): boolean;
|
|
@@ -361,6 +361,19 @@ export type IrType = {
|
|
|
361
361
|
| {
|
|
362
362
|
kind: "dyn";
|
|
363
363
|
}
|
|
364
|
+
/** A dynamic-tier value (two-tier design §5.1, stage S3): one 64-bit
|
|
365
|
+
* NaN-boxed word. Numbers, booleans, undefined and null are immediates
|
|
366
|
+
* (no allocation); strings and BigInts are the static tier's own objects
|
|
367
|
+
* under a pointer tag; every other value is a `dyn` cell under the cell
|
|
368
|
+
* tag. Only dynamic-tier functions operate on it (ir/tiers.ts, I1), and
|
|
369
|
+
* only through the `js.*` builtins, locals and moves: the jsval pass
|
|
370
|
+
* (ir/jsval.ts) introduces it after lowering, never the frontend. Static
|
|
371
|
+
* functions see it only as the operand or result of a boundary
|
|
372
|
+
* conversion. Refcounted: retain/release skip immediates. 32-bit targets
|
|
373
|
+
* represent it as a boxed `dyn` cell. */
|
|
374
|
+
| {
|
|
375
|
+
kind: "jsval";
|
|
376
|
+
}
|
|
364
377
|
/** A catch binding or its closure capture (never parameters, returns,
|
|
365
378
|
* fields, arms or elements). The one global form is a module's recorded
|
|
366
379
|
* evaluation error, written only from that module's catch binding and
|
|
@@ -368,8 +381,8 @@ export type IrType = {
|
|
|
368
381
|
* Runtime representation is a refcounted snapshot box (ScrCaught) holding
|
|
369
382
|
* the taken exception: a kind tag plus the payload. Even NARROWER than
|
|
370
383
|
* dyn: the only expressions a caught value may appear in are `caughtTest`
|
|
371
|
-
* (kind/instanceof tests), `caughtNarrow` (
|
|
372
|
-
*
|
|
384
|
+
* (kind/instanceof tests), `caughtNarrow` (extraction under a proven
|
|
385
|
+
* test, verified at run time), and the `rethrow` statement — the frontend
|
|
373
386
|
* rejects every other use with the narrowing hint. */
|
|
374
387
|
| {
|
|
375
388
|
kind: "caught";
|
|
@@ -426,9 +439,9 @@ declare const HANDLE_KIND_LIST: readonly ["stats", "fileHandle", "dir", "spawnRe
|
|
|
426
439
|
export type HandleKind = (typeof HANDLE_KIND_LIST)[number];
|
|
427
440
|
export declare const HANDLE_KINDS: IrKindSet<"child" | "childStream" | "childWriter" | "cryptoHash" | "cryptoHmac" | "dgramSocket" | "dir" | "fileHandle" | "fsWatcher" | "http2Session" | "http2Stream" | "httpClientReq" | "httpReq" | "httpRes" | "netServer" | "netSocket" | "procStream" | "secureCtx" | "spawnRes" | "stats" | "testCtx">;
|
|
428
441
|
/** The IR kinds represented as pointers in native code. */
|
|
429
|
-
declare const POINTER_KIND_LIST: readonly ["string", "bigint", "array", "map", "set", "regex", "bytes", "url", "searchParams", "symbol", "stats", "fileHandle", "dir", "spawnRes", "child", "netServer", "netSocket", "http2Session", "http2Stream", "dgramSocket", "testCtx", "httpReq", "httpRes", "httpClientReq", "secureCtx", "cryptoHash", "cryptoHmac", "fsWatcher", "childStream", "childWriter", "func", "object", "classval", "moduleNs", "record", "union", "dyn", "caught", "promise", "generator"];
|
|
442
|
+
declare const POINTER_KIND_LIST: readonly ["string", "bigint", "array", "map", "set", "regex", "bytes", "url", "searchParams", "symbol", "stats", "fileHandle", "dir", "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"];
|
|
430
443
|
export type PointerKind = (typeof POINTER_KIND_LIST)[number];
|
|
431
|
-
export declare const POINTER_KINDS: IrKindSet<"array" | "bigint" | "bytes" | "caught" | "child" | "childStream" | "childWriter" | "classval" | "cryptoHash" | "cryptoHmac" | "dgramSocket" | "dir" | "dyn" | "fileHandle" | "fsWatcher" | "func" | "generator" | "http2Session" | "http2Stream" | "httpClientReq" | "httpReq" | "httpRes" | "map" | "moduleNs" | "netServer" | "netSocket" | "object" | "promise" | "record" | "regex" | "searchParams" | "secureCtx" | "set" | "spawnRes" | "stats" | "string" | "symbol" | "testCtx" | "union" | "url">;
|
|
444
|
+
export declare const POINTER_KINDS: IrKindSet<"array" | "bigint" | "bytes" | "caught" | "child" | "childStream" | "childWriter" | "classval" | "cryptoHash" | "cryptoHmac" | "dgramSocket" | "dir" | "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">;
|
|
432
445
|
/** Runtime RC symbol stem for each IR type kind. An empty stem means the
|
|
433
446
|
* kind is scalar/unit or uses an emitted per-shape helper (object/record).
|
|
434
447
|
* Keeping this exhaustive makes a new runtime handle kind a compile error
|
|
@@ -475,6 +488,7 @@ export declare const CHILDWRITER_T: IrType;
|
|
|
475
488
|
export declare const PROCSTREAM_T: IrType;
|
|
476
489
|
export declare const VOID: IrType;
|
|
477
490
|
export declare const DYN: IrType;
|
|
491
|
+
export declare const JSVAL: IrType;
|
|
478
492
|
export declare const CAUGHT: IrType;
|
|
479
493
|
export declare const UNDEFINED_T: IrType;
|
|
480
494
|
export declare const NULL_T: IrType;
|
|
@@ -504,8 +518,8 @@ export declare function isPrimitiveCollectionKey(t: IrType, unionArms?: IrType[]
|
|
|
504
518
|
export declare function isSupportedMapKey(t: IrType, unionArms?: IrType[]): boolean;
|
|
505
519
|
/** Set elements and Map keys share storage, equality and ownership rules. */
|
|
506
520
|
export declare function isSupportedSetElem(t: IrType, unionArms?: IrType[]): boolean;
|
|
507
|
-
/** The Map VALUE fence: scalars, supported native references
|
|
508
|
-
*
|
|
521
|
+
/** The Map VALUE fence: scalars, supported native references, closures
|
|
522
|
+
* and checked values.
|
|
509
523
|
* Record/object/union values can point back at the map holding them, which
|
|
510
524
|
* is exactly why ref-valued maps are cycle-capable (see the backend's
|
|
511
525
|
* cycle analysis and docs/memory.md). Shared frontend/validator. */
|
|
@@ -522,9 +536,17 @@ export declare function isSupportedMapValue(t: IrType): boolean;
|
|
|
522
536
|
export declare function isSupportedIndexValue(t: IrType): boolean;
|
|
523
537
|
export declare function funcOf(params: IrType[], ret: IrType): IrType;
|
|
524
538
|
/** Maps and sets use tagged union storage and retain their native identity.
|
|
525
|
-
*
|
|
526
|
-
*
|
|
539
|
+
* Joined unions (inferred joins of member reads and array elements) keep
|
|
540
|
+
* promises nullable-only; declared maybe-promise unions are admitted by
|
|
541
|
+
* maybePromiseUnionArmsOk. */
|
|
527
542
|
export declare function unionContainerArmsOk(arms: IrType[]): boolean;
|
|
543
|
+
/** The MAYBE-PROMISE union (`T | Promise<T>`, `Promise<R | void> | R |
|
|
544
|
+
* void`): at most one promise arm, beside unit or data arms. The union tag
|
|
545
|
+
* is the `instanceof Promise` test, and `await` / async `return` branch on
|
|
546
|
+
* it (the promise arm awaits or adopts, the other arms take the
|
|
547
|
+
* non-thenable path). Data arms must not be thenable; the type mapper
|
|
548
|
+
* checks that against the checker types before minting such a union. */
|
|
549
|
+
export declare function maybePromiseUnionArmsOk(arms: IrType[]): boolean;
|
|
528
550
|
/** Canonical, injective text form of an IrType — the building block of
|
|
529
551
|
* shape/union identity keys, generic-function instantiation keys, and the
|
|
530
552
|
* backend's per-type helper interning (jsonStringify/dynCheck walkers).
|
|
@@ -532,6 +554,12 @@ export declare function unionContainerArmsOk(arms: IrType[]): boolean;
|
|
|
532
554
|
* canonical) shapeId/unionId, so keys stay finite and comparable. Lives in
|
|
533
555
|
* the IR (not the frontend) because both ends need it. */
|
|
534
556
|
export declare function typeKey(t: IrType): string;
|
|
557
|
+
/** The type a CALL SITE (or function value) receives from a module
|
|
558
|
+
* function: an async body's returnType is the promise's INNER type, so
|
|
559
|
+
* calls and closures over it see Promise<T>; a generator body's is the
|
|
560
|
+
* TReturn channel, so call sites see the generator type. The one place
|
|
561
|
+
* the body/call-site split is spelled out, for the validator and lowering. */
|
|
562
|
+
export declare function callSiteReturnType(fn: IrFunction): IrType;
|
|
535
563
|
export declare function typeEquals(a: IrType, b: IrType): boolean;
|
|
536
564
|
/** True for types whose values are heap-allocated and reference-counted.
|
|
537
565
|
* The single dispatch point for the backend's RC machinery: retains,
|
|
@@ -541,7 +569,7 @@ export declare function typeEquals(a: IrType, b: IrType): boolean;
|
|
|
541
569
|
export declare function isRefCounted(t: IrType): boolean;
|
|
542
570
|
export interface IrModule {
|
|
543
571
|
/** Bumped on any breaking IR change; serialize.ts refuses mismatches. */
|
|
544
|
-
irVersion:
|
|
572
|
+
irVersion: 17;
|
|
545
573
|
sourceFile: string;
|
|
546
574
|
functions: IrFunction[];
|
|
547
575
|
/** Class shapes. Constructors and methods are ordinary module functions
|
|
@@ -578,6 +606,10 @@ export interface IrModule {
|
|
|
578
606
|
* ProgramLifetime instance lives in a counted region (the region.*
|
|
579
607
|
* intrinsics; backend/llvm/regions.ts). */
|
|
580
608
|
lifetimeRegions?: true;
|
|
609
|
+
/** Classes used as ThreadSlots keys (@scriptc/experimental): the root of
|
|
610
|
+
* each one's hierarchy carries a slot word (the slots.* intrinsics;
|
|
611
|
+
* backend/llvm/thread-slots.ts). */
|
|
612
|
+
threadSlotKeys?: string[];
|
|
581
613
|
/** The entry module is CommonJS under Node's classification. Node runs a
|
|
582
614
|
* CommonJS main synchronously and drains process.nextTick callbacks
|
|
583
615
|
* before promise jobs at the first checkpoint; an ES-module main's
|
|
@@ -599,6 +631,23 @@ export interface IrModule {
|
|
|
599
631
|
* write in the program (ir/contract-check.ts). Backends may rely on them
|
|
600
632
|
* unconditionally. Absent when the program writes no contract. */
|
|
601
633
|
contracts?: IrContracts;
|
|
634
|
+
/** The WebAssembly modules translated into this program (wasm/
|
|
635
|
+
* translate.ts), present exactly when the program uses the WebAssembly
|
|
636
|
+
* API (possibly empty). The backend appends each module's translation
|
|
637
|
+
* and emits the registry the runtime looks modules up in. */
|
|
638
|
+
wasmModules?: IrWasmModule[];
|
|
639
|
+
/** The program calls WebAssembly.Module.customSections, so translated
|
|
640
|
+
* modules keep their custom sections (otherwise they carry none, and
|
|
641
|
+
* debug sections cost nothing). */
|
|
642
|
+
wasmCustomSections?: boolean;
|
|
643
|
+
}
|
|
644
|
+
/** A WebAssembly module whose bytes the build saw, validated within the
|
|
645
|
+
* translatable feature level. */
|
|
646
|
+
export interface IrWasmModule {
|
|
647
|
+
/** Hex SHA-256 of the bytes. */
|
|
648
|
+
sha256: string;
|
|
649
|
+
/** The bytes, base64. */
|
|
650
|
+
bytes: string;
|
|
602
651
|
}
|
|
603
652
|
/** Verified contract facts, keyed by IR names. */
|
|
604
653
|
export interface IrContracts {
|
|
@@ -611,6 +660,14 @@ export interface IrContracts {
|
|
|
611
660
|
/** Int32 locals (`${function}\0${localId}`, including every capture of a
|
|
612
661
|
* captured binding) and module globals (`\0${globalId}`). */
|
|
613
662
|
int32Locals?: string[];
|
|
663
|
+
/** Number-array slots whose arrays hold only int32 elements (Int32[]):
|
|
664
|
+
* every element store into any array that can reach them was proven an
|
|
665
|
+
* int32, so a present element read through them is an int32 (holes and
|
|
666
|
+
* missing indices still read as undefined). Keys: `l:${function}\0${localId}`
|
|
667
|
+
* (locals and parameters), `g:${globalId}`, `f:${field family}`,
|
|
668
|
+
* `s:${shapeId}\0${field}` (record fields) and `r:${function}` (results);
|
|
669
|
+
* see int32-slots.ts int32ElementSlot. */
|
|
670
|
+
int32Elements?: string[];
|
|
614
671
|
/** Functions that cannot throw (NoThrow). */
|
|
615
672
|
noThrow?: string[];
|
|
616
673
|
/** Acyclic classes and object types, as cycle-analysis units
|
|
@@ -696,8 +753,8 @@ export interface IrLibExport {
|
|
|
696
753
|
/** i64/u64 (ask 4): int64_t/uint64_t at the C edge — inbound values
|
|
697
754
|
* range-check in the wrapper (`inboundIntTrap`), internal call sites
|
|
698
755
|
* and returns are compile-time proven before this lands on the IR. */
|
|
699
|
-
params: ("f64" | "bool" | "string" | "bytes" | "u8" | "u32" | "i32" | "i64" | "u64")[];
|
|
700
|
-
returns: "f64" | "bool" | "string" | "bytes" | "void" | "i64" | "u64";
|
|
756
|
+
params: ("f64" | "bool" | "string" | "cstring" | "bytes" | "u8" | "u32" | "i32" | "i64" | "u64")[];
|
|
757
|
+
returns: "f64" | "bool" | "string" | "cstring" | "bytes" | "void" | "i64" | "u64";
|
|
701
758
|
/** The exact sink-message bytes this wrapper passes to the inbound-bytes
|
|
702
759
|
* marshalling helper's trap — present exactly when a parameter is
|
|
703
760
|
* bytes-classed. Already the assembled structured trap-teaching form
|
|
@@ -712,6 +769,10 @@ export interface IrLibExport {
|
|
|
712
769
|
* value cannot ride f64 exactly (|v| past 2^53−1). Same assembled
|
|
713
770
|
* structured form and the same SC4012 code — one host-contract story. */
|
|
714
771
|
inboundIntTrap?: string;
|
|
772
|
+
/** The sibling message for a NULL cstring parameter: present exactly
|
|
773
|
+
* when a parameter is cstring-classed, passed to scr_library_cstr_in.
|
|
774
|
+
* Same assembled structured form and the same SC4012 code. */
|
|
775
|
+
inboundCstringTrap?: string;
|
|
715
776
|
}
|
|
716
777
|
/** One runtime-trap overlay row: the profile's teaching (replaces the
|
|
717
778
|
* baseline human line as field 0) and/or remediation (the optional fourth
|
|
@@ -736,7 +797,7 @@ export interface IrLibCallback {
|
|
|
736
797
|
name: string;
|
|
737
798
|
/** The runtime channel slot (profile declaration order). */
|
|
738
799
|
slot: number;
|
|
739
|
-
params: ("f64" | "bool" | "string" | "bytes" | "u8" | "u32" | "i32")[];
|
|
800
|
+
params: ("f64" | "bool" | "string" | "cstring" | "bytes" | "u8" | "u32" | "i32")[];
|
|
740
801
|
returns: "f64" | "bool" | "u8" | "u32" | "i32" | "i64" | "u64" | "pointer" | "void";
|
|
741
802
|
/** The unregistered-call trap text (a DETECTED trap: plain bytes the
|
|
742
803
|
* library funnel classifies SC4025 and assembles with the current
|
|
@@ -826,6 +887,11 @@ export interface IrClassDef {
|
|
|
826
887
|
* bag. Its descriptors preserve presence and insertion order independently
|
|
827
888
|
* of native layout order; field values remain in their native slots. */
|
|
828
889
|
tracksOwnFields?: boolean;
|
|
890
|
+
/** Error subclasses: the field an instance's own `name` follows among its
|
|
891
|
+
* own properties, or null when it precedes every field. Absent when no
|
|
892
|
+
* class of the chain sets `name` during construction, and then an own
|
|
893
|
+
* `name` follows every other own property. */
|
|
894
|
+
errorNameAfter?: string | null;
|
|
829
895
|
/** Stable module symbol identities for public instance layout fields. */
|
|
830
896
|
symbolFields?: {
|
|
831
897
|
field: string;
|
|
@@ -905,6 +971,26 @@ export declare const RUNTIME_ERROR_CLASSES: ReadonlyMap<string, {
|
|
|
905
971
|
* The emitter hierarchy is UNCONDITIONALLY cycle-capable: the registry
|
|
906
972
|
* owns listener closures, whatever the subclass fields say. */
|
|
907
973
|
export declare const RUNTIME_EMITTER_CLASS = "%EventEmitter";
|
|
974
|
+
/** The function that construction through a class value calls, and the
|
|
975
|
+
* index of its first argument. A program class constructs through
|
|
976
|
+
* `%C.constructor(this, ...)` after the thunk allocates; a runtime-provided
|
|
977
|
+
* class (EventEmitter, the stream and error classes) through the
|
|
978
|
+
* frontend's `%C.construct(...)`, which allocates through the runtime and
|
|
979
|
+
* returns the new instance. */
|
|
980
|
+
export declare function classValueConstructor(def: {
|
|
981
|
+
name: string;
|
|
982
|
+
runtime?: true;
|
|
983
|
+
}): {
|
|
984
|
+
fn: string;
|
|
985
|
+
firstArg: number;
|
|
986
|
+
};
|
|
987
|
+
/** The JavaScript `.name` of a class: its jsName, or the runtime-provided
|
|
988
|
+
* class's own name (`%TypeError` is TypeError). */
|
|
989
|
+
export declare function classJsName(def: {
|
|
990
|
+
name: string;
|
|
991
|
+
runtime?: true;
|
|
992
|
+
jsName?: string;
|
|
993
|
+
}): string;
|
|
908
994
|
/** The runtime-provided node:stream classes (ScrStream / scr_stream_*,
|
|
909
995
|
* scr_stream.c — link-gated by moduleUsesStream). They root at the
|
|
910
996
|
* emitter class (base chains below), so the emitter method surface and
|
|
@@ -983,6 +1069,10 @@ export interface IrRecordShape {
|
|
|
983
1069
|
* fields carry that declaredOrder OMITS are internal '%'-fields (Dirent's
|
|
984
1070
|
* %dtype) — hidden from every key-order surface, JSON included. */
|
|
985
1071
|
declaredOrder?: string[];
|
|
1072
|
+
/** Shapes with accessor slots: every own key in declaration order, with
|
|
1073
|
+
* an accessor property named once (see accessorSlotProp). The
|
|
1074
|
+
* checked-dynamic copy lists its keys in this order. */
|
|
1075
|
+
accessorOrder?: string[];
|
|
986
1076
|
}
|
|
987
1077
|
/** fs.Dirent rows: the hidden %dtype entry kind (libuv's UV_DIRENT
|
|
988
1078
|
* encoding), then name and parentPath (type-mapper's interned shape). */
|
|
@@ -1087,11 +1177,32 @@ export interface IrFunction {
|
|
|
1087
1177
|
resultType: IrType & {
|
|
1088
1178
|
kind: "record";
|
|
1089
1179
|
};
|
|
1180
|
+
/** The first parameter is a generator this one reads from (an
|
|
1181
|
+
* iterator helper's source): `.return()` before the first `.next()`
|
|
1182
|
+
* closes it. */
|
|
1183
|
+
closesSource?: true;
|
|
1184
|
+
/** The @@toStringTag the object prints with (util.inspect,
|
|
1185
|
+
* Object.prototype.toString) when it is not a generator object:
|
|
1186
|
+
* "Iterator Helper", "Array Iterator", "String Iterator". A tag that
|
|
1187
|
+
* starts with '!' marks a generator standing in for an object of
|
|
1188
|
+
* another class, which those refuse to print. */
|
|
1189
|
+
tag?: string;
|
|
1190
|
+
/** The first parameter is a generator this one adapts: it prints with
|
|
1191
|
+
* that generator's tag. */
|
|
1192
|
+
inheritsTag?: true;
|
|
1090
1193
|
};
|
|
1091
1194
|
/** Source function name for native error stack frames. */
|
|
1092
1195
|
sourceName?: string;
|
|
1093
1196
|
/** Ordinary authored function declarations/expressions own a prototype. */
|
|
1094
1197
|
ownsPrototype?: true;
|
|
1198
|
+
/** The function's execution tier (ir/tiers.ts). Absent means static: the
|
|
1199
|
+
* function may use dynamic values only through boundary operations
|
|
1200
|
+
* (dynFrom, dynCheck, kind tests) and moves, which the validator enforces
|
|
1201
|
+
* (invariant I1). "dynamic" admits the dynamic operation vocabulary
|
|
1202
|
+
* (dynKeyGet, dynCall, dyn.* builtins, ...). Lowering assigns the field
|
|
1203
|
+
* from the body (assignLegacyTiers); stage S2 of the two-tier design
|
|
1204
|
+
* keeps it out of serialized IR, so loaders derive it again. */
|
|
1205
|
+
tier?: "dynamic";
|
|
1095
1206
|
body: IrStmt[];
|
|
1096
1207
|
loc: SrcLoc;
|
|
1097
1208
|
}
|
|
@@ -1313,13 +1424,21 @@ export type IrStmt =
|
|
|
1313
1424
|
}
|
|
1314
1425
|
/** Field write `obj.f = v` — statement-only, like `assign`/`arraySet`.
|
|
1315
1426
|
* Evaluation order: obj, then value. The old value is released; ownership
|
|
1316
|
-
* of a refcounted new value MOVES into the object.
|
|
1427
|
+
* of a refcounted new value MOVES into the object. `sloppy` marks a write
|
|
1428
|
+
* in sloppy-mode code, which skips a read-only field instead of throwing.
|
|
1429
|
+
* `define` marks a class field initializer, which defines the property
|
|
1430
|
+
* (a non-extensible instance rejects it). `attributesChecked` marks a
|
|
1431
|
+
* write that already honors the instance's property attributes
|
|
1432
|
+
* (CLASS_ATTRIBUTES). */
|
|
1317
1433
|
| {
|
|
1318
1434
|
kind: "fieldSet";
|
|
1319
1435
|
obj: IrExpr;
|
|
1320
1436
|
className: string;
|
|
1321
1437
|
field: string;
|
|
1322
1438
|
value: IrExpr;
|
|
1439
|
+
sloppy?: true;
|
|
1440
|
+
define?: true;
|
|
1441
|
+
attributesChecked?: true;
|
|
1323
1442
|
loc: SrcLoc;
|
|
1324
1443
|
}
|
|
1325
1444
|
/** Record field write `r.f = v` — mirrors `fieldSet` exactly (evaluation
|
|
@@ -1456,6 +1575,11 @@ export type IrStmt =
|
|
|
1456
1575
|
/** Resource-management cleanup: if the guarded body and cleanup both
|
|
1457
1576
|
* throw, raise a SuppressedError instead of replacing the first error. */
|
|
1458
1577
|
suppressFinallyErrors?: true;
|
|
1578
|
+
/** Iterator closing: if the guarded body threw and the cleanup throws
|
|
1579
|
+
* too, the cleanup's error is dropped and the first one propagates.
|
|
1580
|
+
* After a generator .return() the cleanup's error replaces it, and on
|
|
1581
|
+
* normal exits it propagates. */
|
|
1582
|
+
dropFinallyErrors?: true;
|
|
1459
1583
|
loc: SrcLoc;
|
|
1460
1584
|
};
|
|
1461
1585
|
/** The complete array method/property surface (mirrors ambient/scriptc.d.ts).
|
|
@@ -1663,7 +1787,7 @@ export type IrBytesIntrinsicMethod = "buffer" | "length" | "byteLength" | "get"
|
|
|
1663
1787
|
* slice, never throws. u8 receivers keep the Buffer fill family above
|
|
1664
1788
|
* (same observable number-fill result; Buffer's throwing offset
|
|
1665
1789
|
* validation). */
|
|
1666
|
-
| "fillElem" | "copy" | "swap16" | "swap32" | "swap64" | "writeStr" | "byteOffset" | "dataViewNew" | "dvGetUint8" | "dvGetInt8" | "dvGetUint16" | "dvGetInt16" | "dvGetUint32" | "dvGetInt32" | "dvGetFloat32" | "dvGetFloat64" | "dvGetBigUint64Number" | "dvGetBigInt64Number" | "dvSetUint8" | "dvSetInt8" | "dvSetUint16" | "dvSetInt16" | "dvSetUint32" | "dvSetInt32" | "dvSetFloat32" | "dvSetFloat64";
|
|
1790
|
+
| "fillElem" | "copy" | "swap16" | "swap32" | "swap64" | "writeStr" | "byteOffset" | "dataViewNew" | "dvGetUint8" | "dvGetInt8" | "dvGetUint16" | "dvGetInt16" | "dvGetUint32" | "dvGetInt32" | "dvGetFloat16" | "dvGetFloat32" | "dvGetFloat64" | "dvGetBigUint64Number" | "dvGetBigInt64Number" | "dvSetUint8" | "dvSetInt8" | "dvSetUint16" | "dvSetInt16" | "dvSetUint32" | "dvSetInt32" | "dvSetFloat16" | "dvSetFloat32" | "dvSetFloat64";
|
|
1667
1791
|
/** The bytesIntrinsic methods that can raise a catchable error — backends'
|
|
1668
1792
|
* may-throw analyses seed on these exactly like MAY_THROW_LIB_FNS. */
|
|
1669
1793
|
export declare const MAY_THROW_BYTES_METHODS: ReadonlySet<IrBytesIntrinsicMethod>;
|
|
@@ -1708,13 +1832,21 @@ export type IrRegexIntrinsicMethod = "test" | "match"
|
|
|
1708
1832
|
* unobservable across the lowered surface (strings are immutable; the
|
|
1709
1833
|
* spec clones the regex at the call, so lastIndex games can't reach the
|
|
1710
1834
|
* drain either). Non-global regexes THROW Node's exact TypeError
|
|
1711
|
-
* (catchable — replaceAll's stance).
|
|
1835
|
+
* (catchable — replaceAll's stance). Each row carries its index, input
|
|
1836
|
+
* and groups properties. */
|
|
1712
1837
|
| "matchAll"
|
|
1838
|
+
/** matchAll whose rows are read only through their elements
|
|
1839
|
+
* (matchAllRowsReadByElements): the rows carry no index, input or
|
|
1840
|
+
* groups properties. Same result and throw contract as matchAll. */
|
|
1841
|
+
| "matchAllCaptures"
|
|
1713
1842
|
/** matchAll's companion-index form (the for-of-over-matchAll desugar):
|
|
1714
1843
|
* args[1] is a number[] the drain ALSO fills with each match's UTF-16
|
|
1715
1844
|
* start index — the row's `.index`, always present (every drained row
|
|
1716
1845
|
* matched). Same result and throw contract as matchAll. */
|
|
1717
1846
|
| "matchAllInto"
|
|
1847
|
+
/** matchAllInto whose rows are read only through their elements and the
|
|
1848
|
+
* companion index: the rows carry no index, input or groups properties. */
|
|
1849
|
+
| "matchAllCapturesInto"
|
|
1718
1850
|
/** `s.search(re)` — the first match's UTF-16 index, or -1. Symbol.search
|
|
1719
1851
|
* neither reads nor writes lastIndex (a fresh exec from position 0), so
|
|
1720
1852
|
* no g/y fence applies: /g is irrelevant and /y anchors at 0 — exactly
|
|
@@ -1881,15 +2013,12 @@ export type IrExpr =
|
|
|
1881
2013
|
type: IrType;
|
|
1882
2014
|
loc: SrcLoc;
|
|
1883
2015
|
}
|
|
1884
|
-
/** String ordering
|
|
1885
|
-
* scriptc's documented code-point order; the default Array sort comparator
|
|
1886
|
-
* sets it to request ECMAScript's UTF-16 code-unit order. */
|
|
2016
|
+
/** String ordering in ECMAScript's UTF-16 code-unit order. */
|
|
1887
2017
|
| {
|
|
1888
2018
|
kind: "strCmp";
|
|
1889
2019
|
op: IrStrCmpOp;
|
|
1890
2020
|
left: IrExpr;
|
|
1891
2021
|
right: IrExpr;
|
|
1892
|
-
utf16?: boolean;
|
|
1893
2022
|
type: IrType;
|
|
1894
2023
|
loc: SrcLoc;
|
|
1895
2024
|
}
|
|
@@ -2003,7 +2132,7 @@ export type IrExpr =
|
|
|
2003
2132
|
}
|
|
2004
2133
|
/** A regex literal `/ab+c/gi`. `pattern` is the text between the slashes
|
|
2005
2134
|
* exactly as written (escapes UNprocessed — the regex engine parses them),
|
|
2006
|
-
* `flags` the trailing flags in
|
|
2135
|
+
* `flags` the trailing flags in getter order (alphabet fenced to gimsuvy by
|
|
2007
2136
|
* the frontend). Backends intern ONE immortal static per (pattern, flags)
|
|
2008
2137
|
* pair — like string literals, so repeated evaluation is free and
|
|
2009
2138
|
* `re === re` would hold — and compile the pattern lazily at first use
|
|
@@ -2519,11 +2648,12 @@ export type IrExpr =
|
|
|
2519
2648
|
type: IrType;
|
|
2520
2649
|
loc: SrcLoc;
|
|
2521
2650
|
}
|
|
2522
|
-
/**
|
|
2523
|
-
*
|
|
2524
|
-
* narrowing has already proven the dynamic class (an `instanceof` guard)
|
|
2525
|
-
*
|
|
2526
|
-
* a
|
|
2651
|
+
/** Narrowing of a base-class value to a subclass (`type` is the
|
|
2652
|
+
* subclass). The frontend emits this only where tsc's control-flow
|
|
2653
|
+
* narrowing has already proven the dynamic class (an `instanceof` guard),
|
|
2654
|
+
* like unionNarrow. Backends verify the class once and trap on a mismatch
|
|
2655
|
+
* (a compiler bug or a lying type predicate or assertion function), then
|
|
2656
|
+
* reinterpret the pointer with ownership transferring like upcast. */
|
|
2527
2657
|
| {
|
|
2528
2658
|
kind: "downcast";
|
|
2529
2659
|
value: IrExpr;
|
|
@@ -2632,26 +2762,30 @@ export type IrExpr =
|
|
|
2632
2762
|
* Declared fields are tried FIRST (an emitted string-switch — field
|
|
2633
2763
|
* access exactness is preserved: a declared name always answers from the
|
|
2634
2764
|
* struct slot), then the overflow map on index-signature shapes. `type`
|
|
2635
|
-
* is the
|
|
2636
|
-
*
|
|
2637
|
-
*
|
|
2638
|
-
* singleton when `type` is dyn; the undefined
|
|
2639
|
-
* undefined-armed union;
|
|
2640
|
-
*
|
|
2641
|
-
*
|
|
2642
|
-
*
|
|
2643
|
-
*
|
|
2644
|
-
*
|
|
2765
|
+
* is the index signature's value type armed with undefined (dyn for
|
|
2766
|
+
* `unknown`), so a missing key reads undefined as in JavaScript, or the
|
|
2767
|
+
* declared fields' common type on signature-free shapes. A MISSING key
|
|
2768
|
+
* produces: the undefined dyn singleton when `type` is dyn; the undefined
|
|
2769
|
+
* arm when `type` is an undefined-armed union; NaN with `missNaN`;
|
|
2770
|
+
* otherwise a TRAP (declared-only shapes, where tsc's keyof check makes
|
|
2771
|
+
* the trap unreachable without an `as` smuggle). Declared-field values
|
|
2772
|
+
* surface as `type`: V-typed fields read directly, dyn results build a
|
|
2773
|
+
* dyn COPY of the field value (the dynFrom conversion — deep for
|
|
2774
|
+
* composites, documented), union results wrap.
|
|
2645
2775
|
* The key and object are borrowed; refcounted results are owned (+1).
|
|
2646
2776
|
* `overflowOnly` (set when the key is a LITERAL that names no declared
|
|
2647
2777
|
* field): the read touches only the overflow map — declared fields need
|
|
2648
|
-
* not surface as `type`, and the emitted helper skips the string-switch.
|
|
2778
|
+
* not surface as `type`, and the emitted helper skips the string-switch.
|
|
2779
|
+
* `missNaN` (with an f64 `type`): a missing key produces NaN instead of
|
|
2780
|
+
* trapping, for reads whose every consumer treats undefined like NaN
|
|
2781
|
+
* (nan-coded-reads.ts). */
|
|
2649
2782
|
| {
|
|
2650
2783
|
kind: "recordKeyGet";
|
|
2651
2784
|
obj: IrExpr;
|
|
2652
2785
|
shapeId: string;
|
|
2653
2786
|
key: IrExpr;
|
|
2654
2787
|
overflowOnly?: true;
|
|
2788
|
+
missNaN?: true;
|
|
2655
2789
|
type: IrType;
|
|
2656
2790
|
loc: SrcLoc;
|
|
2657
2791
|
}
|
|
@@ -2814,9 +2948,10 @@ export type IrExpr =
|
|
|
2814
2948
|
/** Keyed read on a dyn value — `pkg.name` / `pkg["k"]` / the
|
|
2815
2949
|
* `pkg?.scripts` chain step on a JSON.parse result. `key` is
|
|
2816
2950
|
* string-typed (a strLit for the dot form); `type` is always dyn. An
|
|
2817
|
-
* OBJ receiver answers the member (+1)
|
|
2818
|
-
*
|
|
2819
|
-
*
|
|
2951
|
+
* OBJ receiver answers the member (+1), an inherited Object.prototype
|
|
2952
|
+
* member (the Object constructor and the interned valueOf/toString/
|
|
2953
|
+
* hasOwnProperty/propertyIsEnumerable values), or the undefined singleton;
|
|
2954
|
+
* ARR answers `length` and canonical
|
|
2820
2955
|
* in-range indices, STR answers `length` (UTF-16-exact), both
|
|
2821
2956
|
* undefined otherwise; NUM/BOOL/BYTES answer undefined. An
|
|
2822
2957
|
* undefined/null receiver THROWS the catchable Node-shaped TypeError
|
|
@@ -3050,12 +3185,13 @@ export type IrExpr =
|
|
|
3050
3185
|
type: IrType;
|
|
3051
3186
|
loc: SrcLoc;
|
|
3052
3187
|
}
|
|
3053
|
-
/**
|
|
3054
|
-
*
|
|
3055
|
-
*
|
|
3056
|
-
* (`e instanceof C` / `typeof e === "string"`)
|
|
3057
|
-
*
|
|
3058
|
-
* class object; refcounted results come
|
|
3188
|
+
/** Extraction of a catch binding's payload as `type` — the caught
|
|
3189
|
+
* analog of unionNarrow: the frontend emits this only where tsc's
|
|
3190
|
+
* control-flow narrowing has already proven the matching test
|
|
3191
|
+
* (`e instanceof C` / `typeof e === "string"`). Backends verify the kind
|
|
3192
|
+
* or class once and trap on a mismatch (a compiler bug or a lying type
|
|
3193
|
+
* predicate or assertion function). `type` is f64, bool, string, or a class object; refcounted results come
|
|
3194
|
+
* out retained (+1). */
|
|
3059
3195
|
| {
|
|
3060
3196
|
kind: "caughtNarrow";
|
|
3061
3197
|
value: IrExpr;
|
|
@@ -3097,11 +3233,13 @@ export type IrExpr =
|
|
|
3097
3233
|
type: IrType;
|
|
3098
3234
|
loc: SrcLoc;
|
|
3099
3235
|
}
|
|
3100
|
-
/** Union payload extraction
|
|
3101
|
-
*
|
|
3102
|
-
*
|
|
3103
|
-
*
|
|
3104
|
-
*
|
|
3236
|
+
/** Union payload extraction: `value` is union-typed and `type` is
|
|
3237
|
+
* arms[tag]. The frontend emits this only where tsc's control-flow
|
|
3238
|
+
* narrowing has already narrowed the expression to that arm; backends
|
|
3239
|
+
* verify the tag once and trap on a mismatch (a compiler bug or a lying
|
|
3240
|
+
* type predicate or assertion function), so a wrong proof cannot read the
|
|
3241
|
+
* payload as another arm.
|
|
3242
|
+
* Refcounted payloads come out retained (+1). */
|
|
3105
3243
|
| {
|
|
3106
3244
|
kind: "unionNarrow";
|
|
3107
3245
|
unionId: string;
|
|
@@ -3225,7 +3363,7 @@ export type IrExpr =
|
|
|
3225
3363
|
* (a module binding of an import cycle read before its declaration). */
|
|
3226
3364
|
| {
|
|
3227
3365
|
kind: "intrinsic";
|
|
3228
|
-
name: "console.log" | "console.error" | "promise.race" | "promise.all" | "promise.allSettled" | "promise.any" | "promise.reject" | "promise.resolve" | "module.await" | "module.tdzCheck" | "threads.publish" | "region.create" | "region.enter" | "region.leave" | "region.release" | "itable.open" | "itable.find" | "itable.insert" | "itable.value" | "itable.size";
|
|
3366
|
+
name: "console.log" | "console.error" | "promise.race" | "promise.all" | "promise.allSettled" | "promise.any" | "promise.reject" | "promise.resolve" | "module.await" | "module.tdzCheck" | "threads.publish" | "region.create" | "region.enter" | "region.leave" | "region.release" | "itable.open" | "itable.find" | "itable.insert" | "itable.value" | "itable.size" | "slots.get" | "slots.has" | "slots.set" | "slots.delete";
|
|
3229
3367
|
args: IrExpr[];
|
|
3230
3368
|
type: IrType;
|
|
3231
3369
|
loc: SrcLoc;
|
|
@@ -3249,6 +3387,11 @@ export type IrExpr =
|
|
|
3249
3387
|
type: IrType;
|
|
3250
3388
|
loc: SrcLoc;
|
|
3251
3389
|
prototypeIdentityOnly?: true;
|
|
3390
|
+
/** A timer call through an ESM named or namespace import of
|
|
3391
|
+
* node:timers. Node's mock.timers replaces the globals and the
|
|
3392
|
+
* module object's properties, which these bindings do not follow,
|
|
3393
|
+
* so the call keeps the loop's timer. */
|
|
3394
|
+
realTimer?: true;
|
|
3252
3395
|
/** An assertion call made through a node:assert Assert instance: the
|
|
3253
3396
|
* instance options the runtime applies to this call. Backends set
|
|
3254
3397
|
* them right before the runtime call, after its arguments are
|
|
@@ -3269,11 +3412,14 @@ export type IrExpr =
|
|
|
3269
3412
|
* `null` and -0 as `0`, exactly like JS; a record field holding the
|
|
3270
3413
|
* undefined arm of its union (an optional field) is DROPPED from the
|
|
3271
3414
|
* output — Node's rule for undefined-valued properties. The value is
|
|
3272
|
-
* BORROWED; the result string is owned (+1). Never throws.
|
|
3415
|
+
* BORROWED; the result string is owned (+1). Never throws. `circular`
|
|
3416
|
+
* is util.format's %j (Node's tryStringify): a circular structure gives
|
|
3417
|
+
* the text "[Circular]" instead of the TypeError. */
|
|
3273
3418
|
| {
|
|
3274
3419
|
kind: "jsonStringify";
|
|
3275
3420
|
value: IrExpr;
|
|
3276
3421
|
indent?: string;
|
|
3422
|
+
circular?: true;
|
|
3277
3423
|
type: IrType;
|
|
3278
3424
|
loc: SrcLoc;
|
|
3279
3425
|
}
|
|
@@ -3335,9 +3481,10 @@ export declare function isJsonSafeType(t: IrType, getRecord: (shapeId: string) =
|
|
|
3335
3481
|
* root remains outside the domain because JSON.stringify returns the
|
|
3336
3482
|
* undefined value instead of a string. */
|
|
3337
3483
|
export declare function isJsonStringifySafeType(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
3338
|
-
/** A JSON-shaped container with unknown payloads
|
|
3339
|
-
* traversal. Its declared structure can
|
|
3340
|
-
*
|
|
3484
|
+
/** A JSON-shaped container with unknown payloads, or a class instance at
|
|
3485
|
+
* any position, needs the runtime JSON traversal. Its declared structure can
|
|
3486
|
+
* be boxed, but payloads may carry omitted values, toJSON methods, added
|
|
3487
|
+
* properties, or cycles. This predicate does not widen
|
|
3341
3488
|
* the type-directed serializer, checked-value boundary, or root-undefined
|
|
3342
3489
|
* contract; callers must select the checked runtime traversal explicitly. */
|
|
3343
3490
|
export declare function isJsonStringifyDynamicType(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
@@ -3369,6 +3516,22 @@ export declare function isDynTypedRefType(t: IrType): t is Extract<IrType, {
|
|
|
3369
3516
|
export declare function isClassOwnEnumerableFieldName(name: string): boolean;
|
|
3370
3517
|
/** Compiler-owned storage for properties added through untyped references. */
|
|
3371
3518
|
export declare const DYN_CLASS_PROPERTIES = "%dynProperties";
|
|
3519
|
+
/** Compiler-owned integrity state of a class instance whose hierarchy is
|
|
3520
|
+
* passed to Object.freeze, Object.seal, Object.preventExtensions or
|
|
3521
|
+
* Object.defineProperty: an f64 holding CLASS_NOT_EXTENSIBLE, CLASS_SEALED
|
|
3522
|
+
* and CLASS_FROZEN bits. Other hierarchies have no such field. */
|
|
3523
|
+
export declare const CLASS_ATTRIBUTES = "%attributes";
|
|
3524
|
+
export declare const CLASS_NOT_EXTENSIBLE = 1;
|
|
3525
|
+
export declare const CLASS_SEALED = 2;
|
|
3526
|
+
export declare const CLASS_FROZEN = 4;
|
|
3527
|
+
/** Compiler-owned attributes of one declared field that Object.defineProperty
|
|
3528
|
+
* changes: an f64 holding FIELD_NOT_WRITABLE, FIELD_NOT_ENUMERABLE and
|
|
3529
|
+
* FIELD_NOT_CONFIGURABLE bits (zero is an ordinary data property). */
|
|
3530
|
+
export declare const CLASS_FIELD_ATTRIBUTES_PREFIX = "%attr:";
|
|
3531
|
+
export declare const FIELD_NOT_WRITABLE = 1;
|
|
3532
|
+
export declare const FIELD_NOT_ENUMERABLE = 2;
|
|
3533
|
+
export declare const FIELD_NOT_CONFIGURABLE = 4;
|
|
3534
|
+
export declare function classFieldAttributesName(field: string): string;
|
|
3372
3535
|
/** A class capsule can always preserve its exact native identity. Its
|
|
3373
3536
|
* optional property view additionally needs converters in both directions;
|
|
3374
3537
|
* fields such as Maps may remain opaque without preventing the round trip. */
|