@scriptc/compiler 0.4.6 → 0.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ambient/node-fallback/events.d.ts +6 -1
- package/ambient/node-fallback/fs-promises.d.ts +1 -1
- package/ambient/node-fallback/fs.d.ts +54 -10
- package/ambient/node-fallback/http.d.ts +3 -1
- package/ambient/node-fallback/net.d.ts +19 -0
- package/ambient/node-fallback/querystring.d.ts +3 -3
- package/ambient/scriptc-node-fallback.d.ts +58 -13
- package/dist/backend/executable-features.js +13 -0
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/immutability.d.ts +12 -1
- package/dist/backend/immutability.js +50 -4
- package/dist/backend/immutability.js.map +1 -1
- package/dist/backend/immutability.test.js +95 -1
- package/dist/backend/immutability.test.js.map +1 -1
- package/dist/backend/library-pack.js +2 -0
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/linker.d.ts +11 -0
- package/dist/backend/linker.js +31 -3
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/lld.d.ts +7 -2
- package/dist/backend/lld.js +5 -3
- package/dist/backend/lld.js.map +1 -1
- package/dist/backend/lld.test.js +10 -4
- package/dist/backend/lld.test.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.test.js +50 -1
- package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
- package/dist/backend/llvm/cpu-dispatch.js +6 -5
- package/dist/backend/llvm/cpu-dispatch.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +53 -1
- package/dist/backend/llvm/dyn.js +221 -9
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emit-function.js +1 -1
- package/dist/backend/llvm/emit-function.js.map +1 -1
- package/dist/backend/llvm/emit-module.js +148 -50
- package/dist/backend/llvm/emit-module.js.map +1 -1
- package/dist/backend/llvm/emit-statements.js +39 -19
- package/dist/backend/llvm/emit-statements.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +29 -2
- package/dist/backend/llvm/emitter.js +86 -7
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +4 -1
- package/dist/backend/llvm/expr-calls.js +20 -4
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +209 -16
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +94 -11
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.d.ts +8 -0
- package/dist/backend/llvm/expr-stream-bridges.js +42 -2
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +16 -0
- package/dist/backend/llvm/expr-stream-callbacks.js +206 -20
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/integer-values.d.ts +2 -0
- package/dist/backend/llvm/integer-values.js +6 -0
- package/dist/backend/llvm/integer-values.js.map +1 -1
- package/dist/backend/llvm/js-ic.d.ts +38 -0
- package/dist/backend/llvm/js-ic.js +295 -1
- package/dist/backend/llvm/js-ic.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +20 -0
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +116 -11
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +136 -24
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +70 -0
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +67 -0
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/loop-entry-versions.d.ts +2 -2
- package/dist/backend/llvm/loop-entry-versions.js +43 -21
- package/dist/backend/llvm/loop-entry-versions.js.map +1 -1
- package/dist/backend/llvm/loop-state.d.ts +7 -1
- package/dist/backend/llvm/loop-state.js +20 -2
- package/dist/backend/llvm/loop-state.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.d.ts +3 -1
- package/dist/backend/llvm/map-number-lookup.js +7 -3
- package/dist/backend/llvm/map-number-lookup.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.test.js +52 -11
- package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
- package/dist/backend/llvm/receiver-brackets.test.d.ts +1 -0
- package/dist/backend/llvm/receiver-brackets.test.js +68 -0
- package/dist/backend/llvm/receiver-brackets.test.js.map +1 -0
- package/dist/backend/llvm/record-views.d.ts +22 -2
- package/dist/backend/llvm/record-views.js +139 -10
- package/dist/backend/llvm/record-views.js.map +1 -1
- package/dist/backend/llvm/record-views.test.js +76 -0
- package/dist/backend/llvm/record-views.test.js.map +1 -1
- package/dist/backend/llvm/reference-writes.js +1 -0
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/shapes.d.ts +3 -0
- package/dist/backend/llvm/shapes.js +18 -3
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +4 -0
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/speculative-integers.d.ts +10 -1
- package/dist/backend/llvm/speculative-integers.js +59 -8
- package/dist/backend/llvm/speculative-integers.js.map +1 -1
- package/dist/backend/llvm/unwind-abi.d.ts +3 -3
- package/dist/backend/llvm/unwind-abi.js +8 -3
- package/dist/backend/llvm/unwind-abi.js.map +1 -1
- package/dist/backend/llvm/walkers.js +1 -1
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +54 -0
- package/dist/backend/native/executable.js +87 -5
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/library.js +1 -1
- package/dist/backend/native/library.js.map +1 -1
- package/dist/backend/native/runtime-inputs.js +5 -1
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native/vendor.d.ts +1 -1
- package/dist/backend/native/vendor.js +1 -1
- package/dist/backend/native/vendor.js.map +1 -1
- package/dist/backend/native-codegen.js +3 -0
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +43 -0
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/native-link-info.js +1 -0
- package/dist/backend/native-link-info.js.map +1 -1
- package/dist/backend/native-profile.d.ts +4 -1
- package/dist/backend/native-profile.js +12 -1
- package/dist/backend/native-profile.js.map +1 -1
- package/dist/backend/native-profile.test.js +10 -0
- package/dist/backend/native-profile.test.js.map +1 -1
- package/dist/backend/publication.d.ts +4 -1
- package/dist/backend/publication.js +4 -2
- package/dist/backend/publication.js.map +1 -1
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-core.d.ts +31 -7
- package/dist/backend/runtime-pack-core.js +21 -1
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-native.d.ts +18 -1
- package/dist/backend/runtime-pack-native.js +138 -29
- package/dist/backend/runtime-pack-native.js.map +1 -1
- package/dist/backend/runtime-pack-native.test.js +166 -4
- package/dist/backend/runtime-pack-native.test.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +3 -1
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.d.ts +7 -0
- package/dist/backend/runtime-pack.js +25 -3
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +3 -11
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/vendor-archives.d.ts +4 -1
- package/dist/backend/vendor-archives.js +264 -3
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/backend/vendor-inputs.d.ts +36 -0
- package/dist/backend/vendor-inputs.js +42 -0
- package/dist/backend/vendor-inputs.js.map +1 -1
- package/dist/backend/vendor-inputs.test.js +28 -1
- package/dist/backend/vendor-inputs.test.js.map +1 -1
- package/dist/backend/warm-cache.js +2 -0
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/compat/fetch-profile.d.ts +7 -1
- package/dist/compat/fetch-profile.js +23 -10
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/compile-types.d.ts +7 -0
- package/dist/contracts/check.d.ts +3 -0
- package/dist/contracts/check.js +18 -5
- package/dist/contracts/check.js.map +1 -1
- package/dist/coverage/surface-manifest.js +1 -1
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/codes.d.ts +6 -0
- package/dist/diagnostics/codes.js +6 -0
- package/dist/diagnostics/codes.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +50 -0
- package/dist/diagnostics/diagnostic.js +142 -3
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/dynamic-tier.js +3 -1
- package/dist/diagnostics/dynamic-tier.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +29 -0
- package/dist/executable/executable-cache.js +18 -0
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +5 -1
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.d.ts +13 -3
- package/dist/executable/prepare.js +271 -18
- package/dist/executable/prepare.js.map +1 -1
- package/dist/frontend/early-errors.d.ts +14 -0
- package/dist/frontend/early-errors.js +305 -0
- package/dist/frontend/early-errors.js.map +1 -0
- package/dist/frontend/early-errors.test.d.ts +1 -0
- package/dist/frontend/early-errors.test.js +42 -0
- package/dist/frontend/early-errors.test.js.map +1 -0
- package/dist/frontend/inferred-js-diagnostics.test.js +23 -0
- package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
- package/dist/frontend/input-tracker.d.ts +47 -0
- package/dist/frontend/input-tracker.js +173 -36
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +86 -2
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/js-inference.d.ts +2 -0
- package/dist/frontend/js-inference.js +18 -0
- package/dist/frontend/js-inference.js.map +1 -0
- package/dist/frontend/lowering/binding-analysis.d.ts +2 -1
- package/dist/frontend/lowering/binding-analysis.js +65 -1
- package/dist/frontend/lowering/binding-analysis.js.map +1 -1
- package/dist/frontend/lowering/builtin-calls.js +9 -0
- package/dist/frontend/lowering/builtin-calls.js.map +1 -1
- package/dist/frontend/lowering/builtin-namespaces.d.ts +1 -1
- package/dist/frontend/lowering/builtin-namespaces.js +19 -2
- package/dist/frontend/lowering/builtin-namespaces.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-methods.d.ts +7 -0
- package/dist/frontend/lowering/builtins/child-process-methods.js +50 -10
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process.js +5 -1
- package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
- package/dist/frontend/lowering/builtins/dates.d.ts +1 -1
- package/dist/frontend/lowering/builtins/dates.js +23 -1
- package/dist/frontend/lowering/builtins/dates.js.map +1 -1
- package/dist/frontend/lowering/builtins/environment.d.ts +55 -0
- package/dist/frontend/lowering/builtins/environment.js +213 -2
- package/dist/frontend/lowering/builtins/environment.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.js +47 -16
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.d.ts +25 -7
- package/dist/frontend/lowering/builtins/filesystem.js +185 -16
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-calls.js +39 -2
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-resolution.d.ts +8 -0
- package/dist/frontend/lowering/builtins/module-resolution.js +31 -5
- package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
- package/dist/frontend/lowering/builtins/operating-system.d.ts +3 -2
- package/dist/frontend/lowering/builtins/operating-system.js +5 -4
- package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.d.ts +17 -1
- package/dist/frontend/lowering/builtins/process.js +285 -19
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/querystring.d.ts +8 -0
- package/dist/frontend/lowering/builtins/querystring.js +202 -18
- package/dist/frontend/lowering/builtins/querystring.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.js +21 -3
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/reflection.js +60 -1
- package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
- package/dist/frontend/lowering/builtins/text-codecs.js +208 -59
- package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
- package/dist/frontend/lowering/builtins/url.js +20 -1
- package/dist/frontend/lowering/builtins/url.js.map +1 -1
- package/dist/frontend/lowering/builtins/v8.d.ts +5 -5
- package/dist/frontend/lowering/builtins/v8.js +7 -5
- package/dist/frontend/lowering/builtins/v8.js.map +1 -1
- package/dist/frontend/lowering/builtins/web-streams-dyn.d.ts +17 -2
- package/dist/frontend/lowering/builtins/web-streams-dyn.js +97 -9
- package/dist/frontend/lowering/builtins/web-streams-dyn.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.js +77 -0
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/cjs-exports-object.d.ts +3 -0
- package/dist/frontend/lowering/cjs-exports-object.js +1 -1
- package/dist/frontend/lowering/cjs-exports-object.js.map +1 -1
- package/dist/frontend/lowering/cjs-inline-require.js +5 -0
- package/dist/frontend/lowering/cjs-inline-require.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +5 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +114 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.js +59 -10
- package/dist/frontend/lowering/class-protocols.js.map +1 -1
- package/dist/frontend/lowering/class-runtime-statics.js +15 -0
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
- package/dist/frontend/lowering/class-views.d.ts +13 -0
- package/dist/frontend/lowering/class-views.js +51 -0
- package/dist/frontend/lowering/class-views.js.map +1 -0
- package/dist/frontend/lowering/coercions/function-adapters.d.ts +15 -1
- package/dist/frontend/lowering/coercions/function-adapters.js +54 -10
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
- package/dist/frontend/lowering/coercions/state.d.ts +7 -0
- package/dist/frontend/lowering/coercions/state.js +7 -0
- package/dist/frontend/lowering/coercions/state.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural-plans.js +60 -3
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +29 -1
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +8 -1
- package/dist/frontend/lowering/containers/array-callbacks.js +132 -28
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.js +16 -5
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.js +16 -0
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.js +4 -0
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.d.ts +11 -0
- package/dist/frontend/lowering/containers/callback-arguments.js +53 -0
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/filter-predicates.d.ts +10 -0
- package/dist/frontend/lowering/containers/filter-predicates.js +69 -3
- package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +46 -2
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/expressions/array-literals.d.ts +14 -0
- package/dist/frontend/lowering/expressions/array-literals.js +26 -10
- package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/binary.js +104 -12
- package/dist/frontend/lowering/expressions/binary.js.map +1 -1
- package/dist/frontend/lowering/expressions/element-access.js +121 -4
- package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/identifiers.js +143 -3
- package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
- package/dist/frontend/lowering/expressions/keyed-field-targets.d.ts +11 -1
- package/dist/frontend/lowering/expressions/keyed-field-targets.js +22 -1
- package/dist/frontend/lowering/expressions/keyed-field-targets.js.map +1 -1
- package/dist/frontend/lowering/expressions/narrowing.js +25 -1
- package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.d.ts +5 -1
- package/dist/frontend/lowering/expressions/object-literals.js +778 -229
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +66 -20
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/property-access.d.ts +31 -0
- package/dist/frontend/lowering/expressions/property-access.js +796 -12
- package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/relational.js +29 -1
- package/dist/frontend/lowering/expressions/relational.js.map +1 -1
- package/dist/frontend/lowering/expressions/typeof.js +17 -0
- package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
- package/dist/frontend/lowering/expressions/updates.js +132 -17
- package/dist/frontend/lowering/expressions/updates.js.map +1 -1
- package/dist/frontend/lowering/frozen-records.d.ts +6 -0
- package/dist/frontend/lowering/frozen-records.js +10 -4
- package/dist/frontend/lowering/frozen-records.js.map +1 -1
- package/dist/frontend/lowering/frozen-records.test.d.ts +1 -0
- package/dist/frontend/lowering/frozen-records.test.js +44 -0
- package/dist/frontend/lowering/frozen-records.test.js.map +1 -0
- package/dist/frontend/lowering/function-names.d.ts +9 -0
- package/dist/frontend/lowering/function-names.js +95 -0
- package/dist/frontend/lowering/function-names.js.map +1 -0
- package/dist/frontend/lowering/function-returns.js +5 -3
- package/dist/frontend/lowering/function-returns.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +49 -0
- package/dist/frontend/lowering/generic-functions.js +365 -7
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/global-values.d.ts +9 -0
- package/dist/frontend/lowering/global-values.js +44 -0
- package/dist/frontend/lowering/global-values.js.map +1 -1
- package/dist/frontend/lowering/handle-properties.js +34 -1
- package/dist/frontend/lowering/handle-properties.js.map +1 -1
- package/dist/frontend/lowering/key-order-witness.d.ts +54 -0
- package/dist/frontend/lowering/key-order-witness.js +546 -5
- package/dist/frontend/lowering/key-order-witness.js.map +1 -1
- package/dist/frontend/lowering/lib-boundary.js +14 -0
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +110 -1
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.d.ts +36 -6
- package/dist/frontend/lowering/lower-builtin-values.js +332 -58
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +22 -1
- package/dist/frontend/lowering/lower-calls.js +427 -48
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.test.d.ts +1 -0
- package/dist/frontend/lowering/lower-calls.test.js +78 -0
- package/dist/frontend/lowering/lower-calls.test.js.map +1 -0
- package/dist/frontend/lowering/lower-classes.d.ts +16 -5
- package/dist/frontend/lowering/lower-classes.js +168 -51
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +9 -0
- package/dist/frontend/lowering/lower-event-emitter.js +383 -41
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +14 -0
- package/dist/frontend/lowering/lower-exprs.js +25 -0
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +2 -0
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +80 -33
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +87 -25
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-node-island.d.ts +35 -4
- package/dist/frontend/lowering/lower-node-island.js +456 -61
- package/dist/frontend/lowering/lower-node-island.js.map +1 -1
- package/dist/frontend/lowering/lower-server.js +160 -9
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-shared-modules.js +13 -1
- package/dist/frontend/lowering/lower-shared-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.d.ts +3 -2
- package/dist/frontend/lowering/lower-stdlib.js +32 -18
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +21 -4
- package/dist/frontend/lowering/lower-stmts.js +580 -103
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +126 -8
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.js +133 -21
- package/dist/frontend/lowering/lower-timers.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +139 -3
- package/dist/frontend/lowering/lowerer.js +579 -43
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +1 -1
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/module-namespace-elements.js +15 -0
- package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
- package/dist/frontend/lowering/new-target.js +2 -2
- package/dist/frontend/lowering/nullish-empty-pattern.d.ts +17 -0
- package/dist/frontend/lowering/nullish-empty-pattern.js +118 -0
- package/dist/frontend/lowering/nullish-empty-pattern.js.map +1 -0
- package/dist/frontend/lowering/partial-assertions.d.ts +39 -0
- package/dist/frontend/lowering/partial-assertions.js +195 -0
- package/dist/frontend/lowering/partial-assertions.js.map +1 -0
- package/dist/frontend/lowering/primitive-wrappers.d.ts +34 -0
- package/dist/frontend/lowering/primitive-wrappers.js +220 -0
- package/dist/frontend/lowering/primitive-wrappers.js.map +1 -0
- package/dist/frontend/lowering/private-statics.d.ts +46 -0
- package/dist/frontend/lowering/private-statics.js +322 -0
- package/dist/frontend/lowering/private-statics.js.map +1 -0
- package/dist/frontend/lowering/record-sources.d.ts +12 -1
- package/dist/frontend/lowering/record-sources.js +60 -0
- package/dist/frontend/lowering/record-sources.js.map +1 -1
- package/dist/frontend/lowering/strict-equality.d.ts +4 -0
- package/dist/frontend/lowering/strict-equality.js +14 -0
- package/dist/frontend/lowering/strict-equality.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +27 -0
- package/dist/frontend/lowering/surfaces.js +135 -62
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/unit-journal.d.ts +128 -17
- package/dist/frontend/lowering/unit-journal.js +310 -53
- package/dist/frontend/lowering/unit-journal.js.map +1 -1
- package/dist/frontend/lowering/unit-journal.test.js +91 -3
- package/dist/frontend/lowering/unit-journal.test.js.map +1 -1
- package/dist/frontend/lowering/unit-reuse.d.ts +92 -0
- package/dist/frontend/lowering/unit-reuse.js +1008 -0
- package/dist/frontend/lowering/unit-reuse.js.map +1 -0
- package/dist/frontend/lowering/width-lift.d.ts +12 -0
- package/dist/frontend/npm-file-import.test.d.ts +1 -0
- package/dist/frontend/npm-file-import.test.js +76 -0
- package/dist/frontend/npm-file-import.test.js.map +1 -0
- package/dist/frontend/npm-static.js +17 -2
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.d.ts +9 -0
- package/dist/frontend/npm.js +82 -0
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/pipeline-native.js +2 -1
- package/dist/frontend/pipeline-native.js.map +1 -1
- package/dist/frontend/pipeline.d.ts +4 -0
- package/dist/frontend/pipeline.js +68 -7
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/program-node.d.ts +3 -0
- package/dist/frontend/program-node.js +13 -6
- package/dist/frontend/program-node.js.map +1 -1
- package/dist/frontend/program.d.ts +9 -0
- package/dist/frontend/program.js +159 -7
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/provenance-core.js +4 -0
- package/dist/frontend/provenance-core.js.map +1 -1
- package/dist/frontend/services.d.ts +14 -0
- package/dist/frontend/services.js +52 -2
- package/dist/frontend/services.js.map +1 -1
- package/dist/frontend/services.test.js +61 -1
- package/dist/frontend/services.test.js.map +1 -1
- package/dist/frontend/shape-inference/analyze.d.ts +5 -0
- package/dist/frontend/shape-inference/analyze.js +104 -4
- package/dist/frontend/shape-inference/analyze.js.map +1 -1
- package/dist/frontend/shape-inference/domain.js +0 -1
- package/dist/frontend/shape-inference/domain.js.map +1 -1
- package/dist/frontend/shape-inference/index.js +5 -1
- package/dist/frontend/shape-inference/index.js.map +1 -1
- package/dist/frontend/shape-inference/memo.d.ts +2 -1
- package/dist/frontend/shape-inference/memo.js +6 -2
- package/dist/frontend/shape-inference/memo.js.map +1 -1
- package/dist/frontend/shape-inference/overlay.d.ts +1 -1
- package/dist/frontend/shape-inference/overlay.js +116 -2
- package/dist/frontend/shape-inference/overlay.js.map +1 -1
- package/dist/frontend/shape-inference/static-objects.js +11 -6
- package/dist/frontend/shape-inference/static-objects.js.map +1 -1
- package/dist/frontend/source-phase-imports.test.d.ts +1 -0
- package/dist/frontend/source-phase-imports.test.js +37 -0
- package/dist/frontend/source-phase-imports.test.js.map +1 -0
- package/dist/frontend/ts7/ast-node.d.ts +6 -1
- package/dist/frontend/ts7/ast-node.js +12 -0
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-wire-protocols.test.js +11 -3
- package/dist/frontend/ts7/ast-wire-protocols.test.js.map +1 -1
- package/dist/frontend/ts7/ast-wire.js +3 -5
- package/dist/frontend/ts7/ast-wire.js.map +1 -1
- package/dist/frontend/ts7/checker-backend.d.ts +13 -0
- package/dist/frontend/ts7/checker-backend.js +84 -2
- package/dist/frontend/ts7/checker-backend.js.map +1 -1
- package/dist/frontend/ts7/checker-backend.test.js +126 -2
- package/dist/frontend/ts7/checker-backend.test.js.map +1 -1
- package/dist/frontend/ts7/program-host.d.ts +22 -1
- package/dist/frontend/ts7/program-host.js +49 -4
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/program-host.test.js +83 -0
- package/dist/frontend/ts7/program-host.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-process.d.ts +16 -1
- package/dist/frontend/ts7/rpc-process.js +170 -92
- package/dist/frontend/ts7/rpc-process.js.map +1 -1
- package/dist/frontend/ts7/rpc-process.test.js +49 -21
- package/dist/frontend/ts7/rpc-process.test.js.map +1 -1
- package/dist/frontend/tsc-codes.js +70 -0
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +7 -2
- package/dist/frontend/type-mapper.js +148 -1
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +152 -8
- package/dist/index.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/build.d.ts +3 -2
- package/dist/ir/build.js +4 -2
- package/dist/ir/build.js.map +1 -1
- package/dist/ir/builtin-effects.js +53 -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 +211 -10
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/codec.d.ts +82 -0
- package/dist/ir/codec.generated.d.ts +13 -0
- package/dist/ir/codec.generated.js +5274 -0
- package/dist/ir/codec.generated.js.map +1 -0
- package/dist/ir/codec.js +325 -0
- package/dist/ir/codec.js.map +1 -0
- package/dist/ir/codec.test.d.ts +1 -0
- package/dist/ir/codec.test.js +225 -0
- package/dist/ir/codec.test.js.map +1 -0
- package/dist/ir/fields.generated.d.ts +20 -10
- package/dist/ir/fields.generated.js +1031 -11
- package/dist/ir/fields.generated.js.map +1 -1
- package/dist/ir/fields.test.js +46 -2
- package/dist/ir/fields.test.js.map +1 -1
- package/dist/ir/function-references.d.ts +5 -4
- package/dist/ir/function-references.js +8 -4
- package/dist/ir/function-references.js.map +1 -1
- package/dist/ir/function-references.test.js +7 -0
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/inline-array-sources.js +4 -1
- package/dist/ir/inline-array-sources.js.map +1 -1
- package/dist/ir/inline-array-views.d.ts +13 -0
- package/dist/ir/inline-array-views.js +944 -0
- package/dist/ir/inline-array-views.js.map +1 -0
- package/dist/ir/inline-arrays.d.ts +7 -0
- package/dist/ir/inline-arrays.js +190 -55
- package/dist/ir/inline-arrays.js.map +1 -1
- package/dist/ir/inline-arrays.test.js +140 -2
- package/dist/ir/inline-arrays.test.js.map +1 -1
- package/dist/ir/integer-ranges.js +16 -6
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/ir.d.ts +75 -44
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/js-ic.d.ts +10 -9
- package/dist/ir/js-ic.js +28 -20
- package/dist/ir/js-ic.js.map +1 -1
- package/dist/ir/js-ic.test.js +10 -2
- package/dist/ir/js-ic.test.js.map +1 -1
- package/dist/ir/jsval.js +374 -63
- package/dist/ir/jsval.js.map +1 -1
- package/dist/ir/jsval.test.js +96 -2
- package/dist/ir/jsval.test.js.map +1 -1
- package/dist/ir/loop-entry-ranges.js +112 -9
- package/dist/ir/loop-entry-ranges.js.map +1 -1
- package/dist/ir/loop-entry-ranges.test.js +40 -0
- package/dist/ir/loop-entry-ranges.test.js.map +1 -1
- package/dist/ir/parameter-versions.d.ts +2 -1
- package/dist/ir/parameter-versions.js +3 -1
- package/dist/ir/parameter-versions.js.map +1 -1
- package/dist/ir/receiver-readers.js +58 -2
- package/dist/ir/receiver-readers.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +60 -1
- package/dist/ir/runtime-features.js +277 -2
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/runtime-features.test.js +165 -1
- package/dist/ir/runtime-features.test.js.map +1 -1
- package/dist/ir/saturating-loop-jams.d.ts +8 -1
- package/dist/ir/saturating-loop-jams.js +46 -7
- package/dist/ir/saturating-loop-jams.js.map +1 -1
- package/dist/ir/saturating-loop-jams.test.js +39 -1
- package/dist/ir/saturating-loop-jams.test.js.map +1 -1
- package/dist/ir/self-captures.js +8 -1
- package/dist/ir/self-captures.js.map +1 -1
- package/dist/ir/self-captures.test.js +15 -0
- package/dist/ir/self-captures.test.js.map +1 -1
- package/dist/ir/serialize.d.ts +3 -2
- package/dist/ir/serialize.js +6 -2
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/validate.js +82 -4
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +46 -0
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/ir-policy.js +3 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/native/cache.js +2 -0
- package/dist/native/cache.js.map +1 -1
- package/dist/native/cli.js +2 -0
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.js +8 -2
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/prepare.js +32 -3
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/sanitizer.js +53 -3
- package/dist/native/sanitizer.js.map +1 -1
- package/dist/native/sanitizer.test.js +88 -2
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/native/toolchain.js +9 -2
- package/dist/native/toolchain.js.map +1 -1
- package/dist/node-islands/boundary.d.ts +25 -1
- package/dist/node-islands/boundary.js +28 -2
- package/dist/node-islands/boundary.js.map +1 -1
- package/dist/node-islands/detect.d.ts +18 -1
- package/dist/node-islands/detect.js +365 -40
- package/dist/node-islands/detect.js.map +1 -1
- package/dist/node-islands/detect.test.js +151 -4
- package/dist/node-islands/detect.test.js.map +1 -1
- package/dist/node-islands/effect-gate.js +30 -20
- package/dist/node-islands/effect-gate.js.map +1 -1
- package/dist/node-islands/effect-gate.test.js +4 -1
- package/dist/node-islands/effect-gate.test.js.map +1 -1
- package/dist/node-islands/libnode.d.ts +1 -1
- package/dist/node-islands/libnode.js +1 -1
- package/dist/node-islands/libnode.js.map +1 -1
- package/dist/node-islands/modules.d.ts +28 -0
- package/dist/node-islands/modules.js +156 -0
- package/dist/node-islands/modules.js.map +1 -1
- package/dist/node-islands/modules.test.js +105 -1
- package/dist/node-islands/modules.test.js.map +1 -1
- package/dist/node-islands/policy.js +2 -3
- package/dist/node-islands/policy.js.map +1 -1
- package/dist/node-islands/probe-recorder.d.ts +1 -0
- package/dist/node-islands/probe-recorder.js +596 -0
- package/dist/node-islands/probe-recorder.js.map +1 -0
- package/dist/node-islands/probe-recorder.test.d.ts +1 -0
- package/dist/node-islands/probe-recorder.test.js +80 -0
- package/dist/node-islands/probe-recorder.test.js.map +1 -0
- package/dist/node-islands/report.test.js +2 -0
- package/dist/node-islands/report.test.js.map +1 -1
- package/dist/node-islands/rules.js +4 -0
- package/dist/node-islands/rules.js.map +1 -1
- package/dist/node-islands/scan.d.ts +7 -1
- package/dist/node-islands/scan.js +51 -2
- package/dist/node-islands/scan.js.map +1 -1
- package/dist/node-islands/snapshot.d.ts +38 -1
- package/dist/node-islands/snapshot.js +165 -161
- package/dist/node-islands/snapshot.js.map +1 -1
- package/dist/node-islands/snapshot.test.js +63 -2
- package/dist/node-islands/snapshot.test.js.map +1 -1
- package/dist/node-islands/summary.js +8 -0
- package/dist/node-islands/summary.js.map +1 -1
- package/dist/node-islands/type-strip.d.ts +11 -0
- package/dist/node-islands/type-strip.js +157 -0
- package/dist/node-islands/type-strip.js.map +1 -0
- package/dist/node-islands/type-strip.test.d.ts +1 -0
- package/dist/node-islands/type-strip.test.js +31 -0
- package/dist/node-islands/type-strip.test.js.map +1 -0
- package/dist/project-config.d.ts +4 -0
- package/dist/project-config.js +19 -0
- package/dist/project-config.js.map +1 -1
- package/dist/project-config.test.js +10 -0
- package/dist/project-config.test.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +43 -11
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
2
|
import { setShapeOverlayMemoDir, shapeOverlayEnabled } from "./frontend/shape-inference/index.js";
|
|
3
|
-
import {
|
|
3
|
+
import { jsInferenceEnabled } from "./frontend/js-inference.js";
|
|
4
|
+
import { createNodeFrontendServices, nodeFrontendServices } from "./frontend/services-node.js";
|
|
4
5
|
import { runTypePatchCommand, } from "./frontend/type-patches/command.js";
|
|
5
6
|
import { optimizationField } from "./backend/optimization.js";
|
|
6
7
|
import { targetCpuField, targetCpuTargetRefusal } from "./backend/target-cpu.js";
|
|
@@ -14,6 +15,7 @@ import { checkerCacheIdentity } from "./frontend/ts7/checker-backend.js";
|
|
|
14
15
|
import { setLibDiagnosticsStore } from "./frontend/ts7/lib-diagnostics.js";
|
|
15
16
|
import { analyzeWithVerdictCache, fileVerdictStore } from "./coverage/verdict-cache.js";
|
|
16
17
|
import { coverageCompilerIdentity } from "./coverage/verdict-startup.js";
|
|
18
|
+
import { directoryUnitStore, unitReuseEnabled, } from "./frontend/lowering/unit-reuse.js";
|
|
17
19
|
import { commentOnlyReplay } from "./coverage/verdict-semantic.js";
|
|
18
20
|
import { llvmRefusalDiag, targetRefusalDiag } from "./backend/target-diagnostics.js";
|
|
19
21
|
import { compilePackedLibrary } from "./backend/library-pack.js";
|
|
@@ -41,10 +43,10 @@ import { privateSiblingPath } from "./backend/build-cache.js";
|
|
|
41
43
|
import { nativeCodegenTarget, nativeCodegenTargetRefusal, staticLinkRefusal, } from "./backend/targets.js";
|
|
42
44
|
import { windowsSubsystemLinkerArgs } from "./backend/targets.js";
|
|
43
45
|
import { createNativeLinkInfo } from "./backend/native-link-info.js";
|
|
44
|
-
import { RuntimePackError } from "./backend/runtime-pack.js";
|
|
46
|
+
import { RuntimePackError, loadRuntimePack, } from "./backend/runtime-pack.js";
|
|
45
47
|
import { createNativeLinkPlan } from "./backend/link-plan.js";
|
|
46
48
|
import { nativeProfileKey, nativeProfileLayout, nativeProfileRefusal, profileBlocksPath, profileHasContextCounts, recordProfileBlocksPath, } from "./backend/native-profile.js";
|
|
47
|
-
import { executableLinkerEnvironmentFingerprint, linkNativeExecutable, platformLinkerSupportsPersistentCache, resolvePlatformLinker, } from "./backend/linker.js";
|
|
49
|
+
import { executableLinkerEnvironmentFingerprint, installRuntimeDataFiles, linkNativeExecutable, platformLinkerSupportsPersistentCache, resolvePlatformLinker, } from "./backend/linker.js";
|
|
48
50
|
import { splitLlvmLibraryProgram, splitLlvmProgram, splitLlvmProgramFile, } from "./backend/llvm/split.js";
|
|
49
51
|
import { emitLibraryIdentityLines, replaceLibraryIdentity, stripLibraryIdentity, } from "./backend/library-identity-markers.js";
|
|
50
52
|
import { ffiNativeBuildDiag, iceDiag, nativeCodegenDiag, nodeIslandNodeDiag, nodeIslandModuleDiag, isTypePatchCode, } from "./diagnostics/diagnostic.js";
|
|
@@ -60,7 +62,8 @@ import { serializeModuleParts } from "./ir/serialize.js";
|
|
|
60
62
|
import { readTextParts, writeTextParts } from "./text-parts.js";
|
|
61
63
|
import { validateModule } from "./ir/validate.js";
|
|
62
64
|
import { compilerOwnedFileRoots } from "./frontend/dts-paths.js";
|
|
63
|
-
import {
|
|
65
|
+
import { loadProgramWithServices } from "./frontend/program-node.js";
|
|
66
|
+
import { programHostLoads } from "./frontend/services.js";
|
|
64
67
|
import { runFrontend } from "./frontend/pipeline.js";
|
|
65
68
|
import { provenanceSources, setProvenanceSources, } from "./frontend/provenance-registry.js";
|
|
66
69
|
import { clearResolveCaches } from "./frontend/resolve.js";
|
|
@@ -167,7 +170,30 @@ export async function analyzeCached(entryPath, opts = {}) {
|
|
|
167
170
|
// Island code resolves through Node (node-islands/resolve.ts; the
|
|
168
171
|
// self-hosted compiler builds no islands).
|
|
169
172
|
setIslandResolver((fromFile, spec) => createRequire(fromFile).resolve(spec));
|
|
170
|
-
const nodeFrontend = (entry, npmStatic, externalTypes, libraryNpmStatic, options) =>
|
|
173
|
+
const nodeFrontend = (entry, npmStatic, externalTypes, libraryNpmStatic, options) => {
|
|
174
|
+
// One syntax parser for every load of this compile, and program hosts
|
|
175
|
+
// that serve several loads (FrontendServices.reuseProgramHosts).
|
|
176
|
+
const services = createNodeFrontendServices();
|
|
177
|
+
try {
|
|
178
|
+
services.reuseProgramHosts(programHostLoads());
|
|
179
|
+
const frontend = runFrontend(entry, (path, loadOptions) => loadProgramWithServices(path, services, loadOptions), npmStatic, externalTypes, libraryNpmStatic, options);
|
|
180
|
+
return {
|
|
181
|
+
...frontend,
|
|
182
|
+
dispose: () => {
|
|
183
|
+
try {
|
|
184
|
+
frontend.dispose();
|
|
185
|
+
}
|
|
186
|
+
finally {
|
|
187
|
+
services.close();
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
services.close();
|
|
194
|
+
throw error;
|
|
195
|
+
}
|
|
196
|
+
};
|
|
171
197
|
/** The checker's part of the executable cache key (`checkerCacheIdentity`), as the CLI's startup route computes it. */
|
|
172
198
|
function checkerField() {
|
|
173
199
|
const checker = checkerCacheIdentity();
|
|
@@ -222,6 +248,12 @@ function cachedWarningSources(warnings) {
|
|
|
222
248
|
}
|
|
223
249
|
return texts;
|
|
224
250
|
}
|
|
251
|
+
/** The Node islands a build ran, stored with its cache entry so a cache hit
|
|
252
|
+
* reports them again (a runner reads them to tell an island pass from a
|
|
253
|
+
* native one). */
|
|
254
|
+
function islandFields(sink) {
|
|
255
|
+
return sink?.islands === undefined ? {} : { islands: sink.islands };
|
|
256
|
+
}
|
|
225
257
|
/** The build's performance warnings (SC61xx), stored with its cache entry
|
|
226
258
|
* so a cache hit repeats them. */
|
|
227
259
|
function performanceWarnings(sink) {
|
|
@@ -236,9 +268,17 @@ function profileMatchField(object) {
|
|
|
236
268
|
return object?.profileMatch === undefined ? {} : { profileMatch: object.profileMatch };
|
|
237
269
|
}
|
|
238
270
|
function withCompileWarnings(result, sink) {
|
|
239
|
-
if (!result.ok
|
|
271
|
+
if (!result.ok)
|
|
240
272
|
return result;
|
|
241
|
-
|
|
273
|
+
const islands = sink.islands === undefined ? {} : { islands: sink.islands };
|
|
274
|
+
if (sink.warnings.length === 0)
|
|
275
|
+
return { ...result, ...islands };
|
|
276
|
+
return {
|
|
277
|
+
...result,
|
|
278
|
+
warnings: sink.warnings,
|
|
279
|
+
sourceTexts: sink.sourceTexts ?? new Map(),
|
|
280
|
+
...islands,
|
|
281
|
+
};
|
|
242
282
|
}
|
|
243
283
|
/** Build-time API compatibility fence: a caller's existing CompileOptions
|
|
244
284
|
* variable must retain the executable result aliases without narrowing. */
|
|
@@ -265,6 +305,48 @@ function executableNativeFeatures(mod, backend, optimization, largePages) {
|
|
|
265
305
|
...executableLinkFeatures(mod, largePages),
|
|
266
306
|
};
|
|
267
307
|
}
|
|
308
|
+
/** Install the run-time data files of the selected runtime pack beside an
|
|
309
|
+
* executable this build linked while features.intl is true (ICU's
|
|
310
|
+
* icudt78l.dat). Every path that produces an Intl executable calls it: the
|
|
311
|
+
* pack link path installs them from its own selection (linker.ts), and the
|
|
312
|
+
* C-source path — sanitized builds, and links that do not start from a
|
|
313
|
+
* program object — compiles the runtime itself and would otherwise leave a
|
|
314
|
+
* binary whose Intl forms throw at run time for want of data. */
|
|
315
|
+
async function installRuntimeDataBesideExecutable(features, outPath) {
|
|
316
|
+
const pack = await intlRuntimePack(features);
|
|
317
|
+
if (pack !== null)
|
|
318
|
+
await installRuntimeDataFiles(pack, outPath);
|
|
319
|
+
}
|
|
320
|
+
/** The host target's runtime pack selection for an Intl program, or null
|
|
321
|
+
* when the program does not use Intl or the build has no host target. */
|
|
322
|
+
async function intlRuntimePack(features) {
|
|
323
|
+
if (features.intl !== true)
|
|
324
|
+
return null;
|
|
325
|
+
const target = nativeCodegenTarget();
|
|
326
|
+
if (target === null)
|
|
327
|
+
return null;
|
|
328
|
+
return loadRuntimePack({
|
|
329
|
+
target,
|
|
330
|
+
features,
|
|
331
|
+
optimization: features.optimization ?? "release",
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
/** The pack's ICU archive and the include root of the ICU headers it ships
|
|
335
|
+
* (`<root>/unicode/*.h`), both verified by loadRuntimePack, for the
|
|
336
|
+
* C-source path to link and compile scr_intl.c against. Null when the pack
|
|
337
|
+
* lists no headers: that path then builds ICU from its fetched release. */
|
|
338
|
+
function runtimePackIcuInputs(pack) {
|
|
339
|
+
if (pack === null)
|
|
340
|
+
return null;
|
|
341
|
+
const header = pack.selectedHeaderArtifacts[0];
|
|
342
|
+
const index = pack.selectedArchiveArtifacts.findIndex((artifact) => "id" in artifact && artifact.id === "icu");
|
|
343
|
+
if (header === undefined || index < 0)
|
|
344
|
+
return null;
|
|
345
|
+
return {
|
|
346
|
+
archive: pack.archives[index],
|
|
347
|
+
include: join(pack.root, dirname(dirname(header.path))),
|
|
348
|
+
};
|
|
349
|
+
}
|
|
268
350
|
async function compileExecutableNative(features, llvmPath, outPath, sanitize, ffi, windowsSubsystem, strip, staticLink = false, programSplit = null, programObjectDependencies = [], onArtifactReady, programPartitions = [], profileGenerate = false,
|
|
269
351
|
/** The kept LLVM text's shared name, when `llvmPath` is the build's private copy of it
|
|
270
352
|
* (BuildSources): the spelling clang sees and native cache keys name. */
|
|
@@ -309,6 +391,8 @@ llvmVisiblePath, profileLayout = false, hugeText = true) {
|
|
|
309
391
|
throw new InternalCompilerError("program objects must link against a precompiled runtime pack");
|
|
310
392
|
if (staticLink)
|
|
311
393
|
throw new InternalCompilerError("--static executables link against a precompiled runtime pack");
|
|
394
|
+
const intlPack = await intlRuntimePack(features);
|
|
395
|
+
const icuPack = runtimePackIcuInputs(intlPack);
|
|
312
396
|
await compileExternalC({
|
|
313
397
|
...(llvmVisiblePath === undefined || llvmVisiblePath === llvmPath
|
|
314
398
|
? { cPath: llvmPath }
|
|
@@ -333,12 +417,21 @@ llvmVisiblePath, profileLayout = false, hugeText = true) {
|
|
|
333
417
|
...(features.eventTarget ? { eventTarget: true } : {}),
|
|
334
418
|
...(features.wasm ? { wasm: true } : {}),
|
|
335
419
|
...(features.warningReplace ? { warningReplace: true } : {}),
|
|
420
|
+
...(features.recordViewPartial ? { recordViewPartial: true } : {}),
|
|
336
421
|
...(features.stdioExtended ? { stdioExtended: true } : {}),
|
|
422
|
+
...(features.fsFlags ? { fsFlags: true } : {}),
|
|
423
|
+
...(features.strdecDyn ? { strdecDyn: true } : {}),
|
|
424
|
+
...(features.processExtras ? { processExtras: true } : {}),
|
|
425
|
+
...(features.streamWriteErrors ? { streamWriteErrors: true } : {}),
|
|
426
|
+
...(features.stdioWriteSlot ? { stdioWriteSlot: true } : {}),
|
|
337
427
|
...(features.nodeIsland ? { nodeIsland: true } : {}),
|
|
338
428
|
...(features.moduleNamespace ? { moduleNamespace: true } : {}),
|
|
339
429
|
...(features.moduleNamespaceDyn ? { moduleNamespaceDyn: true } : {}),
|
|
430
|
+
...(features.primitiveWrapper ? { primitiveWrapper: true } : {}),
|
|
340
431
|
zlib: features.zlib,
|
|
341
432
|
...(features.brotli ? { brotli: true } : {}),
|
|
433
|
+
...(features.intl ? { intl: true } : {}),
|
|
434
|
+
...(icuPack === null ? {} : { icuPack }),
|
|
342
435
|
assert: features.assert,
|
|
343
436
|
inspect: features.inspect,
|
|
344
437
|
dynInvoke: features.dynInvoke,
|
|
@@ -359,6 +452,9 @@ llvmVisiblePath, profileLayout = false, hugeText = true) {
|
|
|
359
452
|
...(features.utilTiming ? { utilTiming: true } : {}),
|
|
360
453
|
...(features.dynBuffer ? { dynBuffer: true } : {}),
|
|
361
454
|
...(features.builtinValues ? { builtinValues: true } : {}),
|
|
455
|
+
...(features.stdlibPrototypeValue ? { stdlibPrototypeValue: true } : {}),
|
|
456
|
+
...(features.arrayLikeDispatch ? { arrayLikeDispatch: true } : {}),
|
|
457
|
+
...(features.builtinPrototypeValue ? { builtinPrototypeValue: true } : {}),
|
|
362
458
|
...(features.computedRequire ? { computedRequire: true } : {}),
|
|
363
459
|
events: features.events,
|
|
364
460
|
emitter: features.emitter,
|
|
@@ -380,6 +476,8 @@ llvmVisiblePath, profileLayout = false, hugeText = true) {
|
|
|
380
476
|
dgramDyn: features.dgramDyn,
|
|
381
477
|
textCodecDyn: features.textCodecDyn,
|
|
382
478
|
watch: features.watch,
|
|
479
|
+
watchFile: features.watchFile,
|
|
480
|
+
fsBufferBrand: features.fsBufferBrand,
|
|
383
481
|
foreignFfi: features.foreignFfi,
|
|
384
482
|
...(features.workers ? { workers: true } : {}),
|
|
385
483
|
...(features.youngNursery ? { youngNursery: true } : {}),
|
|
@@ -403,6 +501,8 @@ llvmVisiblePath, profileLayout = false, hugeText = true) {
|
|
|
403
501
|
frameworks: ffi.frameworks,
|
|
404
502
|
}),
|
|
405
503
|
});
|
|
504
|
+
if (intlPack !== null)
|
|
505
|
+
await installRuntimeDataFiles(intlPack, outPath);
|
|
406
506
|
}
|
|
407
507
|
async function emitNativeProgramObject(entryPath, opts, llvm, profile) {
|
|
408
508
|
const stem = basename(entryPath).replace(/\.(ts|mts|cts|js|mjs|cjs)$/, "");
|
|
@@ -513,11 +613,37 @@ function usesPrecompiledRuntimePack(opts, backend) {
|
|
|
513
613
|
function runtimePackDiagnostic(error, entryPath) {
|
|
514
614
|
return nativeCodegenDiag(error.code === "unsupported" ? "SC3002" : "SC3003", error.message, entryPath, error.hint);
|
|
515
615
|
}
|
|
616
|
+
/** The unit store of a Node-hosted build (unit-reuse.ts), keyed by the
|
|
617
|
+
* compiler, the entry, the options that reach lowering and the target
|
|
618
|
+
* platform. */
|
|
619
|
+
async function nodeUnitStore(entryPath, opts, ffi, buildPlatform) {
|
|
620
|
+
if (!unitReuseEnabled() || provenanceSources() !== null)
|
|
621
|
+
return null;
|
|
622
|
+
const root = await prepareBuildCacheRoot(buildCacheRoot());
|
|
623
|
+
if (root === null)
|
|
624
|
+
return null;
|
|
625
|
+
const directory = join(root, "units-v1");
|
|
626
|
+
const implementation = await coverageCompilerIdentity(directory);
|
|
627
|
+
if (implementation === null)
|
|
628
|
+
return null;
|
|
629
|
+
const { outPath: _outPath, outDir: _outDir, ...lowering } = opts;
|
|
630
|
+
const key = createHash("sha256")
|
|
631
|
+
.update(JSON.stringify({
|
|
632
|
+
schema: 1,
|
|
633
|
+
entry: resolve(entryPath),
|
|
634
|
+
options: lowering,
|
|
635
|
+
ffi,
|
|
636
|
+
platform: buildPlatform,
|
|
637
|
+
compiler: implementation.digest,
|
|
638
|
+
}))
|
|
639
|
+
.digest("hex");
|
|
640
|
+
return directoryUnitStore(directory, key);
|
|
641
|
+
}
|
|
516
642
|
/** Finish frontend work in a separate scope so the AST, checker caches and
|
|
517
643
|
* typed IR can be reclaimed before the native optimizer needs its heap. */
|
|
518
644
|
async function prepareExecutableInput(entryPath, opts, ffi, buildPlatform, timing, warningSink) {
|
|
519
645
|
const outputKind = opts.outputKind ?? "exe";
|
|
520
|
-
const prepared = prepareExecutableModule(entryPath, opts, ffi, buildPlatform, nodeFrontend, timing);
|
|
646
|
+
const prepared = prepareExecutableModule(entryPath, opts, ffi, buildPlatform, nodeFrontend, timing, new Map(), true, await nodeUnitStore(entryPath, opts, ffi, buildPlatform));
|
|
521
647
|
if (!prepared.ok)
|
|
522
648
|
return prepared;
|
|
523
649
|
const { mod, sourceTexts } = prepared;
|
|
@@ -571,6 +697,8 @@ async function prepareExecutableInput(entryPath, opts, ffi, buildPlatform, timin
|
|
|
571
697
|
warningSink.warnings = prepared.warnings;
|
|
572
698
|
warningSink.sourceTexts = sourceTexts;
|
|
573
699
|
}
|
|
700
|
+
if (warningSink !== undefined && prepared.islands !== undefined)
|
|
701
|
+
warningSink.islands = prepared.islands;
|
|
574
702
|
const stem = basename(entryPath).replace(/\.(ts|mts|cts|js|mjs|cjs)$/, "");
|
|
575
703
|
const defaultSourcePaths = {
|
|
576
704
|
ir: join(opts.outDir, `${stem}.ir.json`),
|
|
@@ -719,6 +847,7 @@ async function prepareExecutableInput(entryPath, opts, ffi, buildPlatform, timin
|
|
|
719
847
|
nativeFeatures,
|
|
720
848
|
programSplit,
|
|
721
849
|
sourceTexts,
|
|
850
|
+
...(prepared.islands === undefined ? {} : { islands: prepared.islands }),
|
|
722
851
|
};
|
|
723
852
|
}
|
|
724
853
|
/** Moves a build's private copies to the shared names, or drops them when that fails. */
|
|
@@ -887,6 +1016,8 @@ async function prepareExecutableInputInChild(frontendProcess, entryPath, opts, f
|
|
|
887
1016
|
warningSink.warnings = result.warnings;
|
|
888
1017
|
warningSink.sourceTexts = sourceTexts;
|
|
889
1018
|
}
|
|
1019
|
+
if (warningSink !== undefined && result.kind === "prepared" && result.islands !== undefined)
|
|
1020
|
+
warningSink.islands = result.islands;
|
|
890
1021
|
if (result.kind === "diagnostics")
|
|
891
1022
|
return { ok: false, diagnostics: result.diagnostics, sourceTexts };
|
|
892
1023
|
return {
|
|
@@ -898,6 +1029,7 @@ async function prepareExecutableInputInChild(frontendProcess, entryPath, opts, f
|
|
|
898
1029
|
nativeFeatures: result.nativeFeatures,
|
|
899
1030
|
programSplit: null,
|
|
900
1031
|
sourceTexts,
|
|
1032
|
+
...(result.islands === undefined ? {} : { islands: result.islands }),
|
|
901
1033
|
};
|
|
902
1034
|
}
|
|
903
1035
|
/**
|
|
@@ -961,6 +1093,7 @@ export async function runFrontendProcess(requestPath, resultPath) {
|
|
|
961
1093
|
nativeFeatures: prepared.nativeFeatures,
|
|
962
1094
|
sourceTexts: [...prepared.sourceTexts],
|
|
963
1095
|
warnings: warnings.warnings,
|
|
1096
|
+
...(prepared.islands === undefined ? {} : { islands: prepared.islands }),
|
|
964
1097
|
frontend,
|
|
965
1098
|
};
|
|
966
1099
|
}
|
|
@@ -1262,6 +1395,9 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
|
|
|
1262
1395
|
...(heapCensusRequested() ? { heapCensus: true } : {}),
|
|
1263
1396
|
npmStatic: opts.npmStatic ?? null,
|
|
1264
1397
|
...(shapeOverlayEnabled() ? { shapeOverlay: true } : {}),
|
|
1398
|
+
...(jsInferenceEnabled() && process.env["SCRIPTC_SHAPE_OVERLAY"] !== "0"
|
|
1399
|
+
? { jsInference: true }
|
|
1400
|
+
: {}),
|
|
1265
1401
|
ffiProfile: opts.ffiProfilePath === undefined || ffiProfileBytes === null
|
|
1266
1402
|
? null
|
|
1267
1403
|
: { path: opts.ffiProfilePath, bytes: ffiProfileBytes },
|
|
@@ -1321,12 +1457,18 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
|
|
|
1321
1457
|
warningSink.warnings = earlyHit.performance;
|
|
1322
1458
|
warningSink.sourceTexts = cachedWarningSources(earlyHit.performance);
|
|
1323
1459
|
}
|
|
1460
|
+
if (warningSink !== undefined && earlyHit.islands !== undefined)
|
|
1461
|
+
warningSink.islands = earlyHit.islands;
|
|
1324
1462
|
const executableCacheOptions = earlyCacheOptions;
|
|
1325
1463
|
// Route/proof metadata is independently evictable. A full-compiler
|
|
1326
1464
|
// fallback that still finds the validated payload repairs that lightweight
|
|
1327
1465
|
// index so the next identical CLI invocation can avoid this module graph.
|
|
1328
1466
|
await publishEarlyExecutableRoute(cacheRoot, executableCacheOptions).catch(() => undefined);
|
|
1329
1467
|
if (earlyHit.executableRestored) {
|
|
1468
|
+
// The executable came back from the cache without a link, so the data
|
|
1469
|
+
// files its Intl program loads at RUN time (ICU's icudt78l.dat) are not
|
|
1470
|
+
// beside it yet; a cache hit that links gets them from the linker.
|
|
1471
|
+
await installRuntimeDataBesideExecutable(earlyHit.native, opts.outPath);
|
|
1330
1472
|
await pruneBuildCache(cacheRoot);
|
|
1331
1473
|
timing("complete");
|
|
1332
1474
|
return {
|
|
@@ -1520,6 +1662,7 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
|
|
|
1520
1662
|
frontend: frontendInputs.snapshot(),
|
|
1521
1663
|
...(irSourcePath === undefined ? {} : { irPath: irSourcePath }),
|
|
1522
1664
|
...performanceWarnings(warningSink),
|
|
1665
|
+
...islandFields(warningSink),
|
|
1523
1666
|
...profileMatchField(nativeProgramObject),
|
|
1524
1667
|
});
|
|
1525
1668
|
publishedExecutable = true;
|
|
@@ -1536,6 +1679,7 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
|
|
|
1536
1679
|
frontend: frontendInputs.snapshot(),
|
|
1537
1680
|
...(irSourcePath === undefined ? {} : { irPath: irSourcePath }),
|
|
1538
1681
|
...performanceWarnings(warningSink),
|
|
1682
|
+
...islandFields(warningSink),
|
|
1539
1683
|
...profileMatchField(nativeProgramObject),
|
|
1540
1684
|
}).catch(() => undefined);
|
|
1541
1685
|
}
|