@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
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/* Every SC diagnostic code, in one table.
|
|
2
|
+
*
|
|
3
|
+
* A code is claimed by adding its row here, in numeric order, before any
|
|
4
|
+
* site uses it. Two changes that claim the same code then either edit the
|
|
5
|
+
* same line (a merge conflict) or add the same key twice (TypeScript error
|
|
6
|
+
* TS1117), and codes.test.ts fails when a source file uses a code that has
|
|
7
|
+
* no row, uses a retired code, or when a row is out of order. The band of a
|
|
8
|
+
* code (its first digit) says what kind of diagnostic it is; diagnostic.ts
|
|
9
|
+
* documents the bands.
|
|
10
|
+
*
|
|
11
|
+
* Codes are part of scriptc's user-facing output and never change meaning:
|
|
12
|
+
* when a construct ships, its code moves to RETIRED_DIAGNOSTIC_CODES instead
|
|
13
|
+
* of being reused. RESERVED_DIAGNOSTIC_CODES holds codes that open work
|
|
14
|
+
* already uses, so other changes do not take them. */
|
|
15
|
+
/** The active codes, with a short summary of what each reports. */
|
|
16
|
+
export const DIAGNOSTIC_CODES = {
|
|
17
|
+
SC0001: "TypeScript error passed through",
|
|
18
|
+
SC0002: "project configuration incompatible with scriptc",
|
|
19
|
+
SC0003: "malformed imported JSON module",
|
|
20
|
+
SC0004: "TypeScript checker panic",
|
|
21
|
+
SC1010: "package imports outside the supported set",
|
|
22
|
+
SC1012: "default exports/imports (residual edges)",
|
|
23
|
+
SC1013: "namespace imports (residual edges)",
|
|
24
|
+
SC1014: "re-exports and export lists",
|
|
25
|
+
SC1015: "dynamic import()",
|
|
26
|
+
SC1016: "circular imports",
|
|
27
|
+
SC1020: "class expressions",
|
|
28
|
+
SC1030: "var declarations (residual forms)",
|
|
29
|
+
SC1031: "destructuring",
|
|
30
|
+
SC1040: "loose equality (== and !=)",
|
|
31
|
+
SC1042: "logical operators on mixed operand types",
|
|
32
|
+
SC1043: "comparing non-number, non-string values",
|
|
33
|
+
SC1045: "increment/decrement in expression position",
|
|
34
|
+
SC1050: "labeled break/continue",
|
|
35
|
+
SC1052: "for-in loops",
|
|
36
|
+
SC1062: "destructuring catch clause bindings",
|
|
37
|
+
SC1063: "this use of a catch binding",
|
|
38
|
+
SC1070: "async/await",
|
|
39
|
+
SC1071: "generators",
|
|
40
|
+
SC1080: "'this' outside a class method",
|
|
41
|
+
SC1090: "this syntax (generic construct fence)",
|
|
42
|
+
SC1100: "operations on 'unknown' values",
|
|
43
|
+
SC1101: "converting typed values to 'unknown'",
|
|
44
|
+
SC1110: "comptime evaluation failure",
|
|
45
|
+
SC1120: "regex feature outside the native engine",
|
|
46
|
+
SC2001: "type outside the compilable set",
|
|
47
|
+
SC2002: "record shape flow outside the width-copy rules",
|
|
48
|
+
SC2003: "union-to-union conversion outside the re-tagging rule",
|
|
49
|
+
SC2004: "use of a binding whose declaration did not compile",
|
|
50
|
+
SC2005: "generic call signature in a value's type",
|
|
51
|
+
SC2006: "index-signature object type outside the supported shape",
|
|
52
|
+
SC2007: "overloaded function type as a value",
|
|
53
|
+
SC2008: "intersection type with no lowering",
|
|
54
|
+
SC2009: "component type outside its container or function slot",
|
|
55
|
+
SC2010: "runtime JavaScript execution",
|
|
56
|
+
SC2011: "'any'-typed values and their operations",
|
|
57
|
+
SC2012: "standard-library form without native lowering",
|
|
58
|
+
SC2013: "npm package import or value without native lowering",
|
|
59
|
+
SC2020: "standard-library or @types/node surface with no lowering",
|
|
60
|
+
SC3001: "LLVM IR tier refusal",
|
|
61
|
+
SC3002: "target or capability refusal",
|
|
62
|
+
SC3003: "native helper installation or version failure",
|
|
63
|
+
SC3004: "native helper code-generation failure",
|
|
64
|
+
SC4001: "library profile malformed",
|
|
65
|
+
SC4002: "library export unresolved",
|
|
66
|
+
SC4003: "library export signature not mappable",
|
|
67
|
+
SC4004: "async or generator library export",
|
|
68
|
+
SC4005: "library graph reaches the event loop or ambient process state",
|
|
69
|
+
SC4007: "generic library export signature",
|
|
70
|
+
SC4008: "profile-fenced surface reached by a library",
|
|
71
|
+
SC4009: "contract sidecar projection failure",
|
|
72
|
+
SC4010: "tabled type declared at several sites",
|
|
73
|
+
SC4011: "conditional or mapped type producing a tabled type",
|
|
74
|
+
SC4012: "library inbound-bytes trap (runtime)",
|
|
75
|
+
SC4013: "library escaped exception trap (runtime)",
|
|
76
|
+
SC4014: "library range trap (runtime)",
|
|
77
|
+
SC4015: "library type trap (runtime)",
|
|
78
|
+
SC4016: "library syntax trap (runtime)",
|
|
79
|
+
SC4017: "library out-of-memory trap (runtime)",
|
|
80
|
+
SC4018: "library internal invariant trap (runtime)",
|
|
81
|
+
SC4019: "library other detected trap (runtime)",
|
|
82
|
+
SC4020: "npm package imported by a library is not statically eligible",
|
|
83
|
+
SC4021: "integer boundary: literal not representable",
|
|
84
|
+
SC4022: "integer boundary: value may not be whole",
|
|
85
|
+
SC4023: "integer boundary: value out of range",
|
|
86
|
+
SC4024: "host callback reference the profile cannot serve",
|
|
87
|
+
SC4025: "host callback invoked before registration (runtime)",
|
|
88
|
+
SC4026: "library re-entered from a host callback (runtime)",
|
|
89
|
+
SC5001: "FFI manifest malformed",
|
|
90
|
+
SC5002: "FFI binding is not an ambient function declaration",
|
|
91
|
+
SC5003: "FFI signature does not match its native ABI",
|
|
92
|
+
SC5004: "FFI native build failure",
|
|
93
|
+
SC6001: "divergence: width copy written or compared through",
|
|
94
|
+
SC6002: "divergence: observed object key order",
|
|
95
|
+
SC6003: "divergence: localeCompare outside the built-in collation",
|
|
96
|
+
SC6004: "divergence: cast to an unrelated class",
|
|
97
|
+
SC6101: "performance: likely-hot function with untyped values",
|
|
98
|
+
SC6102: "performance: declaration-typed boundary note",
|
|
99
|
+
SC6103: "performance: shape inference overlay report",
|
|
100
|
+
SC6104: "localized failure: slot held as a checked-dynamic value",
|
|
101
|
+
SC7001: "NoThrow contract on an async function or generator",
|
|
102
|
+
SC7002: "Int32 contract value not provably int32",
|
|
103
|
+
SC7003: "Int32 contract cannot be checked",
|
|
104
|
+
SC7004: "Immutable contract value may be referenced elsewhere",
|
|
105
|
+
SC7005: "Immutable contract cannot be checked",
|
|
106
|
+
SC7006: "Acyclic contract in an unchecked position",
|
|
107
|
+
SC7007: "Acyclic type can lie on a reference cycle",
|
|
108
|
+
SC7008: "ProgramLifetime class extends another class",
|
|
109
|
+
SC7009: "InlineArray field contract not kept",
|
|
110
|
+
SC8001: "package or module runs in a Node island (note)",
|
|
111
|
+
SC8002: "Node islands off for a package or module outside the native subset",
|
|
112
|
+
SC8003: "package marked native is outside the native subset",
|
|
113
|
+
SC8004: "unknown scriptc.packages or scriptc.nodeIslands configuration",
|
|
114
|
+
SC8005: "no usable libnode pack for a program that calls into Node.js",
|
|
115
|
+
SC8006: "Node island modules the build cannot collect",
|
|
116
|
+
SC8010: "value crossing a Node island boundary in a form without an exact copy",
|
|
117
|
+
SC8011: "native class extending a Node island class outside the supported forms",
|
|
118
|
+
SC8020: "stateful module duplicated across the Node island boundary",
|
|
119
|
+
SC8021: "Node island evaluation notes (deferred or at startup)",
|
|
120
|
+
SC8022: "island code extends a class of a compiled module",
|
|
121
|
+
SC8023: "Node island build failed; built natively with runtime fences",
|
|
122
|
+
SC8030: "type patch: no range covers the installed copy",
|
|
123
|
+
SC8031: "type patch: selector matches nothing",
|
|
124
|
+
SC8032: "type patch: declaration already has the type",
|
|
125
|
+
SC8033: "type patch: selector ambiguous or not patchable",
|
|
126
|
+
SC8101: "user JavaScript: constructor function",
|
|
127
|
+
SC8102: "user JavaScript: prototype mutation",
|
|
128
|
+
SC8103: "user JavaScript: shape mutation outside the checker's view",
|
|
129
|
+
SC8104: "user JavaScript: sloppy-mode semantics",
|
|
130
|
+
SC8105: "user JavaScript: builtin and global patching",
|
|
131
|
+
SC9001: "internal compiler error",
|
|
132
|
+
SC9002: "internal error trap in generated code",
|
|
133
|
+
};
|
|
134
|
+
/** Codes whose construct shipped or whose diagnostic was removed. Never
|
|
135
|
+
* reuse one: old output and documentation still name it. */
|
|
136
|
+
export const RETIRED_DIAGNOSTIC_CODES = {
|
|
137
|
+
SC1011: "exports (shipped)",
|
|
138
|
+
SC1021: "arrow functions and closures (shipped)",
|
|
139
|
+
SC1022: "nested function declarations (shipped)",
|
|
140
|
+
SC1023: "object literals (shipped as records)",
|
|
141
|
+
SC1024: "arrays (shipped)",
|
|
142
|
+
SC1032: "multiple declarations in one statement (shipped)",
|
|
143
|
+
SC1033: "let without an initializer (shipped)",
|
|
144
|
+
SC1041: "bitwise operators (shipped)",
|
|
145
|
+
SC1051: "do-while loops (shipped)",
|
|
146
|
+
SC1060: "switch statements (shipped)",
|
|
147
|
+
SC1061: "exceptions (shipped)",
|
|
148
|
+
SC1121: "stateful g/y regex tests (shipped)",
|
|
149
|
+
SC2030: "npm embedding failure",
|
|
150
|
+
SC4006: "library export refusal (removed)",
|
|
151
|
+
SC6005: "Date strings outside the native parser's grammar",
|
|
152
|
+
};
|
|
153
|
+
/** Codes that open work already uses, so no other change claims them. When
|
|
154
|
+
* that work lands it moves its codes into DIAGNOSTIC_CODES; when it is
|
|
155
|
+
* abandoned, delete them here. */
|
|
156
|
+
export const RESERVED_DIAGNOSTIC_CODES = {
|
|
157
|
+
SC8012: "Node islands (ni/* branches)",
|
|
158
|
+
};
|
|
159
|
+
//# sourceMappingURL=codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codes.js","sourceRoot":"","sources":["../../src/diagnostics/codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;sDAasD;AAEtD,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,iCAAiC;IACzC,MAAM,EAAE,iDAAiD;IACzD,MAAM,EAAE,gCAAgC;IACxC,MAAM,EAAE,0BAA0B;IAClC,MAAM,EAAE,2CAA2C;IACnD,MAAM,EAAE,0CAA0C;IAClD,MAAM,EAAE,oCAAoC;IAC5C,MAAM,EAAE,6BAA6B;IACrC,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,mBAAmB;IAC3B,MAAM,EAAE,mCAAmC;IAC3C,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,4BAA4B;IACpC,MAAM,EAAE,0CAA0C;IAClD,MAAM,EAAE,yCAAyC;IACjD,MAAM,EAAE,4CAA4C;IACpD,MAAM,EAAE,wBAAwB;IAChC,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,qCAAqC;IAC7C,MAAM,EAAE,6BAA6B;IACrC,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,+BAA+B;IACvC,MAAM,EAAE,uCAAuC;IAC/C,MAAM,EAAE,gCAAgC;IACxC,MAAM,EAAE,sCAAsC;IAC9C,MAAM,EAAE,6BAA6B;IACrC,MAAM,EAAE,yCAAyC;IACjD,MAAM,EAAE,iCAAiC;IACzC,MAAM,EAAE,gDAAgD;IACxD,MAAM,EAAE,uDAAuD;IAC/D,MAAM,EAAE,oDAAoD;IAC5D,MAAM,EAAE,0CAA0C;IAClD,MAAM,EAAE,yDAAyD;IACjE,MAAM,EAAE,qCAAqC;IAC7C,MAAM,EAAE,oCAAoC;IAC5C,MAAM,EAAE,uDAAuD;IAC/D,MAAM,EAAE,8BAA8B;IACtC,MAAM,EAAE,yCAAyC;IACjD,MAAM,EAAE,+CAA+C;IACvD,MAAM,EAAE,qDAAqD;IAC7D,MAAM,EAAE,0DAA0D;IAClE,MAAM,EAAE,sBAAsB;IAC9B,MAAM,EAAE,8BAA8B;IACtC,MAAM,EAAE,+CAA+C;IACvD,MAAM,EAAE,uCAAuC;IAC/C,MAAM,EAAE,2BAA2B;IACnC,MAAM,EAAE,2BAA2B;IACnC,MAAM,EAAE,uCAAuC;IAC/C,MAAM,EAAE,mCAAmC;IAC3C,MAAM,EAAE,+DAA+D;IACvE,MAAM,EAAE,kCAAkC;IAC1C,MAAM,EAAE,6CAA6C;IACrD,MAAM,EAAE,qCAAqC;IAC7C,MAAM,EAAE,uCAAuC;IAC/C,MAAM,EAAE,oDAAoD;IAC5D,MAAM,EAAE,sCAAsC;IAC9C,MAAM,EAAE,0CAA0C;IAClD,MAAM,EAAE,8BAA8B;IACtC,MAAM,EAAE,6BAA6B;IACrC,MAAM,EAAE,+BAA+B;IACvC,MAAM,EAAE,sCAAsC;IAC9C,MAAM,EAAE,2CAA2C;IACnD,MAAM,EAAE,uCAAuC;IAC/C,MAAM,EAAE,8DAA8D;IACtE,MAAM,EAAE,6CAA6C;IACrD,MAAM,EAAE,0CAA0C;IAClD,MAAM,EAAE,sCAAsC;IAC9C,MAAM,EAAE,kDAAkD;IAC1D,MAAM,EAAE,qDAAqD;IAC7D,MAAM,EAAE,mDAAmD;IAC3D,MAAM,EAAE,wBAAwB;IAChC,MAAM,EAAE,oDAAoD;IAC5D,MAAM,EAAE,6CAA6C;IACrD,MAAM,EAAE,0BAA0B;IAClC,MAAM,EAAE,oDAAoD;IAC5D,MAAM,EAAE,uCAAuC;IAC/C,MAAM,EAAE,0DAA0D;IAClE,MAAM,EAAE,wCAAwC;IAChD,MAAM,EAAE,sDAAsD;IAC9D,MAAM,EAAE,8CAA8C;IACtD,MAAM,EAAE,6CAA6C;IACrD,MAAM,EAAE,yDAAyD;IACjE,MAAM,EAAE,oDAAoD;IAC5D,MAAM,EAAE,yCAAyC;IACjD,MAAM,EAAE,kCAAkC;IAC1C,MAAM,EAAE,sDAAsD;IAC9D,MAAM,EAAE,sCAAsC;IAC9C,MAAM,EAAE,2CAA2C;IACnD,MAAM,EAAE,2CAA2C;IACnD,MAAM,EAAE,6CAA6C;IACrD,MAAM,EAAE,qCAAqC;IAC7C,MAAM,EAAE,gDAAgD;IACxD,MAAM,EAAE,oEAAoE;IAC5E,MAAM,EAAE,oDAAoD;IAC5D,MAAM,EAAE,+DAA+D;IACvE,MAAM,EAAE,8DAA8D;IACtE,MAAM,EAAE,8CAA8C;IACtD,MAAM,EAAE,uEAAuE;IAC/E,MAAM,EAAE,wEAAwE;IAChF,MAAM,EAAE,4DAA4D;IACpE,MAAM,EAAE,uDAAuD;IAC/D,MAAM,EAAE,kDAAkD;IAC1D,MAAM,EAAE,8DAA8D;IACtE,MAAM,EAAE,gDAAgD;IACxD,MAAM,EAAE,sCAAsC;IAC9C,MAAM,EAAE,8CAA8C;IACtD,MAAM,EAAE,iDAAiD;IACzD,MAAM,EAAE,uCAAuC;IAC/C,MAAM,EAAE,qCAAqC;IAC7C,MAAM,EAAE,4DAA4D;IACpE,MAAM,EAAE,wCAAwC;IAChD,MAAM,EAAE,8CAA8C;IACtD,MAAM,EAAE,yBAAyB;IACjC,MAAM,EAAE,uCAAuC;CACC,CAAC;AAEnD;4DAC4D;AAC5D,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,MAAM,EAAE,mBAAmB;IAC3B,MAAM,EAAE,wCAAwC;IAChD,MAAM,EAAE,wCAAwC;IAChD,MAAM,EAAE,sCAAsC;IAC9C,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,kDAAkD;IAC1D,MAAM,EAAE,sCAAsC;IAC9C,MAAM,EAAE,6BAA6B;IACrC,MAAM,EAAE,0BAA0B;IAClC,MAAM,EAAE,6BAA6B;IACrC,MAAM,EAAE,sBAAsB;IAC9B,MAAM,EAAE,oCAAoC;IAC5C,MAAM,EAAE,uBAAuB;IAC/B,MAAM,EAAE,kCAAkC;IAC1C,MAAM,EAAE,kDAAkD;CACV,CAAC;AAEnD;;kCAEkC;AAClC,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,MAAM,EAAE,8BAA8B;CACU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { readdirSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { expect, test } from "vitest";
|
|
4
|
+
import { DIAGNOSTIC_CODES, RESERVED_DIAGNOSTIC_CODES, RETIRED_DIAGNOSTIC_CODES } from "./codes.js";
|
|
5
|
+
import { FENCE_CODES, UNSUPPORTED } from "./diagnostic.js";
|
|
6
|
+
const here = import.meta.dirname;
|
|
7
|
+
const packagesDir = join(here, "../../..");
|
|
8
|
+
const codesSource = readFileSync(join(here, "codes.ts"), "utf8");
|
|
9
|
+
function sourceFiles(dir) {
|
|
10
|
+
return readdirSync(dir, { recursive: true, withFileTypes: true })
|
|
11
|
+
.filter((e) => e.isFile() && e.name.endsWith(".ts") && !e.name.endsWith(".test.ts"))
|
|
12
|
+
.map((e) => join(e.parentPath, e.name));
|
|
13
|
+
}
|
|
14
|
+
// Every non-test source file that can name a code.
|
|
15
|
+
const sources = [
|
|
16
|
+
...sourceFiles(join(packagesDir, "compiler/src")),
|
|
17
|
+
...sourceFiles(join(packagesDir, "cli/src")),
|
|
18
|
+
]
|
|
19
|
+
.filter((file) => file !== join(here, "codes.ts"))
|
|
20
|
+
.map((file) => ({ file: file.slice(packagesDir.length), text: readFileSync(file, "utf8") }));
|
|
21
|
+
const active = new Set(Object.keys(DIAGNOSTIC_CODES));
|
|
22
|
+
const retired = new Set(Object.keys(RETIRED_DIAGNOSTIC_CODES));
|
|
23
|
+
const reserved = new Set(Object.keys(RESERVED_DIAGNOSTIC_CODES));
|
|
24
|
+
/** The keys of one table in codes.ts, as written (duplicates included). */
|
|
25
|
+
function writtenKeys(table) {
|
|
26
|
+
const start = codesSource.indexOf(`export const ${table} = {`);
|
|
27
|
+
const end = codesSource.indexOf("\n}", start);
|
|
28
|
+
return [...codesSource.slice(start, end).matchAll(/^ {2}(SC\d{4}):/gm)].map((m) => m[1]);
|
|
29
|
+
}
|
|
30
|
+
test.each(["DIAGNOSTIC_CODES", "RETIRED_DIAGNOSTIC_CODES", "RESERVED_DIAGNOSTIC_CODES"])("%s is written once per code, in numeric order", (table) => {
|
|
31
|
+
const keys = writtenKeys(table);
|
|
32
|
+
expect(keys.length).toBeGreaterThan(0);
|
|
33
|
+
expect(keys).toEqual([...new Set(keys)].toSorted());
|
|
34
|
+
});
|
|
35
|
+
test("a code is active, retired or reserved, never two of them", () => {
|
|
36
|
+
for (const code of retired)
|
|
37
|
+
expect(active.has(code) || reserved.has(code), code).toBe(false);
|
|
38
|
+
for (const code of reserved)
|
|
39
|
+
expect(active.has(code), code).toBe(false);
|
|
40
|
+
});
|
|
41
|
+
test("every code the sources name has a row in codes.ts", () => {
|
|
42
|
+
const missing = [];
|
|
43
|
+
for (const { file, text } of sources) {
|
|
44
|
+
for (const [code] of text.matchAll(/\bSC\d{4}\b/g)) {
|
|
45
|
+
if (!active.has(code) && !retired.has(code) && !reserved.has(code)) {
|
|
46
|
+
missing.push(`${code} (${file})`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
expect(missing, "claim each code in packages/compiler/src/diagnostics/codes.ts").toEqual([]);
|
|
51
|
+
});
|
|
52
|
+
test("no source produces a retired code", () => {
|
|
53
|
+
const produced = [];
|
|
54
|
+
for (const { file, text } of sources) {
|
|
55
|
+
for (const [, code] of text.matchAll(/["'`](SC\d{4})["'`]/g)) {
|
|
56
|
+
if (retired.has(code))
|
|
57
|
+
produced.push(`${code} (${file})`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
expect(produced).toEqual([]);
|
|
61
|
+
});
|
|
62
|
+
test("every active code is used by some source", () => {
|
|
63
|
+
const seen = new Set(sources.flatMap(({ text }) => text.match(/\bSC\d{4}\b/g) ?? []));
|
|
64
|
+
const unused = [...active].filter((code) => !seen.has(code));
|
|
65
|
+
expect(unused, "retire codes nothing produces any more").toEqual([]);
|
|
66
|
+
});
|
|
67
|
+
test("the construct tables only name active codes", () => {
|
|
68
|
+
for (const code of [...Object.keys(UNSUPPORTED), ...Object.keys(FENCE_CODES)]) {
|
|
69
|
+
expect(active.has(code), code).toBe(true);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
test("every band in use is documented in diagnostic.ts", () => {
|
|
73
|
+
const header = readFileSync(join(here, "diagnostic.ts"), "utf8");
|
|
74
|
+
for (const band of new Set([...active].map((code) => code[2]))) {
|
|
75
|
+
expect(header, `SC${band}xxx`).toContain(`SC${band}xxx`);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=codes.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codes.test.js","sourceRoot":"","sources":["../../src/diagnostics/codes.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { SrcLoc } from "../ir/ir.js";
|
|
2
|
+
import type { DiagnosticCode } from "./codes.js";
|
|
2
3
|
export type Milestone = "M1" | "M2" | "M3" | "M4" | "M5" | "later";
|
|
3
4
|
export interface ScrDiagnostic {
|
|
4
|
-
code:
|
|
5
|
+
code: DiagnosticCode;
|
|
5
6
|
message: string;
|
|
6
7
|
loc: SrcLoc;
|
|
7
8
|
milestone?: Milestone;
|
|
@@ -23,15 +24,60 @@ export interface ScrDiagnostic {
|
|
|
23
24
|
* alone does not say it (a computed require(), a native addon, `with`).
|
|
24
25
|
* Report-only: never part of the rendered message. */
|
|
25
26
|
reason?: string;
|
|
27
|
+
/** Runtime fences only: the fenced site is in a module's top-level code
|
|
28
|
+
* (outside every function body), so it runs, and throws, when the module
|
|
29
|
+
* evaluates. Island selection treats such a fence like one that needs the
|
|
30
|
+
* runtime (scope-B NI-4). */
|
|
31
|
+
moduleInit?: true;
|
|
26
32
|
/** A runtime fence in a module's top-level code, outside every function
|
|
27
33
|
* and class member body: it throws when the module initializes, which is
|
|
28
34
|
* program startup for a module the entry imports. */
|
|
29
35
|
startup?: true;
|
|
36
|
+
/** Localized failure, report-only (stage L0): set where a type with no
|
|
37
|
+
* static lowering poisoned a slot (Lowerer.badType and the dyn class
|
|
38
|
+
* field policy). Never part of the rendered message. */
|
|
39
|
+
typeFailure?: TypeFailure;
|
|
40
|
+
/** Localized failure, report-only: the declaration this diagnostic
|
|
41
|
+
* rejected, as a failure-group key. Set when a reference flushes a
|
|
42
|
+
* deferred declaration's diagnostics, and on the diagnostics of a
|
|
43
|
+
* declaration statement whose bindings were blocked. */
|
|
44
|
+
rejects?: string;
|
|
45
|
+
/** Localized failure, report-only: the failure groups (rejected
|
|
46
|
+
* declarations, blocked statements) that the statement committing this
|
|
47
|
+
* diagnostic used. A cascade clears when every one of them would
|
|
48
|
+
* degrade instead of failing. */
|
|
49
|
+
cause?: readonly string[];
|
|
50
|
+
}
|
|
51
|
+
/** Where a type failure sits (localized-failure design §3.6): a
|
|
52
|
+
* declaration slot, a member of a declared type, or an expression's own
|
|
53
|
+
* type. */
|
|
54
|
+
export type TypeFailureSlot = "field" | "param" | "return" | "local" | "global" | "loop" | "member" | "expression";
|
|
55
|
+
/** Which badType branch (or policy fence) refused the type. */
|
|
56
|
+
export type TypeFailureFamily = "node-types" | "fetch-ambient" | "enum-object" | "stdlib-index" | "index-signature" | "package" | "generic-signature" | "overloads" | "intersection" | "component" | "stdlib-nominal" | "record-member" | "unsupported" | "dyn-field-policy";
|
|
57
|
+
/** A type failure's structured payload: what the commit points of the
|
|
58
|
+
* localized-failure design inspect (PoisonError.failure carries the same
|
|
59
|
+
* object). `degradable` is the §3.7 classification: a checked-dynamic slot
|
|
60
|
+
* would keep the program's meaning. */
|
|
61
|
+
export interface TypeFailure {
|
|
62
|
+
slot: TypeFailureSlot;
|
|
63
|
+
/** The slot's name (`_customTools`, `listAll`, `x`), or the expression
|
|
64
|
+
* text for expression slots. */
|
|
65
|
+
name: string;
|
|
66
|
+
declaredType: string;
|
|
67
|
+
family: TypeFailureFamily;
|
|
68
|
+
degradable: boolean;
|
|
30
69
|
}
|
|
31
70
|
/** SC3002–SC3004 — native-helper target, installation, and execution
|
|
32
71
|
* failures. These are ordinary build diagnostics: a missing optional package
|
|
33
72
|
* or malformed LLVM input must never surface as an internal compiler error. */
|
|
34
73
|
export declare function nativeCodegenDiag(code: "SC3002" | "SC3003" | "SC3004", message: string, file: string, hint?: string): ScrDiagnostic;
|
|
74
|
+
/** SC8005 — the program calls into Node.js (@scriptc/node), and the build
|
|
75
|
+
* found no usable libnode pack to record into the binary. */
|
|
76
|
+
export declare function nodeIslandNodeDiag(message: string, file: string): ScrDiagnostic;
|
|
77
|
+
/** SC8006 — a Node island call whose modules the build cannot collect into
|
|
78
|
+
* the executable: a computed specifier, or a module of the program that
|
|
79
|
+
* loads others through computed specifiers. */
|
|
80
|
+
export declare function nodeIslandModuleDiag(message: string, loc: SrcLoc): ScrDiagnostic;
|
|
35
81
|
/** SC6001 — a value passed to (or declared as) a narrower record type is
|
|
36
82
|
* copied field by field, and the program then writes through or compares
|
|
37
83
|
* the copy: under Node it is the same object, so the write would be
|
|
@@ -53,12 +99,44 @@ export declare function unrelatedClassCastDivergenceDiag(source: string, target:
|
|
|
53
99
|
/** SC8004 — an unknown key or value in `scriptc.packages` or
|
|
54
100
|
* `scriptc.nodeIslands`. */
|
|
55
101
|
export declare function projectConfigDiag(path: string, detail: string, hint: string, loc: SrcLoc): ScrDiagnostic;
|
|
102
|
+
/** SC8011 — a native class extends a class owned by a Node island. Native
|
|
103
|
+
* subclasses of island classes are scope-B milestone NI-5b. */
|
|
104
|
+
export declare function nativeSubclassOfIslandDiag(loc: SrcLoc, detail?: string): ScrDiagnostic;
|
|
105
|
+
/** SC8020 — a stateful module the program compiles is duplicated across
|
|
106
|
+
* the Node island boundary (an explicit "duplicate", or a form NI-6 cannot
|
|
107
|
+
* share yet): each side has its own state. */
|
|
108
|
+
export declare function sharedModuleDuplicatedDiag(module: string, why: string, loc: SrcLoc): ScrDiagnostic;
|
|
109
|
+
/** SC8022 — island code extends a class of a module the program compiles.
|
|
110
|
+
* A native instance cannot take an island subclass's overrides, so the
|
|
111
|
+
* module is not owned by the program: a package runs in Node for both
|
|
112
|
+
* sides (the build retries with it as a Node island); a program module is
|
|
113
|
+
* refused. */
|
|
114
|
+
export declare function sharedClassExtendedDiag(pkg: string | null, file: string, base: string, loc: SrcLoc): ScrDiagnostic;
|
|
56
115
|
/** SC8002 — Node islands are off (or limited to marked islands) and an
|
|
57
116
|
* npm package is outside the native subset. */
|
|
58
117
|
export declare function nodeIslandsOffDiag(pkg: string, why: string, loc: SrcLoc): ScrDiagnostic;
|
|
59
118
|
/** SC8002 — a user module is marked to run in a Node island while
|
|
60
119
|
* Node islands are off. */
|
|
61
120
|
export declare function nodeIslandsOffModuleDiag(file: string, source: "config" | "cli", loc: SrcLoc): ScrDiagnostic;
|
|
121
|
+
/** SC8001 — a package runs in a Node island (a note, once per island in
|
|
122
|
+
* the build output). */
|
|
123
|
+
export declare function nodeIslandNoteDiag(pkg: string, version: string | null, klass: string, reason: string, loc: SrcLoc): ScrDiagnostic;
|
|
124
|
+
/** SC8010 — a value crosses an island boundary in a way NI-4 cannot keep
|
|
125
|
+
* exact yet (callbacks, native objects, remote promises). */
|
|
126
|
+
export declare function nodeIslandBoundaryDiag(what: string, loc: SrcLoc): ScrDiagnostic;
|
|
127
|
+
/** SC8023 — the build that ran fenced packages as Node islands failed, so
|
|
128
|
+
* the program was built natively with those runtime fences (each throws
|
|
129
|
+
* when reached). A warning on the native build, with the island build's
|
|
130
|
+
* first error. */
|
|
131
|
+
export declare function nodeIslandRetryFailedDiag(packages: readonly string[], first: ScrDiagnostic, loc: SrcLoc): ScrDiagnostic;
|
|
132
|
+
/** SC8030–SC8033 — a type patch (`scriptc.typePatches`) that did not
|
|
133
|
+
* apply as written: no range covers the installed copy (SC8030), its
|
|
134
|
+
* selector matches nothing (SC8031), the declaration already has the type
|
|
135
|
+
* (SC8032), or the selector is ambiguous or not patchable (SC8033).
|
|
136
|
+
* Warnings: the build goes on with the declarations it has. */
|
|
137
|
+
export declare function typePatchDiag(code: "SC8030" | "SC8031" | "SC8032" | "SC8033", message: string, hint: string, loc: SrcLoc): ScrDiagnostic;
|
|
138
|
+
/** True for the type patch warnings (SC8030–SC8033). */
|
|
139
|
+
export declare function isTypePatchCode(code: string): boolean;
|
|
62
140
|
/** SC8003 — a package marked "native" is outside the native subset. */
|
|
63
141
|
export declare function nativePackageDiag(pkg: string, why: string, loc: SrcLoc): ScrDiagnostic;
|
|
64
142
|
/** SC8101–SC8105 — an R2 object-model construct in the program's own
|
|
@@ -96,7 +174,7 @@ export declare const FENCE_CODES: Record<string, {
|
|
|
96
174
|
name: string;
|
|
97
175
|
status: "unsupported";
|
|
98
176
|
}>;
|
|
99
|
-
export declare function unsupportedDiag(code: keyof typeof UNSUPPORTED &
|
|
177
|
+
export declare function unsupportedDiag(code: keyof typeof UNSUPPORTED & DiagnosticCode, loc: SrcLoc, featureOverride?: string, hintOverride?: string): ScrDiagnostic;
|
|
100
178
|
export declare function tscPassthroughDiag(message: string, loc: SrcLoc): ScrDiagnostic;
|
|
101
179
|
/** Node's package scope forces CommonJS, but the source contains a marker
|
|
102
180
|
* that is legal only when the file is parsed as ESM (static import/export,
|
|
@@ -182,6 +260,13 @@ export declare function componentTypeDiag(typeText: string, detail: string, loc:
|
|
|
182
260
|
* ambient "Cannot find name" — and never ICEs. `surface` names what was
|
|
183
261
|
* used ('Symbol', 'Math.sumPrecise', 'new Date', 'string.normalize'). */
|
|
184
262
|
export declare function noLoweringDiag(surface: string, loc: SrcLoc, hint?: string, viaNodeTypes?: boolean): ScrDiagnostic;
|
|
263
|
+
/** A stdlib-global snapshot reached a site that needs its VALUE (an
|
|
264
|
+
* argument, a return, a stored field). The declaration emitted no storage
|
|
265
|
+
* — alias plumbing only serves member and call reads — and the global's
|
|
266
|
+
* own value has no lowering, so the read cannot resolve. Reported at the
|
|
267
|
+
* declaration, where the real cause sits; the use site carries the SC2004
|
|
268
|
+
* cascade. */
|
|
269
|
+
export declare function stdlibSnapshotValueUseDiag(name: string, alias: string, typeText: string | undefined, loc: SrcLoc): ScrDiagnostic;
|
|
185
270
|
/** A REACHED use of a part of the WebAssembly API scriptc does not
|
|
186
271
|
* implement yet (SC2020): the streaming functions, Tag and Exception, the
|
|
187
272
|
* classes as values. compile, instantiate, validate, the Module, Instance,
|
|
@@ -193,6 +278,12 @@ export declare function webAssemblyDiag(surface: string, loc: SrcLoc): ScrDiagno
|
|
|
193
278
|
/** A resolved native addon needs Node's embedding ABI. The migration uses the
|
|
194
279
|
* underlying native operation through an ordinary C ABI declaration. */
|
|
195
280
|
export declare function nativeAddonDiag(specifier: string, loc: SrcLoc): ScrDiagnostic;
|
|
281
|
+
/** A createRequire require or require.resolve call whose specifier is
|
|
282
|
+
* computed at run time, where the runtime resolves it like Node
|
|
283
|
+
* (scr_require.c). Coverage lists the call as deferred: a require whose
|
|
284
|
+
* specifier resolves to a module ends the program with this code, because
|
|
285
|
+
* the module graph is fixed at build time. */
|
|
286
|
+
export declare function computedRequireDiag(surface: string, loc: SrcLoc): ScrDiagnostic;
|
|
196
287
|
/** Records are monomorphic structs, so a value's shape must match the
|
|
197
288
|
* expected shape exactly OR narrow through the width-copy family
|
|
198
289
|
* (recordWidthPlan / the overflow capture: target fields copied off the
|
|
@@ -208,6 +299,14 @@ export declare function recordShapeMismatchDiag(expectedText: string, actualText
|
|
|
208
299
|
* with no identical destination arm, where the value could not be
|
|
209
300
|
* represented in the target union at all. */
|
|
210
301
|
export declare function unionMismatchDiag(expectedText: string, actualText: string, loc: SrcLoc): ScrDiagnostic;
|
|
302
|
+
/** An object literal that SPREADS union-typed sources (`{ ...base,
|
|
303
|
+
* ...override }` where each source is `A | B | C`) builds one field set per
|
|
304
|
+
* combination of source arms. A union of records cannot hold that: each arm
|
|
305
|
+
* carries its own field table, so naming one arm would drop the fields the
|
|
306
|
+
* other arms contributed (Node keeps every field). The refusal names the
|
|
307
|
+
* candidate arms, because the honest repair is an explicit annotation per
|
|
308
|
+
* source (or one open record type), never a guessed arm. */
|
|
309
|
+
export declare function unionLiteralMismatchDiag(expectedText: string, arms: readonly string[], loc: SrcLoc): ScrDiagnostic;
|
|
211
310
|
/** A use of a binding whose DECLARATION did not compile: the declaration
|
|
212
311
|
* site already carries the real diagnostic (a fenced type, a blocked
|
|
213
312
|
* signature, an unsupported binding form), and every later reference falls
|
|
@@ -13,6 +13,27 @@ export function nativeCodegenDiag(code, message, file, hint) {
|
|
|
13
13
|
...(shown !== undefined ? { hint: shown } : {}),
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
+
/** SC8005 — the program calls into Node.js (@scriptc/node), and the build
|
|
17
|
+
* found no usable libnode pack to record into the binary. */
|
|
18
|
+
export function nodeIslandNodeDiag(message, file) {
|
|
19
|
+
return {
|
|
20
|
+
code: "SC8005",
|
|
21
|
+
message,
|
|
22
|
+
loc: { file, start: 0, end: 0 },
|
|
23
|
+
hint: "point SCRIPTC_LIBNODE or --libnode at a libnode pack (packages/libnode-common/build-pack.mjs assembles one) for Node.js >=24.13.1",
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/** SC8006 — a Node island call whose modules the build cannot collect into
|
|
27
|
+
* the executable: a computed specifier, or a module of the program that
|
|
28
|
+
* loads others through computed specifiers. */
|
|
29
|
+
export function nodeIslandModuleDiag(message, loc) {
|
|
30
|
+
return {
|
|
31
|
+
code: "SC8006",
|
|
32
|
+
message,
|
|
33
|
+
loc,
|
|
34
|
+
hint: "name the module with a string literal (a relative path or a package name); the build ships the modules it can see with the executable",
|
|
35
|
+
};
|
|
36
|
+
}
|
|
16
37
|
/* ── SC6xxx: divergences from Node (warnings) ─────────────────────────── */
|
|
17
38
|
/** SC6001 — a value passed to (or declared as) a narrower record type is
|
|
18
39
|
* copied field by field, and the program then writes through or compares
|
|
@@ -86,6 +107,44 @@ export function projectConfigDiag(path, detail, hint, loc) {
|
|
|
86
107
|
hint,
|
|
87
108
|
};
|
|
88
109
|
}
|
|
110
|
+
/** SC8011 — a native class extends a class owned by a Node island. Native
|
|
111
|
+
* subclasses of island classes are scope-B milestone NI-5b. */
|
|
112
|
+
export function nativeSubclassOfIslandDiag(loc, detail) {
|
|
113
|
+
return {
|
|
114
|
+
code: "SC8011",
|
|
115
|
+
message: detail === undefined
|
|
116
|
+
? "a native class cannot extend a class owned by a Node island yet (native subclasses of island classes)"
|
|
117
|
+
: `a native class extending a class owned by a Node island cannot have ${detail} yet`,
|
|
118
|
+
loc,
|
|
119
|
+
hint: "keep the subclass in Node: move it into the island module, or mark its module as a Node island; a registry shim of the package also lifts this",
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/** SC8020 — a stateful module the program compiles is duplicated across
|
|
123
|
+
* the Node island boundary (an explicit "duplicate", or a form NI-6 cannot
|
|
124
|
+
* share yet): each side has its own state. */
|
|
125
|
+
export function sharedModuleDuplicatedDiag(module, why, loc) {
|
|
126
|
+
return {
|
|
127
|
+
code: "SC8020",
|
|
128
|
+
message: `module '${module}' is duplicated across the Node island boundary although it is stateful: ${why}; the program and its islands each see their own copy`,
|
|
129
|
+
loc,
|
|
130
|
+
hint: 'remove "share": "duplicate" from its scriptc.packages entry to share one instance',
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/** SC8022 — island code extends a class of a module the program compiles.
|
|
134
|
+
* A native instance cannot take an island subclass's overrides, so the
|
|
135
|
+
* module is not owned by the program: a package runs in Node for both
|
|
136
|
+
* sides (the build retries with it as a Node island); a program module is
|
|
137
|
+
* refused. */
|
|
138
|
+
export function sharedClassExtendedDiag(pkg, file, base, loc) {
|
|
139
|
+
return {
|
|
140
|
+
code: "SC8022",
|
|
141
|
+
message: pkg !== null
|
|
142
|
+
? `package '${pkg}' is shared with a Node island that extends its class '${base}': it runs in Node for both sides`
|
|
143
|
+
: `module '${file}' cannot be shared with a Node island that extends its class '${base}' (island subclasses of native classes)`,
|
|
144
|
+
loc,
|
|
145
|
+
hint: "move the subclass into the program, or mark the module as a Node island",
|
|
146
|
+
};
|
|
147
|
+
}
|
|
89
148
|
/** SC8002 — Node islands are off (or limited to marked islands) and an
|
|
90
149
|
* npm package is outside the native subset. */
|
|
91
150
|
export function nodeIslandsOffDiag(pkg, why, loc) {
|
|
@@ -106,6 +165,50 @@ export function nodeIslandsOffModuleDiag(file, source, loc) {
|
|
|
106
165
|
hint: "allow Node islands (--node-islands=auto or explicit), or remove the marking",
|
|
107
166
|
};
|
|
108
167
|
}
|
|
168
|
+
/** SC8001 — a package runs in a Node island (a note, once per island in
|
|
169
|
+
* the build output). */
|
|
170
|
+
export function nodeIslandNoteDiag(pkg, version, klass, reason, loc) {
|
|
171
|
+
return {
|
|
172
|
+
code: "SC8001",
|
|
173
|
+
message: `package '${version === null ? pkg : `${pkg}@${version}`}' runs in a Node island: ${klass}: ${reason}`,
|
|
174
|
+
loc,
|
|
175
|
+
hint: "it runs in Node.js loaded into the program on first use; --node-islands=off makes this an error",
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
/** SC8010 — a value crosses an island boundary in a way NI-4 cannot keep
|
|
179
|
+
* exact yet (callbacks, native objects, remote promises). */
|
|
180
|
+
export function nodeIslandBoundaryDiag(what, loc) {
|
|
181
|
+
return {
|
|
182
|
+
code: "SC8010",
|
|
183
|
+
message: `${what} cannot cross into or out of a Node island yet`,
|
|
184
|
+
loc,
|
|
185
|
+
hint: "pass primitives, strings, island objects or fresh object and array literals of those; callbacks, native objects and promises cross from NI-5 on",
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/** SC8023 — the build that ran fenced packages as Node islands failed, so
|
|
189
|
+
* the program was built natively with those runtime fences (each throws
|
|
190
|
+
* when reached). A warning on the native build, with the island build's
|
|
191
|
+
* first error. */
|
|
192
|
+
export function nodeIslandRetryFailedDiag(packages, first, loc) {
|
|
193
|
+
return {
|
|
194
|
+
code: "SC8023",
|
|
195
|
+
message: `running ${packages.map((p) => `'${p}'`).join(", ")} in Node islands failed to compile (${first.code} at ${first.loc.file}:${first.loc.start}: ${first.message}); built natively instead, where their runtime fences throw when reached`,
|
|
196
|
+
loc,
|
|
197
|
+
hint: "fix the island build's error, or mark the packages with --node-island=<pkg> to see every error",
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/** SC8030–SC8033 — a type patch (`scriptc.typePatches`) that did not
|
|
201
|
+
* apply as written: no range covers the installed copy (SC8030), its
|
|
202
|
+
* selector matches nothing (SC8031), the declaration already has the type
|
|
203
|
+
* (SC8032), or the selector is ambiguous or not patchable (SC8033).
|
|
204
|
+
* Warnings: the build goes on with the declarations it has. */
|
|
205
|
+
export function typePatchDiag(code, message, hint, loc) {
|
|
206
|
+
return { code, message, loc, hint };
|
|
207
|
+
}
|
|
208
|
+
/** True for the type patch warnings (SC8030–SC8033). */
|
|
209
|
+
export function isTypePatchCode(code) {
|
|
210
|
+
return /^SC803[0-3]$/.test(code);
|
|
211
|
+
}
|
|
109
212
|
/** SC8003 — a package marked "native" is outside the native subset. */
|
|
110
213
|
export function nativePackageDiag(pkg, why, loc) {
|
|
111
214
|
return {
|
|
@@ -614,6 +717,26 @@ export function noLoweringDiag(surface, loc, hint, viaNodeTypes = false) {
|
|
|
614
717
|
: "the type checker sees the full standard library, but only the supported surface compiles (https://scriptc.dev/limitations)"),
|
|
615
718
|
};
|
|
616
719
|
}
|
|
720
|
+
/** A stdlib-global snapshot reached a site that needs its VALUE (an
|
|
721
|
+
* argument, a return, a stored field). The declaration emitted no storage
|
|
722
|
+
* — alias plumbing only serves member and call reads — and the global's
|
|
723
|
+
* own value has no lowering, so the read cannot resolve. Reported at the
|
|
724
|
+
* declaration, where the real cause sits; the use site carries the SC2004
|
|
725
|
+
* cascade. */
|
|
726
|
+
export function stdlibSnapshotValueUseDiag(name, alias, typeText, loc) {
|
|
727
|
+
// Name the requested type when it has a readable spelling; a structural
|
|
728
|
+
// dump of the global's own object type says less than the global itself.
|
|
729
|
+
const unholdable = typeText === undefined
|
|
730
|
+
? "the global it names is not a value scriptc can hold"
|
|
731
|
+
: `a '${typeText}' is not a value scriptc can hold`;
|
|
732
|
+
return {
|
|
733
|
+
code: "SC2020",
|
|
734
|
+
message: `the stdlib-global snapshot '${name}' ('${alias}') cannot be used as a value: the declaration lowers to alias plumbing (no storage, no code), and ${unholdable}`,
|
|
735
|
+
loc,
|
|
736
|
+
milestone: "later",
|
|
737
|
+
hint: `read the members through the global directly ('${alias}.member') instead of passing '${name}' around as a value`,
|
|
738
|
+
};
|
|
739
|
+
}
|
|
617
740
|
/** A REACHED use of a part of the WebAssembly API scriptc does not
|
|
618
741
|
* implement yet (SC2020): the streaming functions, Tag and Exception, the
|
|
619
742
|
* classes as values. compile, instantiate, validate, the Module, Instance,
|
|
@@ -642,6 +765,20 @@ export function nativeAddonDiag(specifier, loc) {
|
|
|
642
765
|
reason: "native-addon",
|
|
643
766
|
};
|
|
644
767
|
}
|
|
768
|
+
/** A createRequire require or require.resolve call whose specifier is
|
|
769
|
+
* computed at run time, where the runtime resolves it like Node
|
|
770
|
+
* (scr_require.c). Coverage lists the call as deferred: a require whose
|
|
771
|
+
* specifier resolves to a module ends the program with this code, because
|
|
772
|
+
* the module graph is fixed at build time. */
|
|
773
|
+
export function computedRequireDiag(surface, loc) {
|
|
774
|
+
return {
|
|
775
|
+
code: "SC2020",
|
|
776
|
+
message: `${surface} with a computed specifier resolves at run time; a require of a specifier that resolves to a module, such as a native addon, ends the program`,
|
|
777
|
+
loc,
|
|
778
|
+
milestone: "later",
|
|
779
|
+
hint: 'require("<static string literal>") compiles the module into the program; native addons need a replacement through native FFI (https://scriptc.dev/ffi#replacing-a-node-api-addon)',
|
|
780
|
+
};
|
|
781
|
+
}
|
|
645
782
|
/** Records are monomorphic structs, so a value's shape must match the
|
|
646
783
|
* expected shape exactly OR narrow through the width-copy family
|
|
647
784
|
* (recordWidthPlan / the overflow capture: target fields copied off the
|
|
@@ -675,6 +812,24 @@ export function unionMismatchDiag(expectedText, actualText, loc) {
|
|
|
675
812
|
hint: "narrow the value to a SINGLE arm first (a discriminant check, or '!== undefined'/'!== null' for unit arms); a plain arm value widens into any union that contains it, and a whole union widens into any union whose arms include the source's",
|
|
676
813
|
};
|
|
677
814
|
}
|
|
815
|
+
/** An object literal that SPREADS union-typed sources (`{ ...base,
|
|
816
|
+
* ...override }` where each source is `A | B | C`) builds one field set per
|
|
817
|
+
* combination of source arms. A union of records cannot hold that: each arm
|
|
818
|
+
* carries its own field table, so naming one arm would drop the fields the
|
|
819
|
+
* other arms contributed (Node keeps every field). The refusal names the
|
|
820
|
+
* candidate arms, because the honest repair is an explicit annotation per
|
|
821
|
+
* source (or one open record type), never a guessed arm. */
|
|
822
|
+
export function unionLiteralMismatchDiag(expectedText, arms, loc) {
|
|
823
|
+
const named = arms.map((a) => `'${a}'`).join(", ");
|
|
824
|
+
return {
|
|
825
|
+
code: "SC2003",
|
|
826
|
+
message: `a spread merge over union-typed sources builds a value that can carry fields from several arms at once, so no single arm of '${expectedText}' can represent it` +
|
|
827
|
+
(arms.length > 0 ? ` (candidate arms: ${named})` : ""),
|
|
828
|
+
loc,
|
|
829
|
+
milestone: "later",
|
|
830
|
+
hint: "merge ONE arm per path (narrow every spread source to that same arm first — a discriminant switch or an assertion — so the spread builds a single record), or declare ONE open record type whose fields are all optional instead of a union of all-optional arms",
|
|
831
|
+
};
|
|
832
|
+
}
|
|
678
833
|
/** A use of a binding whose DECLARATION did not compile: the declaration
|
|
679
834
|
* site already carries the real diagnostic (a fenced type, a blocked
|
|
680
835
|
* signature, an unsupported binding form), and every later reference falls
|