@scriptc/compiler 0.3.6 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ambient/scriptc-node-fallback.d.ts +682 -50
- package/ambient/scriptc.d.ts +134 -0
- package/dist/backend/cycle-analysis.d.ts +1 -1
- package/dist/backend/cycle-analysis.js +1 -0
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-analysis.test.js +13 -1
- package/dist/backend/cycle-analysis.test.js.map +1 -1
- package/dist/backend/cycle-mutability.js +16 -5
- package/dist/backend/cycle-mutability.js.map +1 -1
- package/dist/backend/executable-features.js +13 -0
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/immutability.test.js +1 -1
- package/dist/backend/library-pack.js +6 -0
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +41 -4
- package/dist/backend/llvm/alloc.js +138 -7
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/alloc.test.js +30 -1
- package/dist/backend/llvm/alloc.test.js.map +1 -1
- package/dist/backend/llvm/appended-array-literals.test.js +1 -1
- package/dist/backend/llvm/array-search.test.js +1 -1
- package/dist/backend/llvm/blocks.d.ts +8 -0
- package/dist/backend/llvm/blocks.js +43 -1
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/blocks.test.js +22 -1
- package/dist/backend/llvm/blocks.test.js.map +1 -1
- package/dist/backend/llvm/byte-numbers.js +15 -5
- package/dist/backend/llvm/byte-numbers.js.map +1 -1
- package/dist/backend/llvm/bytes-alias.d.ts +14 -0
- package/dist/backend/llvm/bytes-alias.js +20 -0
- package/dist/backend/llvm/bytes-alias.js.map +1 -0
- package/dist/backend/llvm/bytes-loop-versions.d.ts +86 -0
- package/dist/backend/llvm/bytes-loop-versions.js +506 -0
- package/dist/backend/llvm/bytes-loop-versions.js.map +1 -0
- package/dist/backend/llvm/bytes-loop-versions.test.d.ts +1 -0
- package/dist/backend/llvm/bytes-loop-versions.test.js +244 -0
- package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.js +50 -1
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +34 -0
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/checked-narrows.test.js +1 -1
- package/dist/backend/llvm/checked-value-lifetimes.js +4 -1
- package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +11 -0
- package/dist/backend/llvm/classes.js +71 -14
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +58 -8
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/common.js +1 -0
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.d.ts +5 -1
- package/dist/backend/llvm/constant-callbacks.js +55 -12
- package/dist/backend/llvm/constant-callbacks.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.test.js +88 -1
- package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
- package/dist/backend/llvm/counted-loops.d.ts +4 -0
- package/dist/backend/llvm/counted-loops.js +37 -0
- package/dist/backend/llvm/counted-loops.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.d.ts +12 -3
- package/dist/backend/llvm/dense-array-access.js +72 -14
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.test.js +59 -3
- package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
- package/dist/backend/llvm/dense-array-loops.d.ts +51 -0
- package/dist/backend/llvm/dense-array-loops.js +162 -0
- package/dist/backend/llvm/dense-array-loops.js.map +1 -0
- package/dist/backend/llvm/dense-array-loops.test.d.ts +1 -0
- package/dist/backend/llvm/dense-array-loops.test.js +128 -0
- package/dist/backend/llvm/dense-array-loops.test.js.map +1 -0
- package/dist/backend/llvm/dyn-handle-tags.test.d.ts +1 -0
- package/dist/backend/llvm/dyn-handle-tags.test.js +38 -0
- package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +28 -4
- package/dist/backend/llvm/dyn.js +293 -178
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emit-function.d.ts +64 -0
- package/dist/backend/llvm/emit-function.js +1190 -0
- package/dist/backend/llvm/emit-function.js.map +1 -0
- package/dist/backend/llvm/emit-module.d.ts +24 -0
- package/dist/backend/llvm/emit-module.js +1535 -0
- package/dist/backend/llvm/emit-module.js.map +1 -0
- package/dist/backend/llvm/emit-statements.d.ts +58 -0
- package/dist/backend/llvm/emit-statements.js +1964 -0
- package/dist/backend/llvm/emit-statements.js.map +1 -0
- package/dist/backend/llvm/emitter.d.ts +547 -283
- package/dist/backend/llvm/emitter.js +689 -4643
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +57 -3
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +73 -46
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-async.test.js +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +2 -0
- package/dist/backend/llvm/expr-bytes.js +76 -29
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.d.ts +6 -2
- package/dist/backend/llvm/expr-callbacks.js +48 -11
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +1 -1
- package/dist/backend/llvm/expr-calls.js +71 -53
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-calls.test.js +1 -1
- package/dist/backend/llvm/expr-containers.js +39 -15
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-control.js +16 -16
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.d.ts +3 -0
- package/dist/backend/llvm/expr-dynamic.js +67 -62
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +121 -25
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +2 -2
- package/dist/backend/llvm/expr-records.d.ts +1 -1
- package/dist/backend/llvm/expr-records.js +32 -11
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +54 -12
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js +2 -2
- package/dist/backend/llvm/expr-stream-callbacks.js +22 -1
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/int32-abi.test.js +2 -2
- package/dist/backend/llvm/integer-clones.test.js +3 -3
- package/dist/backend/llvm/integer-remainder.d.ts +34 -13
- package/dist/backend/llvm/integer-remainder.js +156 -22
- package/dist/backend/llvm/integer-remainder.js.map +1 -1
- package/dist/backend/llvm/intern-tables.test.js +1 -1
- package/dist/backend/llvm/jsval-encoding.d.ts +21 -0
- package/dist/backend/llvm/jsval-encoding.js +20 -0
- package/dist/backend/llvm/jsval-encoding.js.map +1 -0
- package/dist/backend/llvm/jsval.d.ts +12 -0
- package/dist/backend/llvm/jsval.js +488 -0
- package/dist/backend/llvm/jsval.js.map +1 -0
- package/dist/backend/llvm/lazy-captures.d.ts +12 -2
- package/dist/backend/llvm/lazy-captures.js +39 -17
- package/dist/backend/llvm/lazy-captures.js.map +1 -1
- package/dist/backend/llvm/lib-abi.js +1 -1
- package/dist/backend/llvm/lib-abi.js.map +1 -1
- package/dist/backend/llvm/lib-connect.js +1 -1
- package/dist/backend/llvm/lib-connect.js.map +1 -1
- package/dist/backend/llvm/lib-datagram.js +14 -8
- package/dist/backend/llvm/lib-datagram.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +189 -23
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +42 -13
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.js +3 -3
- package/dist/backend/llvm/lib-http2.js.map +1 -1
- package/dist/backend/llvm/lib-lookup.js +2 -2
- package/dist/backend/llvm/lib-lookup.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +56 -22
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +90 -50
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.d.ts +12 -0
- package/dist/backend/llvm/lib-shared.js +187 -6
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +46 -16
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/lib-test.js +43 -7
- package/dist/backend/llvm/lib-test.js.map +1 -1
- package/dist/backend/llvm/lib-tls.js +4 -9
- package/dist/backend/llvm/lib-tls.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +2 -2
- package/dist/backend/llvm/local-array-reads.test.js +1 -1
- package/dist/backend/llvm/local-extents.d.ts +19 -0
- package/dist/backend/llvm/local-extents.js +169 -0
- package/dist/backend/llvm/local-extents.js.map +1 -0
- package/dist/backend/llvm/local-extents.test.d.ts +1 -0
- package/dist/backend/llvm/local-extents.test.js +92 -0
- package/dist/backend/llvm/local-extents.test.js.map +1 -0
- package/dist/backend/llvm/local-union-storage.js +7 -7
- package/dist/backend/llvm/local-union-storage.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +2 -2
- package/dist/backend/llvm/map-entry-fusion.test.js +1 -1
- package/dist/backend/llvm/map-number-lookup.js +2 -2
- package/dist/backend/llvm/map-number-lookup.test.js +2 -2
- package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
- package/dist/backend/llvm/narrow-guards.d.ts +38 -0
- package/dist/backend/llvm/narrow-guards.js +151 -0
- package/dist/backend/llvm/narrow-guards.js.map +1 -0
- package/dist/backend/llvm/nullable-unions.d.ts +64 -6
- package/dist/backend/llvm/nullable-unions.js +103 -6
- package/dist/backend/llvm/nullable-unions.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.test.d.ts +1 -0
- package/dist/backend/llvm/nullable-unions.test.js +65 -0
- package/dist/backend/llvm/nullable-unions.test.js.map +1 -0
- package/dist/backend/llvm/publish.d.ts +4 -0
- package/dist/backend/llvm/publish.js +14 -2
- package/dist/backend/llvm/publish.js.map +1 -1
- package/dist/backend/llvm/publish.test.js +1 -1
- package/dist/backend/llvm/receivers.d.ts +31 -0
- package/dist/backend/llvm/receivers.js +395 -0
- package/dist/backend/llvm/receivers.js.map +1 -0
- package/dist/backend/llvm/record-results.d.ts +12 -1
- package/dist/backend/llvm/record-results.js +64 -4
- package/dist/backend/llvm/record-results.js.map +1 -1
- package/dist/backend/llvm/reference-effects.js +9 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-writes.d.ts +4 -0
- package/dist/backend/llvm/reference-writes.js +142 -6
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/reference-writes.test.d.ts +1 -0
- package/dist/backend/llvm/reference-writes.test.js +88 -0
- package/dist/backend/llvm/reference-writes.test.js.map +1 -0
- package/dist/backend/llvm/regex-matchers.d.ts +8 -0
- package/dist/backend/llvm/regex-matchers.js +33 -0
- package/dist/backend/llvm/regex-matchers.js.map +1 -1
- package/dist/backend/llvm/regex-matchers.test.js +23 -1
- package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
- package/dist/backend/llvm/regions.d.ts +1 -1
- package/dist/backend/llvm/regions.js +9 -6
- package/dist/backend/llvm/regions.js.map +1 -1
- package/dist/backend/llvm/regions.test.js +1 -1
- package/dist/backend/llvm/shapes.d.ts +66 -43
- package/dist/backend/llvm/shapes.js +280 -21
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +37 -3
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/split-loops.js +2 -2
- package/dist/backend/llvm/split-loops.js.map +1 -1
- package/dist/backend/llvm/stack-objects.d.ts +26 -6
- package/dist/backend/llvm/stack-objects.js +133 -10
- package/dist/backend/llvm/stack-objects.js.map +1 -1
- package/dist/backend/llvm/stack-objects.test.js +55 -1
- package/dist/backend/llvm/stack-objects.test.js.map +1 -1
- package/dist/backend/llvm/stack-unions.test.js +1 -1
- package/dist/backend/llvm/string-construction.test.js +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +15 -14
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-slices.d.ts +25 -0
- package/dist/backend/llvm/string-slices.js +207 -1
- package/dist/backend/llvm/string-slices.js.map +1 -1
- package/dist/backend/llvm/string-slices.test.js +139 -2
- package/dist/backend/llvm/string-slices.test.js.map +1 -1
- package/dist/backend/llvm/switch-dispatch.test.js +2 -2
- package/dist/backend/llvm/thread-slots.d.ts +5 -0
- package/dist/backend/llvm/thread-slots.js +142 -0
- package/dist/backend/llvm/thread-slots.js.map +1 -0
- package/dist/backend/llvm/thread-slots.test.d.ts +1 -0
- package/dist/backend/llvm/thread-slots.test.js +110 -0
- package/dist/backend/llvm/thread-slots.test.js.map +1 -0
- package/dist/backend/llvm/union-repr.d.ts +7 -7
- package/dist/backend/llvm/union-repr.js +18 -2
- package/dist/backend/llvm/union-repr.js.map +1 -1
- package/dist/backend/llvm/union-retype.test.js +17 -3
- package/dist/backend/llvm/union-retype.test.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +2 -2
- package/dist/backend/llvm/walkers.js +51 -26
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/llvm/wasm-modules.d.ts +16 -0
- package/dist/backend/llvm/wasm-modules.js +66 -0
- package/dist/backend/llvm/wasm-modules.js.map +1 -0
- package/dist/backend/llvm/wrapping-sums.d.ts +7 -0
- package/dist/backend/llvm/wrapping-sums.js +11 -3
- package/dist/backend/llvm/wrapping-sums.js.map +1 -1
- package/dist/backend/mangle.d.ts +7 -0
- package/dist/backend/mangle.js +11 -0
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/may-throw.d.ts +3 -0
- package/dist/backend/may-throw.js +4 -2
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +1 -1
- package/dist/backend/native/contracts.d.ts +37 -0
- package/dist/backend/native/executable.js +192 -137
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/library.js +1 -0
- package/dist/backend/native/library.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +1 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +30 -0
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/publication.test.js +1 -1
- package/dist/backend/runtime-pack-core.d.ts +9 -1
- package/dist/backend/runtime-pack-core.js +10 -1
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-native.js +1 -1
- package/dist/backend/runtime-pack-native.js.map +1 -1
- package/dist/backend/runtime-pack-native.test.d.ts +1 -0
- package/dist/backend/runtime-pack-native.test.js +31 -0
- package/dist/backend/runtime-pack-native.test.js.map +1 -0
- package/dist/backend/runtime-pack-targets.test.js +5 -0
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +5 -0
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/stack-observations.d.ts +22 -0
- package/dist/backend/stack-observations.js +382 -0
- package/dist/backend/stack-observations.js.map +1 -0
- package/dist/backend/stack-observations.test.d.ts +1 -0
- package/dist/backend/stack-observations.test.js +233 -0
- package/dist/backend/stack-observations.test.js.map +1 -0
- package/dist/backend/target-diagnostics.js +8 -0
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +1 -1
- package/dist/backend/warm-cache.js +5 -0
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/backend/young-nursery.d.ts +7 -0
- package/dist/backend/young-nursery.js +10 -0
- package/dist/backend/young-nursery.js.map +1 -0
- package/dist/cli/command.js +44 -4
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/usage.d.ts +11 -1
- package/dist/cli/usage.js +20 -1
- package/dist/cli/usage.js.map +1 -1
- package/dist/compat/fetch-profile.js +10 -1
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/compile-types.d.ts +13 -0
- package/dist/contracts/check.js +24 -6
- package/dist/contracts/check.js.map +1 -1
- package/dist/contracts/int32-elements.d.ts +115 -0
- package/dist/contracts/int32-elements.js +1179 -0
- package/dist/contracts/int32-elements.js.map +1 -0
- package/dist/coverage/report.d.ts +16 -0
- package/dist/coverage/report.js +182 -1
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +16 -3
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/coverage/verdict-cache.d.ts +2 -0
- package/dist/coverage/verdict-cache.js +12 -0
- package/dist/coverage/verdict-cache.js.map +1 -1
- package/dist/coverage/verdict-cache.test.js +2 -1
- package/dist/coverage/verdict-cache.test.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +10 -6
- package/dist/diagnostics/diagnostic.js +29 -21
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/envelope.d.ts +39 -2
- package/dist/diagnostics/envelope.js.map +1 -1
- package/dist/diagnostics/render.d.ts +7 -0
- package/dist/diagnostics/render.js +50 -13
- package/dist/diagnostics/render.js.map +1 -1
- package/dist/diagnostics/render.test.d.ts +1 -0
- package/dist/diagnostics/render.test.js +49 -0
- package/dist/diagnostics/render.test.js.map +1 -0
- package/dist/executable/executable-cache.d.ts +17 -0
- package/dist/executable/executable-cache.js +13 -1
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +7 -1
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.js +2 -1
- package/dist/executable/prepare.js.map +1 -1
- package/dist/frontend/analysis.js +6 -1
- package/dist/frontend/analysis.js.map +1 -1
- package/dist/frontend/builtin-modules.d.ts +16 -2
- package/dist/frontend/builtin-modules.js +40 -7
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/cjs-syntax.js +52 -51
- package/dist/frontend/cjs-syntax.js.map +1 -1
- package/dist/frontend/contract-types.d.ts +3 -0
- package/dist/frontend/contract-types.js +36 -7
- package/dist/frontend/contract-types.js.map +1 -1
- package/dist/frontend/experimental-import.d.ts +5 -1
- package/dist/frontend/experimental-import.js +26 -7
- package/dist/frontend/experimental-import.js.map +1 -1
- package/dist/frontend/fork-target.js +20 -22
- package/dist/frontend/fork-target.js.map +1 -1
- package/dist/frontend/fork-target.test.js +2 -1
- package/dist/frontend/fork-target.test.js.map +1 -1
- package/dist/frontend/function-completion.js +6 -6
- package/dist/frontend/function-completion.js.map +1 -1
- package/dist/frontend/helper-tokens.js +15 -3
- package/dist/frontend/helper-tokens.js.map +1 -1
- package/dist/frontend/helper-tokens.test.js +7 -1
- package/dist/frontend/helper-tokens.test.js.map +1 -1
- package/dist/frontend/inferred-js-diagnostics.js +14 -17
- package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
- package/dist/frontend/input-tracker.d.ts +3 -0
- package/dist/frontend/input-tracker.js +32 -3
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/lib-contract.js +36 -32
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/lib-exports.js +3 -3
- package/dist/frontend/lib-exports.js.map +1 -1
- package/dist/frontend/lowering/array-values.d.ts +8 -3
- package/dist/frontend/lowering/array-values.js +60 -11
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/assert-instances.js +4 -4
- package/dist/frontend/lowering/assert-instances.js.map +1 -1
- package/dist/frontend/lowering/assertion-identity.d.ts +12 -0
- package/dist/frontend/lowering/assertion-identity.js +70 -0
- package/dist/frontend/lowering/assertion-identity.js.map +1 -0
- package/dist/frontend/lowering/assertion-members.d.ts +28 -0
- package/dist/frontend/lowering/assertion-members.js +185 -0
- package/dist/frontend/lowering/assertion-members.js.map +1 -0
- package/dist/frontend/lowering/binding-analysis.js +27 -20
- package/dist/frontend/lowering/binding-analysis.js.map +1 -1
- package/dist/frontend/lowering/builtin-calls.js +63 -5
- package/dist/frontend/lowering/builtin-calls.js.map +1 -1
- package/dist/frontend/lowering/builtin-function-fences.d.ts +14 -0
- package/dist/frontend/lowering/builtin-function-fences.js +42 -0
- package/dist/frontend/lowering/builtin-function-fences.js.map +1 -0
- package/dist/frontend/lowering/builtins/arguments.js +1 -1
- package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
- package/dist/frontend/lowering/builtins/async-context.js +53 -52
- package/dist/frontend/lowering/builtins/async-context.js.map +1 -1
- package/dist/frontend/lowering/builtins/atomics.js +6 -6
- package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
- package/dist/frontend/lowering/builtins/blob.js +8 -6
- package/dist/frontend/lowering/builtins/blob.js.map +1 -1
- package/dist/frontend/lowering/builtins/builtin-class-dyn.d.ts +23 -0
- package/dist/frontend/lowering/builtins/builtin-class-dyn.js +156 -0
- package/dist/frontend/lowering/builtins/builtin-class-dyn.js.map +1 -0
- package/dist/frontend/lowering/builtins/callable-aliases.js +16 -5
- package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-async.js +7 -7
- package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-methods.d.ts +6 -4
- package/dist/frontend/lowering/builtins/child-process-methods.js +310 -57
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js +16 -10
- package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process.d.ts +6 -4
- package/dist/frontend/lowering/builtins/child-process.js +85 -61
- package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
- package/dist/frontend/lowering/builtins/class-values.d.ts +60 -0
- package/dist/frontend/lowering/builtins/class-values.js +226 -0
- package/dist/frontend/lowering/builtins/class-values.js.map +1 -0
- package/dist/frontend/lowering/builtins/compression.d.ts +9 -0
- package/dist/frontend/lowering/builtins/compression.js +107 -44
- package/dist/frontend/lowering/builtins/compression.js.map +1 -1
- package/dist/frontend/lowering/builtins/constants.d.ts +9 -1
- package/dist/frontend/lowering/builtins/constants.js +28 -7
- package/dist/frontend/lowering/builtins/constants.js.map +1 -1
- package/dist/frontend/lowering/builtins/crypto.d.ts +19 -0
- package/dist/frontend/lowering/builtins/crypto.js +211 -37
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
- package/dist/frontend/lowering/builtins/dates.d.ts +7 -1
- package/dist/frontend/lowering/builtins/dates.js +92 -16
- package/dist/frontend/lowering/builtins/dates.js.map +1 -1
- package/dist/frontend/lowering/builtins/disposable-stack.d.ts +18 -0
- package/dist/frontend/lowering/builtins/disposable-stack.js +137 -0
- package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -0
- package/dist/frontend/lowering/builtins/environment.js +3 -3
- package/dist/frontend/lowering/builtins/environment.js.map +1 -1
- package/dist/frontend/lowering/builtins/errors.d.ts +14 -10
- package/dist/frontend/lowering/builtins/errors.js +169 -3
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.js +128 -116
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.js +77 -77
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-glob.js +3 -3
- package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-streams.js +10 -11
- package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -1
- package/dist/frontend/lowering/builtins/ipc.js +45 -8
- package/dist/frontend/lowering/builtins/ipc.js.map +1 -1
- package/dist/frontend/lowering/builtins/json.js +232 -24
- package/dist/frontend/lowering/builtins/json.js.map +1 -1
- package/dist/frontend/lowering/builtins/key-object.js +4 -4
- package/dist/frontend/lowering/builtins/key-object.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-bindings.d.ts +8 -0
- package/dist/frontend/lowering/builtins/module-bindings.js +71 -22
- package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-calls.js +55 -44
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-resolution.d.ts +4 -3
- package/dist/frontend/lowering/builtins/module-resolution.js +24 -23
- package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
- package/dist/frontend/lowering/builtins/navigator.d.ts +13 -0
- package/dist/frontend/lowering/builtins/navigator.js +40 -0
- package/dist/frontend/lowering/builtins/navigator.js.map +1 -0
- package/dist/frontend/lowering/builtins/net-address.d.ts +19 -0
- package/dist/frontend/lowering/builtins/net-address.js +156 -0
- package/dist/frontend/lowering/builtins/net-address.js.map +1 -0
- package/dist/frontend/lowering/builtins/numbers.js +25 -9
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
- package/dist/frontend/lowering/builtins/operating-system.d.ts +4 -0
- package/dist/frontend/lowering/builtins/operating-system.js +25 -12
- package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
- package/dist/frontend/lowering/builtins/performance.d.ts +12 -0
- package/dist/frontend/lowering/builtins/performance.js +259 -8
- package/dist/frontend/lowering/builtins/performance.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.d.ts +32 -1
- package/dist/frontend/lowering/builtins/process.js +461 -99
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.d.ts +5 -1
- package/dist/frontend/lowering/builtins/promises.js +326 -43
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/promisify-callback.d.ts +37 -0
- package/dist/frontend/lowering/builtins/promisify-callback.js +320 -0
- package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -0
- package/dist/frontend/lowering/builtins/properties.js +37 -1
- package/dist/frontend/lowering/builtins/properties.js.map +1 -1
- package/dist/frontend/lowering/builtins/querystring.js +14 -14
- package/dist/frontend/lowering/builtins/querystring.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.d.ts +12 -2
- package/dist/frontend/lowering/builtins/readline.js +136 -39
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/receiver-types.js +3 -5
- package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -1
- package/dist/frontend/lowering/builtins/reflection.js +16 -14
- package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
- package/dist/frontend/lowering/builtins/runtime-constructor.d.ts +26 -0
- package/dist/frontend/lowering/builtins/runtime-constructor.js +165 -0
- package/dist/frontend/lowering/builtins/runtime-constructor.js.map +1 -0
- package/dist/frontend/lowering/builtins/strings.js +101 -12
- package/dist/frontend/lowering/builtins/strings.js.map +1 -1
- package/dist/frontend/lowering/builtins/text-codecs.js +41 -38
- package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
- package/dist/frontend/lowering/builtins/timers.js +75 -30
- package/dist/frontend/lowering/builtins/timers.js.map +1 -1
- package/dist/frontend/lowering/builtins/url.d.ts +3 -0
- package/dist/frontend/lowering/builtins/url.js +120 -17
- package/dist/frontend/lowering/builtins/url.js.map +1 -1
- package/dist/frontend/lowering/builtins/util-types.js +20 -4
- package/dist/frontend/lowering/builtins/util-types.js.map +1 -1
- package/dist/frontend/lowering/builtins/v8.d.ts +11 -0
- package/dist/frontend/lowering/builtins/v8.js +105 -0
- package/dist/frontend/lowering/builtins/v8.js.map +1 -0
- package/dist/frontend/lowering/builtins/webassembly.d.ts +33 -0
- package/dist/frontend/lowering/builtins/webassembly.js +388 -0
- package/dist/frontend/lowering/builtins/webassembly.js.map +1 -0
- package/dist/frontend/lowering/builtins/webcrypto.d.ts +20 -0
- package/dist/frontend/lowering/builtins/webcrypto.js +112 -0
- package/dist/frontend/lowering/builtins/webcrypto.js.map +1 -0
- package/dist/frontend/lowering/builtins/workers.d.ts +12 -0
- package/dist/frontend/lowering/builtins/workers.js +193 -8
- package/dist/frontend/lowering/builtins/workers.js.map +1 -1
- package/dist/frontend/lowering/call-arguments.js +69 -14
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.d.ts +19 -1
- package/dist/frontend/lowering/call-signatures.js +254 -47
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/checked-promise-all.d.ts +3 -0
- package/dist/frontend/lowering/checked-promise-all.js +1 -1
- package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
- package/dist/frontend/lowering/cjs-exports-object.d.ts +53 -0
- package/dist/frontend/lowering/cjs-exports-object.js +528 -0
- package/dist/frontend/lowering/cjs-exports-object.js.map +1 -0
- package/dist/frontend/lowering/cjs-inline-require.d.ts +86 -0
- package/dist/frontend/lowering/cjs-inline-require.js +314 -0
- package/dist/frontend/lowering/cjs-inline-require.js.map +1 -0
- package/dist/frontend/lowering/cjs-tsc-interop.d.ts +28 -0
- package/dist/frontend/lowering/cjs-tsc-interop.js +208 -0
- package/dist/frontend/lowering/cjs-tsc-interop.js.map +1 -0
- package/dist/frontend/lowering/class-attributes.d.ts +19 -0
- package/dist/frontend/lowering/class-attributes.js +378 -0
- package/dist/frontend/lowering/class-attributes.js.map +1 -0
- package/dist/frontend/lowering/class-callbacks.d.ts +3 -1
- package/dist/frontend/lowering/class-callbacks.js +21 -10
- package/dist/frontend/lowering/class-callbacks.js.map +1 -1
- package/dist/frontend/lowering/class-construction.js +49 -4
- package/dist/frontend/lowering/class-construction.js.map +1 -1
- package/dist/frontend/lowering/class-descriptors.d.ts +2 -0
- package/dist/frontend/lowering/class-descriptors.js +8 -8
- package/dist/frontend/lowering/class-descriptors.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +64 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +1115 -89
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-instance-constructor.js +1 -1
- package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
- package/dist/frontend/lowering/class-iterables.d.ts +11 -0
- package/dist/frontend/lowering/class-iterables.js +31 -0
- package/dist/frontend/lowering/class-iterables.js.map +1 -0
- package/dist/frontend/lowering/class-method-mutations.js +73 -35
- package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
- package/dist/frontend/lowering/class-method-values.js +56 -10
- package/dist/frontend/lowering/class-method-values.js.map +1 -1
- package/dist/frontend/lowering/class-protocol-dispatch.js +24 -22
- package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.js +25 -44
- package/dist/frontend/lowering/class-protocols.js.map +1 -1
- package/dist/frontend/lowering/class-prototypes.d.ts +6 -0
- package/dist/frontend/lowering/class-prototypes.js +80 -18
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-runtime-statics.js +1 -1
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
- package/dist/frontend/lowering/class-static-data.js +2 -2
- package/dist/frontend/lowering/class-static-data.js.map +1 -1
- package/dist/frontend/lowering/class-to-primitive.d.ts +25 -0
- package/dist/frontend/lowering/class-to-primitive.js +261 -0
- package/dist/frontend/lowering/class-to-primitive.js.map +1 -0
- package/dist/frontend/lowering/class-unions.d.ts +25 -0
- package/dist/frontend/lowering/class-unions.js +102 -1
- package/dist/frontend/lowering/class-unions.js.map +1 -1
- package/dist/frontend/lowering/code-generation.d.ts +14 -0
- package/dist/frontend/lowering/code-generation.js +127 -0
- package/dist/frontend/lowering/code-generation.js.map +1 -0
- package/dist/frontend/lowering/coercions/function-adapters.d.ts +16 -2
- package/dist/frontend/lowering/coercions/function-adapters.js +145 -3
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural-plans.js +25 -3
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +35 -3
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/coercions/unions.d.ts +15 -0
- package/dist/frontend/lowering/coercions/unions.js +57 -1
- package/dist/frontend/lowering/coercions/unions.js.map +1 -1
- package/dist/frontend/lowering/collection-ingestion.js +2 -2
- package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
- package/dist/frontend/lowering/collection-narrowing.js +2 -4
- package/dist/frontend/lowering/collection-narrowing.js.map +1 -1
- package/dist/frontend/lowering/construction-escapes.js +8 -8
- package/dist/frontend/lowering/construction-escapes.js.map +1 -1
- package/dist/frontend/lowering/construction-escapes.test.js +4 -4
- package/dist/frontend/lowering/construction-escapes.test.js.map +1 -1
- package/dist/frontend/lowering/constructor-returns.d.ts +61 -0
- package/dist/frontend/lowering/constructor-returns.js +477 -0
- package/dist/frontend/lowering/constructor-returns.js.map +1 -0
- package/dist/frontend/lowering/containers/array-callback-call.js +1 -1
- package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +9 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +266 -100
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-concat.js +1 -1
- package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.d.ts +0 -1
- package/dist/frontend/lowering/containers/array-construction.js +51 -13
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-from-async.d.ts +6 -5
- package/dist/frontend/lowering/containers/array-from-async.js +159 -14
- package/dist/frontend/lowering/containers/array-from-async.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.js +89 -77
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.js +1 -0
- package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.js +161 -101
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.d.ts +9 -1
- package/dist/frontend/lowering/containers/callback-arguments.js +55 -5
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-grouping.d.ts +7 -8
- package/dist/frontend/lowering/containers/collection-grouping.js +217 -26
- package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +54 -25
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/dynamic-receivers.js +1 -1
- package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -1
- package/dist/frontend/lowering/containers/exec-result-uses.js +2 -2
- package/dist/frontend/lowering/containers/exec-result-uses.js.map +1 -1
- package/dist/frontend/lowering/containers/for-of.d.ts +6 -0
- package/dist/frontend/lowering/containers/for-of.js +19 -19
- package/dist/frontend/lowering/containers/for-of.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +142 -57
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/containers/iterator-helpers.d.ts +53 -4
- package/dist/frontend/lowering/containers/iterator-helpers.js +1581 -462
- package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
- package/dist/frontend/lowering/containers/match-row-uses.d.ts +17 -0
- package/dist/frontend/lowering/containers/match-row-uses.js +264 -0
- package/dist/frontend/lowering/containers/match-row-uses.js.map +1 -0
- package/dist/frontend/lowering/containers/string-and-regexp.d.ts +14 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js +419 -30
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.js +1 -1
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.d.ts +4 -0
- package/dist/frontend/lowering/cycle-initialization.js +39 -0
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.js +47 -43
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/devirtualize.d.ts +1 -1
- package/dist/frontend/lowering/devirtualize.js +27 -7
- package/dist/frontend/lowering/devirtualize.js.map +1 -1
- package/dist/frontend/lowering/divergences.d.ts +0 -5
- package/dist/frontend/lowering/divergences.js +62 -125
- package/dist/frontend/lowering/divergences.js.map +1 -1
- package/dist/frontend/lowering/dyn-streams.d.ts +25 -0
- package/dist/frontend/lowering/dyn-streams.js +257 -0
- package/dist/frontend/lowering/dyn-streams.js.map +1 -0
- package/dist/frontend/lowering/error-methods.js +4 -1
- package/dist/frontend/lowering/error-methods.js.map +1 -1
- package/dist/frontend/lowering/error-name-order.d.ts +19 -0
- package/dist/frontend/lowering/error-name-order.js +93 -0
- package/dist/frontend/lowering/error-name-order.js.map +1 -0
- package/dist/frontend/lowering/expressions/array-literals.d.ts +21 -0
- package/dist/frontend/lowering/expressions/array-literals.js +703 -0
- package/dist/frontend/lowering/expressions/array-literals.js.map +1 -0
- package/dist/frontend/lowering/expressions/binary.d.ts +35 -0
- package/dist/frontend/lowering/expressions/binary.js +2483 -0
- package/dist/frontend/lowering/expressions/binary.js.map +1 -0
- package/dist/frontend/lowering/expressions/element-access.d.ts +31 -0
- package/dist/frontend/lowering/expressions/element-access.js +1797 -0
- package/dist/frontend/lowering/expressions/element-access.js.map +1 -0
- package/dist/frontend/lowering/expressions/evaluation-safety.js +4 -3
- package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
- package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +38 -0
- package/dist/frontend/lowering/expressions/hosted-narrowing.js +160 -0
- package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -0
- package/dist/frontend/lowering/expressions/identifiers.d.ts +4 -0
- package/dist/frontend/lowering/expressions/identifiers.js +830 -0
- package/dist/frontend/lowering/expressions/identifiers.js.map +1 -0
- package/dist/frontend/lowering/expressions/keyed-field-targets.d.ts +40 -0
- package/dist/frontend/lowering/expressions/keyed-field-targets.js +226 -0
- package/dist/frontend/lowering/expressions/keyed-field-targets.js.map +1 -0
- package/dist/frontend/lowering/expressions/narrowing.d.ts +37 -0
- package/dist/frontend/lowering/expressions/narrowing.js +1322 -0
- package/dist/frontend/lowering/expressions/narrowing.js.map +1 -0
- package/dist/frontend/lowering/expressions/native-proxy.js +4 -4
- package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +45 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.d.ts +10 -0
- package/dist/frontend/lowering/expressions/object-literals.js +253 -85
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +2 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +91 -14
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/property-access.d.ts +110 -0
- package/dist/frontend/lowering/expressions/property-access.js +3544 -0
- package/dist/frontend/lowering/expressions/property-access.js.map +1 -0
- package/dist/frontend/lowering/expressions/relational.d.ts +28 -0
- package/dist/frontend/lowering/expressions/relational.js +1679 -0
- package/dist/frontend/lowering/expressions/relational.js.map +1 -0
- package/dist/frontend/lowering/expressions/typeof.d.ts +22 -0
- package/dist/frontend/lowering/expressions/typeof.js +538 -0
- package/dist/frontend/lowering/expressions/typeof.js.map +1 -0
- package/dist/frontend/lowering/expressions/union-fields.js +1 -1
- package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
- package/dist/frontend/lowering/expressions/updates.d.ts +21 -0
- package/dist/frontend/lowering/expressions/updates.js +780 -0
- package/dist/frontend/lowering/expressions/updates.js.map +1 -0
- package/dist/frontend/lowering/function-context.d.ts +10 -0
- package/dist/frontend/lowering/function-context.js +11 -1
- package/dist/frontend/lowering/function-context.js.map +1 -1
- package/dist/frontend/lowering/function-returns.js +52 -28
- package/dist/frontend/lowering/function-returns.js.map +1 -1
- package/dist/frontend/lowering/general-streams.d.ts +25 -0
- package/dist/frontend/lowering/general-streams.js +108 -0
- package/dist/frontend/lowering/general-streams.js.map +1 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +7 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +172 -69
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +39 -0
- package/dist/frontend/lowering/generic-functions.js +393 -75
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/import-meta.js +2 -2
- package/dist/frontend/lowering/import-meta.js.map +1 -1
- package/dist/frontend/lowering/intern-tables.js +10 -9
- package/dist/frontend/lowering/intern-tables.js.map +1 -1
- package/dist/frontend/lowering/iterator-adapters.d.ts +19 -0
- package/dist/frontend/lowering/iterator-adapters.js +331 -3
- package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
- package/dist/frontend/lowering/js-class-fields.d.ts +28 -0
- package/dist/frontend/lowering/js-class-fields.js +170 -0
- package/dist/frontend/lowering/js-class-fields.js.map +1 -0
- package/dist/frontend/lowering/js-dynamic-objects.d.ts +15 -0
- package/dist/frontend/lowering/js-dynamic-objects.js +299 -0
- package/dist/frontend/lowering/js-dynamic-objects.js.map +1 -0
- package/dist/frontend/lowering/js-dynamic-objects.test.d.ts +1 -0
- package/dist/frontend/lowering/js-dynamic-objects.test.js +35 -0
- package/dist/frontend/lowering/js-dynamic-objects.test.js.map +1 -0
- package/dist/frontend/lowering/json-require.d.ts +22 -0
- package/dist/frontend/lowering/json-require.js +131 -0
- package/dist/frontend/lowering/json-require.js.map +1 -0
- package/dist/frontend/lowering/key-order-witness.d.ts +44 -0
- package/dist/frontend/lowering/key-order-witness.js +641 -0
- package/dist/frontend/lowering/key-order-witness.js.map +1 -0
- package/dist/frontend/lowering/key-order-witness.test.d.ts +1 -0
- package/dist/frontend/lowering/key-order-witness.test.js +239 -0
- package/dist/frontend/lowering/key-order-witness.test.js.map +1 -0
- package/dist/frontend/lowering/lifetime-regions.js +7 -7
- package/dist/frontend/lowering/lifetime-regions.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +61 -60
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.d.ts +10 -1
- package/dist/frontend/lowering/lower-async-iteration.js +34 -6
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.d.ts +5 -0
- package/dist/frontend/lowering/lower-builtin-values.js +32 -3
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +1239 -442
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +50 -3
- package/dist/frontend/lowering/lower-classes.js +1473 -468
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +4 -2
- package/dist/frontend/lowering/lower-comptime.js +111 -13
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-console.js +13 -11
- package/dist/frontend/lowering/lower-console.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.d.ts +10 -0
- package/dist/frontend/lowering/lower-dgram.js +179 -8
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-enums.js +113 -14
- package/dist/frontend/lowering/lower-enums.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +16 -7
- package/dist/frontend/lowering/lower-event-emitter.js +258 -70
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-event-target.js +2 -2
- package/dist/frontend/lowering/lower-event-target.js.map +1 -1
- package/dist/frontend/lowering/lower-expando.js +17 -13
- package/dist/frontend/lowering/lower-expando.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +188 -186
- package/dist/frontend/lowering/lower-exprs.js +1481 -12489
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +68 -22
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +6 -0
- package/dist/frontend/lowering/lower-generators.js +29 -16
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.js +5 -1
- package/dist/frontend/lowering/lower-global-value.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +331 -96
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.js +23 -20
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-mock.d.ts +8 -1
- package/dist/frontend/lowering/lower-mock.js +185 -18
- package/dist/frontend/lowering/lower-mock.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +267 -61
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +6 -0
- package/dist/frontend/lowering/lower-namespaces.js +45 -33
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-node-module.d.ts +16 -0
- package/dist/frontend/lowering/lower-node-module.js +147 -14
- package/dist/frontend/lowering/lower-node-module.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +6 -6
- package/dist/frontend/lowering/lower-server.js +488 -100
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.d.ts +4 -0
- package/dist/frontend/lowering/lower-stdlib.js +151 -109
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +28 -2
- package/dist/frontend/lowering/lower-stmts.js +1541 -391
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +3 -0
- package/dist/frontend/lowering/lower-stream.js +398 -56
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-test.d.ts +3 -0
- package/dist/frontend/lowering/lower-test.js +437 -62
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.js +80 -32
- package/dist/frontend/lowering/lower-timers.js.map +1 -1
- package/dist/frontend/lowering/lower-url.js +1 -1
- package/dist/frontend/lowering/lower-url.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +399 -26
- package/dist/frontend/lowering/lowerer.js +1910 -305
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +10 -4
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/maybe-promise.d.ts +46 -0
- package/dist/frontend/lowering/maybe-promise.js +249 -0
- package/dist/frontend/lowering/maybe-promise.js.map +1 -0
- package/dist/frontend/lowering/module-member-this.d.ts +3 -0
- package/dist/frontend/lowering/module-member-this.js +262 -0
- package/dist/frontend/lowering/module-member-this.js.map +1 -0
- package/dist/frontend/lowering/module-namespace-elements.js +1 -1
- package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
- package/dist/frontend/lowering/nan-coded-reads.d.ts +3 -0
- package/dist/frontend/lowering/nan-coded-reads.js +45 -32
- package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
- package/dist/frontend/lowering/narrowing-stability.d.ts +18 -3
- package/dist/frontend/lowering/narrowing-stability.js +104 -32
- package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
- package/dist/frontend/lowering/native-ffi.js +11 -11
- package/dist/frontend/lowering/native-ffi.js.map +1 -1
- package/dist/frontend/lowering/object-factory-new.js +6 -8
- package/dist/frontend/lowering/object-factory-new.js.map +1 -1
- package/dist/frontend/lowering/private-brands.d.ts +46 -0
- package/dist/frontend/lowering/private-brands.js +265 -0
- package/dist/frontend/lowering/private-brands.js.map +1 -0
- package/dist/frontend/lowering/promise-executor-adapter.d.ts +11 -0
- package/dist/frontend/lowering/promise-executor-adapter.js +87 -0
- package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -0
- package/dist/frontend/lowering/require-initialization.d.ts +32 -0
- package/dist/frontend/lowering/require-initialization.js +246 -0
- package/dist/frontend/lowering/require-initialization.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-bounds.js +7 -7
- package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-elements.js +12 -12
- package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-guards.js +10 -10
- package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-guards.test.js +1 -1
- package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-ownership.js +10 -9
- package/dist/frontend/lowering/runtime-optional-ownership.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-provenance.js +2 -2
- package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-records.d.ts +35 -0
- package/dist/frontend/lowering/runtime-optional-records.js +205 -32
- package/dist/frontend/lowering/runtime-optional-records.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-records.test.js +19 -1
- package/dist/frontend/lowering/runtime-optional-records.test.js.map +1 -1
- package/dist/frontend/lowering/sanitize-class-types.test.js +2 -2
- package/dist/frontend/lowering/split-consumers.js +4 -4
- package/dist/frontend/lowering/split-consumers.js.map +1 -1
- package/dist/frontend/lowering/static-function-names.d.ts +28 -0
- package/dist/frontend/lowering/static-function-names.js +212 -0
- package/dist/frontend/lowering/static-function-names.js.map +1 -0
- package/dist/frontend/lowering/static-this.js +6 -6
- package/dist/frontend/lowering/static-this.js.map +1 -1
- package/dist/frontend/lowering/strict-mode.d.ts +5 -0
- package/dist/frontend/lowering/strict-mode.js +31 -0
- package/dist/frontend/lowering/strict-mode.js.map +1 -0
- package/dist/frontend/lowering/string-index-bounds.js +10 -10
- package/dist/frontend/lowering/string-index-bounds.js.map +1 -1
- package/dist/frontend/lowering/string-index.d.ts +12 -0
- package/dist/frontend/lowering/string-index.js +72 -1
- package/dist/frontend/lowering/string-index.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +12 -3
- package/dist/frontend/lowering/surfaces.js +252 -41
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/symbol-fields.d.ts +7 -0
- package/dist/frontend/lowering/symbol-fields.js +204 -36
- package/dist/frontend/lowering/symbol-fields.js.map +1 -1
- package/dist/frontend/lowering/symbol-methods.d.ts +2 -1
- package/dist/frontend/lowering/symbol-methods.js +24 -6
- package/dist/frontend/lowering/symbol-methods.js.map +1 -1
- package/dist/frontend/lowering/thread-slots.d.ts +13 -0
- package/dist/frontend/lowering/thread-slots.js +208 -0
- package/dist/frontend/lowering/thread-slots.js.map +1 -0
- package/dist/frontend/lowering/typed-arguments.d.ts +74 -0
- package/dist/frontend/lowering/typed-arguments.js +472 -0
- package/dist/frontend/lowering/typed-arguments.js.map +1 -0
- package/dist/frontend/lowering/union-retag.d.ts +8 -0
- package/dist/frontend/lowering/union-retag.js +27 -0
- package/dist/frontend/lowering/union-retag.js.map +1 -1
- package/dist/frontend/lowering/union-retag.test.js +24 -1
- package/dist/frontend/lowering/union-retag.test.js.map +1 -1
- package/dist/frontend/lowering/var-hoisting.js +6 -6
- package/dist/frontend/lowering/var-hoisting.js.map +1 -1
- package/dist/frontend/lowering/width-lift.d.ts +4 -0
- package/dist/frontend/mock-shapes.js +13 -6
- package/dist/frontend/mock-shapes.js.map +1 -1
- package/dist/frontend/module-source-candidates.js +1 -1
- package/dist/frontend/module-source-candidates.js.map +1 -1
- package/dist/frontend/module-source-candidates.test.js +2 -1
- package/dist/frontend/module-source-candidates.test.js.map +1 -1
- package/dist/frontend/module-syntax.js +8 -8
- package/dist/frontend/module-syntax.js.map +1 -1
- package/dist/frontend/npm-static-bundled-chunks.d.ts +51 -0
- package/dist/frontend/npm-static-bundled-chunks.js +810 -0
- package/dist/frontend/npm-static-bundled-chunks.js.map +1 -0
- package/dist/frontend/npm-static-bundled-chunks.test.d.ts +1 -0
- package/dist/frontend/npm-static-bundled-chunks.test.js +287 -0
- package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -0
- package/dist/frontend/npm-static-bundled-cjs.js +24 -23
- package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
- package/dist/frontend/npm-static-bundled-esm.d.ts +9 -0
- package/dist/frontend/npm-static-bundled-esm.js +768 -0
- package/dist/frontend/npm-static-bundled-esm.js.map +1 -0
- package/dist/frontend/npm-static-bundled-esm.test.d.ts +1 -0
- package/dist/frontend/npm-static-bundled-esm.test.js +207 -0
- package/dist/frontend/npm-static-bundled-esm.test.js.map +1 -0
- package/dist/frontend/npm-static-cjs-exports-alias.d.ts +2 -0
- package/dist/frontend/npm-static-cjs-exports-alias.js +186 -0
- package/dist/frontend/npm-static-cjs-exports-alias.js.map +1 -0
- package/dist/frontend/npm-static-cjs-exports-alias.test.d.ts +1 -0
- package/dist/frontend/npm-static-cjs-exports-alias.test.js +73 -0
- package/dist/frontend/npm-static-cjs-exports-alias.test.js.map +1 -0
- package/dist/frontend/npm-static-cjs-exports-var.d.ts +2 -0
- package/dist/frontend/npm-static-cjs-exports-var.js +236 -0
- package/dist/frontend/npm-static-cjs-exports-var.js.map +1 -0
- package/dist/frontend/npm-static-declaration-syntax.js +102 -101
- package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
- package/dist/frontend/npm-static-prune.js +36 -24
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-host.d.ts +4 -1
- package/dist/frontend/npm-static-rewrite-host.js +14 -3
- package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-syntax.d.ts +19 -0
- package/dist/frontend/npm-static-rewrite-syntax.js +274 -101
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
- package/dist/frontend/npm-static-subtyping.js +7 -9
- package/dist/frontend/npm-static-subtyping.js.map +1 -1
- package/dist/frontend/npm-static.d.ts +17 -1
- package/dist/frontend/npm-static.js +167 -16
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm-static.test.js +22 -1
- package/dist/frontend/npm-static.test.js.map +1 -1
- package/dist/frontend/pipeline.js +164 -26
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/pipeline.test.js +22 -1
- package/dist/frontend/pipeline.test.js.map +1 -1
- package/dist/frontend/program-analysis.d.ts +6 -1
- package/dist/frontend/program-analysis.js +7 -0
- package/dist/frontend/program-analysis.js.map +1 -1
- package/dist/frontend/program.d.ts +92 -2
- package/dist/frontend/program.js +1557 -255
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +76 -6
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/resolve.js +36 -2
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/resolve.test.js +49 -0
- package/dist/frontend/resolve.test.js.map +1 -1
- package/dist/frontend/services.d.ts +20 -1
- package/dist/frontend/services.js +40 -3
- package/dist/frontend/services.js.map +1 -1
- package/dist/frontend/services.test.js +2 -1
- package/dist/frontend/services.test.js.map +1 -1
- package/dist/frontend/threads-import.js +1 -1
- package/dist/frontend/threads-import.js.map +1 -1
- package/dist/frontend/tier-analysis.d.ts +71 -0
- package/dist/frontend/tier-analysis.js +522 -0
- package/dist/frontend/tier-analysis.js.map +1 -0
- package/dist/frontend/ts7/api-conformance.d.ts +234 -0
- package/dist/frontend/ts7/api-conformance.js +7 -0
- package/dist/frontend/ts7/api-conformance.js.map +1 -0
- package/dist/frontend/ts7/ast-guards.generated.js +2 -1
- package/dist/frontend/ts7/ast-guards.generated.js.map +1 -1
- package/dist/frontend/ts7/ast-node.d.ts +47 -25
- package/dist/frontend/ts7/ast-node.js +64 -18
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +36 -12
- package/dist/frontend/ts7/ast-node.test.js.map +1 -1
- package/dist/frontend/ts7/ast-types.d.ts +10 -3
- package/dist/frontend/ts7/ast-types.generated.d.ts +39 -39
- package/dist/frontend/ts7/ast.d.ts +1 -0
- package/dist/frontend/ts7/ast.js +3 -2
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/checker-backend.d.ts +23 -0
- package/dist/frontend/ts7/checker-backend.js +88 -0
- package/dist/frontend/ts7/checker-backend.js.map +1 -0
- package/dist/frontend/ts7/checker-backend.test.d.ts +1 -0
- package/dist/frontend/ts7/checker-backend.test.js +63 -0
- package/dist/frontend/ts7/checker-backend.test.js.map +1 -0
- package/dist/frontend/ts7/checker-cache.d.ts +0 -3
- package/dist/frontend/ts7/checker-cache.js +0 -6
- package/dist/frontend/ts7/checker-cache.js.map +1 -1
- package/dist/frontend/ts7/checker.d.ts +18 -11
- package/dist/frontend/ts7/checker.js +42 -55
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.js +10 -7
- package/dist/frontend/ts7/checker.test.js.map +1 -1
- package/dist/frontend/ts7/diagnostic.d.ts +19 -0
- package/dist/frontend/ts7/diagnostic.js +22 -0
- package/dist/frontend/ts7/diagnostic.js.map +1 -0
- package/dist/frontend/ts7/node-functions.d.ts +8 -0
- package/dist/frontend/ts7/node-functions.js +18 -0
- package/dist/frontend/ts7/node-functions.js.map +1 -0
- package/dist/frontend/ts7/program-host.d.ts +5 -1
- package/dist/frontend/ts7/program-host.js +12 -0
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/rpc-api.d.ts +5 -1
- package/dist/frontend/ts7/rpc-api.js +8 -1
- package/dist/frontend/ts7/rpc-api.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.d.ts +13 -6
- package/dist/frontend/ts7/semantic-checker.js +26 -8
- package/dist/frontend/ts7/semantic-checker.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.test.js +12 -9
- package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.d.ts +54 -24
- package/dist/frontend/ts7/semantic-model.js +88 -16
- package/dist/frontend/ts7/semantic-model.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.test.js +4 -4
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-types.d.ts +7 -3
- package/dist/frontend/ts7/semantic-types.js +1 -1
- package/dist/frontend/ts7/semantic-types.js.map +1 -1
- package/dist/frontend/ts7/session.d.ts +11 -11
- package/dist/frontend/ts7/session.js +8 -5
- package/dist/frontend/ts7/session.js.map +1 -1
- package/dist/frontend/ts7/session.test.js +9 -5
- package/dist/frontend/ts7/session.test.js.map +1 -1
- package/dist/frontend/ts7/source-parser.d.ts +6 -2
- package/dist/frontend/ts7/source-parser.js +24 -3
- package/dist/frontend/ts7/source-parser.js.map +1 -1
- package/dist/frontend/ts7/source-parser.test.js +38 -17
- package/dist/frontend/ts7/source-parser.test.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +122 -2
- package/dist/frontend/type-mapper.js +2545 -719
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-only-imports.d.ts +28 -0
- package/dist/frontend/type-only-imports.js +122 -0
- package/dist/frontend/type-only-imports.js.map +1 -0
- package/dist/frontend/worker-target.js +8 -8
- package/dist/frontend/worker-target.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +29 -2
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js +4 -2
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/api.d.ts +1 -1
- package/dist/ir/api.js +1 -1
- package/dist/ir/api.js.map +1 -1
- package/dist/ir/array-length-stability.d.ts +30 -0
- package/dist/ir/array-length-stability.js +236 -0
- package/dist/ir/array-length-stability.js.map +1 -0
- package/dist/ir/array-length-stability.test.d.ts +1 -0
- package/dist/ir/array-length-stability.test.js +113 -0
- package/dist/ir/array-length-stability.test.js.map +1 -0
- package/dist/ir/build.d.ts +2 -2
- package/dist/ir/build.js +1 -1
- package/dist/ir/build.js.map +1 -1
- package/dist/ir/builtin-effects.js +103 -0
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +1 -1
- package/dist/ir/builtin-signatures.js +494 -25
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/byte-numbers.js +3 -0
- package/dist/ir/byte-numbers.js.map +1 -1
- package/dist/ir/callback-specialization.d.ts +37 -0
- package/dist/ir/callback-specialization.js +459 -0
- package/dist/ir/callback-specialization.js.map +1 -0
- package/dist/ir/callback-specialization.test.d.ts +1 -0
- package/dist/ir/callback-specialization.test.js +208 -0
- package/dist/ir/callback-specialization.test.js.map +1 -0
- package/dist/ir/capture-values.d.ts +0 -1
- package/dist/ir/capture-values.js +51 -40
- package/dist/ir/capture-values.js.map +1 -1
- package/dist/ir/constant-globals.test.js +1 -1
- package/dist/ir/constant-tables.test.js +1 -1
- package/dist/ir/field-values.test.js +1 -1
- package/dist/ir/final-fields.test.js +1 -1
- package/dist/ir/function-references.test.js +9 -1
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/init-only-globals.test.js +1 -1
- package/dist/ir/initializer-bindings.test.js +1 -1
- package/dist/ir/int32-slots.d.ts +14 -0
- package/dist/ir/int32-slots.js +97 -14
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +1 -1
- package/dist/ir/integer-loop-facts.d.ts +2 -0
- package/dist/ir/integer-loop-facts.js +24 -3
- package/dist/ir/integer-loop-facts.js.map +1 -1
- package/dist/ir/integer-loops.d.ts +1 -1
- package/dist/ir/integer-loops.js +39 -9
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +104 -0
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +3 -0
- package/dist/ir/integer-ranges.js +3 -1
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +82 -1
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/intrinsic-signatures.js +6 -0
- package/dist/ir/intrinsic-signatures.js.map +1 -1
- package/dist/ir/ir.d.ts +221 -58
- package/dist/ir/ir.js +119 -12
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +10 -0
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/jsval.d.ts +8 -0
- package/dist/ir/jsval.js +365 -0
- package/dist/ir/jsval.js.map +1 -0
- package/dist/ir/jsval.test.d.ts +1 -0
- package/dist/ir/jsval.test.js +239 -0
- package/dist/ir/jsval.test.js.map +1 -0
- package/dist/ir/runtime-features.d.ts +148 -33
- package/dist/ir/runtime-features.js +629 -386
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/scalar-records.test.js +1 -1
- package/dist/ir/self-captures.d.ts +33 -0
- package/dist/ir/self-captures.js +245 -0
- package/dist/ir/self-captures.js.map +1 -0
- package/dist/ir/self-captures.test.d.ts +1 -0
- package/dist/ir/self-captures.test.js +135 -0
- package/dist/ir/self-captures.test.js.map +1 -0
- package/dist/ir/serialize.d.ts +1 -1
- package/dist/ir/serialize.js +7 -4
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/tiers.d.ts +26 -0
- package/dist/ir/tiers.js +101 -0
- package/dist/ir/tiers.js.map +1 -0
- package/dist/ir/tiers.test.d.ts +1 -0
- package/dist/ir/tiers.test.js +140 -0
- package/dist/ir/tiers.test.js.map +1 -0
- package/dist/ir/traverse.js +103 -94
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/traverse.test.js +33 -30
- package/dist/ir/traverse.test.js.map +1 -1
- package/dist/ir/unshare.js +65 -3
- package/dist/ir/unshare.js.map +1 -1
- package/dist/ir/unshare.test.js +1 -1
- package/dist/ir/validate.js +175 -68
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +26 -9
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/fence-eval.test.js +1 -1
- package/dist/library/int-infer.test.js +4 -4
- package/dist/library/ir-policy.js +13 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/library/library-cache.d.ts +1 -0
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +5 -5
- package/dist/library/library-profile.d.ts +4 -4
- package/dist/library/library-profile.js +35 -7
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/prepare.js +13 -1
- package/dist/library/prepare.js.map +1 -1
- package/dist/native/cli.js +5 -0
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.js +2 -2
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/compiler.test.js +2 -2
- package/dist/native/prepare.js +7 -0
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/sanitizer.test.js +12 -0
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/native/toolchain.d.ts +2 -0
- package/dist/native/toolchain.js +10 -1
- package/dist/native/toolchain.js.map +1 -1
- package/dist/native/toolchain.test.js +39 -1
- package/dist/native/toolchain.test.js.map +1 -1
- package/dist/startup-cache.d.ts +1 -0
- package/dist/startup-cache.js +1 -0
- package/dist/startup-cache.js.map +1 -1
- package/dist/wasm/base64.d.ts +5 -0
- package/dist/wasm/base64.js +62 -0
- package/dist/wasm/base64.js.map +1 -0
- package/dist/wasm/binary.d.ts +36 -0
- package/dist/wasm/binary.js +1976 -0
- package/dist/wasm/binary.js.map +1 -0
- package/dist/wasm/binary.test.d.ts +1 -0
- package/dist/wasm/binary.test.js +190 -0
- package/dist/wasm/binary.test.js.map +1 -0
- package/dist/wasm/discover.d.ts +38 -0
- package/dist/wasm/discover.js +377 -0
- package/dist/wasm/discover.js.map +1 -0
- package/dist/wasm/discover.test.d.ts +1 -0
- package/dist/wasm/discover.test.js +24 -0
- package/dist/wasm/discover.test.js.map +1 -0
- package/dist/wasm/module.d.ts +151 -0
- package/dist/wasm/module.js +575 -0
- package/dist/wasm/module.js.map +1 -0
- package/dist/wasm/translate.d.ts +48 -0
- package/dist/wasm/translate.js +2129 -0
- package/dist/wasm/translate.js.map +1 -0
- package/dist/wasm/translate.test.d.ts +1 -0
- package/dist/wasm/translate.test.js +207 -0
- package/dist/wasm/translate.test.js.map +1 -0
- package/package.json +21 -20
- package/surface-manifest.json +303 -19
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* string/number/boolean methods retain their own declared return contract
|
|
10
10
|
* too; inferred checked values validate at the ordinary return boundary. */
|
|
11
11
|
import * as ts from "./ts7/syntax.js";
|
|
12
|
+
import { getTextOfNode, tokenStartOfNode } from "./ts7/node-functions.js";
|
|
12
13
|
const SCALAR_METHOD_RETURNS = new Set(["string", "number", "boolean"]);
|
|
13
14
|
const NULLABLE_VOID_CALLBACK = "(() => void) | null";
|
|
14
15
|
/** TypeScript truncates JSDoc inner/instance namepaths (`Owner~Item`,
|
|
@@ -19,16 +20,16 @@ export function applyNpmStaticJsDocNamepaths(sourceFile, source) {
|
|
|
19
20
|
const replacements = new Map();
|
|
20
21
|
const visit = (node) => {
|
|
21
22
|
for (const doc of node.jsDoc ?? [])
|
|
22
|
-
for (const tag of doc.tags ?? []) {
|
|
23
|
+
for (const tag of doc.tags?.nodes ?? []) {
|
|
23
24
|
const expression = tag.typeExpression;
|
|
24
25
|
if (expression?.kind !== ts.SyntaxKind.JSDocTypeExpression)
|
|
25
26
|
continue;
|
|
26
|
-
const start = expression
|
|
27
|
+
const start = tokenStartOfNode(expression);
|
|
27
28
|
if (source[start] !== "{")
|
|
28
29
|
continue;
|
|
29
30
|
let depth = 1;
|
|
30
31
|
let quote = "";
|
|
31
|
-
for (let i = start + 1; i < tag.
|
|
32
|
+
for (let i = start + 1; i < tag.end && depth > 0; i++) {
|
|
32
33
|
const char = source[i];
|
|
33
34
|
if (quote !== "") {
|
|
34
35
|
if (char === "\\")
|
|
@@ -49,7 +50,7 @@ export function applyNpmStaticJsDocNamepaths(sourceFile, source) {
|
|
|
49
50
|
depth--;
|
|
50
51
|
continue;
|
|
51
52
|
}
|
|
52
|
-
const name = /^[$A-Z_a-z][$\w]*(?:[.#~][$A-Z_a-z][$\w]*)*/.exec(source.slice(i, tag.
|
|
53
|
+
const name = /^[$A-Z_a-z][$\w]*(?:[.#~][$A-Z_a-z][$\w]*)*/.exec(source.slice(i, tag.end))?.[0];
|
|
53
54
|
if (!name)
|
|
54
55
|
continue;
|
|
55
56
|
if (name.includes("~") || name.includes("#"))
|
|
@@ -75,7 +76,7 @@ export function applyNpmStaticJsDocNamepaths(sourceFile, source) {
|
|
|
75
76
|
* downstream lowering still checks every assignment against the slot. */
|
|
76
77
|
export function applyNpmStaticNullableClassFields(sourceFile, source) {
|
|
77
78
|
const constructors = new Set();
|
|
78
|
-
for (const statement of sourceFile.statements) {
|
|
79
|
+
for (const statement of sourceFile.statements.nodes) {
|
|
79
80
|
if (ts.isClassDeclaration(statement) && statement.name)
|
|
80
81
|
constructors.add(statement.name.text);
|
|
81
82
|
if (ts.isImportDeclaration(statement) && !statement.importClause?.isTypeOnly) {
|
|
@@ -83,7 +84,7 @@ export function applyNpmStaticNullableClassFields(sourceFile, source) {
|
|
|
83
84
|
if (clause?.name)
|
|
84
85
|
constructors.add(clause.name.text);
|
|
85
86
|
if (clause?.namedBindings && ts.isNamedImports(clause.namedBindings)) {
|
|
86
|
-
for (const binding of clause.namedBindings.elements) {
|
|
87
|
+
for (const binding of clause.namedBindings.elements.nodes) {
|
|
87
88
|
if (!binding.isTypeOnly)
|
|
88
89
|
constructors.add(binding.name.text);
|
|
89
90
|
}
|
|
@@ -98,10 +99,10 @@ export function applyNpmStaticNullableClassFields(sourceFile, source) {
|
|
|
98
99
|
if (ts.isIdentifier(node))
|
|
99
100
|
constructors.delete(node.text);
|
|
100
101
|
else if (ts.isArrayLiteralExpression(node))
|
|
101
|
-
for (const item of node.elements)
|
|
102
|
+
for (const item of node.elements.nodes)
|
|
102
103
|
rejectAssignedName(item);
|
|
103
104
|
else if (ts.isObjectLiteralExpression(node))
|
|
104
|
-
for (const item of node.properties) {
|
|
105
|
+
for (const item of node.properties.nodes) {
|
|
105
106
|
if (ts.isPropertyAssignment(item))
|
|
106
107
|
rejectAssignedName(item.initializer);
|
|
107
108
|
else if (ts.isShorthandPropertyAssignment(item))
|
|
@@ -129,17 +130,17 @@ export function applyNpmStaticNullableClassFields(sourceFile, source) {
|
|
|
129
130
|
};
|
|
130
131
|
rejectMutable(sourceFile);
|
|
131
132
|
const inserts = [];
|
|
132
|
-
for (const statement of sourceFile.statements) {
|
|
133
|
+
for (const statement of sourceFile.statements.nodes) {
|
|
133
134
|
if (!ts.isClassDeclaration(statement))
|
|
134
135
|
continue;
|
|
135
136
|
const fields = new Map();
|
|
136
|
-
for (const member of statement.members) {
|
|
137
|
+
for (const member of statement.members.nodes) {
|
|
137
138
|
if (!ts.isPropertyDeclaration(member) ||
|
|
138
139
|
!ts.isIdentifier(member.name) ||
|
|
139
140
|
member.initializer?.kind !== ts.SyntaxKind.NullKeyword ||
|
|
140
141
|
hasModifier(member, ts.SyntaxKind.StaticKeyword))
|
|
141
142
|
continue;
|
|
142
|
-
const leading = source.slice(member.
|
|
143
|
+
const leading = source.slice(member.pos, tokenStartOfNode(member));
|
|
143
144
|
if (jsDocTypeOf(member) !== undefined || leading.includes("@type"))
|
|
144
145
|
continue;
|
|
145
146
|
fields.set(member.name.text, { member, invalid: false });
|
|
@@ -153,7 +154,7 @@ export function applyNpmStaticNullableClassFields(sourceFile, source) {
|
|
|
153
154
|
if (ts.isIdentifier(name))
|
|
154
155
|
shadowed.add(name.text);
|
|
155
156
|
else
|
|
156
|
-
for (const element of name.elements)
|
|
157
|
+
for (const element of name.elements.nodes)
|
|
157
158
|
if (ts.isBindingElement(element) && element.name !== undefined)
|
|
158
159
|
bindingNames(element.name);
|
|
159
160
|
};
|
|
@@ -168,7 +169,7 @@ export function applyNpmStaticNullableClassFields(sourceFile, source) {
|
|
|
168
169
|
shadowed.add(node.name.text);
|
|
169
170
|
ts.forEachChild(node, collectBindings);
|
|
170
171
|
};
|
|
171
|
-
for (const member of statement.members)
|
|
172
|
+
for (const member of statement.members.nodes)
|
|
172
173
|
collectBindings(member);
|
|
173
174
|
const targetField = (node) => {
|
|
174
175
|
if (ts.isPropertyAccessExpression(node) && node.expression.kind === ts.SyntaxKind.ThisKeyword)
|
|
@@ -241,7 +242,7 @@ export function applyNpmStaticNullableClassFields(sourceFile, source) {
|
|
|
241
242
|
invalidate(node.expression);
|
|
242
243
|
ts.forEachChild(node, visit);
|
|
243
244
|
};
|
|
244
|
-
for (const member of statement.members) {
|
|
245
|
+
for (const member of statement.members.nodes) {
|
|
245
246
|
if (hasModifier(member, ts.SyntaxKind.StaticKeyword))
|
|
246
247
|
continue;
|
|
247
248
|
if ((ts.isConstructorDeclaration(member) ||
|
|
@@ -256,7 +257,7 @@ export function applyNpmStaticNullableClassFields(sourceFile, source) {
|
|
|
256
257
|
if (field.invalid || field.className === undefined)
|
|
257
258
|
continue;
|
|
258
259
|
inserts.push({
|
|
259
|
-
offset: field.member
|
|
260
|
+
offset: tokenStartOfNode(field.member),
|
|
260
261
|
text: `/** @type {${field.className} | null} */ `,
|
|
261
262
|
});
|
|
262
263
|
}
|
|
@@ -276,14 +277,14 @@ export function applyNpmStaticNullableClassFields(sourceFile, source) {
|
|
|
276
277
|
* arrays; arbitrary methods also named find are left alone. */
|
|
277
278
|
export function applyNpmStaticFindReturnWidening(sourceFile, source) {
|
|
278
279
|
const insertions = [];
|
|
279
|
-
for (const statement of sourceFile.statements) {
|
|
280
|
+
for (const statement of sourceFile.statements.nodes) {
|
|
280
281
|
if (!ts.isClassDeclaration(statement))
|
|
281
282
|
continue;
|
|
282
|
-
const constructor = statement.members.find((member) => ts.isConstructorDeclaration(member) && member.body !== undefined);
|
|
283
|
+
const constructor = statement.members.nodes.find((member) => ts.isConstructorDeclaration(member) && member.body !== undefined);
|
|
283
284
|
if (constructor?.body === undefined)
|
|
284
285
|
continue;
|
|
285
286
|
const arrayFields = new Set();
|
|
286
|
-
for (const bodyStatement of constructor.body.statements) {
|
|
287
|
+
for (const bodyStatement of constructor.body.statements.nodes) {
|
|
287
288
|
if (!ts.isExpressionStatement(bodyStatement) ||
|
|
288
289
|
!ts.isBinaryExpression(bodyStatement.expression))
|
|
289
290
|
continue;
|
|
@@ -294,10 +295,10 @@ export function applyNpmStaticFindReturnWidening(sourceFile, source) {
|
|
|
294
295
|
ts.isArrayLiteralExpression(right))
|
|
295
296
|
arrayFields.add(left.name.text);
|
|
296
297
|
}
|
|
297
|
-
for (const member of statement.members) {
|
|
298
|
-
if (!ts.isMethodDeclaration(member) || member.body?.statements.length !== 1)
|
|
298
|
+
for (const member of statement.members.nodes) {
|
|
299
|
+
if (!ts.isMethodDeclaration(member) || member.body?.statements?.nodes.length !== 1)
|
|
299
300
|
continue;
|
|
300
|
-
const returned = member.body.statements[0];
|
|
301
|
+
const returned = member.body.statements.nodes[0];
|
|
301
302
|
if (!returned ||
|
|
302
303
|
!ts.isReturnStatement(returned) ||
|
|
303
304
|
returned.expression === undefined ||
|
|
@@ -314,9 +315,9 @@ export function applyNpmStaticFindReturnWidening(sourceFile, source) {
|
|
|
314
315
|
if (returnType === undefined ||
|
|
315
316
|
!ts.isTypeReferenceNode(returnType) ||
|
|
316
317
|
!ts.isIdentifier(returnType.typeName) ||
|
|
317
|
-
(returnType.typeArguments?.length ?? 0) !== 0)
|
|
318
|
+
(returnType.typeArguments?.nodes.length ?? 0) !== 0)
|
|
318
319
|
continue;
|
|
319
|
-
insertions.push({ offset: returnType.
|
|
320
|
+
insertions.push({ offset: returnType.end, length: " | undefined".length });
|
|
320
321
|
}
|
|
321
322
|
}
|
|
322
323
|
if (insertions.length === 0)
|
|
@@ -342,7 +343,7 @@ function lastJsDocTag(node, kind) {
|
|
|
342
343
|
const docs = node.jsDoc;
|
|
343
344
|
if (docs === undefined || docs.length === 0)
|
|
344
345
|
return undefined;
|
|
345
|
-
for (const tag of docs[docs.length - 1].tags ?? []) {
|
|
346
|
+
for (const tag of docs[docs.length - 1].tags?.nodes ?? []) {
|
|
346
347
|
if (tag.kind === kind)
|
|
347
348
|
return tag;
|
|
348
349
|
}
|
|
@@ -372,7 +373,7 @@ function jsDocReturnTypeOf(node) {
|
|
|
372
373
|
if (type === undefined)
|
|
373
374
|
return undefined;
|
|
374
375
|
if (ts.isTypeLiteralNode(type)) {
|
|
375
|
-
return type.members.find(ts.isCallSignatureDeclaration)?.type;
|
|
376
|
+
return type.members.nodes.find(ts.isCallSignatureDeclaration)?.type;
|
|
376
377
|
}
|
|
377
378
|
return ts.isFunctionTypeNode(type) ? type.type : undefined;
|
|
378
379
|
}
|
|
@@ -380,55 +381,55 @@ function hasModifier(node, kind) {
|
|
|
380
381
|
return (ts.canHaveModifiers(node) &&
|
|
381
382
|
(ts.getModifiers(node) ?? []).some((modifier) => modifier.kind === kind));
|
|
382
383
|
}
|
|
383
|
-
function safeTypeText(node,
|
|
384
|
+
function safeTypeText(node, className) {
|
|
384
385
|
if (SAFE_KEYWORD_TYPES.has(node.kind) || ts.isThisTypeNode(node))
|
|
385
|
-
return node
|
|
386
|
+
return getTextOfNode(node);
|
|
386
387
|
if (ts.isLiteralTypeNode(node) && node.literal.kind === ts.SyntaxKind.NullKeyword)
|
|
387
388
|
return "null";
|
|
388
389
|
if (ts.isParenthesizedTypeNode(node)) {
|
|
389
|
-
const inner = safeTypeText(node.type,
|
|
390
|
+
const inner = safeTypeText(node.type, className);
|
|
390
391
|
return inner === null ? null : `(${inner})`;
|
|
391
392
|
}
|
|
392
393
|
if (ts.isArrayTypeNode(node)) {
|
|
393
|
-
const element = safeTypeText(node.elementType,
|
|
394
|
+
const element = safeTypeText(node.elementType, className);
|
|
394
395
|
return element === null ? null : `${element}[]`;
|
|
395
396
|
}
|
|
396
397
|
if (ts.isTypeOperatorNode(node) && node.operator === ts.SyntaxKind.ReadonlyKeyword) {
|
|
397
|
-
return safeTypeText(node.type,
|
|
398
|
+
return safeTypeText(node.type, className);
|
|
398
399
|
}
|
|
399
400
|
if (ts.isUnionTypeNode(node)) {
|
|
400
|
-
const arms = node.types.map((type) => safeTypeText(type,
|
|
401
|
+
const arms = node.types.nodes.map((type) => safeTypeText(type, className));
|
|
401
402
|
return arms.some((arm) => arm === null) ? null : arms.join(" | ");
|
|
402
403
|
}
|
|
403
404
|
if (ts.isTypeReferenceNode(node) &&
|
|
404
405
|
ts.isIdentifier(node.typeName) &&
|
|
405
406
|
node.typeName.text === "Record" &&
|
|
406
|
-
node.typeArguments?.length === 2 &&
|
|
407
|
-
node.typeArguments[0]?.kind === ts.SyntaxKind.StringKeyword &&
|
|
408
|
-
node.typeArguments[1]?.kind === ts.SyntaxKind.StringKeyword) {
|
|
407
|
+
node.typeArguments?.nodes.length === 2 &&
|
|
408
|
+
node.typeArguments.nodes[0]?.kind === ts.SyntaxKind.StringKeyword &&
|
|
409
|
+
node.typeArguments.nodes[1]?.kind === ts.SyntaxKind.StringKeyword) {
|
|
409
410
|
return "Record<string, string>";
|
|
410
411
|
}
|
|
411
412
|
return ts.isTypeReferenceNode(node) &&
|
|
412
413
|
ts.isIdentifier(node.typeName) &&
|
|
413
414
|
node.typeName.text === className &&
|
|
414
|
-
(node.typeArguments?.length ?? 0) === 0
|
|
415
|
+
(node.typeArguments?.nodes.length ?? 0) === 0
|
|
415
416
|
? className
|
|
416
417
|
: null;
|
|
417
418
|
}
|
|
418
419
|
function overloadSignature(sourceFile, className, method) {
|
|
419
420
|
if (!ts.isIdentifier(method.name) ||
|
|
420
421
|
method.type === undefined ||
|
|
421
|
-
(method.typeParameters?.length ?? 0) !== 0 ||
|
|
422
|
+
(method.typeParameters?.nodes.length ?? 0) !== 0 ||
|
|
422
423
|
hasModifier(method, ts.SyntaxKind.StaticKeyword) ||
|
|
423
424
|
hasModifier(method, ts.SyntaxKind.PrivateKeyword) ||
|
|
424
425
|
hasModifier(method, ts.SyntaxKind.ProtectedKeyword)) {
|
|
425
426
|
return null;
|
|
426
427
|
}
|
|
427
|
-
const returnType = safeTypeText(method.type,
|
|
428
|
+
const returnType = safeTypeText(method.type, className);
|
|
428
429
|
if (returnType === null)
|
|
429
430
|
return null;
|
|
430
431
|
const parameters = [];
|
|
431
|
-
for (const parameter of method.parameters) {
|
|
432
|
+
for (const parameter of method.parameters.nodes) {
|
|
432
433
|
if (!ts.isIdentifier(parameter.name) ||
|
|
433
434
|
parameter.name.text === "this" ||
|
|
434
435
|
parameter.type === undefined ||
|
|
@@ -436,7 +437,7 @@ function overloadSignature(sourceFile, className, method) {
|
|
|
436
437
|
parameter.dotDotDotToken !== undefined) {
|
|
437
438
|
return null;
|
|
438
439
|
}
|
|
439
|
-
const type = safeTypeText(parameter.type,
|
|
440
|
+
const type = safeTypeText(parameter.type, className);
|
|
440
441
|
if (type === null)
|
|
441
442
|
return null;
|
|
442
443
|
parameters.push({
|
|
@@ -451,17 +452,17 @@ function overloadSignature(sourceFile, className, method) {
|
|
|
451
452
|
* contracts from exported non-generic classes. */
|
|
452
453
|
export function parseNpmStaticDeclarationOverloads(sourceFile) {
|
|
453
454
|
const classes = new Map();
|
|
454
|
-
for (const statement of sourceFile.statements) {
|
|
455
|
+
for (const statement of sourceFile.statements.nodes) {
|
|
455
456
|
if (!ts.isClassDeclaration(statement) ||
|
|
456
457
|
statement.name === undefined ||
|
|
457
|
-
(statement.typeParameters?.length ?? 0) !== 0 ||
|
|
458
|
+
(statement.typeParameters?.nodes.length ?? 0) !== 0 ||
|
|
458
459
|
!hasModifier(statement, ts.SyntaxKind.ExportKeyword) ||
|
|
459
460
|
hasModifier(statement, ts.SyntaxKind.DefaultKeyword)) {
|
|
460
461
|
continue;
|
|
461
462
|
}
|
|
462
463
|
const className = statement.name.text;
|
|
463
464
|
const groups = new Map();
|
|
464
|
-
for (const member of statement.members) {
|
|
465
|
+
for (const member of statement.members.nodes) {
|
|
465
466
|
if (!ts.isMethodDeclaration(member) || !ts.isIdentifier(member.name))
|
|
466
467
|
continue;
|
|
467
468
|
const group = groups.get(member.name.text) ?? [];
|
|
@@ -487,25 +488,25 @@ export function parseNpmStaticDeclarationOverloads(sourceFile) {
|
|
|
487
488
|
}
|
|
488
489
|
return classes;
|
|
489
490
|
}
|
|
490
|
-
function nullableSelfType(node,
|
|
491
|
-
if (!ts.isUnionTypeNode(node) || node.types.length !== 2)
|
|
491
|
+
function nullableSelfType(node, className) {
|
|
492
|
+
if (!ts.isUnionTypeNode(node) || node.types.nodes.length !== 2)
|
|
492
493
|
return null;
|
|
493
|
-
const arms = node.types.map((type) => safeTypeText(type,
|
|
494
|
+
const arms = node.types.nodes.map((type) => safeTypeText(type, className));
|
|
494
495
|
return arms.includes(className) && arms.includes("null") ? `${className} | null` : null;
|
|
495
496
|
}
|
|
496
497
|
function nullableVoidCallbackType(node) {
|
|
497
|
-
if (!ts.isUnionTypeNode(node) || node.types.length !== 2)
|
|
498
|
+
if (!ts.isUnionTypeNode(node) || node.types.nodes.length !== 2)
|
|
498
499
|
return null;
|
|
499
500
|
let callback = false;
|
|
500
501
|
let nullable = false;
|
|
501
|
-
for (let arm of node.types) {
|
|
502
|
+
for (let arm of node.types.nodes) {
|
|
502
503
|
while (ts.isParenthesizedTypeNode(arm))
|
|
503
504
|
arm = arm.type;
|
|
504
505
|
if (ts.isLiteralTypeNode(arm) && arm.literal.kind === ts.SyntaxKind.NullKeyword)
|
|
505
506
|
nullable = true;
|
|
506
507
|
else if (ts.isFunctionTypeNode(arm) &&
|
|
507
|
-
arm.parameters.length === 0 &&
|
|
508
|
-
(arm.typeParameters?.length ?? 0) === 0 &&
|
|
508
|
+
arm.parameters.nodes.length === 0 &&
|
|
509
|
+
(arm.typeParameters?.nodes.length ?? 0) === 0 &&
|
|
509
510
|
arm.type?.kind === ts.SyntaxKind.VoidKeyword)
|
|
510
511
|
callback = true;
|
|
511
512
|
else
|
|
@@ -516,17 +517,17 @@ function nullableVoidCallbackType(node) {
|
|
|
516
517
|
/** Extracts nullable self links and zero-argument void callback fields. */
|
|
517
518
|
export function parseNpmStaticDeclarationProperties(sourceFile) {
|
|
518
519
|
const classes = new Map();
|
|
519
|
-
for (const statement of sourceFile.statements) {
|
|
520
|
+
for (const statement of sourceFile.statements.nodes) {
|
|
520
521
|
if (!ts.isClassDeclaration(statement) ||
|
|
521
522
|
statement.name === undefined ||
|
|
522
|
-
(statement.typeParameters?.length ?? 0) !== 0 ||
|
|
523
|
+
(statement.typeParameters?.nodes.length ?? 0) !== 0 ||
|
|
523
524
|
!hasModifier(statement, ts.SyntaxKind.ExportKeyword) ||
|
|
524
525
|
hasModifier(statement, ts.SyntaxKind.DefaultKeyword)) {
|
|
525
526
|
continue;
|
|
526
527
|
}
|
|
527
528
|
const className = statement.name.text;
|
|
528
529
|
const properties = new Map();
|
|
529
|
-
for (const member of statement.members) {
|
|
530
|
+
for (const member of statement.members.nodes) {
|
|
530
531
|
if (!ts.isPropertyDeclaration(member) ||
|
|
531
532
|
!ts.isIdentifier(member.name) ||
|
|
532
533
|
member.type === undefined ||
|
|
@@ -536,8 +537,7 @@ export function parseNpmStaticDeclarationProperties(sourceFile) {
|
|
|
536
537
|
hasModifier(member, ts.SyntaxKind.ProtectedKeyword)) {
|
|
537
538
|
continue;
|
|
538
539
|
}
|
|
539
|
-
const type = nullableSelfType(member.type,
|
|
540
|
-
nullableVoidCallbackType(member.type);
|
|
540
|
+
const type = nullableSelfType(member.type, className) ?? nullableVoidCallbackType(member.type);
|
|
541
541
|
if (type !== null)
|
|
542
542
|
properties.set(member.name.text, type);
|
|
543
543
|
}
|
|
@@ -550,7 +550,7 @@ export function parseNpmStaticDeclarationProperties(sourceFile) {
|
|
|
550
550
|
* caller's package-bounded resolution. Bare type dependencies deliberately
|
|
551
551
|
* do not inherit the opted package's declaration trust. */
|
|
552
552
|
export function npmStaticDeclarationReexports(sourceFile) {
|
|
553
|
-
return sourceFile.statements.flatMap((statement) => ts.isExportDeclaration(statement) &&
|
|
553
|
+
return sourceFile.statements.nodes.flatMap((statement) => ts.isExportDeclaration(statement) &&
|
|
554
554
|
statement.moduleSpecifier !== undefined &&
|
|
555
555
|
ts.isStringLiteral(statement.moduleSpecifier) &&
|
|
556
556
|
statement.moduleSpecifier.text.startsWith(".")
|
|
@@ -559,13 +559,13 @@ export function npmStaticDeclarationReexports(sourceFile) {
|
|
|
559
559
|
}
|
|
560
560
|
function requireSpecifier(expression) {
|
|
561
561
|
const argument = expression !== undefined && ts.isCallExpression(expression)
|
|
562
|
-
? expression.arguments[0]
|
|
562
|
+
? expression.arguments.nodes[0]
|
|
563
563
|
: undefined;
|
|
564
564
|
return expression !== undefined &&
|
|
565
565
|
ts.isCallExpression(expression) &&
|
|
566
566
|
ts.isIdentifier(expression.expression) &&
|
|
567
567
|
expression.expression.text === "require" &&
|
|
568
|
-
expression.arguments.length === 1 &&
|
|
568
|
+
expression.arguments.nodes.length === 1 &&
|
|
569
569
|
argument !== undefined &&
|
|
570
570
|
ts.isStringLiteralLike(argument)
|
|
571
571
|
? argument.text
|
|
@@ -575,17 +575,17 @@ function requireSpecifier(expression) {
|
|
|
575
575
|
* Named ESM aliases preserve the implementation's exported name, including
|
|
576
576
|
* bundler-renamed classes. Multi-hop re-exports remain outside this slice. */
|
|
577
577
|
export function npmStaticRuntimeClassTargets(sourceFile, source, classNames) {
|
|
578
|
-
const localClasses = new Set(sourceFile.statements.flatMap((statement) => ts.isClassDeclaration(statement) && statement.name !== undefined ? [statement.name.text] : []));
|
|
578
|
+
const localClasses = new Set(sourceFile.statements.nodes.flatMap((statement) => ts.isClassDeclaration(statement) && statement.name !== undefined ? [statement.name.text] : []));
|
|
579
579
|
const linked = new Map();
|
|
580
|
-
for (const statement of sourceFile.statements) {
|
|
580
|
+
for (const statement of sourceFile.statements.nodes) {
|
|
581
581
|
if (ts.isVariableStatement(statement)) {
|
|
582
|
-
for (const declaration of statement.declarationList.declarations) {
|
|
582
|
+
for (const declaration of statement.declarationList.declarations.nodes) {
|
|
583
583
|
const specifier = requireSpecifier(declaration.initializer);
|
|
584
584
|
if (specifier === null ||
|
|
585
585
|
!specifier.startsWith(".") ||
|
|
586
586
|
!ts.isObjectBindingPattern(declaration.name))
|
|
587
587
|
continue;
|
|
588
|
-
for (const element of declaration.name.elements) {
|
|
588
|
+
for (const element of declaration.name.elements.nodes) {
|
|
589
589
|
if (element.dotDotDotToken !== undefined || !ts.isIdentifier(element.name))
|
|
590
590
|
continue;
|
|
591
591
|
const imported = element.propertyName !== undefined && ts.isIdentifier(element.propertyName)
|
|
@@ -602,7 +602,7 @@ export function npmStaticRuntimeClassTargets(sourceFile, source, classNames) {
|
|
|
602
602
|
!statement.importClause?.isTypeOnly &&
|
|
603
603
|
statement.importClause?.namedBindings !== undefined &&
|
|
604
604
|
ts.isNamedImports(statement.importClause.namedBindings)) {
|
|
605
|
-
for (const element of statement.importClause.namedBindings.elements) {
|
|
605
|
+
for (const element of statement.importClause.namedBindings.elements.nodes) {
|
|
606
606
|
if (element.isTypeOnly)
|
|
607
607
|
continue;
|
|
608
608
|
linked.set(element.name.text, {
|
|
@@ -628,7 +628,7 @@ export function npmStaticRuntimeClassTargets(sourceFile, source, classNames) {
|
|
|
628
628
|
else if (localClasses.has(local))
|
|
629
629
|
targets.set(exported, { specifier: null, localName: local });
|
|
630
630
|
};
|
|
631
|
-
for (const statement of sourceFile.statements) {
|
|
631
|
+
for (const statement of sourceFile.statements.nodes) {
|
|
632
632
|
if (ts.isClassDeclaration(statement) &&
|
|
633
633
|
statement.name !== undefined &&
|
|
634
634
|
hasModifier(statement, ts.SyntaxKind.ExportKeyword)) {
|
|
@@ -643,7 +643,7 @@ export function npmStaticRuntimeClassTargets(sourceFile, source, classNames) {
|
|
|
643
643
|
: undefined;
|
|
644
644
|
if (specifier !== undefined && !specifier.startsWith("."))
|
|
645
645
|
continue;
|
|
646
|
-
for (const element of statement.exportClause.elements) {
|
|
646
|
+
for (const element of statement.exportClause.elements.nodes) {
|
|
647
647
|
if (!statement.isTypeOnly && !element.isTypeOnly) {
|
|
648
648
|
record(element.name.text, element.propertyName?.text ?? element.name.text, specifier, true);
|
|
649
649
|
}
|
|
@@ -670,7 +670,7 @@ export function npmStaticRuntimeClassTargets(sourceFile, source, classNames) {
|
|
|
670
670
|
left.expression.text === "module" &&
|
|
671
671
|
left.name.text === "exports" &&
|
|
672
672
|
ts.isObjectLiteralExpression(right)) {
|
|
673
|
-
for (const property of right.properties) {
|
|
673
|
+
for (const property of right.properties.nodes) {
|
|
674
674
|
if (ts.isShorthandPropertyAssignment(property) && ts.isIdentifier(property.name))
|
|
675
675
|
record(property.name.text, property.name.text);
|
|
676
676
|
else if (ts.isPropertyAssignment(property) &&
|
|
@@ -685,7 +685,7 @@ export function npmStaticRuntimeClassTargets(sourceFile, source, classNames) {
|
|
|
685
685
|
}
|
|
686
686
|
function exportedClassNames(sourceFile) {
|
|
687
687
|
const names = new Set();
|
|
688
|
-
for (const statement of sourceFile.statements) {
|
|
688
|
+
for (const statement of sourceFile.statements.nodes) {
|
|
689
689
|
if (ts.isClassDeclaration(statement) &&
|
|
690
690
|
statement.name !== undefined &&
|
|
691
691
|
hasModifier(statement, ts.SyntaxKind.ExportKeyword)) {
|
|
@@ -695,7 +695,7 @@ function exportedClassNames(sourceFile) {
|
|
|
695
695
|
if (ts.isExportDeclaration(statement) &&
|
|
696
696
|
statement.exportClause !== undefined &&
|
|
697
697
|
ts.isNamedExports(statement.exportClause)) {
|
|
698
|
-
for (const element of statement.exportClause.elements)
|
|
698
|
+
for (const element of statement.exportClause.elements.nodes)
|
|
699
699
|
names.add(element.propertyName?.text ?? element.name.text);
|
|
700
700
|
continue;
|
|
701
701
|
}
|
|
@@ -720,7 +720,7 @@ function exportedClassNames(sourceFile) {
|
|
|
720
720
|
left.expression.text === "module" &&
|
|
721
721
|
left.name.text === "exports" &&
|
|
722
722
|
ts.isObjectLiteralExpression(right)) {
|
|
723
|
-
for (const property of right.properties) {
|
|
723
|
+
for (const property of right.properties.nodes) {
|
|
724
724
|
if (ts.isShorthandPropertyAssignment(property) && ts.isIdentifier(property.name))
|
|
725
725
|
names.add(property.name.text);
|
|
726
726
|
else if (ts.isPropertyAssignment(property) &&
|
|
@@ -739,10 +739,10 @@ function overloadComment(signature) {
|
|
|
739
739
|
return `/** @overload ${params.join(" ")} @returns {${signature.returnType}} */`;
|
|
740
740
|
}
|
|
741
741
|
function implementationComment(className, method, signatures) {
|
|
742
|
-
if (method.parameters.some((parameter) => !ts.isIdentifier(parameter.name) || parameter.dotDotDotToken !== undefined))
|
|
742
|
+
if (method.parameters.nodes.some((parameter) => !ts.isIdentifier(parameter.name) || parameter.dotDotDotToken !== undefined))
|
|
743
743
|
return null;
|
|
744
744
|
const maxParams = Math.max(...signatures.map((signature) => signature.parameters.length));
|
|
745
|
-
if (method.parameters.length !== maxParams)
|
|
745
|
+
if (method.parameters.nodes.length !== maxParams)
|
|
746
746
|
return null;
|
|
747
747
|
const params = [];
|
|
748
748
|
for (let index = 0; index < maxParams; index++) {
|
|
@@ -754,7 +754,7 @@ function implementationComment(className, method, signatures) {
|
|
|
754
754
|
];
|
|
755
755
|
if (types.length === 0)
|
|
756
756
|
return null;
|
|
757
|
-
const parameter = method.parameters[index];
|
|
757
|
+
const parameter = method.parameters.nodes[index];
|
|
758
758
|
if (parameter === undefined || !ts.isIdentifier(parameter.name))
|
|
759
759
|
return null;
|
|
760
760
|
const name = parameter.name.text;
|
|
@@ -773,9 +773,9 @@ function directReturn(statement) {
|
|
|
773
773
|
if (ts.isReturnStatement(statement))
|
|
774
774
|
return statement;
|
|
775
775
|
return ts.isBlock(statement) &&
|
|
776
|
-
statement.statements.length === 1 &&
|
|
777
|
-
ts.isReturnStatement(statement.statements[0])
|
|
778
|
-
? statement.statements[0]
|
|
776
|
+
statement.statements.nodes.length === 1 &&
|
|
777
|
+
ts.isReturnStatement(statement.statements.nodes[0])
|
|
778
|
+
? statement.statements.nodes[0]
|
|
779
779
|
: null;
|
|
780
780
|
}
|
|
781
781
|
function undefinedParameterTest(expression, parameter) {
|
|
@@ -790,14 +790,14 @@ function undefinedParameterTest(expression, parameter) {
|
|
|
790
790
|
}
|
|
791
791
|
function overloadArrayBackingField(method, signatures) {
|
|
792
792
|
if (method.body === undefined ||
|
|
793
|
-
method.parameters.length !== 1 ||
|
|
794
|
-
!ts.isIdentifier(method.parameters[0].name))
|
|
793
|
+
method.parameters.nodes.length !== 1 ||
|
|
794
|
+
!ts.isIdentifier(method.parameters.nodes[0].name))
|
|
795
795
|
return null;
|
|
796
796
|
const getters = signatures.filter((signature) => signature.parameters.length === 0 && signature.returnType.endsWith("[]"));
|
|
797
797
|
if (getters.length !== 1)
|
|
798
798
|
return null;
|
|
799
|
-
const parameter = method.parameters[0].name.text;
|
|
800
|
-
for (const statement of method.body.statements) {
|
|
799
|
+
const parameter = method.parameters.nodes[0].name.text;
|
|
800
|
+
for (const statement of method.body.statements.nodes) {
|
|
801
801
|
if (!ts.isIfStatement(statement) || !undefinedParameterTest(statement.expression, parameter))
|
|
802
802
|
continue;
|
|
803
803
|
const returned = directReturn(statement.thenStatement);
|
|
@@ -816,7 +816,7 @@ export function applyNpmStaticDeclarationOverloads(sourceFile, source, declarati
|
|
|
816
816
|
return null;
|
|
817
817
|
const exported = exportedClassNames(sourceFile);
|
|
818
818
|
const inserts = [];
|
|
819
|
-
for (const statement of sourceFile.statements) {
|
|
819
|
+
for (const statement of sourceFile.statements.nodes) {
|
|
820
820
|
if (!ts.isClassDeclaration(statement) ||
|
|
821
821
|
statement.name === undefined ||
|
|
822
822
|
!exported.has(statement.name.text))
|
|
@@ -824,9 +824,9 @@ export function applyNpmStaticDeclarationOverloads(sourceFile, source, declarati
|
|
|
824
824
|
const classOverloads = declarations.get(statement.name.text);
|
|
825
825
|
if (classOverloads === undefined)
|
|
826
826
|
continue;
|
|
827
|
-
const constructor = statement.members.find((member) => ts.isConstructorDeclaration(member) && member.body !== undefined);
|
|
827
|
+
const constructor = statement.members.nodes.find((member) => ts.isConstructorDeclaration(member) && member.body !== undefined);
|
|
828
828
|
const projectedFields = new Set();
|
|
829
|
-
for (const member of statement.members) {
|
|
829
|
+
for (const member of statement.members.nodes) {
|
|
830
830
|
if (!ts.isMethodDeclaration(member) ||
|
|
831
831
|
!ts.isIdentifier(member.name) ||
|
|
832
832
|
member.body === undefined)
|
|
@@ -842,23 +842,23 @@ export function applyNpmStaticDeclarationOverloads(sourceFile, source, declarati
|
|
|
842
842
|
if (backing !== null &&
|
|
843
843
|
constructor?.body !== undefined &&
|
|
844
844
|
!projectedFields.has(backing.field)) {
|
|
845
|
-
for (const bodyStatement of constructor.body.statements) {
|
|
845
|
+
for (const bodyStatement of constructor.body.statements.nodes) {
|
|
846
846
|
if (!ts.isExpressionStatement(bodyStatement) ||
|
|
847
847
|
!ts.isBinaryExpression(bodyStatement.expression))
|
|
848
848
|
continue;
|
|
849
849
|
const { left, right, operatorToken } = bodyStatement.expression;
|
|
850
850
|
if (operatorToken.kind !== ts.SyntaxKind.EqualsToken ||
|
|
851
851
|
!ts.isArrayLiteralExpression(right) ||
|
|
852
|
-
right.elements.length !== 0 ||
|
|
852
|
+
right.elements.nodes.length !== 0 ||
|
|
853
853
|
!ts.isPropertyAccessExpression(left) ||
|
|
854
854
|
left.expression.kind !== ts.SyntaxKind.ThisKeyword ||
|
|
855
855
|
left.name.text !== backing.field) {
|
|
856
856
|
continue;
|
|
857
857
|
}
|
|
858
|
-
const leading = source.slice(bodyStatement.
|
|
858
|
+
const leading = source.slice(bodyStatement.pos, tokenStartOfNode(bodyStatement));
|
|
859
859
|
if (!leading.includes("@type")) {
|
|
860
860
|
inserts.push({
|
|
861
|
-
offset: bodyStatement
|
|
861
|
+
offset: tokenStartOfNode(bodyStatement),
|
|
862
862
|
text: `/** @type {${backing.type}} */ `,
|
|
863
863
|
});
|
|
864
864
|
}
|
|
@@ -875,11 +875,11 @@ export function applyNpmStaticDeclarationOverloads(sourceFile, source, declarati
|
|
|
875
875
|
const existing = jsDocs.map((doc) => source.slice(doc.pos, doc.end)).join("\n");
|
|
876
876
|
const missingOptional = signatures[0].parameters.some((parameter) => parameter.optional && !existing.includes(`[${parameter.name}]`));
|
|
877
877
|
if (missingOptional)
|
|
878
|
-
inserts.push({ offset: member
|
|
878
|
+
inserts.push({ offset: tokenStartOfNode(member), text: `${implementation} ` });
|
|
879
879
|
else if (jsDocs.length === 0 &&
|
|
880
|
-
member.parameters.length === 0 &&
|
|
880
|
+
member.parameters.nodes.length === 0 &&
|
|
881
881
|
SCALAR_METHOD_RETURNS.has(signatures[0].returnType)) {
|
|
882
|
-
inserts.push({ offset: member
|
|
882
|
+
inserts.push({ offset: tokenStartOfNode(member), text: `${implementation} ` });
|
|
883
883
|
}
|
|
884
884
|
}
|
|
885
885
|
continue;
|
|
@@ -887,7 +887,8 @@ export function applyNpmStaticDeclarationOverloads(sourceFile, source, declarati
|
|
|
887
887
|
const implementation = jsDocs.length === 0 ? implementationComment(statement.name.text, member, signatures) : null;
|
|
888
888
|
if (jsDocs.length === 0 && implementation === null)
|
|
889
889
|
continue;
|
|
890
|
-
const offset = jsDocs[0]
|
|
890
|
+
const offset = (jsDocs[0] === undefined ? undefined : tokenStartOfNode(jsDocs[0])) ??
|
|
891
|
+
tokenStartOfNode(member);
|
|
891
892
|
const text = `${signatures.map(overloadComment).join(" ")} ${implementation === null ? "" : implementation + " "}`;
|
|
892
893
|
inserts.push({ offset, text });
|
|
893
894
|
}
|
|
@@ -922,7 +923,7 @@ export function applyNpmStaticDeclarationProperties(sourceFile, source, declarat
|
|
|
922
923
|
const exported = exportedClassNames(sourceFile);
|
|
923
924
|
const inserts = [];
|
|
924
925
|
const classes = new Map();
|
|
925
|
-
for (const statement of sourceFile.statements) {
|
|
926
|
+
for (const statement of sourceFile.statements.nodes) {
|
|
926
927
|
if (ts.isClassDeclaration(statement) && statement.name !== undefined)
|
|
927
928
|
classes.set(statement.name.text, statement);
|
|
928
929
|
}
|
|
@@ -936,7 +937,7 @@ export function applyNpmStaticDeclarationProperties(sourceFile, source, declarat
|
|
|
936
937
|
return new Map();
|
|
937
938
|
collecting.add(name);
|
|
938
939
|
const statement = classes.get(name);
|
|
939
|
-
const base = statement?.heritageClauses?.find((clause) => clause.token === ts.SyntaxKind.ExtendsKeyword)?.types[0]?.expression;
|
|
940
|
+
const base = statement?.heritageClauses?.nodes.find((clause) => clause.token === ts.SyntaxKind.ExtendsKeyword)?.types?.nodes[0]?.expression;
|
|
940
941
|
const properties = new Map();
|
|
941
942
|
if (base && ts.isIdentifier(base) && classes.has(base.text)) {
|
|
942
943
|
// Self-link types belong to their own class. Only the callback ABI
|
|
@@ -958,8 +959,8 @@ export function applyNpmStaticDeclarationProperties(sourceFile, source, declarat
|
|
|
958
959
|
};
|
|
959
960
|
const callbackInitializer = (node) => {
|
|
960
961
|
if (!ts.isArrowFunction(node) ||
|
|
961
|
-
node.parameters.length !== 0 ||
|
|
962
|
-
(node.typeParameters?.length ?? 0) !== 0 ||
|
|
962
|
+
node.parameters.nodes.length !== 0 ||
|
|
963
|
+
(node.typeParameters?.nodes.length ?? 0) !== 0 ||
|
|
963
964
|
hasModifier(node, ts.SyntaxKind.AsyncKeyword) ||
|
|
964
965
|
!ts.isBlock(node.body))
|
|
965
966
|
return false;
|
|
@@ -975,13 +976,13 @@ export function applyNpmStaticDeclarationProperties(sourceFile, source, declarat
|
|
|
975
976
|
};
|
|
976
977
|
return returnsValue(node.body) !== true;
|
|
977
978
|
};
|
|
978
|
-
for (const statement of sourceFile.statements) {
|
|
979
|
+
for (const statement of sourceFile.statements.nodes) {
|
|
979
980
|
if (!ts.isClassDeclaration(statement) || statement.name === undefined)
|
|
980
981
|
continue;
|
|
981
982
|
const properties = propertiesOf(statement.name.text);
|
|
982
983
|
if (properties.size === 0)
|
|
983
984
|
continue;
|
|
984
|
-
for (const member of statement.members) {
|
|
985
|
+
for (const member of statement.members.nodes) {
|
|
985
986
|
if (!ts.isPropertyDeclaration(member) ||
|
|
986
987
|
!ts.isIdentifier(member.name) ||
|
|
987
988
|
member.initializer === undefined ||
|
|
@@ -992,15 +993,15 @@ export function applyNpmStaticDeclarationProperties(sourceFile, source, declarat
|
|
|
992
993
|
(member.initializer.kind !== ts.SyntaxKind.NullKeyword &&
|
|
993
994
|
!callbackInitializer(member.initializer)))
|
|
994
995
|
continue;
|
|
995
|
-
const leading = source.slice(member.
|
|
996
|
+
const leading = source.slice(member.pos, tokenStartOfNode(member));
|
|
996
997
|
if (jsDocTypeOf(member) !== undefined || leading.includes("@type"))
|
|
997
998
|
continue;
|
|
998
|
-
inserts.push({ offset: member
|
|
999
|
+
inserts.push({ offset: tokenStartOfNode(member), text: `/** @type {${type}} */ ` });
|
|
999
1000
|
}
|
|
1000
|
-
const constructor = statement.members.find((member) => ts.isConstructorDeclaration(member) && member.body !== undefined);
|
|
1001
|
+
const constructor = statement.members.nodes.find((member) => ts.isConstructorDeclaration(member) && member.body !== undefined);
|
|
1001
1002
|
if (constructor?.body === undefined)
|
|
1002
1003
|
continue;
|
|
1003
|
-
for (const bodyStatement of constructor.body.statements) {
|
|
1004
|
+
for (const bodyStatement of constructor.body.statements.nodes) {
|
|
1004
1005
|
if (!ts.isExpressionStatement(bodyStatement) ||
|
|
1005
1006
|
!ts.isBinaryExpression(bodyStatement.expression))
|
|
1006
1007
|
continue;
|
|
@@ -1014,10 +1015,10 @@ export function applyNpmStaticDeclarationProperties(sourceFile, source, declarat
|
|
|
1014
1015
|
const type = properties.get(left.name.text);
|
|
1015
1016
|
if (type === undefined)
|
|
1016
1017
|
continue;
|
|
1017
|
-
const leading = source.slice(bodyStatement.
|
|
1018
|
+
const leading = source.slice(bodyStatement.pos, tokenStartOfNode(bodyStatement));
|
|
1018
1019
|
if (leading.includes("@type"))
|
|
1019
1020
|
continue;
|
|
1020
|
-
inserts.push({ offset: bodyStatement
|
|
1021
|
+
inserts.push({ offset: tokenStartOfNode(bodyStatement), text: `/** @type {${type}} */ ` });
|
|
1021
1022
|
}
|
|
1022
1023
|
}
|
|
1023
1024
|
if (inserts.length === 0)
|