@scriptc/compiler 0.4.5 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ambient/node-fallback/assert-strict.d.ts +47 -0
- package/ambient/node-fallback/assert.d.ts +86 -0
- package/ambient/node-fallback/async_hooks.d.ts +41 -0
- package/ambient/node-fallback/buffer.d.ts +23 -0
- package/ambient/node-fallback/child_process.d.ts +242 -0
- package/ambient/node-fallback/cluster.d.ts +17 -0
- package/ambient/node-fallback/constants.d.ts +15 -0
- package/ambient/node-fallback/crypto.d.ts +837 -0
- package/ambient/node-fallback/dgram.d.ts +58 -0
- package/ambient/node-fallback/diagnostics_channel.d.ts +87 -0
- package/ambient/node-fallback/dns-promises.d.ts +27 -0
- package/ambient/node-fallback/dns.d.ts +65 -0
- package/ambient/node-fallback/events.d.ts +60 -0
- package/ambient/node-fallback/fs-promises.d.ts +225 -0
- package/ambient/node-fallback/fs.d.ts +641 -0
- package/ambient/node-fallback/graceful-fs.d.ts +9 -0
- package/ambient/node-fallback/http.d.ts +326 -0
- package/ambient/node-fallback/http2.d.ts +816 -0
- package/ambient/node-fallback/https.d.ts +59 -0
- package/ambient/node-fallback/module.d.ts +10 -0
- package/ambient/node-fallback/net.d.ts +374 -0
- package/ambient/node-fallback/os.d.ts +288 -0
- package/ambient/node-fallback/path-posix.d.ts +22 -0
- package/ambient/node-fallback/path-win32.d.ts +22 -0
- package/ambient/node-fallback/path.d.ts +55 -0
- package/ambient/node-fallback/process.d.ts +11 -0
- package/ambient/node-fallback/punycode.d.ts +18 -0
- package/ambient/node-fallback/querystring.d.ts +55 -0
- package/ambient/node-fallback/stream-consumers.d.ts +21 -0
- package/ambient/node-fallback/stream-promises.d.ts +28 -0
- package/ambient/node-fallback/stream-web.d.ts +36 -0
- package/ambient/node-fallback/stream.d.ts +644 -0
- package/ambient/node-fallback/string_decoder.d.ts +20 -0
- package/ambient/node-fallback/test.d.ts +236 -0
- package/ambient/node-fallback/timers-promises.d.ts +31 -0
- package/ambient/node-fallback/timers.d.ts +28 -0
- package/ambient/node-fallback/tls.d.ts +169 -0
- package/ambient/node-fallback/url.d.ts +95 -0
- package/ambient/node-fallback/util-types.d.ts +50 -0
- package/ambient/node-fallback/util.d.ts +416 -0
- package/ambient/node-fallback/v8.d.ts +43 -0
- package/ambient/node-fallback/worker_threads.d.ts +113 -0
- package/ambient/node-fallback/zlib.d.ts +422 -0
- package/ambient/scriptc-node-fallback.d.ts +224 -6688
- package/dist/backend/cycle-analysis.js +4 -0
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/executable-features.d.ts +1 -1
- package/dist/backend/executable-features.js +15 -2
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/huge-text.d.ts +16 -0
- package/dist/backend/huge-text.js +103 -0
- package/dist/backend/huge-text.js.map +1 -0
- package/dist/backend/huge-text.test.d.ts +1 -0
- package/dist/backend/huge-text.test.js +73 -0
- package/dist/backend/huge-text.test.js.map +1 -0
- package/dist/backend/library-pack.js +1 -1
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/link-plan-core.d.ts +10 -0
- package/dist/backend/link-plan-core.js +14 -2
- package/dist/backend/link-plan-core.js.map +1 -1
- package/dist/backend/link-plan-core.test.d.ts +1 -0
- package/dist/backend/link-plan-core.test.js +20 -0
- package/dist/backend/link-plan-core.test.js.map +1 -0
- package/dist/backend/link-plan.d.ts +8 -0
- package/dist/backend/link-plan.js +7 -0
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/linker.js +37 -14
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/lld.d.ts +13 -0
- package/dist/backend/lld.js +18 -1
- package/dist/backend/lld.js.map +1 -1
- package/dist/backend/lld.test.js +7 -1
- package/dist/backend/lld.test.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +2 -0
- package/dist/backend/llvm/alloc.js +1 -1
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/arenas.d.ts +78 -0
- package/dist/backend/llvm/arenas.js +313 -0
- package/dist/backend/llvm/arenas.js.map +1 -0
- package/dist/backend/llvm/arenas.test.d.ts +1 -0
- package/dist/backend/llvm/arenas.test.js +140 -0
- package/dist/backend/llvm/arenas.test.js.map +1 -0
- package/dist/backend/llvm/blocks.d.ts +11 -1
- package/dist/backend/llvm/blocks.js +23 -5
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/bytes-headers.d.ts +19 -0
- package/dist/backend/llvm/bytes-headers.js +55 -0
- package/dist/backend/llvm/bytes-headers.js.map +1 -0
- package/dist/backend/llvm/bytes-loop-versions.d.ts +4 -3
- package/dist/backend/llvm/bytes-loop-versions.js +42 -7
- package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
- package/dist/backend/llvm/bytes-loop-versions.test.js +39 -4
- package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.d.ts +5 -0
- package/dist/backend/llvm/call-lifetimes.js +43 -8
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +26 -0
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/checked-narrows.d.ts +3 -0
- package/dist/backend/llvm/checked-narrows.js +8 -1
- package/dist/backend/llvm/checked-narrows.js.map +1 -1
- package/dist/backend/llvm/class-unions.d.ts +21 -0
- package/dist/backend/llvm/class-unions.js +141 -0
- package/dist/backend/llvm/class-unions.js.map +1 -0
- package/dist/backend/llvm/class-unions.test.d.ts +1 -0
- package/dist/backend/llvm/class-unions.test.js +137 -0
- package/dist/backend/llvm/class-unions.test.js.map +1 -0
- package/dist/backend/llvm/classes.d.ts +46 -8
- package/dist/backend/llvm/classes.js +259 -32
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +4 -0
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +23 -0
- package/dist/backend/llvm/common.js +34 -0
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.test.js +39 -0
- package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
- package/dist/backend/llvm/constant-choices.d.ts +32 -0
- package/dist/backend/llvm/constant-choices.js +209 -0
- package/dist/backend/llvm/constant-choices.js.map +1 -0
- package/dist/backend/llvm/constant-choices.test.d.ts +1 -0
- package/dist/backend/llvm/constant-choices.test.js +94 -0
- package/dist/backend/llvm/constant-choices.test.js.map +1 -0
- package/dist/backend/llvm/counted-loops.d.ts +14 -2
- package/dist/backend/llvm/counted-loops.js +60 -7
- package/dist/backend/llvm/counted-loops.js.map +1 -1
- package/dist/backend/llvm/counted-loops.test.d.ts +1 -0
- package/dist/backend/llvm/counted-loops.test.js +34 -0
- package/dist/backend/llvm/counted-loops.test.js.map +1 -0
- package/dist/backend/llvm/cpu-dispatch.d.ts +26 -0
- package/dist/backend/llvm/cpu-dispatch.js +279 -0
- package/dist/backend/llvm/cpu-dispatch.js.map +1 -0
- package/dist/backend/llvm/dense-array-access.d.ts +13 -2
- package/dist/backend/llvm/dense-array-access.js +60 -6
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dyn-handle-tags.test.js +40 -14
- package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +28 -2
- package/dist/backend/llvm/dyn.js +176 -27
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emit-function.js +25 -3
- package/dist/backend/llvm/emit-function.js.map +1 -1
- package/dist/backend/llvm/emit-journal.d.ts +1 -0
- package/dist/backend/llvm/emit-journal.js.map +1 -1
- package/dist/backend/llvm/emit-module.d.ts +5 -3
- package/dist/backend/llvm/emit-module.js +362 -74
- package/dist/backend/llvm/emit-module.js.map +1 -1
- package/dist/backend/llvm/emit-statements.js +327 -59
- package/dist/backend/llvm/emit-statements.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +223 -33
- package/dist/backend/llvm/emitter.js +713 -100
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +20 -1
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +32 -6
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +9 -1
- package/dist/backend/llvm/expr-bytes.js +105 -9
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.d.ts +1 -1
- package/dist/backend/llvm/expr-callbacks.js +29 -22
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +0 -4
- package/dist/backend/llvm/expr-calls.js +116 -14
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.js +77 -12
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +22 -0
- package/dist/backend/llvm/expr-control.d.ts +4 -0
- package/dist/backend/llvm/expr-control.js +485 -426
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.js +4 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +3 -3
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +6 -0
- package/dist/backend/llvm/expr-primitives.js +119 -58
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +11 -2
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-records.d.ts +36 -4
- package/dist/backend/llvm/expr-records.js +249 -37
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +124 -7
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.js +13 -14
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/frame-escapes.d.ts +11 -0
- package/dist/backend/llvm/frame-escapes.js +219 -0
- package/dist/backend/llvm/frame-escapes.js.map +1 -0
- package/dist/backend/llvm/function-layout.d.ts +15 -0
- package/dist/backend/llvm/function-layout.js +40 -0
- package/dist/backend/llvm/function-layout.js.map +1 -0
- package/dist/backend/llvm/heap-census.d.ts +34 -0
- package/dist/backend/llvm/heap-census.js +163 -0
- package/dist/backend/llvm/heap-census.js.map +1 -0
- package/dist/backend/llvm/inline-arrays.d.ts +41 -0
- package/dist/backend/llvm/inline-arrays.js +195 -0
- package/dist/backend/llvm/inline-arrays.js.map +1 -0
- package/dist/backend/llvm/int32-kind-loops.js +2 -0
- package/dist/backend/llvm/int32-kind-loops.js.map +1 -1
- package/dist/backend/llvm/integer-clones.d.ts +32 -5
- package/dist/backend/llvm/integer-clones.js +237 -44
- package/dist/backend/llvm/integer-clones.js.map +1 -1
- package/dist/backend/llvm/integer-clones.test.js +120 -0
- package/dist/backend/llvm/integer-clones.test.js.map +1 -1
- package/dist/backend/llvm/iterative-teardown.test.d.ts +1 -0
- package/dist/backend/llvm/iterative-teardown.test.js +62 -0
- package/dist/backend/llvm/iterative-teardown.test.js.map +1 -0
- package/dist/backend/llvm/js-ic.js +246 -62
- package/dist/backend/llvm/js-ic.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 +2 -2
- package/dist/backend/llvm/lib-datagram.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +153 -16
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.d.ts +8 -0
- package/dist/backend/llvm/lib-filesystem.js +48 -4
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.js +4 -3
- package/dist/backend/llvm/lib-http2.js.map +1 -1
- package/dist/backend/llvm/lib-lookup.js +1 -1
- package/dist/backend/llvm/lib-lookup.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +15 -1
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +32 -8
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.d.ts +3 -0
- package/dist/backend/llvm/lib-shared.js +191 -28
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +1 -1
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +15 -1
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +1 -1
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/local-extents.d.ts +22 -0
- package/dist/backend/llvm/local-extents.js +102 -0
- package/dist/backend/llvm/local-extents.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.js +15 -2
- package/dist/backend/llvm/local-union-storage.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +1 -1
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
- package/dist/backend/llvm/loop-callees.d.ts +21 -0
- package/dist/backend/llvm/loop-callees.js +119 -0
- package/dist/backend/llvm/loop-callees.js.map +1 -0
- package/dist/backend/llvm/loop-callees.test.d.ts +1 -0
- package/dist/backend/llvm/loop-callees.test.js +65 -0
- package/dist/backend/llvm/loop-callees.test.js.map +1 -0
- package/dist/backend/llvm/loop-entry-versions.d.ts +17 -0
- package/dist/backend/llvm/loop-entry-versions.js +185 -0
- package/dist/backend/llvm/loop-entry-versions.js.map +1 -0
- package/dist/backend/llvm/map-number-lookup.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.test.js +13 -4
- package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.d.ts +11 -0
- package/dist/backend/llvm/map-read-lifetimes.js +51 -1
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +6 -3
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.d.ts +67 -10
- package/dist/backend/llvm/nullable-unions.js +218 -22
- package/dist/backend/llvm/nullable-unions.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.test.js +124 -1
- package/dist/backend/llvm/nullable-unions.test.js.map +1 -1
- package/dist/backend/llvm/periodic-guards.d.ts +16 -0
- package/dist/backend/llvm/periodic-guards.js +91 -0
- package/dist/backend/llvm/periodic-guards.js.map +1 -0
- package/dist/backend/llvm/periodic-guards.test.d.ts +1 -0
- package/dist/backend/llvm/periodic-guards.test.js +64 -0
- package/dist/backend/llvm/periodic-guards.test.js.map +1 -0
- package/dist/backend/llvm/publish.d.ts +12 -2
- package/dist/backend/llvm/publish.js +15 -8
- package/dist/backend/llvm/publish.js.map +1 -1
- package/dist/backend/llvm/rebound-parameters.d.ts +4 -1
- package/dist/backend/llvm/rebound-parameters.js +17 -1
- package/dist/backend/llvm/rebound-parameters.js.map +1 -1
- package/dist/backend/llvm/receivers.d.ts +7 -0
- package/dist/backend/llvm/receivers.js +77 -10
- package/dist/backend/llvm/receivers.js.map +1 -1
- package/dist/backend/llvm/record-union-keys.test.js +29 -0
- package/dist/backend/llvm/record-union-keys.test.js.map +1 -1
- package/dist/backend/llvm/record-views.d.ts +29 -0
- package/dist/backend/llvm/record-views.js +249 -0
- package/dist/backend/llvm/record-views.js.map +1 -0
- package/dist/backend/llvm/record-views.test.d.ts +1 -0
- package/dist/backend/llvm/record-views.test.js +118 -0
- package/dist/backend/llvm/record-views.test.js.map +1 -0
- package/dist/backend/llvm/reference-writes.js +21 -0
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/reference-writes.test.js +42 -0
- package/dist/backend/llvm/reference-writes.test.js.map +1 -1
- package/dist/backend/llvm/regex-matchers.d.ts +5 -1
- package/dist/backend/llvm/regex-matchers.js +173 -21
- package/dist/backend/llvm/regex-matchers.js.map +1 -1
- package/dist/backend/llvm/regex-matchers.test.js +39 -1
- package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
- package/dist/backend/llvm/region-groups.d.ts +67 -0
- package/dist/backend/llvm/region-groups.js +1719 -0
- package/dist/backend/llvm/region-groups.js.map +1 -0
- package/dist/backend/llvm/region-groups.test.d.ts +1 -0
- package/dist/backend/llvm/region-groups.test.js +197 -0
- package/dist/backend/llvm/region-groups.test.js.map +1 -0
- package/dist/backend/llvm/region-ir.d.ts +31 -0
- package/dist/backend/llvm/region-ir.js +256 -0
- package/dist/backend/llvm/region-ir.js.map +1 -0
- package/dist/backend/llvm/region-sites.d.ts +20 -0
- package/dist/backend/llvm/region-sites.js +327 -0
- package/dist/backend/llvm/region-sites.js.map +1 -0
- package/dist/backend/llvm/region-sites.test.d.ts +1 -0
- package/dist/backend/llvm/region-sites.test.js +216 -0
- package/dist/backend/llvm/region-sites.test.js.map +1 -0
- package/dist/backend/llvm/repr-report.d.ts +9 -0
- package/dist/backend/llvm/repr-report.js +143 -0
- package/dist/backend/llvm/repr-report.js.map +1 -0
- package/dist/backend/llvm/repr-report.test.d.ts +1 -0
- package/dist/backend/llvm/repr-report.test.js +62 -0
- package/dist/backend/llvm/repr-report.test.js.map +1 -0
- package/dist/backend/llvm/runtime-registries.test.d.ts +1 -0
- package/dist/backend/llvm/runtime-registries.test.js +88 -0
- package/dist/backend/llvm/runtime-registries.test.js.map +1 -0
- package/dist/backend/llvm/serialized-ir-emission.test.js +1 -0
- package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
- package/dist/backend/llvm/shape-union-tags.test.d.ts +1 -0
- package/dist/backend/llvm/shape-union-tags.test.js +75 -0
- package/dist/backend/llvm/shape-union-tags.test.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +60 -10
- package/dist/backend/llvm/shapes.js +233 -51
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +37 -18
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/speculative-integers.d.ts +3 -0
- package/dist/backend/llvm/speculative-integers.js +20 -8
- package/dist/backend/llvm/speculative-integers.js.map +1 -1
- package/dist/backend/llvm/split.js +6 -1
- package/dist/backend/llvm/split.js.map +1 -1
- package/dist/backend/llvm/split.test.js +23 -0
- package/dist/backend/llvm/split.test.js.map +1 -1
- package/dist/backend/llvm/stack-callbacks.js +4 -2
- package/dist/backend/llvm/stack-callbacks.js.map +1 -1
- package/dist/backend/llvm/stack-objects.d.ts +12 -3
- package/dist/backend/llvm/stack-objects.js +110 -22
- package/dist/backend/llvm/stack-objects.js.map +1 -1
- package/dist/backend/llvm/stack-objects.test.js +144 -0
- package/dist/backend/llvm/stack-objects.test.js.map +1 -1
- package/dist/backend/llvm/stack-unions.test.js +24 -1
- package/dist/backend/llvm/stack-unions.test.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.js +2 -1
- package/dist/backend/llvm/string-lifetimes.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-reads.d.ts +4 -0
- package/dist/backend/llvm/string-reads.js +27 -0
- package/dist/backend/llvm/string-reads.js.map +1 -1
- package/dist/backend/llvm/test-boxed-unions.d.ts +10 -8
- package/dist/backend/llvm/test-boxed-unions.js +20 -25
- package/dist/backend/llvm/test-boxed-unions.js.map +1 -1
- package/dist/backend/llvm/union-repr.js +9 -8
- package/dist/backend/llvm/union-repr.js.map +1 -1
- package/dist/backend/llvm/union-retype.test.js +45 -2
- package/dist/backend/llvm/union-retype.test.js.map +1 -1
- package/dist/backend/llvm/unwind-abi.d.ts +20 -8
- package/dist/backend/llvm/unwind-abi.js +177 -70
- package/dist/backend/llvm/unwind-abi.js.map +1 -1
- package/dist/backend/llvm/unwind-abi.test.js +90 -3
- package/dist/backend/llvm/unwind-abi.test.js.map +1 -1
- package/dist/backend/llvm/walk-borrows.d.ts +3 -2
- package/dist/backend/llvm/walk-borrows.js +2 -2
- package/dist/backend/llvm/walk-borrows.js.map +1 -1
- package/dist/backend/llvm/walk-borrows.test.js +18 -0
- package/dist/backend/llvm/walk-borrows.test.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +14 -1
- package/dist/backend/llvm/walkers.js +103 -11
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/llvm/wrapping-sums.d.ts +26 -6
- package/dist/backend/llvm/wrapping-sums.js +64 -12
- package/dist/backend/llvm/wrapping-sums.js.map +1 -1
- package/dist/backend/loop-polls.d.ts +4 -2
- package/dist/backend/loop-polls.js +11 -2
- package/dist/backend/loop-polls.js.map +1 -1
- package/dist/backend/mangle.d.ts +0 -5
- package/dist/backend/mangle.js +0 -9
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/may-throw.d.ts +10 -9
- package/dist/backend/may-throw.js +189 -27
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +44 -7
- package/dist/backend/may-throw.test.js.map +1 -1
- package/dist/backend/native/compiler-fingerprint.d.ts +5 -0
- package/dist/backend/native/compiler-fingerprint.js +62 -16
- package/dist/backend/native/compiler-fingerprint.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +31 -8
- package/dist/backend/native/executable.js +56 -32
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/library.js +3 -4
- package/dist/backend/native/library.js.map +1 -1
- package/dist/backend/native/object-merge.d.ts +3 -1
- package/dist/backend/native/object-merge.js +24 -11
- package/dist/backend/native/object-merge.js.map +1 -1
- package/dist/backend/native/program-shards.js +6 -3
- package/dist/backend/native/program-shards.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +3 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native/vendor.d.ts +1 -1
- package/dist/backend/native-codegen-core.d.ts +15 -6
- package/dist/backend/native-codegen-core.js +20 -9
- package/dist/backend/native-codegen-core.js.map +1 -1
- package/dist/backend/native-codegen.js +51 -5
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +82 -8
- package/dist/backend/native-codegen.test.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/native-profile.d.ts +68 -4
- package/dist/backend/native-profile.js +86 -14
- package/dist/backend/native-profile.js.map +1 -1
- package/dist/backend/native-profile.test.js +127 -4
- package/dist/backend/native-profile.test.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +1 -1
- package/dist/backend/native-toolchain.js +1 -1
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +58 -4
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/native-tools.d.ts +17 -3
- package/dist/backend/native-tools.js +12 -4
- package/dist/backend/native-tools.js.map +1 -1
- package/dist/backend/native-tools.test.d.ts +1 -0
- package/dist/backend/native-tools.test.js +76 -0
- package/dist/backend/native-tools.test.js.map +1 -0
- package/dist/backend/object-localize.js +69 -9
- package/dist/backend/object-localize.js.map +1 -1
- package/dist/backend/object-localize.test.js +99 -10
- package/dist/backend/object-localize.test.js.map +1 -1
- package/dist/backend/publication.d.ts +2 -0
- package/dist/backend/publication.js +4 -0
- package/dist/backend/publication.js.map +1 -1
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-core.d.ts +19 -0
- package/dist/backend/runtime-pack-core.js +23 -3
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack.test.js +48 -2
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/target-cpu.d.ts +2 -0
- package/dist/backend/target-cpu.js +4 -0
- package/dist/backend/target-cpu.js.map +1 -1
- package/dist/backend/target-diagnostics.js +1 -19
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +1 -1
- package/dist/backend/target-diagnostics.test.js.map +1 -1
- package/dist/backend/targets.d.ts +28 -0
- package/dist/backend/targets.js +70 -0
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +75 -1
- package/dist/backend/targets.test.js.map +1 -1
- package/dist/backend/vendor-archives.d.ts +1 -1
- package/dist/backend/vendor-archives.js +25 -12
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/backend/vendor-inputs.d.ts +15 -2
- package/dist/backend/vendor-inputs.js +59 -3
- package/dist/backend/vendor-inputs.js.map +1 -1
- package/dist/backend/vendor-inputs.test.d.ts +1 -0
- package/dist/backend/vendor-inputs.test.js +74 -0
- package/dist/backend/vendor-inputs.test.js.map +1 -0
- package/dist/cli/command.js +95 -5
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/host.d.ts +3 -0
- package/dist/cli/output-options.d.ts +3 -0
- package/dist/cli/output-options.js +8 -2
- package/dist/cli/output-options.js.map +1 -1
- package/dist/cli/usage.d.ts +28 -1
- package/dist/cli/usage.js +56 -6
- package/dist/cli/usage.js.map +1 -1
- package/dist/compat/fetch-profile.d.ts +3 -0
- package/dist/compat/fetch-profile.js +23 -3
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/compile-types.d.ts +45 -0
- package/dist/contracts/check.js +70 -2
- package/dist/contracts/check.js.map +1 -1
- package/dist/contracts/int32-elements.d.ts +2 -1
- package/dist/contracts/int32-elements.js.map +1 -1
- package/dist/coverage/report.d.ts +5 -1
- package/dist/coverage/report.js +83 -2
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/verdict-cache.d.ts +2 -0
- package/dist/coverage/verdict-cache.js +5 -10
- package/dist/coverage/verdict-cache.js.map +1 -1
- package/dist/diagnostics/codes.d.ts +145 -0
- package/dist/diagnostics/codes.js +159 -0
- package/dist/diagnostics/codes.js.map +1 -0
- package/dist/diagnostics/codes.test.d.ts +1 -0
- package/dist/diagnostics/codes.test.js +78 -0
- package/dist/diagnostics/codes.test.js.map +1 -0
- package/dist/diagnostics/diagnostic.d.ts +101 -2
- package/dist/diagnostics/diagnostic.js +155 -0
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/dynamic-slots.d.ts +23 -0
- package/dist/diagnostics/dynamic-slots.js +29 -0
- package/dist/diagnostics/dynamic-slots.js.map +1 -0
- package/dist/diagnostics/dynamic-tier.d.ts +6 -0
- package/dist/diagnostics/dynamic-tier.js +8 -1
- package/dist/diagnostics/dynamic-tier.js.map +1 -1
- package/dist/diagnostics/envelope.d.ts +43 -1
- package/dist/diagnostics/envelope.js +19 -1
- package/dist/diagnostics/envelope.js.map +1 -1
- package/dist/diagnostics/envelope.test.js.map +1 -1
- package/dist/diagnostics/render.d.ts +3 -1
- package/dist/diagnostics/render.js +27 -6
- package/dist/diagnostics/render.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +41 -0
- package/dist/executable/executable-cache.js +39 -1
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +4 -1
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.d.ts +2 -1
- package/dist/executable/prepare.js +421 -10
- package/dist/executable/prepare.js.map +1 -1
- package/dist/frontend/analysis.js +1 -0
- package/dist/frontend/analysis.js.map +1 -1
- package/dist/frontend/canon-map.d.ts +17 -0
- package/dist/frontend/canon-map.js +177 -0
- package/dist/frontend/canon-map.js.map +1 -0
- package/dist/frontend/canon.d.ts +122 -0
- package/dist/frontend/canon.js +462 -0
- package/dist/frontend/canon.js.map +1 -0
- package/dist/frontend/contract-types.d.ts +9 -1
- package/dist/frontend/contract-types.js +46 -4
- package/dist/frontend/contract-types.js.map +1 -1
- package/dist/frontend/decl-projection.d.ts +3 -0
- package/dist/frontend/decl-projection.js +121 -3
- package/dist/frontend/decl-projection.js.map +1 -1
- package/dist/frontend/dts-paths.d.ts +17 -4
- package/dist/frontend/dts-paths.js +149 -5
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/fork-target.js +4 -4
- package/dist/frontend/fork-target.js.map +1 -1
- package/dist/frontend/fork-target.test.js +3 -3
- package/dist/frontend/fork-target.test.js.map +1 -1
- package/dist/frontend/heritage-elements.d.ts +15 -0
- package/dist/frontend/heritage-elements.js +18 -0
- package/dist/frontend/heritage-elements.js.map +1 -0
- package/dist/frontend/heritage-elements.test.d.ts +1 -0
- package/dist/frontend/heritage-elements.test.js +68 -0
- package/dist/frontend/heritage-elements.test.js.map +1 -0
- package/dist/frontend/input-tracker.d.ts +20 -0
- package/dist/frontend/input-tracker.js +74 -4
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +66 -0
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lowering/any-collection-residue.d.ts +9 -0
- package/dist/frontend/lowering/any-collection-residue.js +42 -0
- package/dist/frontend/lowering/any-collection-residue.js.map +1 -0
- package/dist/frontend/lowering/array-values.d.ts +44 -2
- package/dist/frontend/lowering/array-values.js +193 -3
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/builtin-namespaces.d.ts +6 -2
- package/dist/frontend/lowering/builtin-namespaces.js +28 -6
- package/dist/frontend/lowering/builtin-namespaces.js.map +1 -1
- package/dist/frontend/lowering/builtins/array-classes.d.ts +69 -0
- package/dist/frontend/lowering/builtins/array-classes.js +729 -0
- package/dist/frontend/lowering/builtins/array-classes.js.map +1 -0
- package/dist/frontend/lowering/builtins/callable-aliases.js +4 -0
- package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-methods.js +34 -0
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
- package/dist/frontend/lowering/builtins/disposable-stack.js +1 -3
- package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -1
- package/dist/frontend/lowering/builtins/errors.d.ts +13 -9
- package/dist/frontend/lowering/builtins/errors.js +136 -56
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +85 -4
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.d.ts +11 -6
- package/dist/frontend/lowering/builtins/filesystem.js +270 -24
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/json.js +7 -1
- package/dist/frontend/lowering/builtins/json.js.map +1 -1
- package/dist/frontend/lowering/builtins/mime.d.ts +25 -0
- package/dist/frontend/lowering/builtins/mime.js +167 -0
- package/dist/frontend/lowering/builtins/mime.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-bindings.d.ts +3 -0
- package/dist/frontend/lowering/builtins/module-bindings.js +6 -0
- package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-calls.js +79 -12
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-resolution.d.ts +7 -4
- package/dist/frontend/lowering/builtins/module-resolution.js +115 -13
- package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
- package/dist/frontend/lowering/builtins/navigator.d.ts +3 -1
- package/dist/frontend/lowering/builtins/navigator.js +22 -8
- package/dist/frontend/lowering/builtins/navigator.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.js +49 -9
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.js +18 -3
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/promisify-callback.d.ts +6 -2
- package/dist/frontend/lowering/builtins/promisify-callback.js +19 -6
- package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -1
- package/dist/frontend/lowering/builtins/properties.js +23 -5
- package/dist/frontend/lowering/builtins/properties.js.map +1 -1
- package/dist/frontend/lowering/builtins/web-streams-dyn.d.ts +42 -0
- package/dist/frontend/lowering/builtins/web-streams-dyn.js +321 -0
- package/dist/frontend/lowering/builtins/web-streams-dyn.js.map +1 -0
- package/dist/frontend/lowering/builtins/x509.js +35 -5
- package/dist/frontend/lowering/builtins/x509.js.map +1 -1
- package/dist/frontend/lowering/call-arguments.d.ts +14 -1
- package/dist/frontend/lowering/call-arguments.js +84 -70
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.js +108 -24
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/class-attributes.js +6 -5
- package/dist/frontend/lowering/class-attributes.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.js +40 -19
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-protocol-dispatch.js +4 -0
- package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.d.ts +61 -1
- package/dist/frontend/lowering/class-protocols.js +297 -21
- package/dist/frontend/lowering/class-protocols.js.map +1 -1
- package/dist/frontend/lowering/class-to-primitive.d.ts +3 -2
- package/dist/frontend/lowering/class-to-primitive.js +15 -5
- package/dist/frontend/lowering/class-to-primitive.js.map +1 -1
- package/dist/frontend/lowering/coercions/asserted.d.ts +16 -0
- package/dist/frontend/lowering/coercions/asserted.js +79 -0
- package/dist/frontend/lowering/coercions/asserted.js.map +1 -0
- package/dist/frontend/lowering/coercions/function-adapters.d.ts +13 -0
- package/dist/frontend/lowering/coercions/function-adapters.js +70 -3
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
- package/dist/frontend/lowering/coercions/state.d.ts +23 -0
- package/dist/frontend/lowering/coercions/state.js +9 -0
- package/dist/frontend/lowering/coercions/state.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural-plans.js +67 -1
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.d.ts +10 -0
- package/dist/frontend/lowering/coercions/structural.js +134 -4
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/coercions/unions.d.ts +11 -0
- package/dist/frontend/lowering/coercions/unions.js +83 -4
- package/dist/frontend/lowering/coercions/unions.js.map +1 -1
- package/dist/frontend/lowering/completion-callbacks.js +3 -2
- package/dist/frontend/lowering/completion-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +10 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +224 -81
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-concat.d.ts +5 -2
- package/dist/frontend/lowering/containers/array-concat.js +76 -7
- package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.d.ts +9 -4
- package/dist/frontend/lowering/containers/array-construction.js +112 -100
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.js +193 -45
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.d.ts +3 -0
- package/dist/frontend/lowering/containers/array-pipelines.js +81 -13
- package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.d.ts +1 -0
- package/dist/frontend/lowering/containers/callback-arguments.js +28 -2
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +13 -3
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/filter-predicates.js +34 -3
- package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.d.ts +34 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +131 -72
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.js +43 -6
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
- package/dist/frontend/lowering/decl-origin.d.ts +49 -0
- package/dist/frontend/lowering/decl-origin.js +402 -0
- package/dist/frontend/lowering/decl-origin.js.map +1 -0
- package/dist/frontend/lowering/deferred-module-initializers.d.ts +2 -0
- package/dist/frontend/lowering/deferred-module-initializers.js +7 -0
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/divergences.js +5 -0
- package/dist/frontend/lowering/divergences.js.map +1 -1
- package/dist/frontend/lowering/dynamic-tier.d.ts +8 -2
- package/dist/frontend/lowering/dynamic-tier.js +111 -3
- package/dist/frontend/lowering/dynamic-tier.js.map +1 -1
- package/dist/frontend/lowering/expressions/array-literals.d.ts +14 -1
- package/dist/frontend/lowering/expressions/array-literals.js +43 -5
- package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/asserted-receiver.d.ts +48 -0
- package/dist/frontend/lowering/expressions/asserted-receiver.js +233 -0
- package/dist/frontend/lowering/expressions/asserted-receiver.js.map +1 -0
- package/dist/frontend/lowering/expressions/binary.js +136 -1
- package/dist/frontend/lowering/expressions/binary.js.map +1 -1
- package/dist/frontend/lowering/expressions/element-access.d.ts +7 -0
- package/dist/frontend/lowering/expressions/element-access.js +363 -12
- package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/identifiers.d.ts +3 -0
- package/dist/frontend/lowering/expressions/identifiers.js +78 -62
- package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
- package/dist/frontend/lowering/expressions/message-listeners.d.ts +3 -0
- package/dist/frontend/lowering/expressions/message-listeners.js +19 -0
- package/dist/frontend/lowering/expressions/message-listeners.js.map +1 -0
- package/dist/frontend/lowering/expressions/narrowing.js +224 -6
- package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +5 -2
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.d.ts +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +282 -24
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/property-access.d.ts +15 -3
- package/dist/frontend/lowering/expressions/property-access.js +397 -74
- package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/relational.js +202 -70
- package/dist/frontend/lowering/expressions/relational.js.map +1 -1
- package/dist/frontend/lowering/expressions/typeof.js +9 -1
- package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-fields.d.ts +28 -8
- package/dist/frontend/lowering/expressions/union-fields.js +168 -14
- package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
- package/dist/frontend/lowering/frozen-records.d.ts +8 -0
- package/dist/frontend/lowering/frozen-records.js +56 -9
- package/dist/frontend/lowering/frozen-records.js.map +1 -1
- package/dist/frontend/lowering/function-context.d.ts +3 -0
- package/dist/frontend/lowering/function-context.js +4 -1
- package/dist/frontend/lowering/function-context.js.map +1 -1
- package/dist/frontend/lowering/function-returns.d.ts +4 -0
- package/dist/frontend/lowering/function-returns.js +231 -2
- package/dist/frontend/lowering/function-returns.js.map +1 -1
- package/dist/frontend/lowering/generator-delegation.js +3 -2
- package/dist/frontend/lowering/generator-delegation.js.map +1 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +26 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +294 -2
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +10 -0
- package/dist/frontend/lowering/generic-functions.js +67 -7
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/global-values.d.ts +37 -0
- package/dist/frontend/lowering/global-values.js +395 -0
- package/dist/frontend/lowering/global-values.js.map +1 -0
- package/dist/frontend/lowering/handle-properties.js +3 -2
- package/dist/frontend/lowering/handle-properties.js.map +1 -1
- package/dist/frontend/lowering/handle-properties.test.d.ts +1 -0
- package/dist/frontend/lowering/handle-properties.test.js +25 -0
- package/dist/frontend/lowering/handle-properties.test.js.map +1 -0
- package/dist/frontend/lowering/import-meta.d.ts +3 -0
- package/dist/frontend/lowering/import-meta.js +8 -3
- package/dist/frontend/lowering/import-meta.js.map +1 -1
- package/dist/frontend/lowering/iterator-adapters.js +3 -3
- package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
- package/dist/frontend/lowering/key-order-witness.d.ts +2 -0
- package/dist/frontend/lowering/key-order-witness.js +10 -0
- package/dist/frontend/lowering/key-order-witness.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.d.ts +5 -1
- package/dist/frontend/lowering/lower-array-sort.js +16 -2
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.d.ts +7 -0
- package/dist/frontend/lowering/lower-builtin-values.js +65 -16
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +222 -24
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +6 -0
- package/dist/frontend/lowering/lower-classes.js +154 -20
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-console.js +25 -2
- package/dist/frontend/lowering/lower-console.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +29 -0
- package/dist/frontend/lowering/lower-exprs.js +544 -24
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +93 -18
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.d.ts +4 -1
- package/dist/frontend/lowering/lower-global-value.js +10 -3
- package/dist/frontend/lowering/lower-global-value.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +44 -4
- package/dist/frontend/lowering/lower-inspect.js +723 -26
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +3 -1
- package/dist/frontend/lowering/lower-modules.js +189 -24
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +7 -0
- package/dist/frontend/lowering/lower-namespaces.js +23 -0
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-node-island.d.ts +74 -0
- package/dist/frontend/lowering/lower-node-island.js +1931 -0
- package/dist/frontend/lowering/lower-node-island.js.map +1 -0
- package/dist/frontend/lowering/lower-server.js +44 -0
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-shared-modules.d.ts +27 -0
- package/dist/frontend/lowering/lower-shared-modules.js +611 -0
- package/dist/frontend/lowering/lower-shared-modules.js.map +1 -0
- package/dist/frontend/lowering/lower-stdlib.js +85 -9
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +2 -6
- package/dist/frontend/lowering/lower-stmts.js +781 -143
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +548 -36
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.js +9 -0
- package/dist/frontend/lowering/lower-timers.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +514 -10
- package/dist/frontend/lowering/lowerer.js +2667 -163
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +44 -1
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/maybe-promise.d.ts +6 -0
- package/dist/frontend/lowering/maybe-promise.js +13 -0
- package/dist/frontend/lowering/maybe-promise.js.map +1 -1
- package/dist/frontend/lowering/module-namespace-elements.d.ts +12 -0
- package/dist/frontend/lowering/module-namespace-elements.js +114 -18
- package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
- package/dist/frontend/lowering/nan-coded-reads.d.ts +11 -0
- package/dist/frontend/lowering/nan-coded-reads.js +45 -2
- package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
- package/dist/frontend/lowering/narrowing-stability.d.ts +4 -0
- package/dist/frontend/lowering/narrowing-stability.js +14 -6
- package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
- package/dist/frontend/lowering/receiver-returns.d.ts +3 -0
- package/dist/frontend/lowering/receiver-returns.js +134 -0
- package/dist/frontend/lowering/receiver-returns.js.map +1 -0
- package/dist/frontend/lowering/record-inherited.d.ts +26 -0
- package/dist/frontend/lowering/record-inherited.js +807 -0
- package/dist/frontend/lowering/record-inherited.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-elements.d.ts +31 -1
- package/dist/frontend/lowering/runtime-optional-elements.js +105 -13
- package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-guards.d.ts +3 -0
- package/dist/frontend/lowering/runtime-optional-guards.js +35 -7
- package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-guards.test.js +59 -1
- package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -1
- package/dist/frontend/lowering/stable-names.d.ts +8 -0
- package/dist/frontend/lowering/stable-names.js +22 -0
- package/dist/frontend/lowering/stable-names.js.map +1 -1
- package/dist/frontend/lowering/stable-names.test.d.ts +1 -0
- package/dist/frontend/lowering/stable-names.test.js +16 -0
- package/dist/frontend/lowering/stable-names.test.js.map +1 -0
- package/dist/frontend/lowering/static-typeof.d.ts +5 -4
- package/dist/frontend/lowering/static-typeof.js +10 -4
- package/dist/frontend/lowering/static-typeof.js.map +1 -1
- package/dist/frontend/lowering/structural-instances.d.ts +22 -0
- package/dist/frontend/lowering/structural-instances.js +282 -0
- package/dist/frontend/lowering/structural-instances.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +3 -0
- package/dist/frontend/lowering/surfaces.js +108 -12
- 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 +32 -0
- package/dist/frontend/lowering/symbol-fields.js.map +1 -1
- package/dist/frontend/lowering/type-failure.d.ts +17 -0
- package/dist/frontend/lowering/type-failure.js +163 -0
- package/dist/frontend/lowering/type-failure.js.map +1 -0
- package/dist/frontend/lowering/typed-arguments.d.ts +5 -6
- package/dist/frontend/lowering/typed-arguments.js +10 -2
- package/dist/frontend/lowering/typed-arguments.js.map +1 -1
- package/dist/frontend/lowering/union-narrow.d.ts +9 -1
- package/dist/frontend/lowering/union-narrow.js +31 -2
- package/dist/frontend/lowering/union-narrow.js.map +1 -1
- package/dist/frontend/lowering/union-retag.test.js +42 -2
- package/dist/frontend/lowering/union-retag.test.js.map +1 -1
- package/dist/frontend/lowering/unit-journal.d.ts +194 -0
- package/dist/frontend/lowering/unit-journal.js +556 -0
- package/dist/frontend/lowering/unit-journal.js.map +1 -0
- package/dist/frontend/lowering/unit-journal.test.d.ts +1 -0
- package/dist/frontend/lowering/unit-journal.test.js +335 -0
- package/dist/frontend/lowering/unit-journal.test.js.map +1 -0
- package/dist/frontend/lowering/width-lift.d.ts +19 -0
- package/dist/frontend/node-api-import.d.ts +21 -0
- package/dist/frontend/node-api-import.js +88 -0
- package/dist/frontend/node-api-import.js.map +1 -0
- package/dist/frontend/npm-static-type-exports-host.js +4 -3
- package/dist/frontend/npm-static-type-exports-host.js.map +1 -1
- package/dist/frontend/npm-static.js +9 -2
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/package-shims.d.ts +6 -2
- package/dist/frontend/package-shims.js +13 -2
- package/dist/frontend/package-shims.js.map +1 -1
- package/dist/frontend/pipeline.d.ts +11 -4
- package/dist/frontend/pipeline.js +249 -26
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/process-fork.d.ts +3 -0
- package/dist/frontend/process-fork.js.map +1 -1
- package/dist/frontend/program-analysis.d.ts +6 -0
- package/dist/frontend/program-analysis.js +4 -0
- package/dist/frontend/program-analysis.js.map +1 -1
- package/dist/frontend/program.d.ts +12 -1
- package/dist/frontend/program.js +256 -36
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/resolve.js +8 -2
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/shape-inference/analyze.d.ts +23 -1
- package/dist/frontend/shape-inference/analyze.js +982 -97
- package/dist/frontend/shape-inference/analyze.js.map +1 -1
- package/dist/frontend/shape-inference/constant-graphs.d.ts +2 -0
- package/dist/frontend/shape-inference/constant-graphs.js +39 -4
- package/dist/frontend/shape-inference/constant-graphs.js.map +1 -1
- package/dist/frontend/shape-inference/domain.d.ts +2 -0
- package/dist/frontend/shape-inference/domain.js.map +1 -1
- package/dist/frontend/shape-inference/fallback.d.ts +17 -0
- package/dist/frontend/shape-inference/fallback.js +303 -0
- package/dist/frontend/shape-inference/fallback.js.map +1 -0
- package/dist/frontend/shape-inference/index.d.ts +75 -1
- package/dist/frontend/shape-inference/index.js +531 -2
- package/dist/frontend/shape-inference/index.js.map +1 -1
- package/dist/frontend/shape-inference/inferred-checks.d.ts +2 -0
- package/dist/frontend/shape-inference/inferred-checks.js +90 -0
- package/dist/frontend/shape-inference/inferred-checks.js.map +1 -0
- package/dist/frontend/shape-inference/memo.d.ts +30 -0
- package/dist/frontend/shape-inference/memo.js +99 -0
- package/dist/frontend/shape-inference/memo.js.map +1 -0
- package/dist/frontend/shape-inference/overlay.d.ts +81 -0
- package/dist/frontend/shape-inference/overlay.js +1160 -0
- package/dist/frontend/shape-inference/overlay.js.map +1 -0
- package/dist/frontend/shape-inference/registry.test.d.ts +1 -0
- package/dist/frontend/shape-inference/registry.test.js +34 -0
- package/dist/frontend/shape-inference/registry.test.js.map +1 -0
- package/dist/frontend/shape-inference/report.js +42 -8
- package/dist/frontend/shape-inference/report.js.map +1 -1
- package/dist/frontend/shape-inference/static-objects.d.ts +29 -0
- package/dist/frontend/shape-inference/static-objects.js +1951 -0
- package/dist/frontend/shape-inference/static-objects.js.map +1 -0
- package/dist/frontend/tier-analysis.d.ts +53 -1
- package/dist/frontend/tier-analysis.js +133 -0
- package/dist/frontend/tier-analysis.js.map +1 -1
- package/dist/frontend/ts7/api.js +4 -2
- package/dist/frontend/ts7/api.js.map +1 -1
- package/dist/frontend/ts7/ast-node.d.ts +9 -0
- package/dist/frontend/ts7/ast-node.js +42 -10
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +23 -0
- package/dist/frontend/ts7/ast-node.test.js.map +1 -1
- package/dist/frontend/ts7/ast-wire-protocols.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-wire-protocols.test.js +93 -0
- package/dist/frontend/ts7/ast-wire-protocols.test.js.map +1 -0
- package/dist/frontend/ts7/ast-wire.d.ts +18 -0
- package/dist/frontend/ts7/ast-wire.js +66 -4
- package/dist/frontend/ts7/ast-wire.js.map +1 -1
- package/dist/frontend/ts7/checker-server.d.ts +12 -11
- package/dist/frontend/ts7/checker-server.js +28 -12
- package/dist/frontend/ts7/checker-server.js.map +1 -1
- package/dist/frontend/ts7/checker-server.test.js +8 -3
- package/dist/frontend/ts7/checker-server.test.js.map +1 -1
- package/dist/frontend/ts7/checker.d.ts +4 -0
- package/dist/frontend/ts7/checker.js +9 -0
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.js +216 -205
- package/dist/frontend/ts7/checker.test.js.map +1 -1
- package/dist/frontend/ts7/lib-diagnostics.d.ts +71 -4
- package/dist/frontend/ts7/lib-diagnostics.js +337 -20
- package/dist/frontend/ts7/lib-diagnostics.js.map +1 -1
- package/dist/frontend/ts7/lib-diagnostics.test.js +268 -5
- package/dist/frontend/ts7/lib-diagnostics.test.js.map +1 -1
- package/dist/frontend/ts7/native-api.d.ts +4 -0
- package/dist/frontend/ts7/native-api.js +36 -1
- package/dist/frontend/ts7/native-api.js.map +1 -1
- package/dist/frontend/ts7/program-host.d.ts +19 -2
- package/dist/frontend/ts7/program-host.js +69 -9
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/program-host.test.js +42 -1
- package/dist/frontend/ts7/program-host.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-filesystem.d.ts +4 -2
- package/dist/frontend/ts7/rpc-filesystem.js +23 -2
- package/dist/frontend/ts7/rpc-filesystem.js.map +1 -1
- package/dist/frontend/ts7/rpc-filesystem.test.js +28 -2
- package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.js +73 -5
- package/dist/frontend/ts7/semantic-checker.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.test.js +106 -74
- package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.d.ts +2 -6
- package/dist/frontend/ts7/semantic-model-71.test.d.ts +1 -0
- package/dist/frontend/ts7/semantic-model-71.test.js +131 -0
- package/dist/frontend/ts7/semantic-model-71.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-model.d.ts +121 -3
- package/dist/frontend/ts7/semantic-model.js +245 -8
- package/dist/frontend/ts7/semantic-model.js.map +1 -1
- package/dist/frontend/ts7/session.d.ts +19 -1
- package/dist/frontend/ts7/session.js +111 -11
- package/dist/frontend/ts7/session.js.map +1 -1
- package/dist/frontend/ts7/session.test.js +259 -239
- package/dist/frontend/ts7/session.test.js.map +1 -1
- package/dist/frontend/ts7/test-servers.d.ts +12 -0
- package/dist/frontend/ts7/test-servers.js +16 -0
- package/dist/frontend/ts7/test-servers.js.map +1 -0
- package/dist/frontend/tsc-codes.js +6 -3
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +61 -1
- package/dist/frontend/type-mapper.js +577 -28
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-patches/command.d.ts +19 -0
- package/dist/frontend/type-patches/command.js +352 -0
- package/dist/frontend/type-patches/command.js.map +1 -0
- package/dist/frontend/type-patches/layer.d.ts +45 -0
- package/dist/frontend/type-patches/layer.js +409 -0
- package/dist/frontend/type-patches/layer.js.map +1 -0
- package/dist/frontend/type-patches/locate.d.ts +41 -0
- package/dist/frontend/type-patches/locate.js +914 -0
- package/dist/frontend/type-patches/locate.js.map +1 -0
- package/dist/frontend/type-patches/locate.test.d.ts +1 -0
- package/dist/frontend/type-patches/locate.test.js +179 -0
- package/dist/frontend/type-patches/locate.test.js.map +1 -0
- package/dist/frontend/type-patches/selector.d.ts +43 -0
- package/dist/frontend/type-patches/selector.js +126 -0
- package/dist/frontend/type-patches/selector.js.map +1 -0
- package/dist/frontend/type-patches/selector.test.d.ts +1 -0
- package/dist/frontend/type-patches/selector.test.js +56 -0
- package/dist/frontend/type-patches/selector.test.js.map +1 -0
- package/dist/frontend/type-patches/semver.d.ts +19 -0
- package/dist/frontend/type-patches/semver.js +221 -0
- package/dist/frontend/type-patches/semver.js.map +1 -0
- package/dist/frontend/type-patches/semver.test.d.ts +1 -0
- package/dist/frontend/type-patches/semver.test.js +47 -0
- package/dist/frontend/type-patches/semver.test.js.map +1 -0
- package/dist/frontend/worker-target.test.js +2 -2
- package/dist/frontend/worker-target.test.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +292 -27
- package/dist/index.js.map +1 -1
- package/dist/ir/builtin-effects.js +51 -5
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +4 -3
- package/dist/ir/builtin-signatures.js +277 -12
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/callback-specialization.js +108 -67
- package/dist/ir/callback-specialization.js.map +1 -1
- package/dist/ir/capture-values.d.ts +7 -1
- package/dist/ir/capture-values.js +28 -5
- package/dist/ir/capture-values.js.map +1 -1
- package/dist/ir/char-unit-locals.js +38 -42
- package/dist/ir/char-unit-locals.js.map +1 -1
- package/dist/ir/expression-inlining.js +12 -6
- package/dist/ir/expression-inlining.js.map +1 -1
- package/dist/ir/fields.generated.d.ts +751 -0
- package/dist/ir/fields.generated.js +2071 -0
- package/dist/ir/fields.generated.js.map +1 -0
- package/dist/ir/fields.test.d.ts +1 -0
- package/dist/ir/fields.test.js +113 -0
- package/dist/ir/fields.test.js.map +1 -0
- package/dist/ir/function-references.js +4 -0
- package/dist/ir/function-references.js.map +1 -1
- package/dist/ir/function-references.test.js +25 -0
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/inline-array-sources.d.ts +15 -0
- package/dist/ir/inline-array-sources.js +1825 -0
- package/dist/ir/inline-array-sources.js.map +1 -0
- package/dist/ir/inline-arrays.d.ts +41 -0
- package/dist/ir/inline-arrays.js +533 -0
- package/dist/ir/inline-arrays.js.map +1 -0
- package/dist/ir/inline-arrays.test.d.ts +1 -0
- package/dist/ir/inline-arrays.test.js +225 -0
- package/dist/ir/inline-arrays.test.js.map +1 -0
- package/dist/ir/int32-slots.d.ts +6 -0
- package/dist/ir/int32-slots.js +154 -16
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +48 -0
- package/dist/ir/int32-slots.test.js.map +1 -1
- package/dist/ir/integer-loops.d.ts +12 -0
- package/dist/ir/integer-loops.js +23 -0
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +7 -1
- package/dist/ir/integer-ranges.js +29 -2
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/intrinsic-signatures.js +2 -1
- package/dist/ir/intrinsic-signatures.js.map +1 -1
- package/dist/ir/ir.d.ts +103 -5
- package/dist/ir/ir.js +38 -4
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +134 -1
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/jsval.js +211 -29
- package/dist/ir/jsval.js.map +1 -1
- package/dist/ir/jsval.test.js +120 -0
- package/dist/ir/jsval.test.js.map +1 -1
- package/dist/ir/loop-entry-ranges.d.ts +38 -0
- package/dist/ir/loop-entry-ranges.js +259 -0
- package/dist/ir/loop-entry-ranges.js.map +1 -0
- package/dist/ir/loop-entry-ranges.test.d.ts +1 -0
- package/dist/ir/loop-entry-ranges.test.js +191 -0
- package/dist/ir/loop-entry-ranges.test.js.map +1 -0
- package/dist/ir/node-index.d.ts +3 -0
- package/dist/ir/node-index.js +6 -0
- package/dist/ir/node-index.js.map +1 -1
- package/dist/ir/numeric-call-specialization.d.ts +9 -6
- package/dist/ir/numeric-call-specialization.js +164 -34
- package/dist/ir/numeric-call-specialization.js.map +1 -1
- package/dist/ir/paired-while-loops.js +23 -19
- package/dist/ir/paired-while-loops.js.map +1 -1
- package/dist/ir/parameter-versions.js +6 -3
- package/dist/ir/parameter-versions.js.map +1 -1
- package/dist/ir/receiver-readers.d.ts +10 -0
- package/dist/ir/receiver-readers.js +65 -28
- package/dist/ir/receiver-readers.js.map +1 -1
- package/dist/ir/row-pairs.d.ts +9 -1
- package/dist/ir/row-pairs.js +136 -43
- package/dist/ir/row-pairs.js.map +1 -1
- package/dist/ir/row-pairs.test.js +25 -5
- package/dist/ir/row-pairs.test.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +33 -1
- package/dist/ir/runtime-features.js +104 -6
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/runtime-features.test.js +13 -0
- package/dist/ir/runtime-features.test.js.map +1 -1
- package/dist/ir/saturating-loop-jams.d.ts +24 -0
- package/dist/ir/saturating-loop-jams.js +420 -0
- package/dist/ir/saturating-loop-jams.js.map +1 -0
- package/dist/ir/saturating-loop-jams.test.d.ts +1 -0
- package/dist/ir/saturating-loop-jams.test.js +196 -0
- package/dist/ir/saturating-loop-jams.test.js.map +1 -0
- package/dist/ir/scalar-records.js +9 -3
- package/dist/ir/scalar-records.js.map +1 -1
- package/dist/ir/self-captures.js +2 -1
- package/dist/ir/self-captures.js.map +1 -1
- package/dist/ir/serialize.d.ts +5 -1
- package/dist/ir/serialize.js +7 -1
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/traverse.js +3 -0
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +91 -9
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/ir-policy.js +1 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/native/cache.js +2 -0
- package/dist/native/cache.js.map +1 -1
- package/dist/native/cli.js +54 -7
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.d.ts +3 -0
- package/dist/native/compiler.js +173 -36
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/compiler.test.js +86 -3
- package/dist/native/compiler.test.js.map +1 -1
- package/dist/native/executable-cache.d.ts +20 -2
- package/dist/native/executable-cache.js +17 -10
- package/dist/native/executable-cache.js.map +1 -1
- package/dist/native/executable-cache.test.js +38 -1
- package/dist/native/executable-cache.test.js.map +1 -1
- package/dist/native/linker-job.d.ts +71 -0
- package/dist/native/linker-job.js +242 -0
- package/dist/native/linker-job.js.map +1 -0
- package/dist/native/linker-job.test.d.ts +1 -0
- package/dist/native/linker-job.test.js +349 -0
- package/dist/native/linker-job.test.js.map +1 -0
- package/dist/native/prepare.js +15 -2
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/sanitizer.js +10 -15
- package/dist/native/sanitizer.js.map +1 -1
- package/dist/native/sanitizer.test.js +152 -66
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/native/toolchain.d.ts +11 -2
- package/dist/native/toolchain.js +43 -17
- package/dist/native/toolchain.js.map +1 -1
- package/dist/native/toolchain.test.js +75 -0
- package/dist/native/toolchain.test.js.map +1 -1
- package/dist/node-islands/boundary.d.ts +37 -0
- package/dist/node-islands/boundary.js +135 -0
- package/dist/node-islands/boundary.js.map +1 -0
- package/dist/node-islands/classify.js +1 -1
- package/dist/node-islands/classify.js.map +1 -1
- package/dist/node-islands/effect-gate.d.ts +11 -0
- package/dist/node-islands/effect-gate.js +746 -0
- package/dist/node-islands/effect-gate.js.map +1 -0
- package/dist/node-islands/effect-gate.test.d.ts +1 -0
- package/dist/node-islands/effect-gate.test.js +152 -0
- package/dist/node-islands/effect-gate.test.js.map +1 -0
- package/dist/node-islands/libnode-pack.d.ts +68 -0
- package/dist/node-islands/libnode-pack.js +199 -0
- package/dist/node-islands/libnode-pack.js.map +1 -0
- package/dist/node-islands/libnode-pack.test.d.ts +1 -0
- package/dist/node-islands/libnode-pack.test.js +258 -0
- package/dist/node-islands/libnode-pack.test.js.map +1 -0
- package/dist/node-islands/libnode.d.ts +32 -0
- package/dist/node-islands/libnode.js +212 -0
- package/dist/node-islands/libnode.js.map +1 -0
- package/dist/node-islands/libnode.test.d.ts +1 -0
- package/dist/node-islands/libnode.test.js +170 -0
- package/dist/node-islands/libnode.test.js.map +1 -0
- package/dist/node-islands/modules.d.ts +96 -0
- package/dist/node-islands/modules.js +803 -0
- package/dist/node-islands/modules.js.map +1 -0
- package/dist/node-islands/modules.test.d.ts +1 -0
- package/dist/node-islands/modules.test.js +276 -0
- package/dist/node-islands/modules.test.js.map +1 -0
- package/dist/node-islands/resolve.d.ts +8 -0
- package/dist/node-islands/resolve.js +10 -0
- package/dist/node-islands/resolve.js.map +1 -0
- package/dist/node-islands/snapshot.d.ts +16 -0
- package/dist/node-islands/snapshot.js +486 -0
- package/dist/node-islands/snapshot.js.map +1 -0
- package/dist/node-islands/snapshot.test.d.ts +1 -0
- package/dist/node-islands/snapshot.test.js +56 -0
- package/dist/node-islands/snapshot.test.js.map +1 -0
- package/dist/project-config.d.ts +37 -1
- package/dist/project-config.js +159 -7
- package/dist/project-config.js.map +1 -1
- package/dist/project-config.test.js +153 -0
- package/dist/project-config.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/package.json +24 -21
- package/surface-manifest.json +47 -7
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import type { DiagnosticCode } from "../../diagnostics/codes.js";
|
|
2
|
+
import { type RecordOrigin } from "./decl-origin.js";
|
|
3
|
+
import { type JournalScalar, type JournalTable, type UnitEvents } from "./unit-journal.js";
|
|
1
4
|
import { StructuralPositions } from "./structural-positions.js";
|
|
5
|
+
import { type NodeIslandSet } from "../../node-islands/boundary.js";
|
|
6
|
+
import type { IslandModuleBinding } from "./lower-node-island.js";
|
|
2
7
|
import type { ConstructorReturnPlan } from "./constructor-returns.js";
|
|
3
8
|
import { type CycleInitFlag } from "./cycle-initialization.js";
|
|
4
9
|
import { type JsonRequireModule } from "./json-require.js";
|
|
@@ -26,7 +31,8 @@ export type { WidthLift } from "./width-lift.js";
|
|
|
26
31
|
export { newFnCtx, type FnCtx } from "./function-context.js";
|
|
27
32
|
import * as ts from "../ts7/adapter.js";
|
|
28
33
|
import { type UnionLiteral } from "../union-discriminants.js";
|
|
29
|
-
import type { ScrDiagnostic } from "../../diagnostics/diagnostic.js";
|
|
34
|
+
import type { ScrDiagnostic, TypeFailure, TypeFailureSlot } from "../../diagnostics/diagnostic.js";
|
|
35
|
+
import { type DynamicSlotEntry } from "../../diagnostics/dynamic-slots.js";
|
|
30
36
|
import { UNSUPPORTED } from "../../diagnostics/diagnostic.js";
|
|
31
37
|
import type { IrClassDef, IrExpr, IrFfiImport, IrFunction, IrGlobal, IrLocal, IrModule, IrParam, IrRecordShape, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/ir.js";
|
|
32
38
|
import { type StartupCrash, type CycleEdge } from "../program.js";
|
|
@@ -41,15 +47,39 @@ import { type ParamShape, type FnSig } from "./call-signatures.js";
|
|
|
41
47
|
import { type GenericFnInfo, type GenericInstance } from "./generic-functions.js";
|
|
42
48
|
import type { InstantiationPath } from "./instantiation-path.js";
|
|
43
49
|
import { type ArrayHofInfo } from "./containers/array-pipelines.js";
|
|
50
|
+
import { type RecordOvfCapturePlan } from "./containers/indexed-objects.js";
|
|
44
51
|
import { type ComputedEventPattern, type EmitSpecCtx, type EmitSpecRequest, type EventSig } from "./lower-event-emitter.js";
|
|
45
52
|
import { type ConsoleMethodMember, type ConsoleOutputMember } from "./builtins/console.js";
|
|
46
53
|
import type { AssertInstanceOptions } from "./assert-instances.js";
|
|
47
54
|
import { type FieldTarget } from "./lower-exprs.js";
|
|
48
55
|
import type { ExpandoMembers } from "./lower-expando.js";
|
|
56
|
+
import { NodeIslandModuleCollector } from "../../node-islands/modules.js";
|
|
49
57
|
/** Entry function name. '%' cannot appear in a TS identifier, so a user
|
|
50
58
|
* function can never collide with it (mangling is injective per prefix). */
|
|
51
59
|
export declare const ENTRY_NAME = "%main";
|
|
60
|
+
/** A slot the localized-failure commit points turned into a checked
|
|
61
|
+
* dynamic slot (SC6104): where it is, what its declared type is, and the
|
|
62
|
+
* diagnostic it would have failed with. */
|
|
63
|
+
export interface DynamicSlot {
|
|
64
|
+
loc: SrcLoc;
|
|
65
|
+
failure: TypeFailure;
|
|
66
|
+
code: string;
|
|
67
|
+
reason: string;
|
|
68
|
+
/** The slot keeps its type's compilable shape; only the failing
|
|
69
|
+
* components are checked-dynamic (push-down, stage L3). */
|
|
70
|
+
partial?: true;
|
|
71
|
+
/** The type mapped exactly from its canonical form (stage N2): a static
|
|
72
|
+
* slot, never reported as dynamic. */
|
|
73
|
+
canonical?: true;
|
|
74
|
+
}
|
|
52
75
|
export declare class PoisonError extends Error {
|
|
76
|
+
/** Set when a type with no static lowering poisoned a slot (badType and
|
|
77
|
+
* the dyn class field policy): what failed, for the localized-failure
|
|
78
|
+
* commit points. Report-only in stage L0. */
|
|
79
|
+
readonly failure: TypeFailure | undefined;
|
|
80
|
+
/** The checker type that failed (with `failure`). */
|
|
81
|
+
readonly failedType: ts.Type | undefined;
|
|
82
|
+
constructor(failure?: TypeFailure, failedType?: ts.Type);
|
|
53
83
|
}
|
|
54
84
|
/** A function-shaped value that exists only in the compiler's static
|
|
55
85
|
* projection graph. Declared-function aliases point at the original
|
|
@@ -141,6 +171,9 @@ export interface LowerResult {
|
|
|
141
171
|
/** Performance warnings (SC61xx): the likely-hot functions the source
|
|
142
172
|
* leaves untyped (lowering/dynamic-tier.ts). Never failures. */
|
|
143
173
|
performance?: ScrDiagnostic[];
|
|
174
|
+
/** Localized failure: the checked dynamic slots the commit points
|
|
175
|
+
* created (each also an SC6104 in `performance`), present when any. */
|
|
176
|
+
dynamicSlots?: DynamicSlotEntry[];
|
|
144
177
|
/** Functions lowering placed in the dynamic tier (ir/tiers.ts), present
|
|
145
178
|
* when there are any. */
|
|
146
179
|
dynamicFunctions?: DynamicFunction[];
|
|
@@ -148,6 +181,9 @@ export interface LowerResult {
|
|
|
148
181
|
tiers?: TierReport;
|
|
149
182
|
}
|
|
150
183
|
export interface LowerOptions {
|
|
184
|
+
/** Packages that run in Node islands (scope-B NI-4): their imports lower
|
|
185
|
+
* to island loads and their values to island handles. */
|
|
186
|
+
nodeIslands?: NodeIslandSet | null;
|
|
151
187
|
/** Parser/checker services owned by the load; required for npm graph analysis. */
|
|
152
188
|
frontendServices?: FrontendServices | undefined;
|
|
153
189
|
/** The project's tsconfig sets `checkJs` (see isCheckedJsSourceFile). */
|
|
@@ -175,6 +211,8 @@ export interface LowerOptions {
|
|
|
175
211
|
inlineRequireCycleCalls?: ReadonlySet<ts.Node> | undefined;
|
|
176
212
|
/** LoadResult.moduleEdges. */
|
|
177
213
|
moduleEdges?: ReadonlyMap<ts.SourceFile, readonly CycleEdge[]> | undefined;
|
|
214
|
+
/** LoadResult.dynamicImportRejections. */
|
|
215
|
+
dynamicImportRejections?: ReadonlyMap<ts.SourceFile, StartupCrash> | undefined;
|
|
178
216
|
/** LIBRARY mode's reachability roots: the profile-mapped exports of the
|
|
179
217
|
* entry module. Executable builds root at the entry's top level alone
|
|
180
218
|
* (an unreferenced export dead-strips); a library's exports are called from
|
|
@@ -210,7 +248,7 @@ export interface LowerOptions {
|
|
|
210
248
|
};
|
|
211
249
|
}
|
|
212
250
|
interface RuntimeFenceFallback {
|
|
213
|
-
code:
|
|
251
|
+
code: DiagnosticCode;
|
|
214
252
|
message: string;
|
|
215
253
|
}
|
|
216
254
|
interface RuntimeFenceBase {
|
|
@@ -239,11 +277,32 @@ interface RuntimeFenceClosureTarget extends Omit<RuntimeFenceFunctionTarget, "ki
|
|
|
239
277
|
kind: "func";
|
|
240
278
|
};
|
|
241
279
|
}
|
|
280
|
+
/** A degraded checker type (Lowerer.degradedTypes): its lenient mapping and
|
|
281
|
+
* the failure that degraded it. */
|
|
282
|
+
export interface DegradedType {
|
|
283
|
+
lenient: IrType | null;
|
|
284
|
+
code: string;
|
|
285
|
+
reason: string;
|
|
286
|
+
/** The type maps exactly from its canonical form (stage N2): its slots
|
|
287
|
+
* are static. */
|
|
288
|
+
canonical?: true;
|
|
289
|
+
}
|
|
242
290
|
/** The Lowerer's pass configuration (see lowerToIr). */
|
|
243
291
|
export interface LowererMode {
|
|
244
292
|
/** Symbols whose deferred diagnostics reachable emit already flushed —
|
|
245
293
|
* the remainder must not report them a second time. */
|
|
246
294
|
alreadyFlushed?: ReadonlySet<ts.Symbol>;
|
|
295
|
+
/** Localized failure: the types reachable emit degraded (the coverage
|
|
296
|
+
* remainder maps them alike, so the declarations reachable emit
|
|
297
|
+
* registered with dynamic slots collect there too). */
|
|
298
|
+
degradedTypes?: ReadonlyMap<number, DegradedType>;
|
|
299
|
+
/** Localized failure: the declarations reachable emit registered with
|
|
300
|
+
* dynamic slots (the coverage remainder registers them too). */
|
|
301
|
+
retriedSymbols?: ReadonlySet<ts.Symbol>;
|
|
302
|
+
/** Localized failure: degrade every type to the whole-slot checked
|
|
303
|
+
* dynamic, never to its pushed-down shape (lowerToIr's comparison
|
|
304
|
+
* pass). */
|
|
305
|
+
wholeSlotDegradation?: boolean;
|
|
247
306
|
/** LowerOptions.externalTypes, threaded through every lowering pass. */
|
|
248
307
|
externalTypes?: ReadonlyMap<string, string>;
|
|
249
308
|
/** LowerOptions.externalTypeSpecifiersByFile, shared by every pass. */
|
|
@@ -267,6 +326,8 @@ export interface LowererMode {
|
|
|
267
326
|
dynNodeStreams?: boolean;
|
|
268
327
|
/** LoadResult.inlineRequireCycleCalls. */
|
|
269
328
|
inlineRequireCycleCalls?: ReadonlySet<ts.Node> | undefined;
|
|
329
|
+
/** LoadResult.dynamicImportRejections. */
|
|
330
|
+
dynamicImportRejections?: ReadonlyMap<ts.SourceFile, StartupCrash> | undefined;
|
|
270
331
|
/** LowerOptions.libraryCallbacks (see there). */
|
|
271
332
|
libraryCallbacks?: boolean;
|
|
272
333
|
projectCheckJs?: boolean;
|
|
@@ -329,7 +390,25 @@ export declare function dynFallbackType(lowerer: Lowerer, node: ts.Node, t: ts.T
|
|
|
329
390
|
* their own name, anonymous function/arrow expressions their
|
|
330
391
|
* NamedEvaluation home (a variable initializer or property assignment).
|
|
331
392
|
* Null when nothing names the value (the box stays anonymous). */
|
|
393
|
+
/** The name Node gives the builtin module function `node` reads, through
|
|
394
|
+
* const aliases (`const get = process.cwd`), when the module table names its
|
|
395
|
+
* value differently from its member (BuiltinModuleFn.valueName); else null. */
|
|
396
|
+
export declare function builtinValueNameOf(node: ts.Node, lowerer: Lowerer): string | null;
|
|
332
397
|
export declare function jsFuncNameOf(node: ts.Node, lowerer?: Lowerer): string | null;
|
|
398
|
+
/** A loop over an untyped iterable (lowerForOfDyn). `kind` is a local the
|
|
399
|
+
* loop sets once it has opened the iterator: 0 for the dynamic protocol,
|
|
400
|
+
* or the 1-based index of the program's generator type it steps natively.
|
|
401
|
+
* `value` is the per-step local whose initializer takes one step. */
|
|
402
|
+
export interface UntypedLoopSite {
|
|
403
|
+
kind: string;
|
|
404
|
+
value: string;
|
|
405
|
+
iterator: string;
|
|
406
|
+
next: string;
|
|
407
|
+
done: string;
|
|
408
|
+
/** `for await`; `sync` names its async-from-sync flag. */
|
|
409
|
+
async: boolean;
|
|
410
|
+
sync: string | null;
|
|
411
|
+
}
|
|
333
412
|
export declare class Lowerer {
|
|
334
413
|
readonly program: ts.Program;
|
|
335
414
|
readonly entry: ts.SourceFile;
|
|
@@ -347,11 +426,22 @@ export declare class Lowerer {
|
|
|
347
426
|
/** Inline require() calls whose module edge closes a require cycle
|
|
348
427
|
* (LoadResult.inlineRequireCycleCalls). */
|
|
349
428
|
readonly inlineRequireCycleCalls: ReadonlySet<ts.Node>;
|
|
429
|
+
/** LoadResult.dynamicImportRejections. */
|
|
430
|
+
readonly dynamicImportRejections: ReadonlyMap<ts.SourceFile, StartupCrash>;
|
|
350
431
|
/** Immutable callable aliases and compiler-generated adapters. The map
|
|
351
432
|
* is symbol-keyed, so shadowing and cross-module imports keep the same
|
|
352
433
|
* exact binding discipline as globals/functions. */
|
|
353
434
|
readonly staticCallables: Map<ts.Symbol, StaticCallableProjection>;
|
|
354
435
|
readonly genericFnsBySymbol: Map<ts.Symbol, GenericFnInfo>;
|
|
436
|
+
/** Typed declarations' instances for arguments that keep their own
|
|
437
|
+
* record or array layout (structural-instances.ts). */
|
|
438
|
+
readonly structuralFnInfos: Map<ts.Symbol, GenericFnInfo>;
|
|
439
|
+
/** Consts that keep their initializer's record or array layout, with the
|
|
440
|
+
* initializer's checker type (structural-instances.ts). */
|
|
441
|
+
readonly preservedLayoutTypes: Map<ts.Symbol, ts.Type>;
|
|
442
|
+
/** Arguments and const initializers whose array or record layout the
|
|
443
|
+
* lowering kept instead of copying (divergences.ts reports no copy there). */
|
|
444
|
+
readonly layoutKeptNodes: Set<import("../ts7/ast-node.js").AstNode>;
|
|
355
445
|
/** Object-literal GENERIC methods (`{ m<T>(x: T) {...} }`), interned by
|
|
356
446
|
* their function-like node — instances ride the same monomorphization
|
|
357
447
|
* queue (objLitGenericFnInfoOf). */
|
|
@@ -499,6 +589,23 @@ export declare class Lowerer {
|
|
|
499
589
|
* the body needs — indexed accesses (`T[K]` needs K's literal key) and
|
|
500
590
|
* keyed record reads (`o[k]` where k's type is a literal-bound K). */
|
|
501
591
|
typeParamTsBindings: Map<ts.Symbol, ts.Type> | null;
|
|
592
|
+
/** Generic alias references of call-keyed instances' declared signatures
|
|
593
|
+
* (`Catalog<G, P>`), each with the same alias as every call's resolved
|
|
594
|
+
* signature instantiates it (`Catalog<{ g1: … }, "acme">`), together with
|
|
595
|
+
* that instance's ts-level bindings map (typeParamTsBindings), which every
|
|
596
|
+
* scope that lowers the instance installs. The checker keeps the alias
|
|
597
|
+
* symbolic inside the generic body and offers no way to instantiate it
|
|
598
|
+
* with the bound arguments, but alias instantiations are interned: the
|
|
599
|
+
* body's `x as Catalog<G, P>` is the very type the signature declares, so
|
|
600
|
+
* the pair recorded during unification is that re-instantiation. */
|
|
601
|
+
readonly boundAliasInstances: Map<ts.Type, {
|
|
602
|
+
tsBindings: Map<ts.Symbol, ts.Type>;
|
|
603
|
+
instance: ts.Type;
|
|
604
|
+
}[]>;
|
|
605
|
+
/** Values an erased type assertion produced, with the asserted type
|
|
606
|
+
* (`x as T` keeps x's representation): a slot that no ordinary
|
|
607
|
+
* conversion reaches converts them as asserted (assertedConversion). */
|
|
608
|
+
readonly assertedValues: Map<IrExpr, IrType>;
|
|
502
609
|
/** Non-null while an IMPLICIT-ANY instance body lowers (npm-static JS;
|
|
503
610
|
* see generic-functions.ts): bound param symbol →
|
|
504
611
|
* the call site's checker type, consulted by typeOf for identifier
|
|
@@ -669,6 +776,11 @@ export declare class Lowerer {
|
|
|
669
776
|
/** for-of loops over arrays that can hold neither holes nor undefined:
|
|
670
777
|
* each pass reads the element payload directly. */
|
|
671
778
|
readonly presentElementLoops: Set<ts.ForOfStatement>;
|
|
779
|
+
/** Element keys (typeKey of the element type) of native arrays that can
|
|
780
|
+
* hold elements outside their element type, stored through dynamic views
|
|
781
|
+
* (SCR_ARR_FOREIGN); "*" for every array. Empty unless the program stores
|
|
782
|
+
* values through a dynamic value that can view a native array. */
|
|
783
|
+
foreignElementKeys: ReadonlySet<string>;
|
|
672
784
|
/** The fs/promises glob() call lowerForOf is lowering as a for await
|
|
673
785
|
* head; other glob() calls have no lowering. */
|
|
674
786
|
fspGlobHead: ts.Node | null;
|
|
@@ -678,6 +790,18 @@ export declare class Lowerer {
|
|
|
678
790
|
runtimeOptionalRootOf(local: IrLocal): IrLocal;
|
|
679
791
|
runtimeOptionalBindingType(node: ts.Node): IrType | null;
|
|
680
792
|
runtimeOptionalBindingType(node: ts.Node, fallback: IrType): IrType;
|
|
793
|
+
/** An object or array literal in an untyped context: its contextual type
|
|
794
|
+
* is `unknown` or `any` from a slot the program declares (a variable,
|
|
795
|
+
* field, parameter, return type or `unknown[]` element; a library
|
|
796
|
+
* parameter typed `any` only through a type argument), it is thrown, or
|
|
797
|
+
* it is a member of such a literal, and it holds data only (no methods,
|
|
798
|
+
* accessors or function members). Its value is built as a dynamic
|
|
799
|
+
* object: no type the program wrote gives it a native layout, and a later
|
|
800
|
+
* checked cast adopts it (dyn.adoptShared), so every holder keeps one
|
|
801
|
+
* identity. A library parameter the declarations type `any` or `unknown`
|
|
802
|
+
* itself (`console.log`, `JSON.stringify`) only reads the value and keeps
|
|
803
|
+
* the native literal. */
|
|
804
|
+
untypedLiteralContext(x: ts.Expression): boolean;
|
|
681
805
|
/** A fresh TypeScript data literal (`{ message: "m" }`) passed to a
|
|
682
806
|
* checked-dynamic parameter of a callee implemented in JavaScript, whose
|
|
683
807
|
* contract lets it reshape the object: a call through an untyped value, an
|
|
@@ -879,6 +1003,19 @@ export declare class Lowerer {
|
|
|
879
1003
|
* checks resolve through this map (stdlibGlobalNameOf), declarations
|
|
880
1004
|
* emit nothing. */
|
|
881
1005
|
readonly stdlibGlobalAliases: Map<ts.Symbol, string>;
|
|
1006
|
+
/** The TypeScript declarations registered in stdlibGlobalAliases: the
|
|
1007
|
+
* global each one names and its own name node. Their declarations emit
|
|
1008
|
+
* nothing, so a read that needs the VALUE reports at the declaration
|
|
1009
|
+
* (stdlibGlobalAliasDecl, rejectUnresolvedSymbol) instead of compiling
|
|
1010
|
+
* it away. An unread snapshot stays elided: reading a global has no
|
|
1011
|
+
* side effects. */
|
|
1012
|
+
readonly stdlibGlobalAliasDecls: Map<ts.Symbol, {
|
|
1013
|
+
alias: string;
|
|
1014
|
+
name: ts.Identifier;
|
|
1015
|
+
}>;
|
|
1016
|
+
/** Snapshots whose declaration-side refusal already reported (one
|
|
1017
|
+
* declaration, one report). */
|
|
1018
|
+
private readonly stdlibSnapshotReported;
|
|
882
1019
|
/** The stdlibGlobalAliases bound through a cast of the global object
|
|
883
1020
|
* (`(globalThis as { Buffer?: B }).Buffer`). Their static type is the
|
|
884
1021
|
* cast's, so their value reads are refused (identifiers.ts). */
|
|
@@ -997,6 +1134,9 @@ export declare class Lowerer {
|
|
|
997
1134
|
/** The property names the program assigns on the global object
|
|
998
1135
|
* (property-access.ts), collected on first use. */
|
|
999
1136
|
globalThisWrittenNames: Set<string> | null;
|
|
1137
|
+
/** Set with globalThisWrittenNames: the program writes the global object
|
|
1138
|
+
* by a computed name somewhere. */
|
|
1139
|
+
globalThisComputedWrite: boolean;
|
|
1000
1140
|
/** Well-known symbol methods (`sym:iterator`) the program may replace
|
|
1001
1141
|
* through a symbol-keyed write: an instance or prototype property, or a
|
|
1002
1142
|
* reflection call. */
|
|
@@ -1011,6 +1151,8 @@ export declare class Lowerer {
|
|
|
1011
1151
|
/** Inferred JS methods participating in an override chain keep a vtable
|
|
1012
1152
|
* ABI instead of call-site specialization. Filled before class collection. */
|
|
1013
1153
|
readonly virtualJsMethods: Set<ts.MethodDeclaration>;
|
|
1154
|
+
/** Methods of checked-JavaScript override pairs (vtable dispatch). */
|
|
1155
|
+
readonly checkedJsOverrideMethods: Set<ts.MethodDeclaration>;
|
|
1014
1156
|
/** Descendant writes must widen the original JS field before collecting
|
|
1015
1157
|
* any class layout; base and derived instances share its storage ABI. */
|
|
1016
1158
|
readonly inheritedJsFieldWrites: Map<ts.ClassDeclaration | ts.ClassExpression, Map<string, ts.ExpressionBase[]>>;
|
|
@@ -1056,6 +1198,9 @@ export declare class Lowerer {
|
|
|
1056
1198
|
} | {
|
|
1057
1199
|
kind: "static-builtin";
|
|
1058
1200
|
module: string;
|
|
1201
|
+
} | {
|
|
1202
|
+
kind: "rejected";
|
|
1203
|
+
crash: StartupCrash;
|
|
1059
1204
|
}>;
|
|
1060
1205
|
readonly createRequireImports: Map<string, "" | {
|
|
1061
1206
|
entryKey: string;
|
|
@@ -1120,6 +1265,47 @@ export declare class Lowerer {
|
|
|
1120
1265
|
usesWasmCustomSections: boolean;
|
|
1121
1266
|
/** The program constructs a LifetimeRegion (lifetime-regions.ts). */
|
|
1122
1267
|
usesLifetimeRegions: boolean;
|
|
1268
|
+
/** The program calls into Node.js (@scriptc/node): the module carries
|
|
1269
|
+
* the nodeIsland record, which the executable build fills in. */
|
|
1270
|
+
usesNodeIsland: boolean;
|
|
1271
|
+
/** The program's Node island packages (scope-B NI-4), or null. */
|
|
1272
|
+
readonly nodeIslands: NodeIslandSet | null;
|
|
1273
|
+
/** Island module loads, by the importing file and specifier: the module
|
|
1274
|
+
* global holding what the import form sees (lower-node-island.ts). */
|
|
1275
|
+
readonly islandModules: Map<string, IslandModuleBinding>;
|
|
1276
|
+
/** The modules Node island calls load (lower-node-island.ts). */
|
|
1277
|
+
readonly nodeIslandModules: NodeIslandModuleCollector;
|
|
1278
|
+
/** Each call's caller literal, set to its tree path when lowering ends. */
|
|
1279
|
+
readonly nodeIslandCallers: {
|
|
1280
|
+
literal: IrExpr & {
|
|
1281
|
+
kind: "strLit";
|
|
1282
|
+
};
|
|
1283
|
+
caller: string;
|
|
1284
|
+
}[];
|
|
1285
|
+
/** Absolute specifiers, rewritten to the shipped file relative to their caller. */
|
|
1286
|
+
readonly nodeIslandSpecifiers: {
|
|
1287
|
+
literal: IrExpr & {
|
|
1288
|
+
kind: "strLit";
|
|
1289
|
+
};
|
|
1290
|
+
caller: string;
|
|
1291
|
+
target: string;
|
|
1292
|
+
}[];
|
|
1293
|
+
/** Each island module load's path literal, set to its tree path when lowering ends. */
|
|
1294
|
+
readonly nodeIslandLoads: {
|
|
1295
|
+
literal: IrExpr & {
|
|
1296
|
+
kind: "strLit";
|
|
1297
|
+
};
|
|
1298
|
+
path: string;
|
|
1299
|
+
}[];
|
|
1300
|
+
/** Island handle bindings by symbol (lower-node-island.ts). */
|
|
1301
|
+
readonly islandHandleBindings: Map<ts.Symbol, boolean>;
|
|
1302
|
+
/** `instanceof` expressions the island lowering already handles. */
|
|
1303
|
+
readonly islandInstanceofHandled: Set<import("../ts7/ast-node.js").AstNode>;
|
|
1304
|
+
/** NI-6: the modules shared with Node islands (lower-shared-modules.ts),
|
|
1305
|
+
* their SC8020 warnings, and the TDZ flags their declarations set. */
|
|
1306
|
+
sharedModules: import("./lower-shared-modules.js").SharedModulePlan[] | null;
|
|
1307
|
+
readonly sharedModuleWarnings: ScrDiagnostic[];
|
|
1308
|
+
readonly sharedInitFlags: Map<ts.StatementBase, string[]>;
|
|
1123
1309
|
/** Per-directory answers of experimental-import.ts's declaration-file test. */
|
|
1124
1310
|
readonly experimentalFiles: Map<string, boolean>;
|
|
1125
1311
|
/** Interned LifetimeRegion.run helpers, by callback type key. */
|
|
@@ -1203,10 +1389,9 @@ export declare class Lowerer {
|
|
|
1203
1389
|
* tag. */
|
|
1204
1390
|
readonly unions: UnionRegistry;
|
|
1205
1391
|
/** Context-free successful type mappings. See TypeMapperCtx.typeMemo. */
|
|
1206
|
-
readonly typeMemo: Map<
|
|
1392
|
+
readonly typeMemo: Map<number, IrType>;
|
|
1207
1393
|
readonly ambient: string;
|
|
1208
1394
|
readonly overridesAmbient: string;
|
|
1209
|
-
readonly fallbackAmbient: string;
|
|
1210
1395
|
/** The one mapType context: registries + hooks, assembled in the
|
|
1211
1396
|
* constructor (typeParamResolver reads the CURRENT instantiation bindings
|
|
1212
1397
|
* through `this`, so the same ctx serves generic bodies too). */
|
|
@@ -1228,6 +1413,23 @@ export declare class Lowerer {
|
|
|
1228
1413
|
* values other than fresh literals (noteUntypedIntegrity). */
|
|
1229
1414
|
untypedIntegrity: boolean;
|
|
1230
1415
|
readonly liftedFns: IrFunction[];
|
|
1416
|
+
/** `for … of` and `for await` loops over untyped iterables, by their
|
|
1417
|
+
* generator-kind local (generator-dynamic-dispatch.ts steps the program's
|
|
1418
|
+
* own generators there on the typed path). Local ids repeat across
|
|
1419
|
+
* functions; the local itself is in its function's locals. */
|
|
1420
|
+
readonly untypedLoops: Map<IrLocal, UntypedLoopSite>;
|
|
1421
|
+
/** global-values.ts's answer per JavaScript source: the receiver of its
|
|
1422
|
+
* first read of the global object by a computed name, or null. */
|
|
1423
|
+
readonly computedGlobalReads: Map<ts.SourceFile, ts.ExpressionBase | null>;
|
|
1424
|
+
/** global-values.ts's answer per JavaScript source: the builtin globals
|
|
1425
|
+
* its sloppy-mode functions read through their `this`. */
|
|
1426
|
+
readonly sloppyThisGlobalReads: Map<ts.SourceFile, ReadonlySet<string>>;
|
|
1427
|
+
/** global-values.ts's answer: the names the program's global lookup
|
|
1428
|
+
* answers; undefined until asked. */
|
|
1429
|
+
globalLookupNames: readonly string[] | undefined;
|
|
1430
|
+
/** web-streams-dyn.ts's answer: whether a JavaScript source names a web
|
|
1431
|
+
* stream class; undefined until asked. */
|
|
1432
|
+
namesWebStreamClass: boolean | undefined;
|
|
1231
1433
|
/** The first lifted function of each name (liftedFnNamed), for the
|
|
1232
1434
|
* liftedFns indexed so far. liftedFns only grows. */
|
|
1233
1435
|
private readonly liftedFnsByName;
|
|
@@ -1250,8 +1452,11 @@ export declare class Lowerer {
|
|
|
1250
1452
|
* names do not depend on where the program sits, default library files
|
|
1251
1453
|
* by their base name (two checkers install them in different
|
|
1252
1454
|
* directories), and the files scriptc ships by their name inside scriptc,
|
|
1253
|
-
* so names do not depend on where scriptc is installed either.
|
|
1455
|
+
* so names do not depend on where scriptc is installed either. Relative
|
|
1456
|
+
* paths use `/` on every platform. */
|
|
1254
1457
|
readonly positions: StructuralPositions;
|
|
1458
|
+
/** The name of `sf` in positions and module tags. */
|
|
1459
|
+
stableFileName(sf: ts.SourceFile): string;
|
|
1255
1460
|
/** The outermost node whose token span is exactly `loc`, or null. */
|
|
1256
1461
|
nodeAtLoc(loc: SrcLoc): ts.Node | null;
|
|
1257
1462
|
/** The lowering unit whose name scopes the closures it lifts. */
|
|
@@ -1334,6 +1539,14 @@ export declare class Lowerer {
|
|
|
1334
1539
|
* promise operand (returnedPromiseAwait). */
|
|
1335
1540
|
private returnAwaitedPromise;
|
|
1336
1541
|
private readonly virtualEdges;
|
|
1542
|
+
/** The events of the unit being recorded (unit-journal.ts); null
|
|
1543
|
+
* otherwise. */
|
|
1544
|
+
unitEvents: UnitEvents | null;
|
|
1545
|
+
/** Fields added to collected classes (class-attributes.ts) and reachable
|
|
1546
|
+
* units registered while units lower: a unit that changes either has no
|
|
1547
|
+
* record (journalScalars). */
|
|
1548
|
+
classLayoutChanges: number;
|
|
1549
|
+
unitRegistrations: number;
|
|
1337
1550
|
classCanBeConstructed(info: ClassInfo): boolean;
|
|
1338
1551
|
/** How many classes classCanBeConstructed admits by name, or -1 while
|
|
1339
1552
|
* it admits every class. The count only grows. */
|
|
@@ -1356,6 +1569,20 @@ export declare class Lowerer {
|
|
|
1356
1569
|
/** The first lifted function named `name`, the one
|
|
1357
1570
|
* `liftedFns.find((fn) => fn.name === name)` returns. */
|
|
1358
1571
|
liftedFnNamed(name: string | undefined): IrFunction | undefined;
|
|
1572
|
+
/** The tables lowering a unit can grow (unit-journal.ts): the
|
|
1573
|
+
* appendable tables whose entries a unit's record carries, then the
|
|
1574
|
+
* tables whose growth leaves the unit without a record.
|
|
1575
|
+
* Lowerer.unjournaled lists the collections that are in neither. */
|
|
1576
|
+
journalTables(): JournalTable[];
|
|
1577
|
+
/** The fields a unit's record need not carry: settings, caches of
|
|
1578
|
+
* program facts that are computed again when needed, state of the unit
|
|
1579
|
+
* being lowered (keyed by its own IR, nodes or frames), scratch that
|
|
1580
|
+
* unwinds before the unit ends, and state that applying the unit's events
|
|
1581
|
+
* rebuilds. */
|
|
1582
|
+
static readonly unjournaled: readonly string[];
|
|
1583
|
+
/** The fields a unit must leave as they were, and the flags it may set
|
|
1584
|
+
* (unit-journal.ts). */
|
|
1585
|
+
journalScalars(): JournalScalar[];
|
|
1359
1586
|
/** Coverage remainder mode: the reachability gate inverts (see wantBody)
|
|
1360
1587
|
* and no module is built. */
|
|
1361
1588
|
readonly remainder: boolean;
|
|
@@ -1414,6 +1641,64 @@ export declare class Lowerer {
|
|
|
1414
1641
|
* the fallthroughs report the inherited-blocker cascade (SC2004)
|
|
1415
1642
|
* instead of misattributing the reference. */
|
|
1416
1643
|
readonly blockedBindings: Set<ts.Symbol>;
|
|
1644
|
+
/** Localized failure, report-only: the failure group (type-failure.ts)
|
|
1645
|
+
* of each declaration whose rejection reached the build — a flushed
|
|
1646
|
+
* deferred declaration, or a binding of a poisoned declaration
|
|
1647
|
+
* statement. */
|
|
1648
|
+
readonly rejectedGroups: Map<ts.Symbol, string>;
|
|
1649
|
+
/** One frame per statement lowerStmts is lowering: the failure groups
|
|
1650
|
+
* its lowering touched. A statement that then poisons attributes its
|
|
1651
|
+
* diagnostics to them (ScrDiagnostic.cause). */
|
|
1652
|
+
readonly failureTouches: Set<string>[];
|
|
1653
|
+
/** Localized failure: checker types (by id) whose strict mapping failed
|
|
1654
|
+
* at a committed slot, with their lenient mapping. Filled only at the
|
|
1655
|
+
* commit points (degradeAtCommit), so a program that compiles today
|
|
1656
|
+
* never fills it. */
|
|
1657
|
+
readonly degradedTypes: Map<number, DegradedType>;
|
|
1658
|
+
/** A pushed-down (partial) degraded type was mapped (hasPartialDegradedTypes). */
|
|
1659
|
+
private partialDegradedTypesMapped;
|
|
1660
|
+
/** The components lenient mappings turned into the checked dynamic, by
|
|
1661
|
+
* checker type id, with the declared type they are pieces of (SC6101
|
|
1662
|
+
* causes and per-slot operation counts). */
|
|
1663
|
+
readonly lenientPieces: Map<number, string>;
|
|
1664
|
+
/** One frame per unit a commit point may retry: the pushed-down
|
|
1665
|
+
* (partial) degraded types its lowering mapped (withPartialHits). */
|
|
1666
|
+
readonly partialHits: Set<number>[];
|
|
1667
|
+
/** The dynamic slots the commit points created: one SC6104 each. */
|
|
1668
|
+
readonly dynamicSlots: DynamicSlot[];
|
|
1669
|
+
/** Declarations retryDeferred registered. */
|
|
1670
|
+
readonly retriedSymbols: Set<ts.Symbol>;
|
|
1671
|
+
/** LowererMode.retriedSymbols. */
|
|
1672
|
+
readonly priorRetriedSymbols: ReadonlySet<ts.Symbol>;
|
|
1673
|
+
/** LowererMode.wholeSlotDegradation. */
|
|
1674
|
+
readonly wholeSlotDegradation: boolean;
|
|
1675
|
+
/** Bodies run() skipped because their declaration had not registered. */
|
|
1676
|
+
readonly skippedBodies: Set<import("../ts7/ast-node.js").AstNode>;
|
|
1677
|
+
/** Declarations retryDeferred registered, in order: run() lowers the
|
|
1678
|
+
* bodies it had skipped. */
|
|
1679
|
+
readonly retriedDeclarations: ts.Node[];
|
|
1680
|
+
/** Diagnostics of lowering that a statement's retry does not repeat (a
|
|
1681
|
+
* function-local class's member bodies, lowered once and kept):
|
|
1682
|
+
* dropAttemptDiags keeps them. */
|
|
1683
|
+
readonly loweredOnceDiags: Set<ScrDiagnostic>;
|
|
1684
|
+
/** Deferred classes whose static field initializers' place in %init
|
|
1685
|
+
* has been lowered (retryDeferredAtDeclaration): a later flush must not
|
|
1686
|
+
* register them, since their initializers would never run. */
|
|
1687
|
+
readonly staticInitsPassed: Set<ts.Symbol>;
|
|
1688
|
+
/** Deferred declarations' collections, for the flush retry
|
|
1689
|
+
* (retryDeferred). */
|
|
1690
|
+
readonly deferredCollectors: Map<ts.Symbol, {
|
|
1691
|
+
symbolOf: () => ts.Symbol | undefined;
|
|
1692
|
+
collect: () => void;
|
|
1693
|
+
}>;
|
|
1694
|
+
/** True while a flush retry collects a declaration: the dyn class
|
|
1695
|
+
* field policy (dynFieldPolicyFence) is lifted for reached classes. */
|
|
1696
|
+
liftDynFieldPolicy: boolean;
|
|
1697
|
+
/** Collection diagnostics that a flush retry may simply run again (a
|
|
1698
|
+
* derived class whose base had not registered yet). */
|
|
1699
|
+
readonly retriableDiags: Set<ScrDiagnostic>;
|
|
1700
|
+
/** The checker type behind each type failure badType committed. */
|
|
1701
|
+
readonly failedTypes: Map<TypeFailure, ts.Type>;
|
|
1417
1702
|
/** True while collectProgram runs: resolution helpers must not flush
|
|
1418
1703
|
* deferred diagnostics (collection itself resolves symbols — extends
|
|
1419
1704
|
* clauses — and collection order must not decide what reports). */
|
|
@@ -1456,11 +1741,36 @@ export declare class Lowerer {
|
|
|
1456
1741
|
/** Bumps the per-file attribution counter (no-op unless provenance is
|
|
1457
1742
|
* active and this is the emit/discovery lane — mirror the CALLER's
|
|
1458
1743
|
* suppressStats guard, this method only gates remainder). */
|
|
1459
|
-
bumpFileStat(file: string, kind: "total" | "failed"): void;
|
|
1744
|
+
bumpFileStat(file: string, kind: "total" | "failed", by?: number): void;
|
|
1460
1745
|
/** The program holds the declaration-typed boundary's projection
|
|
1461
1746
|
* (decl-projection.ts): user-file record and array values crossing into
|
|
1462
1747
|
* dynamic slots (package parameters) box as live capsules, so a value
|
|
1463
1748
|
* that comes back through a boundary cast keeps its identity. */
|
|
1749
|
+
/** Origins of package-declared types checked in this program
|
|
1750
|
+
* (decl-origin.ts), by IrModule.declOrigins index. */
|
|
1751
|
+
readonly declOrigins: string[];
|
|
1752
|
+
private readonly declOriginIds;
|
|
1753
|
+
private readonly packageFileMemo;
|
|
1754
|
+
private readonly slotOriginMemo;
|
|
1755
|
+
/** The value whose slot coercion is being lowered, while that value is
|
|
1756
|
+
* in a package file: union extractions built for it carry the slot's
|
|
1757
|
+
* origin in their TypeError. */
|
|
1758
|
+
coercionOriginNode: ts.Node | null;
|
|
1759
|
+
/** Per user file, each declaration-boundary cast's index in source
|
|
1760
|
+
* order (narrowing.ts recordedBoundaryOrigin). */
|
|
1761
|
+
readonly boundaryCastOrder: Map<ts.SourceFile, Map<import("../ts7/ast-node.js").AstNode, number>>;
|
|
1762
|
+
/** The union type of that value: only its own extraction is the slot's. */
|
|
1763
|
+
coercionOriginUnion: string | null;
|
|
1764
|
+
/** While a record projection into a package-declared type builds, the
|
|
1765
|
+
* origin of the field being converted. */
|
|
1766
|
+
coercionFieldOrigin: string | null;
|
|
1767
|
+
private readonly recordOriginMemo;
|
|
1768
|
+
/** The package-declared record type the current coercion converts to. */
|
|
1769
|
+
coercionRecordOrigin(): RecordOrigin | null;
|
|
1770
|
+
declOriginIndex(origin: string): number;
|
|
1771
|
+
/** The origin of the package-declared slot a value flows into. */
|
|
1772
|
+
slotOriginOf(node: ts.Node): string | null;
|
|
1773
|
+
private inPackageFileOf;
|
|
1464
1774
|
private declBoundaryMemo;
|
|
1465
1775
|
get declBoundary(): boolean;
|
|
1466
1776
|
/** Tracked classes' bag initializers over a typed `this`
|
|
@@ -1474,6 +1784,9 @@ export declare class Lowerer {
|
|
|
1474
1784
|
registerBuiltinErrorClasses(): void;
|
|
1475
1785
|
private classProtocols;
|
|
1476
1786
|
classImplementedProtocol(type: ts.Type): boolean;
|
|
1787
|
+
/** A record view a Map or Set answers: it keeps protocol identity but
|
|
1788
|
+
* calls the collection's own methods, never a stored member. */
|
|
1789
|
+
classCollectionView(type: ts.Type): boolean;
|
|
1477
1790
|
/** Declared class fields may store a DYN value only when its static type
|
|
1478
1791
|
* is `unknown` or `object` (also with `null` or `undefined`, or an array
|
|
1479
1792
|
* of those), names checked protocol identity, is an owned runtime
|
|
@@ -1506,6 +1819,29 @@ export declare class Lowerer {
|
|
|
1506
1819
|
assignedLater: ReadonlySet<string> | "all";
|
|
1507
1820
|
};
|
|
1508
1821
|
sourceFileOfModuleNamespace(type: IrType): ts.SourceFile | null;
|
|
1822
|
+
/** A module namespace taken as a checked-dynamic value (`const u: unknown
|
|
1823
|
+
* = ns`, `take(ns)`): the runtime's namespace object — one per module,
|
|
1824
|
+
* Node's sorted export keys, live reads through a compiled getter, and
|
|
1825
|
+
* Node's read-only write errors — built by `moduleNamespaceDynValue`.
|
|
1826
|
+
* `node:` builtins have no compiled source and no complete export table,
|
|
1827
|
+
* so they keep their fence. */
|
|
1828
|
+
moduleNamespaceDyn(ns: IrExpr & {
|
|
1829
|
+
type: IrType & {
|
|
1830
|
+
kind: "moduleNs";
|
|
1831
|
+
};
|
|
1832
|
+
}): IrExpr | null;
|
|
1833
|
+
/** A `Promise<module namespace>` taken as `Promise<unknown>` (or as
|
|
1834
|
+
* `unknown`): one lifted async mapper per module awaits the promise and
|
|
1835
|
+
* answers the same namespace object a bare namespace value boxes to, so
|
|
1836
|
+
* the settlement is Node's namespace while the value stays a promise.
|
|
1837
|
+
* The import() promise reaches these slots alone, and the runtime's
|
|
1838
|
+
* per-module namespace cache keeps `await mapped === await original`; a
|
|
1839
|
+
* rejection propagates unchanged. */
|
|
1840
|
+
moduleNamespacePromiseDynValue(value: IrExpr & {
|
|
1841
|
+
type: IrType & {
|
|
1842
|
+
kind: "promise";
|
|
1843
|
+
};
|
|
1844
|
+
}): IrExpr | null;
|
|
1509
1845
|
builtinErrorInfoOf(symbol: ts.Symbol | null | undefined): ClassInfo | null;
|
|
1510
1846
|
builtinEmitterInfoOf(symbol: ts.Symbol | null | undefined): ClassInfo | null;
|
|
1511
1847
|
builtinStreamInfoOf(symbol: ts.Symbol | null | undefined): ClassInfo | null;
|
|
@@ -1597,6 +1933,17 @@ export declare class Lowerer {
|
|
|
1597
1933
|
* declaration, or an ESM default import of CommonJS. One resolver keeps
|
|
1598
1934
|
* member-symbol fallback and namespace classification in lockstep. */
|
|
1599
1935
|
private localModuleBindingDepOf;
|
|
1936
|
+
private readonly createRequireBindingTargets;
|
|
1937
|
+
private readonly createRequireElementTargets;
|
|
1938
|
+
/** The program module a `const x = createRequire(...)("./m")` binding
|
|
1939
|
+
* requires, by the binding's symbol; null for every other binding. Every
|
|
1940
|
+
* reference resolves it (resolveValueSymbol), so it is cached. */
|
|
1941
|
+
private createRequireBindingTarget;
|
|
1942
|
+
/** The binding element and required program module of a
|
|
1943
|
+
* `const { m } = createRequire(...)("./m")` binding, by the binding's
|
|
1944
|
+
* symbol; null for every other binding. Cached like
|
|
1945
|
+
* createRequireBindingTarget. */
|
|
1946
|
+
private createRequireElementTarget;
|
|
1600
1947
|
/** The represented single value behind a createRequire binding, or null
|
|
1601
1948
|
* when the target is a namespace/table module. Collection has already
|
|
1602
1949
|
* registered executable exports before entry-module uses lower, so the
|
|
@@ -1692,6 +2039,9 @@ export declare class Lowerer {
|
|
|
1692
2039
|
* percentage would overstate how much of the program compiles. Count
|
|
1693
2040
|
* every statement the body holds as attempted and failed, in addition to
|
|
1694
2041
|
* the skipped-function tally. */
|
|
2042
|
+
/** countSkippedBody undone: a flush registered the declaration after
|
|
2043
|
+
* its body was skipped, and the body lowers now. */
|
|
2044
|
+
private uncountSkippedBody;
|
|
1695
2045
|
private countSkippedBody;
|
|
1696
2046
|
/** Coverage remainder: the body diagnostics of a function whose
|
|
1697
2047
|
* signature blocked (blockedBodyDiagnostics). A function reachable emit
|
|
@@ -1721,6 +2071,9 @@ export declare class Lowerer {
|
|
|
1721
2071
|
reachable: Set<string>;
|
|
1722
2072
|
result: LowerResult;
|
|
1723
2073
|
};
|
|
2074
|
+
/** The lowerer's side of a recorded wave (unit-journal.ts).
|
|
2075
|
+
* `lowerUnitBody` lowers a unit as reachable emit does. */
|
|
2076
|
+
private waveHost;
|
|
1724
2077
|
/** Reachability hook (see emitReachable): fires when lowering resolves a
|
|
1725
2078
|
* reference to a lowerable body. */
|
|
1726
2079
|
noteEdge(name: string): void;
|
|
@@ -1733,6 +2086,7 @@ export declare class Lowerer {
|
|
|
1733
2086
|
* this call site; a virtualCall through their own static classes marks
|
|
1734
2087
|
* them). */
|
|
1735
2088
|
noteVirtualEdge(info: ClassInfo, method: string): void;
|
|
2089
|
+
private virtualEdgeOf;
|
|
1736
2090
|
moduleArtifacts(functions: IrFunction[]): {
|
|
1737
2091
|
classes: IrClassDef[];
|
|
1738
2092
|
records: IrRecordShape[];
|
|
@@ -1766,19 +2120,105 @@ export declare class Lowerer {
|
|
|
1766
2120
|
* the instantiation context is appended so the user knows which concrete
|
|
1767
2121
|
* types made the (source-anchored) construct fail. */
|
|
1768
2122
|
pushDiag(diag: ScrDiagnostic): void;
|
|
1769
|
-
|
|
2123
|
+
/** The module's Node island record: the collected module tree, with each
|
|
2124
|
+
* call's caller literal and each load's path literal set to its path in
|
|
2125
|
+
* that tree. The executable build fills in the libnode pack (index.ts). */
|
|
2126
|
+
private nodeIslandRecord;
|
|
2127
|
+
unsupported(code: keyof typeof UNSUPPORTED & DiagnosticCode, node: ts.Node, featureOverride?: string, hintOverride?: string, reason?: string): never;
|
|
1770
2128
|
externalHostFence(specifier: string, node: ts.Node, valueUse?: boolean): never;
|
|
1771
2129
|
anyOpFence(feature: string, node: ts.Node): never;
|
|
1772
2130
|
/** True when this expression's CHECKER type is `any`-flavored — the
|
|
1773
2131
|
* gate anyOpFence's call sites use to tell `any`-origin dyn values
|
|
1774
2132
|
* with an unsupported operation from genuine `unknown` ones. */
|
|
1775
2133
|
anyOrigin(node: ts.Node): boolean;
|
|
2134
|
+
/** badType's commit: the diagnostic carries the structured type
|
|
2135
|
+
* failure (report-only in stage L0), and so does the poison. */
|
|
2136
|
+
private typeFail;
|
|
2137
|
+
/** Localized failure's commit point (design §3.3): `e` poisoned a unit
|
|
2138
|
+
* whose failure is about to enter the build. When it is a degradable type
|
|
2139
|
+
* failure at a slot kind in `slots`, the failing type joins
|
|
2140
|
+
* degradedTypes (its lenient mapping is the checked dynamic, whole slot),
|
|
2141
|
+
* the failure's own diagnostic leaves the build, and the caller lowers
|
|
2142
|
+
* the unit again. Returns the slot to record once that retry succeeds,
|
|
2143
|
+
* or null to commit as today. Never inside a capture buffer (a probe or a
|
|
2144
|
+
* deferred collection) and never under --tier=static-only. */
|
|
2145
|
+
degradeAtCommit(e: unknown, slots: ReadonlySet<TypeFailureSlot>): DynamicSlot | null;
|
|
2146
|
+
/** A declaration slot whose type maps through degradedTypes is a
|
|
2147
|
+
* dynamic slot too, though only the first such slot failed: record it
|
|
2148
|
+
* (outside probes; the lookup is skipped while nothing is degraded). */
|
|
2149
|
+
noteDegradedSlot(node: ts.Node, type: ts.Type): void;
|
|
2150
|
+
/** Localized failure, statement commit point for declarations a probe
|
|
2151
|
+
* flushed: a statement committing the flushed diagnostics of a deferred
|
|
2152
|
+
* declaration (inside a capture buffer the flush could not retry) reopens
|
|
2153
|
+
* it here, outside every probe. When the declaration's diagnostics are
|
|
2154
|
+
* all retriable, they leave the build, the declaration retries
|
|
2155
|
+
* (retryDeferred), and on success the caller lowers the statement again.
|
|
2156
|
+
* Returns whether some declaration registered. */
|
|
2157
|
+
reopenFlushedAtCommit(diagsBefore: number): boolean;
|
|
2158
|
+
/** A failed attempt's own diagnostics leave the build before its unit
|
|
2159
|
+
* lowers again; flushed declaration diagnostics (`rejects`) stay, since
|
|
2160
|
+
* the retry will not flush them a second time. */
|
|
2161
|
+
dropAttemptDiags(diagsBefore: number): void;
|
|
2162
|
+
/** A unit that still fails after its retries commits its first
|
|
2163
|
+
* attempt's own diagnostics (`first`, taken before the first
|
|
2164
|
+
* degradation) in place of the last attempt's. The diagnostics the
|
|
2165
|
+
* retries carry (dropAttemptDiags) stay as they are now: a declaration
|
|
2166
|
+
* reopened since may have registered. */
|
|
2167
|
+
restoreFirstAttemptDiags(diagsBefore: number, first: readonly ScrDiagnostic[]): void;
|
|
2168
|
+
/** Lowers one unit whose body-level poison skips it (a generic
|
|
2169
|
+
* instance), with localized failure's commit point: a degradable type
|
|
2170
|
+
* failure at one of its declaration slots degrades the type and the unit
|
|
2171
|
+
* lowers again (at most MAX_DECLARATION_RETRIES times). Null when it
|
|
2172
|
+
* still poisons; its diagnostics are then committed as before. */
|
|
2173
|
+
lowerUnitDegrading<T>(lower: () => T): T | null;
|
|
2174
|
+
/** Localized failure's lenient mapping (stage L3, push-down): the type
|
|
2175
|
+
* mapped with each failing component as the checked dynamic, so a record
|
|
2176
|
+
* keeps its static members, an array of records its records, and a
|
|
2177
|
+
* function its arity. The whole slot is the checked dynamic when even
|
|
2178
|
+
* that shape does not map. Throwaway context: nothing memoizes. */
|
|
2179
|
+
lenientType(type: ts.Type): IrType;
|
|
2180
|
+
/** Degrades a type for a commit point: its lenient (pushed-down) form
|
|
2181
|
+
* first; a type already degraded that still fails falls back to the
|
|
2182
|
+
* whole-slot checked dynamic. False when nothing is left to degrade. */
|
|
2183
|
+
private degradeType;
|
|
2184
|
+
/** The IR type of a type's canonical form (canon-map.ts), or null when
|
|
2185
|
+
* the form is irreducible, unbound, only the checked dynamic, or holds a
|
|
2186
|
+
* union that mapped to the checked dynamic (such a slot is dynamic in
|
|
2187
|
+
* part, so it degrades like any other). Runs only at localized failure's
|
|
2188
|
+
* commit points, so a program that compiles today never consults it. */
|
|
2189
|
+
canonicalType(type: ts.Type): IrType | null;
|
|
2190
|
+
/** The degraded type of `id` maps exactly (canonical form): its slots
|
|
2191
|
+
* are static, not dynamic. */
|
|
2192
|
+
isCanonicalDegraded(id: number): boolean;
|
|
2193
|
+
/** Some degraded type kept a pushed-down (partial) shape, or one was
|
|
2194
|
+
* mapped before a retry widened it: the IR lowered before the retry keeps
|
|
2195
|
+
* that shape. */
|
|
2196
|
+
hasPartialDegradedTypes(): boolean;
|
|
2197
|
+
/** Runs a unit a commit point may retry, recording the pushed-down
|
|
2198
|
+
* types it maps; the frame's hits also count for the enclosing unit. */
|
|
2199
|
+
withPartialHits<T>(hits: Set<number>, run: () => T): T;
|
|
2200
|
+
/** Push-down is a refinement, never a new failure: a unit that still
|
|
2201
|
+
* fails after mapping pushed-down types falls back to the whole-slot
|
|
2202
|
+
* checked dynamic for them. True when some type widened (retry). */
|
|
2203
|
+
widenPartials(hits: ReadonlySet<number>): boolean;
|
|
2204
|
+
/** Records a dynamic slot whose unit lowered with it (one per site). */
|
|
2205
|
+
noteDynamicSlot(slot: DynamicSlot): void;
|
|
2206
|
+
/** The SC1090 refusal of checked-dynamic class fields in TypeScript
|
|
2207
|
+
* (classFieldStoresDyn): a policy fence, not a missing representation.
|
|
2208
|
+
* A flush retry lifts it (liftDynFieldPolicy), so a reached class with
|
|
2209
|
+
* an 'any' field registers. */
|
|
2210
|
+
dynFieldPolicyFence(node: ts.Node, feature: string): never;
|
|
1776
2211
|
badType(node: ts.Node, type: ts.Type): never;
|
|
1777
2212
|
/** The lib fence (SC2020): a reached use of standard-library surface
|
|
1778
2213
|
* nothing lowers. Poisons the statement like every other rejection.
|
|
1779
2214
|
* `sym`, when given, picks the wording: surface declared only by the
|
|
1780
2215
|
* adopted @types/node is blamed at @types/node. */
|
|
1781
2216
|
noLowering(surface: string, node: ts.Node, hint?: string, sym?: ts.Symbol | null, reason?: string): never;
|
|
2217
|
+
/** The declaration-side refusal of a stdlib-global snapshot read as a
|
|
2218
|
+
* VALUE (stdlibGlobalAliasDecl): report once, at the declaration's name,
|
|
2219
|
+
* naming the type the program asked the compiler to hold when it has a
|
|
2220
|
+
* short spelling. */
|
|
2221
|
+
reportStdlibSnapshot(symbol: ts.Symbol): void;
|
|
1782
2222
|
stdlibMemberFence(access: ts.PropertyAccessExpression): void;
|
|
1783
2223
|
fenceStaticResponseMember(access: ts.PropertyAccessExpression | ts.ElementAccessExpression, use: "read" | "call"): IrExpr | null;
|
|
1784
2224
|
fenceUnsupportedFetchConstructorMember(access: ts.PropertyAccessExpression | ts.ElementAccessExpression): IrExpr | null;
|
|
@@ -1873,6 +2313,20 @@ export declare class Lowerer {
|
|
|
1873
2313
|
* over literal arguments). Inert outside generic function and class
|
|
1874
2314
|
* instantiation. */
|
|
1875
2315
|
readonly typeParamTsResolver: (t: ts.Type) => ts.Type | null;
|
|
2316
|
+
/** The concrete instantiation of a generic alias reference (`Catalog<G,
|
|
2317
|
+
* P>`) the current call-keyed instance's signature declares
|
|
2318
|
+
* (boundAliasInstances), or null when its signature never instantiated
|
|
2319
|
+
* that reference. Inert outside generic function instantiation. */
|
|
2320
|
+
readonly boundAliasTsResolver: (t: ts.Type) => ts.Type | null;
|
|
2321
|
+
private structuredCloneReadCounts;
|
|
2322
|
+
/** How often the program reads `workerData` (every expression spelling it,
|
|
2323
|
+
* counted conservatively) and registers a `"message"` listener: a
|
|
2324
|
+
* structured clone read at one site only has no other holder
|
|
2325
|
+
* (narrowing.ts freshDynSource). Computed once per lowering pass. */
|
|
2326
|
+
structuredCloneReads(): {
|
|
2327
|
+
workerData: number;
|
|
2328
|
+
messageListeners: number;
|
|
2329
|
+
};
|
|
1876
2330
|
irTypeOf(node: ts.Node): IrType;
|
|
1877
2331
|
/** Exact-shape enforcement (SC2002). Records are monomorphic structs, so
|
|
1878
2332
|
* everywhere a value flows into a typed slot (call arg, initializer,
|
|
@@ -1916,7 +2370,11 @@ export declare class Lowerer {
|
|
|
1916
2370
|
unionRecordWidthHelper(fromId: string, target: IrType & {
|
|
1917
2371
|
kind: "record";
|
|
1918
2372
|
}, loc: SrcLoc): string;
|
|
2373
|
+
unionArrayWidthHelper(fromId: string, target: IrType & {
|
|
2374
|
+
kind: "array";
|
|
2375
|
+
}, loc: SrcLoc): string;
|
|
1919
2376
|
recordWidthPlan(fromId: string, toId: string): Map<string, FieldLift> | null;
|
|
2377
|
+
recordOvfCapturePlan(fromId: string, toId: string): RecordOvfCapturePlan | null;
|
|
1920
2378
|
describeRecordWidthBlocker(fromId: string, toId: string): string | null;
|
|
1921
2379
|
recordWidthHelper(fromId: string, toId: string, loc: SrcLoc): string | null;
|
|
1922
2380
|
tupleArrayWidthHelper(fromId: string, toT: IrType & {
|
|
@@ -1992,8 +2450,11 @@ export declare class Lowerer {
|
|
|
1992
2450
|
* wrap implicitly (coerceToExpected), then the exact-type fence runs
|
|
1993
2451
|
* (SC2002 for record shapes, SC2003 for unions). Every slot-directed
|
|
1994
2452
|
* lowering goes through here (via lowerExprExpecting) or calls this
|
|
1995
|
-
* directly when the expression was already lowered.
|
|
2453
|
+
* directly when the expression was already lowered. In package files, a
|
|
2454
|
+
* check this coercion creates names the package declaration that types
|
|
2455
|
+
* the slot (decl-origin.ts). */
|
|
1996
2456
|
coerceInto(node: ts.Node, expr: IrExpr, expected: IrType): IrExpr;
|
|
2457
|
+
private coerceIntoSlot;
|
|
1997
2458
|
/** The unit an 'any' expression PROVABLY holds on every run, or null
|
|
1998
2459
|
* when no proof exists. The node must be an identifier whose every
|
|
1999
2460
|
* declaration is a plain,
|
|
@@ -2162,6 +2623,12 @@ export declare class Lowerer {
|
|
|
2162
2623
|
* may follow) — reached-but-broken declarations report the same set of
|
|
2163
2624
|
* diagnostics the eager collector historically produced. */
|
|
2164
2625
|
flushDeferred(symbol: ts.Symbol): void;
|
|
2626
|
+
/** A statement's lowering used a declaration: if that declaration was
|
|
2627
|
+
* rejected, the statement's own failure (if any) is its cascade. */
|
|
2628
|
+
touchRejected(symbol: ts.Symbol): void;
|
|
2629
|
+
/** Records a declaration whose deferred diagnostics reached the build:
|
|
2630
|
+
* its failure group, on the group's diagnostics too. */
|
|
2631
|
+
private noteRejected;
|
|
2165
2632
|
/** flushDeferred without the collection-pass guard: for declarations
|
|
2166
2633
|
* whose diagnostics must report eagerly (class statements with
|
|
2167
2634
|
* declaration-time code, extended bases — collectClassShapeDeferring). */
|
|
@@ -2170,7 +2637,29 @@ export declare class Lowerer {
|
|
|
2170
2637
|
* diagnostic is reported, so it leaves the declaration's deferred list
|
|
2171
2638
|
* (the declaration counts as flushed for the coverage remainder). */
|
|
2172
2639
|
private commitFlush;
|
|
2173
|
-
|
|
2640
|
+
/** Flushes a deferred class known by its IR name, and answers the class
|
|
2641
|
+
* when the flush registered it (retryDeferred). */
|
|
2642
|
+
flushDeferredClass(className: string): ClassInfo | undefined;
|
|
2643
|
+
/** Localized failure's declaration commit point (design §3.3): a
|
|
2644
|
+
* reference is flushing a deferred declaration into the build. When
|
|
2645
|
+
* every deferred diagnostic is a degradable type failure at one of the
|
|
2646
|
+
* declaration's slots, the failing types degrade and the collection
|
|
2647
|
+
* runs again (up to MAX_DECLARATION_RETRIES rounds, each degrading the
|
|
2648
|
+
* types the previous round still failed on). On success the
|
|
2649
|
+
* declaration registers, each degraded slot is an SC6104, and nothing
|
|
2650
|
+
* reports. Otherwise the last round's diagnostics stay deferred for the
|
|
2651
|
+
* caller to commit. */
|
|
2652
|
+
private retryDeferred;
|
|
2653
|
+
private retryDeferredRounds;
|
|
2654
|
+
private retryDegraded;
|
|
2655
|
+
/** A deferred class with static field initializers is reached where its
|
|
2656
|
+
* statement evaluates: Node runs the initializers there, referenced or
|
|
2657
|
+
* not. Its file's %init calls this at that place, which retries the class
|
|
2658
|
+
* as a flush would, so the initializers lower in place. A failed retry
|
|
2659
|
+
* reports nothing and leaves the class deferred as it was, and from here
|
|
2660
|
+
* on no flush registers it (staticInitsPassed): it reports instead.
|
|
2661
|
+
* Returns whether the class has registered. */
|
|
2662
|
+
retryDeferredAtDeclaration(symbol: ts.Symbol): boolean;
|
|
2174
2663
|
collectSignature(decl: ts.FunctionDeclaration): void;
|
|
2175
2664
|
collectSignatureInner(decl: ts.FunctionDeclaration): void;
|
|
2176
2665
|
collectGenericSignature(decl: ts.FunctionDeclaration): void;
|
|
@@ -2203,6 +2692,11 @@ export declare class Lowerer {
|
|
|
2203
2692
|
ordinal: number;
|
|
2204
2693
|
}): void;
|
|
2205
2694
|
lowerClassExpressionInfo(expr: ts.ClassLikeDeclaration): ClassInfo;
|
|
2695
|
+
/** Batch-prefetches the symbols of every runtime identifier of the
|
|
2696
|
+
* program's files. Collection's early-binding scan and the runtime-
|
|
2697
|
+
* optional analysis look them up across every body, reached or not;
|
|
2698
|
+
* one batch answers both, instead of one request per identifier. */
|
|
2699
|
+
private prefetchProgramSymbols;
|
|
2206
2700
|
/** Depth of the whole-program analyses that query types across every
|
|
2207
2701
|
* file before reachability is known (speculativeTypeQueries). */
|
|
2208
2702
|
private speculativeTypeQueryDepth;
|
|
@@ -2263,6 +2757,9 @@ export declare class Lowerer {
|
|
|
2263
2757
|
* bodies as worklist units (the units map is otherwise built before
|
|
2264
2758
|
* lowering starts). Null in the emit pass. */
|
|
2265
2759
|
onExprClassCollected: ((info: ClassInfo) => void) | null;
|
|
2760
|
+
/** emitReachable's unit registration for a declaration retryDeferred
|
|
2761
|
+
* registered after collection. */
|
|
2762
|
+
onDeclarationRegistered: ((decl: ts.Node) => void) | null;
|
|
2266
2763
|
/** Mixin functions (`(Base: T) => class extends Base {…}`) by their
|
|
2267
2764
|
* function-like node: recognized shape, or null for checked
|
|
2268
2765
|
* non-qualifiers (lower-mixins.ts). */
|
|
@@ -2400,7 +2897,7 @@ export declare class Lowerer {
|
|
|
2400
2897
|
resolveKey(symbol: ts.Symbol | undefined, blame?: ts.Node): IrLocal | null;
|
|
2401
2898
|
isSelfReference(ident: ts.Identifier): boolean;
|
|
2402
2899
|
lowerStmts(stmts: readonly ts.Statement[]): IrStmt[];
|
|
2403
|
-
noteBlockedBindings(stmt: ts.Statement): void;
|
|
2900
|
+
noteBlockedBindings(stmt: ts.Statement, diags?: readonly ScrDiagnostic[]): void;
|
|
2404
2901
|
isBlockedBinding(symbol: ts.Symbol | null): boolean;
|
|
2405
2902
|
/** The cascade rejection: an honest "inherits its declaration's blocker"
|
|
2406
2903
|
* diagnostic (SC2004) when the symbol is a known-blocked binding, the
|
|
@@ -2606,6 +3103,13 @@ export declare class Lowerer {
|
|
|
2606
3103
|
member: string;
|
|
2607
3104
|
}, loc: SrcLoc): IrExpr | null;
|
|
2608
3105
|
lowerNativeCallableValue(fn: BuiltinModuleFn, display: string, loc: SrcLoc): IrExpr | null;
|
|
3106
|
+
/** The name and length a builtin function's adapter boxes under: the ones
|
|
3107
|
+
* Node's function carries (`[Function: randomUUID]`). Empty for any other
|
|
3108
|
+
* value. */
|
|
3109
|
+
builtinFunctionIdentity(expr: IrExpr): {
|
|
3110
|
+
fnName?: string;
|
|
3111
|
+
fnLength?: number;
|
|
3112
|
+
};
|
|
2609
3113
|
isBuiltinCallableValue(expr: IrExpr): boolean;
|
|
2610
3114
|
lowerBuiltinModuleCall(expr: ts.CallExpression, bi: {
|
|
2611
3115
|
module: string;
|