@scriptc/compiler 0.4.0 → 0.4.2
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 +617 -83
- package/dist/backend/cycle-analysis.d.ts +2 -1
- package/dist/backend/cycle-analysis.js +4 -4
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-mutability.d.ts +2 -1
- package/dist/backend/cycle-mutability.js +2 -2
- package/dist/backend/cycle-mutability.js.map +1 -1
- package/dist/backend/executable-features.js +10 -0
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/immutability.d.ts +2 -1
- package/dist/backend/immutability.js +2 -2
- package/dist/backend/immutability.js.map +1 -1
- package/dist/backend/library-pack.js +7 -0
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/link-plan-core.d.ts +2 -0
- package/dist/backend/link-plan-core.js +2 -0
- package/dist/backend/link-plan-core.js.map +1 -1
- package/dist/backend/link-plan.d.ts +1 -0
- package/dist/backend/link-plan.js +1 -0
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +7 -3
- package/dist/backend/llvm/alloc.js +7 -4
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/array-search.js +4 -1
- package/dist/backend/llvm/array-search.js.map +1 -1
- package/dist/backend/llvm/bytes-loop-versions.d.ts +23 -2
- package/dist/backend/llvm/bytes-loop-versions.js +115 -19
- package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
- package/dist/backend/llvm/bytes-loop-versions.test.js +131 -0
- package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +99 -2
- package/dist/backend/llvm/classes.js +436 -57
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +235 -16
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +21 -5
- package/dist/backend/llvm/common.js +50 -5
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.js +8 -4
- package/dist/backend/llvm/constant-callbacks.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.test.js +4 -4
- package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
- package/dist/backend/llvm/counted-loops.d.ts +4 -1
- package/dist/backend/llvm/counted-loops.js +62 -23
- package/dist/backend/llvm/counted-loops.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.d.ts +3 -1
- package/dist/backend/llvm/dense-array-access.js +61 -38
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.test.js +4 -0
- package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
- package/dist/backend/llvm/dense-array-loops.d.ts +19 -16
- package/dist/backend/llvm/dense-array-loops.js +49 -13
- package/dist/backend/llvm/dense-array-loops.js.map +1 -1
- package/dist/backend/llvm/dense-array-loops.test.js +50 -14
- package/dist/backend/llvm/dense-array-loops.test.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +34 -1
- package/dist/backend/llvm/dyn.js +393 -14
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emit-function.js +27 -8
- package/dist/backend/llvm/emit-function.js.map +1 -1
- package/dist/backend/llvm/emit-module.js +67 -39
- package/dist/backend/llvm/emit-module.js.map +1 -1
- package/dist/backend/llvm/emit-statements.d.ts +3 -25
- package/dist/backend/llvm/emit-statements.js +414 -37
- package/dist/backend/llvm/emit-statements.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +159 -22
- package/dist/backend/llvm/emitter.js +573 -89
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +19 -0
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +5 -2
- package/dist/backend/llvm/expr-bytes.js +110 -40
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +1 -1
- package/dist/backend/llvm/expr-calls.js +51 -26
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.js +27 -14
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-control.js +2 -3
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +95 -5
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +29 -11
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +55 -0
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +48 -20
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.js +131 -35
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/integer-clones.js +3 -3
- package/dist/backend/llvm/integer-clones.js.map +1 -1
- package/dist/backend/llvm/js-ic.d.ts +18 -0
- package/dist/backend/llvm/js-ic.js +712 -0
- package/dist/backend/llvm/js-ic.js.map +1 -0
- package/dist/backend/llvm/jsval.js +139 -11
- package/dist/backend/llvm/jsval.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +10 -0
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +61 -0
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.d.ts +4 -0
- package/dist/backend/llvm/lib-http2.js +20 -17
- package/dist/backend/llvm/lib-http2.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +69 -17
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +75 -1
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +65 -28
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/lib-tls.js +23 -0
- package/dist/backend/llvm/lib-tls.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +91 -61
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +14 -0
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.d.ts +20 -4
- package/dist/backend/llvm/map-number-lookup.js +43 -7
- package/dist/backend/llvm/map-number-lookup.js.map +1 -1
- package/dist/backend/llvm/narrow-guards.js +64 -0
- package/dist/backend/llvm/narrow-guards.js.map +1 -1
- package/dist/backend/llvm/publish.d.ts +11 -1
- package/dist/backend/llvm/publish.js +80 -22
- package/dist/backend/llvm/publish.js.map +1 -1
- package/dist/backend/llvm/publish.test.js +3 -0
- package/dist/backend/llvm/publish.test.js.map +1 -1
- package/dist/backend/llvm/receivers.js +1 -1
- package/dist/backend/llvm/receivers.js.map +1 -1
- package/dist/backend/llvm/reference-writes.js +2 -0
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/regex-matchers.js +161 -14
- package/dist/backend/llvm/regex-matchers.js.map +1 -1
- package/dist/backend/llvm/regex-matchers.test.js +18 -0
- package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
- package/dist/backend/llvm/regions.js +2 -2
- package/dist/backend/llvm/regions.js.map +1 -1
- package/dist/backend/llvm/regions.test.js +7 -1
- package/dist/backend/llvm/regions.test.js.map +1 -1
- package/dist/backend/llvm/shapes.d.ts +17 -9
- package/dist/backend/llvm/shapes.js +21 -17
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/speculative-integers.d.ts +20 -1
- package/dist/backend/llvm/speculative-integers.js +94 -6
- package/dist/backend/llvm/speculative-integers.js.map +1 -1
- package/dist/backend/llvm/speculative-integers.test.js +55 -1
- package/dist/backend/llvm/speculative-integers.test.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +2 -1
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-reads.d.ts +4 -1
- package/dist/backend/llvm/string-reads.js +88 -4
- package/dist/backend/llvm/string-reads.js.map +1 -1
- package/dist/backend/llvm/thread-slots.test.js +5 -4
- package/dist/backend/llvm/thread-slots.test.js.map +1 -1
- package/dist/backend/llvm/wasm-modules.d.ts +6 -5
- package/dist/backend/llvm/wasm-modules.js +32 -9
- package/dist/backend/llvm/wasm-modules.js.map +1 -1
- package/dist/backend/mangle.d.ts +8 -0
- package/dist/backend/mangle.js +12 -0
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +40 -2
- package/dist/backend/native/executable.js +40 -7
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/library.js +3 -1
- package/dist/backend/native/library.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +17 -6
- package/dist/backend/native-codegen.js +55 -9
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +18 -14
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +30 -2
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/native-profile.d.ts +32 -0
- package/dist/backend/native-profile.js +39 -0
- package/dist/backend/native-profile.js.map +1 -0
- package/dist/backend/native-profile.test.d.ts +1 -0
- package/dist/backend/native-profile.test.js +58 -0
- package/dist/backend/native-profile.test.js.map +1 -0
- package/dist/backend/native-tools.d.ts +14 -0
- package/dist/backend/native-tools.js +13 -0
- package/dist/backend/native-tools.js.map +1 -1
- package/dist/backend/optimization.d.ts +2 -2
- 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 +4 -0
- package/dist/backend/runtime-pack-core.js +4 -0
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +7 -1
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.d.ts +0 -21
- package/dist/backend/runtime-pack.js +0 -29
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +12 -69
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/target-diagnostics.js +38 -1
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/warm-cache.js +6 -0
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/cli/command.js +89 -7
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/host.d.ts +3 -0
- package/dist/cli/output-options.d.ts +2 -0
- package/dist/cli/output-options.js +9 -0
- package/dist/cli/output-options.js.map +1 -1
- package/dist/cli/usage.d.ts +15 -1
- package/dist/cli/usage.js +30 -2
- package/dist/cli/usage.js.map +1 -1
- package/dist/compile-types.d.ts +9 -0
- package/dist/contracts/check.js +2 -3
- package/dist/contracts/check.js.map +1 -1
- package/dist/coverage/report.d.ts +7 -2
- package/dist/coverage/report.js +18 -0
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/verdict-cache.d.ts +1 -0
- package/dist/coverage/verdict-cache.js +4 -0
- package/dist/coverage/verdict-cache.js.map +1 -1
- package/dist/coverage/verdict-semantic.js +4 -0
- package/dist/coverage/verdict-semantic.js.map +1 -1
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/dynamic-tier.d.ts +40 -0
- package/dist/diagnostics/dynamic-tier.js +57 -0
- package/dist/diagnostics/dynamic-tier.js.map +1 -0
- package/dist/diagnostics/envelope.d.ts +2 -1
- package/dist/diagnostics/envelope.js +5 -2
- package/dist/diagnostics/envelope.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +32 -0
- package/dist/executable/executable-cache.js +65 -7
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +50 -3
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.js +3 -1
- package/dist/executable/prepare.js.map +1 -1
- package/dist/frontend/analysis.js +1 -0
- package/dist/frontend/analysis.js.map +1 -1
- package/dist/frontend/arguments-usage.d.ts +8 -0
- package/dist/frontend/arguments-usage.js +98 -0
- package/dist/frontend/arguments-usage.js.map +1 -1
- package/dist/frontend/arguments-usage.test.d.ts +1 -0
- package/dist/frontend/arguments-usage.test.js +32 -0
- package/dist/frontend/arguments-usage.test.js.map +1 -0
- package/dist/frontend/builtin-package-aliases.d.ts +24 -0
- package/dist/frontend/builtin-package-aliases.js +133 -0
- package/dist/frontend/builtin-package-aliases.js.map +1 -0
- package/dist/frontend/builtin-package-aliases.test.d.ts +1 -0
- package/dist/frontend/builtin-package-aliases.test.js +48 -0
- package/dist/frontend/builtin-package-aliases.test.js.map +1 -0
- package/dist/frontend/dispose-hook.d.ts +2 -0
- package/dist/frontend/dispose-hook.js +14 -0
- package/dist/frontend/dispose-hook.js.map +1 -0
- package/dist/frontend/dts-paths.d.ts +4 -0
- package/dist/frontend/dts-paths.js +9 -1
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/jsx-entities.d.ts +4 -0
- package/dist/frontend/jsx-entities.js +259 -0
- package/dist/frontend/jsx-entities.js.map +1 -0
- package/dist/frontend/jsx-source.d.ts +71 -0
- package/dist/frontend/jsx-source.js +781 -0
- package/dist/frontend/jsx-source.js.map +1 -0
- package/dist/frontend/jsx-source.test.d.ts +1 -0
- package/dist/frontend/jsx-source.test.js +200 -0
- package/dist/frontend/jsx-source.test.js.map +1 -0
- package/dist/frontend/literal-values.test.js +8 -9
- package/dist/frontend/literal-values.test.js.map +1 -1
- package/dist/frontend/lowering/array-indexed-mutation.js +2 -1
- package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
- package/dist/frontend/lowering/array-values.js +3 -2
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/binding-analysis.d.ts +1 -1
- package/dist/frontend/lowering/binding-analysis.js +2 -2
- package/dist/frontend/lowering/binding-analysis.js.map +1 -1
- package/dist/frontend/lowering/builtins/arguments.d.ts +3 -0
- package/dist/frontend/lowering/builtins/arguments.js +30 -15
- package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
- package/dist/frontend/lowering/builtins/atomics.js +10 -6
- package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
- package/dist/frontend/lowering/builtins/builtin-class-dyn.d.ts +8 -0
- package/dist/frontend/lowering/builtins/builtin-class-dyn.js +50 -1
- package/dist/frontend/lowering/builtins/builtin-class-dyn.js.map +1 -1
- package/dist/frontend/lowering/builtins/callable-aliases.js +3 -2
- package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-async.js +2 -1
- package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js +2 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
- package/dist/frontend/lowering/builtins/crypto.d.ts +7 -2
- package/dist/frontend/lowering/builtins/crypto.js +63 -4
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
- package/dist/frontend/lowering/builtins/date-classes.d.ts +46 -0
- package/dist/frontend/lowering/builtins/date-classes.js +477 -0
- package/dist/frontend/lowering/builtins/date-classes.js.map +1 -0
- package/dist/frontend/lowering/builtins/dates.d.ts +11 -1
- package/dist/frontend/lowering/builtins/dates.js +55 -26
- package/dist/frontend/lowering/builtins/dates.js.map +1 -1
- package/dist/frontend/lowering/builtins/dh.d.ts +15 -0
- package/dist/frontend/lowering/builtins/dh.js +151 -0
- package/dist/frontend/lowering/builtins/dh.js.map +1 -0
- package/dist/frontend/lowering/builtins/disposable-stack.js +2 -1
- package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -1
- package/dist/frontend/lowering/builtins/ecdh.d.ts +21 -0
- package/dist/frontend/lowering/builtins/ecdh.js +208 -0
- package/dist/frontend/lowering/builtins/ecdh.js.map +1 -0
- package/dist/frontend/lowering/builtins/errors.d.ts +15 -0
- package/dist/frontend/lowering/builtins/errors.js +110 -0
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.js +23 -17
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.js +6 -4
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-paths.d.ts +15 -0
- package/dist/frontend/lowering/builtins/fs-paths.js +209 -0
- package/dist/frontend/lowering/builtins/fs-paths.js.map +1 -0
- package/dist/frontend/lowering/builtins/hash-stream.d.ts +16 -4
- package/dist/frontend/lowering/builtins/hash-stream.js +86 -23
- package/dist/frontend/lowering/builtins/hash-stream.js.map +1 -1
- package/dist/frontend/lowering/builtins/json.js +54 -1
- package/dist/frontend/lowering/builtins/json.js.map +1 -1
- package/dist/frontend/lowering/builtins/key-object.d.ts +2 -1
- package/dist/frontend/lowering/builtins/key-object.js +20 -7
- package/dist/frontend/lowering/builtins/key-object.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-calls.js +11 -4
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/numbers.js +9 -5
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
- package/dist/frontend/lowering/builtins/operating-system.js +4 -3
- package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
- package/dist/frontend/lowering/builtins/performance.js +3 -2
- package/dist/frontend/lowering/builtins/performance.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.d.ts +9 -0
- package/dist/frontend/lowering/builtins/process.js +47 -2
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.js +3 -2
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/promisify-callback.d.ts +3 -0
- package/dist/frontend/lowering/builtins/promisify-callback.js +23 -4
- package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.d.ts +2 -1
- package/dist/frontend/lowering/builtins/readline.js +23 -6
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/reflection.js +26 -0
- package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
- package/dist/frontend/lowering/builtins/strings.js +13 -5
- package/dist/frontend/lowering/builtins/strings.js.map +1 -1
- package/dist/frontend/lowering/builtins/text-codecs.js +2 -1
- package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
- package/dist/frontend/lowering/builtins/timers.js +6 -2
- package/dist/frontend/lowering/builtins/timers.js.map +1 -1
- package/dist/frontend/lowering/builtins/typed-array-members.d.ts +7 -0
- package/dist/frontend/lowering/builtins/typed-array-members.js +160 -0
- package/dist/frontend/lowering/builtins/typed-array-members.js.map +1 -0
- package/dist/frontend/lowering/builtins/url.js +4 -3
- package/dist/frontend/lowering/builtins/url.js.map +1 -1
- package/dist/frontend/lowering/builtins/v8.js +2 -1
- package/dist/frontend/lowering/builtins/v8.js.map +1 -1
- package/dist/frontend/lowering/builtins/webcrypto.js +39 -20
- package/dist/frontend/lowering/builtins/webcrypto.js.map +1 -1
- package/dist/frontend/lowering/call-arguments.js +2 -1
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.d.ts +4 -0
- package/dist/frontend/lowering/call-signatures.js +137 -13
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/caught-value-dispatch.d.ts +18 -1
- package/dist/frontend/lowering/caught-value-dispatch.js +201 -32
- package/dist/frontend/lowering/caught-value-dispatch.js.map +1 -1
- package/dist/frontend/lowering/cjs-exports-object.js +34 -1
- package/dist/frontend/lowering/cjs-exports-object.js.map +1 -1
- package/dist/frontend/lowering/class-assertions.js +3 -2
- package/dist/frontend/lowering/class-assertions.js.map +1 -1
- package/dist/frontend/lowering/class-construction.d.ts +2 -1
- package/dist/frontend/lowering/class-construction.js +8 -13
- package/dist/frontend/lowering/class-construction.js.map +1 -1
- package/dist/frontend/lowering/class-descriptors.js +1 -1
- package/dist/frontend/lowering/class-descriptors.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +34 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +577 -152
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +77 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-method-mutations.js +3 -0
- package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
- package/dist/frontend/lowering/class-method-values.js +1 -1
- package/dist/frontend/lowering/class-method-values.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.d.ts +17 -0
- package/dist/frontend/lowering/class-protocols.js +117 -7
- package/dist/frontend/lowering/class-protocols.js.map +1 -1
- package/dist/frontend/lowering/class-prototypes.d.ts +5 -0
- package/dist/frontend/lowering/class-prototypes.js +42 -4
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-to-primitive.d.ts +2 -2
- package/dist/frontend/lowering/class-to-primitive.js +31 -8
- package/dist/frontend/lowering/class-to-primitive.js.map +1 -1
- package/dist/frontend/lowering/class-unions.js +2 -1
- package/dist/frontend/lowering/class-unions.js.map +1 -1
- package/dist/frontend/lowering/coercions/fresh-spread.d.ts +13 -0
- package/dist/frontend/lowering/coercions/fresh-spread.js +95 -0
- package/dist/frontend/lowering/coercions/fresh-spread.js.map +1 -0
- package/dist/frontend/lowering/coercions/function-adapters.js +105 -75
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +8 -7
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/coercions/unions.js +8 -7
- package/dist/frontend/lowering/coercions/unions.js.map +1 -1
- package/dist/frontend/lowering/collection-ingestion.js +2 -1
- package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +15 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +36 -32
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-concat.js +2 -1
- package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.js +32 -4
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.js +11 -5
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.js +2 -1
- package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.d.ts +10 -1
- package/dist/frontend/lowering/containers/bytes.js +601 -24
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.js +52 -2
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-grouping.js +3 -2
- package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +80 -10
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +8 -7
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/containers/iterator-helpers.d.ts +32 -1
- package/dist/frontend/lowering/containers/iterator-helpers.js +6 -5
- package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.js +85 -22
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.js +2 -1
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.d.ts +26 -10
- package/dist/frontend/lowering/cycle-initialization.js +177 -39
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.d.ts +18 -1
- package/dist/frontend/lowering/deferred-module-initializers.js +226 -115
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.test.js +28 -0
- package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
- package/dist/frontend/lowering/dispatch-sites.d.ts +59 -0
- package/dist/frontend/lowering/dispatch-sites.js +204 -0
- package/dist/frontend/lowering/dispatch-sites.js.map +1 -0
- package/dist/frontend/lowering/dispatch-sites.test.d.ts +1 -0
- package/dist/frontend/lowering/dispatch-sites.test.js +59 -0
- package/dist/frontend/lowering/dispatch-sites.test.js.map +1 -0
- package/dist/frontend/lowering/dyn-streams.d.ts +3 -0
- package/dist/frontend/lowering/dyn-streams.js +1 -1
- package/dist/frontend/lowering/dyn-streams.js.map +1 -1
- package/dist/frontend/lowering/dynamic-tier.d.ts +25 -0
- package/dist/frontend/lowering/dynamic-tier.js +327 -0
- package/dist/frontend/lowering/dynamic-tier.js.map +1 -0
- package/dist/frontend/lowering/error-methods.js +4 -0
- package/dist/frontend/lowering/error-methods.js.map +1 -1
- package/dist/frontend/lowering/expressions/array-literals.js +48 -13
- package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/binary.js +124 -8
- package/dist/frontend/lowering/expressions/binary.js.map +1 -1
- package/dist/frontend/lowering/expressions/element-access.js +30 -7
- package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/identifiers.js +46 -7
- package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
- package/dist/frontend/lowering/expressions/keyed-field-targets.d.ts +14 -2
- package/dist/frontend/lowering/expressions/keyed-field-targets.js +91 -10
- package/dist/frontend/lowering/expressions/keyed-field-targets.js.map +1 -1
- package/dist/frontend/lowering/expressions/narrowing.js +52 -7
- package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.d.ts +0 -3
- package/dist/frontend/lowering/expressions/object-literals.js +75 -7
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +17 -8
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/property-access.d.ts +5 -4
- package/dist/frontend/lowering/expressions/property-access.js +351 -16
- package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/relational.js +112 -9
- package/dist/frontend/lowering/expressions/relational.js.map +1 -1
- package/dist/frontend/lowering/expressions/typeof.js +13 -0
- package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
- package/dist/frontend/lowering/expressions/updates.js +64 -10
- package/dist/frontend/lowering/expressions/updates.js.map +1 -1
- package/dist/frontend/lowering/generator-delegation.d.ts +8 -0
- package/dist/frontend/lowering/generator-delegation.js +191 -1
- package/dist/frontend/lowering/generator-delegation.js.map +1 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +6 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +20 -30
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +46 -1
- package/dist/frontend/lowering/generic-functions.js +660 -73
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/handle-properties.d.ts +24 -0
- package/dist/frontend/lowering/handle-properties.js +281 -0
- package/dist/frontend/lowering/handle-properties.js.map +1 -0
- package/dist/frontend/lowering/intern-tables.js +2 -1
- package/dist/frontend/lowering/intern-tables.js.map +1 -1
- package/dist/frontend/lowering/iterable-spelling.d.ts +7 -0
- package/dist/frontend/lowering/iterable-spelling.js +38 -0
- package/dist/frontend/lowering/iterable-spelling.js.map +1 -0
- package/dist/frontend/lowering/iterator-adapters.js +9 -8
- package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
- package/dist/frontend/lowering/js-dynamic-objects.js +3 -2
- package/dist/frontend/lowering/js-dynamic-objects.js.map +1 -1
- package/dist/frontend/lowering/json-require.js +2 -1
- package/dist/frontend/lowering/json-require.js.map +1 -1
- package/dist/frontend/lowering/key-order-witness.d.ts +7 -2
- package/dist/frontend/lowering/key-order-witness.js +21 -4
- package/dist/frontend/lowering/key-order-witness.js.map +1 -1
- package/dist/frontend/lowering/key-order-witness.test.js +38 -2
- package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
- package/dist/frontend/lowering/lifetime-regions.js +2 -1
- package/dist/frontend/lowering/lifetime-regions.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.d.ts +33 -15
- package/dist/frontend/lowering/lower-array-sort.js +117 -21
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.test.js +93 -14
- package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +6 -5
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.js +3 -1
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.js +1 -0
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +4 -0
- package/dist/frontend/lowering/lower-calls.js +504 -97
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +22 -0
- package/dist/frontend/lowering/lower-classes.js +339 -32
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.js +65 -15
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +14 -0
- package/dist/frontend/lowering/lower-event-emitter.js +267 -20
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +19 -2
- package/dist/frontend/lowering/lower-exprs.js +148 -12
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +308 -72
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.js +10 -4
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +578 -16
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.js +2 -1
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-mock.js +2 -1
- package/dist/frontend/lowering/lower-mock.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +11 -3
- package/dist/frontend/lowering/lower-modules.js +227 -72
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.test.js +2 -2
- package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +2 -1
- package/dist/frontend/lowering/lower-namespaces.js +24 -3
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +10 -0
- package/dist/frontend/lowering/lower-server.js +263 -60
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.js +39 -18
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +7 -10
- package/dist/frontend/lowering/lower-stmts.js +584 -69
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.test.js +1 -1
- package/dist/frontend/lowering/lower-stmts.test.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +575 -165
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.js +21 -4
- package/dist/frontend/lowering/lower-timers.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +151 -30
- package/dist/frontend/lowering/lowerer.js +725 -84
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +21 -9
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/narrowing-stability.js +5 -0
- package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
- package/dist/frontend/lowering/native-ffi.js +1 -1
- package/dist/frontend/lowering/native-ffi.js.map +1 -1
- package/dist/frontend/lowering/object-enumeration-receiver.js +2 -1
- package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.js +2 -1
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
- package/dist/frontend/lowering/private-brands.d.ts +9 -0
- package/dist/frontend/lowering/private-brands.js +66 -15
- package/dist/frontend/lowering/private-brands.js.map +1 -1
- package/dist/frontend/lowering/promise-executor-adapter.js +2 -1
- package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -1
- package/dist/frontend/lowering/rebindable-functions.d.ts +8 -0
- package/dist/frontend/lowering/rebindable-functions.js +54 -0
- package/dist/frontend/lowering/rebindable-functions.js.map +1 -0
- package/dist/frontend/lowering/require-initialization.js +2 -1
- package/dist/frontend/lowering/require-initialization.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-elements.d.ts +5 -0
- package/dist/frontend/lowering/runtime-optional-elements.js +17 -1
- package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-records.d.ts +2 -0
- package/dist/frontend/lowering/runtime-optional-records.js +18 -5
- package/dist/frontend/lowering/runtime-optional-records.js.map +1 -1
- package/dist/frontend/lowering/site-dependencies.d.ts +35 -0
- package/dist/frontend/lowering/site-dependencies.js +84 -0
- package/dist/frontend/lowering/site-dependencies.js.map +1 -0
- package/dist/frontend/lowering/site-dependencies.test.d.ts +1 -0
- package/dist/frontend/lowering/site-dependencies.test.js +53 -0
- package/dist/frontend/lowering/site-dependencies.test.js.map +1 -0
- package/dist/frontend/lowering/stable-names.d.ts +11 -0
- package/dist/frontend/lowering/stable-names.js +35 -0
- package/dist/frontend/lowering/stable-names.js.map +1 -0
- package/dist/frontend/lowering/static-typeof.d.ts +26 -0
- package/dist/frontend/lowering/static-typeof.js +172 -0
- package/dist/frontend/lowering/static-typeof.js.map +1 -0
- package/dist/frontend/lowering/strict-equality.js +2 -1
- package/dist/frontend/lowering/strict-equality.js.map +1 -1
- package/dist/frontend/lowering/string-index-bounds.js +3 -2
- package/dist/frontend/lowering/string-index-bounds.js.map +1 -1
- package/dist/frontend/lowering/structural-positions.d.ts +32 -0
- package/dist/frontend/lowering/structural-positions.js +108 -0
- package/dist/frontend/lowering/structural-positions.js.map +1 -0
- package/dist/frontend/lowering/surfaces.js +72 -30
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/thenables.d.ts +16 -0
- package/dist/frontend/lowering/thenables.js +124 -0
- package/dist/frontend/lowering/thenables.js.map +1 -0
- package/dist/frontend/lowering/var-hoisting.js +37 -3
- package/dist/frontend/lowering/var-hoisting.js.map +1 -1
- package/dist/frontend/npm-static-builtin-aliases.d.ts +8 -0
- package/dist/frontend/npm-static-builtin-aliases.js +65 -0
- package/dist/frontend/npm-static-builtin-aliases.js.map +1 -0
- package/dist/frontend/npm-static-bundled-chunks.d.ts +8 -1
- package/dist/frontend/npm-static-bundled-chunks.js +173 -2
- package/dist/frontend/npm-static-bundled-chunks.js.map +1 -1
- package/dist/frontend/npm-static-bundled-chunks.test.js +112 -0
- package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -1
- package/dist/frontend/npm-static-bundled-esm.js +224 -4
- package/dist/frontend/npm-static-bundled-esm.js.map +1 -1
- package/dist/frontend/npm-static-bundled-esm.test.js +129 -0
- package/dist/frontend/npm-static-bundled-esm.test.js.map +1 -1
- package/dist/frontend/npm-static-enum-iife.d.ts +6 -0
- package/dist/frontend/npm-static-enum-iife.js +280 -0
- package/dist/frontend/npm-static-enum-iife.js.map +1 -0
- package/dist/frontend/npm-static-enum-iife.test.d.ts +1 -0
- package/dist/frontend/npm-static-enum-iife.test.js +116 -0
- package/dist/frontend/npm-static-enum-iife.test.js.map +1 -0
- package/dist/frontend/npm-static-tsc-helpers.d.ts +5 -0
- package/dist/frontend/npm-static-tsc-helpers.js +106 -0
- package/dist/frontend/npm-static-tsc-helpers.js.map +1 -0
- package/dist/frontend/npm-static-tsc-helpers.test.d.ts +1 -0
- package/dist/frontend/npm-static-tsc-helpers.test.js +58 -0
- package/dist/frontend/npm-static-tsc-helpers.test.js.map +1 -0
- package/dist/frontend/npm-static-type-exports-host.d.ts +8 -0
- package/dist/frontend/npm-static-type-exports-host.js +214 -0
- package/dist/frontend/npm-static-type-exports-host.js.map +1 -0
- package/dist/frontend/npm-static-type-exports-host.test.d.ts +1 -0
- package/dist/frontend/npm-static-type-exports-host.test.js +53 -0
- package/dist/frontend/npm-static-type-exports-host.test.js.map +1 -0
- package/dist/frontend/npm-static-type-exports.d.ts +52 -0
- package/dist/frontend/npm-static-type-exports.js +261 -0
- package/dist/frontend/npm-static-type-exports.js.map +1 -0
- package/dist/frontend/npm-static-type-exports.test.d.ts +1 -0
- package/dist/frontend/npm-static-type-exports.test.js +103 -0
- package/dist/frontend/npm-static-type-exports.test.js.map +1 -0
- package/dist/frontend/npm-static-umd.d.ts +6 -0
- package/dist/frontend/npm-static-umd.js +203 -0
- package/dist/frontend/npm-static-umd.js.map +1 -0
- package/dist/frontend/npm-static-umd.test.d.ts +1 -0
- package/dist/frontend/npm-static-umd.test.js +105 -0
- package/dist/frontend/npm-static-umd.test.js.map +1 -0
- package/dist/frontend/npm-static.d.ts +16 -0
- package/dist/frontend/npm-static.js +93 -3
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.js +13 -0
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/package-shims.d.ts +47 -0
- package/dist/frontend/package-shims.js +300 -0
- package/dist/frontend/package-shims.js.map +1 -0
- package/dist/frontend/pipeline.js +67 -1
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/program.d.ts +21 -0
- package/dist/frontend/program.js +174 -14
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +1 -1
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/resolve.js +13 -0
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/services.d.ts +12 -0
- package/dist/frontend/services.js +37 -0
- package/dist/frontend/services.js.map +1 -1
- package/dist/frontend/ts7/ast-node.d.ts +21 -7
- package/dist/frontend/ts7/ast-node.js +131 -29
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +60 -0
- package/dist/frontend/ts7/ast-node.test.js.map +1 -1
- package/dist/frontend/ts7/ast-wire.d.ts +27 -2
- package/dist/frontend/ts7/ast-wire.js +124 -21
- package/dist/frontend/ts7/ast-wire.js.map +1 -1
- package/dist/frontend/ts7/ast.d.ts +23 -2
- package/dist/frontend/ts7/ast.js +143 -2
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/checker.d.ts +13 -1
- package/dist/frontend/ts7/checker.js +75 -1
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.js +9 -6
- package/dist/frontend/ts7/checker.test.js.map +1 -1
- package/dist/frontend/ts7/enums.d.ts +3 -3
- package/dist/frontend/ts7/enums.generated.d.ts +10 -0
- package/dist/frontend/ts7/enums.generated.js +21 -0
- package/dist/frontend/ts7/enums.generated.js.map +1 -1
- package/dist/frontend/ts7/enums.js +19 -0
- package/dist/frontend/ts7/enums.js.map +1 -1
- package/dist/frontend/ts7/program-host.d.ts +6 -5
- package/dist/frontend/ts7/program-host.js +12 -2
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.d.ts +10 -0
- package/dist/frontend/ts7/semantic-checker.js +25 -20
- package/dist/frontend/ts7/semantic-checker.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.d.ts +13 -0
- package/dist/frontend/ts7/semantic-json.js +146 -0
- package/dist/frontend/ts7/semantic-json.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.test.js +57 -1
- package/dist/frontend/ts7/semantic-json.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.d.ts +18 -0
- package/dist/frontend/ts7/semantic-model.js +90 -16
- package/dist/frontend/ts7/semantic-model.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.test.js +3 -2
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
- package/dist/frontend/ts7/session.d.ts +19 -4
- package/dist/frontend/ts7/session.js +1 -1
- package/dist/frontend/ts7/session.js.map +1 -1
- package/dist/frontend/tsc-codes.d.ts +1 -1
- package/dist/frontend/tsc-codes.js +7 -0
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +38 -6
- package/dist/frontend/type-mapper.js +466 -47
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.js +1 -1
- package/dist/frontend/type-mapper.test.js.map +1 -1
- package/dist/frontend-process-args.d.ts +4 -0
- package/dist/frontend-process-args.js +52 -0
- package/dist/frontend-process-args.js.map +1 -0
- package/dist/frontend-process-args.test.d.ts +1 -0
- package/dist/frontend-process-args.test.js +47 -0
- package/dist/frontend-process-args.test.js.map +1 -0
- package/dist/frontend-process.d.ts +1 -0
- package/dist/frontend-process.js +23 -0
- package/dist/frontend-process.js.map +1 -0
- package/dist/heap-collection.d.ts +16 -0
- package/dist/heap-collection.js +42 -0
- package/dist/heap-collection.js.map +1 -0
- package/dist/heap-collection.test.d.ts +1 -0
- package/dist/heap-collection.test.js +59 -0
- package/dist/heap-collection.test.js.map +1 -0
- package/dist/heap-pressure.d.ts +2 -0
- package/dist/heap-pressure.js +12 -0
- package/dist/heap-pressure.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +453 -85
- package/dist/index.js.map +1 -1
- package/dist/ir/array-length-stability.d.ts +3 -2
- package/dist/ir/array-length-stability.js +22 -2
- package/dist/ir/array-length-stability.js.map +1 -1
- package/dist/ir/array-length-stability.test.js +47 -1
- package/dist/ir/array-length-stability.test.js.map +1 -1
- package/dist/ir/builtin-effects.js +41 -0
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +5 -1
- package/dist/ir/builtin-signatures.js +187 -16
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/final-fields.d.ts +2 -1
- package/dist/ir/final-fields.js +2 -2
- package/dist/ir/final-fields.js.map +1 -1
- package/dist/ir/function-references.test.js +2 -0
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/int32-slots.d.ts +13 -5
- package/dist/ir/int32-slots.js +112 -115
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +3 -1
- package/dist/ir/int32-slots.test.js.map +1 -1
- package/dist/ir/integer-loop-facts.d.ts +14 -4
- package/dist/ir/integer-loop-facts.js +172 -32
- package/dist/ir/integer-loop-facts.js.map +1 -1
- package/dist/ir/integer-loops.d.ts +49 -0
- package/dist/ir/integer-loops.js +193 -39
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +201 -1
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +10 -1
- package/dist/ir/integer-ranges.js +122 -25
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +255 -1
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/ir.d.ts +17 -2
- package/dist/ir/ir.js +11 -1
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/js-ic.d.ts +52 -0
- package/dist/ir/js-ic.js +199 -0
- package/dist/ir/js-ic.js.map +1 -0
- package/dist/ir/js-ic.test.d.ts +1 -0
- package/dist/ir/js-ic.test.js +148 -0
- package/dist/ir/js-ic.test.js.map +1 -0
- package/dist/ir/jsval.js +38 -4
- package/dist/ir/jsval.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +64 -5
- package/dist/ir/runtime-features.js +358 -101
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/tiers.js +1 -0
- package/dist/ir/tiers.js.map +1 -1
- package/dist/ir/traverse.d.ts +2 -0
- package/dist/ir/traverse.js +124 -70
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +77 -24
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +15 -2
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/ir-policy.js +11 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/library/library-cache.d.ts +2 -0
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/prepare.js +2 -0
- package/dist/library/prepare.js.map +1 -1
- package/dist/native/cli.js +22 -0
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.js +33 -4
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/executable-cache.js +3 -0
- package/dist/native/executable-cache.js.map +1 -1
- package/dist/native/prepare.js +8 -1
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/sanitizer.test.js +10 -0
- package/dist/native/sanitizer.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/text-parts.d.ts +7 -0
- package/dist/text-parts.js +44 -0
- package/dist/text-parts.js.map +1 -1
- package/dist/text-parts.test.d.ts +1 -0
- package/dist/text-parts.test.js +46 -0
- package/dist/text-parts.test.js.map +1 -0
- package/dist/timing.d.ts +9 -2
- package/dist/timing.js +7 -4
- package/dist/timing.js.map +1 -1
- package/dist/wasm/translate.d.ts +4 -0
- package/dist/wasm/translate.js +2 -2
- package/dist/wasm/translate.js.map +1 -1
- package/package.json +22 -21
- package/shims/fs-extra/core/api.ts +1192 -0
- package/shims/fs-extra/index.ts +9 -0
- package/shims/undici/core/agent.ts +163 -0
- package/shims/undici/core/api.ts +93 -0
- package/shims/undici/core/client.ts +1304 -0
- package/shims/undici/core/connector.ts +157 -0
- package/shims/undici/core/diagnostics-types.ts +68 -0
- package/shims/undici/core/diagnostics.ts +16 -0
- package/shims/undici/core/dispatcher.ts +574 -0
- package/shims/undici/core/errors-v5.ts +22 -0
- package/shims/undici/core/errors-v7.ts +25 -0
- package/shims/undici/core/errors.ts +255 -0
- package/shims/undici/core/fetch.ts +635 -0
- package/shims/undici/core/pool.ts +280 -0
- package/shims/undici/core/readable.ts +268 -0
- package/shims/undici/core/request.ts +313 -0
- package/shims/undici/core/timers.ts +80 -0
- package/shims/undici/core/types.ts +167 -0
- package/shims/undici/core/util.ts +67 -0
- package/shims/undici/v5.ts +119 -0
- package/shims/undici/v7.ts +119 -0
- package/surface-manifest.json +20 -52
|
@@ -1,93 +1,151 @@
|
|
|
1
1
|
import { isDirentShape, RUNTIME_EMITTER_CLASS, RUNTIME_EVENT_CLASS, RUNTIME_EVENT_TARGET_CLASS, RUNTIME_STREAM_CLASSES, } from "./ir.js";
|
|
2
2
|
import { everyModuleNode } from "./traverse.js";
|
|
3
|
+
import { JsIcSites, hasJsIcSite } from "./js-ic.js";
|
|
4
|
+
const DYN_BUFFER_NUM_METHODS = new Set(["read", "write"].flatMap((rw) => [
|
|
5
|
+
...["UInt", "Uint"].flatMap((u) => ["8", "16LE", "16BE", "32LE", "32BE"].map((w) => `${rw}${u}${w}`)),
|
|
6
|
+
...[
|
|
7
|
+
"Int8",
|
|
8
|
+
"Int16LE",
|
|
9
|
+
"Int16BE",
|
|
10
|
+
"Int32LE",
|
|
11
|
+
"Int32BE",
|
|
12
|
+
"FloatLE",
|
|
13
|
+
"FloatBE",
|
|
14
|
+
"DoubleLE",
|
|
15
|
+
"DoubleBE",
|
|
16
|
+
].map((n) => `${rw}${n}`),
|
|
17
|
+
]));
|
|
18
|
+
/** Buffer.prototype members scr_bytes_dyn.c refuses on Buffer receivers. */
|
|
19
|
+
const DYN_BUFFER_REFUSED_METHODS = [
|
|
20
|
+
...["read", "write"].flatMap((rw) => [
|
|
21
|
+
...["UIntLE", "UIntBE", "UintLE", "UintBE", "IntLE", "IntBE"].map((n) => `${rw}${n}`),
|
|
22
|
+
...["BigUInt64", "BigUint64", "BigInt64"].flatMap((n) => [`${rw}${n}LE`, `${rw}${n}BE`]),
|
|
23
|
+
]),
|
|
24
|
+
...["ascii", "base64", "base64url", "latin1", "hex", "ucs2", "utf8"].flatMap((enc) => [
|
|
25
|
+
`${enc}Slice`,
|
|
26
|
+
`${enc}Write`,
|
|
27
|
+
]),
|
|
28
|
+
"inspect",
|
|
29
|
+
];
|
|
30
|
+
/** The scr_bytes_dyn.c entry, one per method family, that a checked-dynamic
|
|
31
|
+
* call of a Buffer.prototype method name routes to: the fixed-width reads and
|
|
32
|
+
* writes (both "UInt" and "Uint" spellings), write, fill, toString, the
|
|
33
|
+
* searches, and the other Buffer-only members. Each runs the method on a
|
|
34
|
+
* Buffer receiver and gives any other receiver the ordinary dispatch. */
|
|
35
|
+
export const DYN_BUFFER_METHODS = new Map([
|
|
36
|
+
...[...DYN_BUFFER_NUM_METHODS].map((m) => [m, "scr_dyn_invoke_buffer_num"]),
|
|
37
|
+
["write", "scr_dyn_invoke_buffer_write"],
|
|
38
|
+
["fill", "scr_dyn_invoke_buffer_fill"],
|
|
39
|
+
["toString", "scr_dyn_invoke_buffer_to_string"],
|
|
40
|
+
...["indexOf", "lastIndexOf", "includes"].map((m) => [
|
|
41
|
+
m,
|
|
42
|
+
"scr_dyn_invoke_buffer_search",
|
|
43
|
+
]),
|
|
44
|
+
...[
|
|
45
|
+
"toJSON",
|
|
46
|
+
"equals",
|
|
47
|
+
"compare",
|
|
48
|
+
"copy",
|
|
49
|
+
"swap16",
|
|
50
|
+
"swap32",
|
|
51
|
+
"swap64",
|
|
52
|
+
...DYN_BUFFER_REFUSED_METHODS,
|
|
53
|
+
].map((m) => [m, "scr_dyn_invoke_buffer"]),
|
|
54
|
+
]);
|
|
3
55
|
const DYN_ASYNC_LIB_FNS = new Set([
|
|
4
56
|
// DEP0040 rides the dyn-async unit's warning machinery.
|
|
5
|
-
"punycode.warn",
|
|
6
|
-
"fs.callbackValue",
|
|
7
|
-
"fs.callbackCall",
|
|
8
|
-
"fs.callbackGlob",
|
|
9
57
|
"async.awaitDyn",
|
|
10
|
-
|
|
58
|
+
// The child property table adopts thenables through the dyn-async unit.
|
|
59
|
+
"child.propsInstall",
|
|
60
|
+
"child.propsResolve",
|
|
11
61
|
"crypto.native",
|
|
62
|
+
// The crypto global's object extends crypto.native's.
|
|
63
|
+
"webcrypto.object",
|
|
12
64
|
"dyn.promiseAll",
|
|
13
65
|
"dyn.promiseAllSettled",
|
|
14
66
|
"dyn.promiseAny",
|
|
15
67
|
"dyn.promiseResolve",
|
|
16
|
-
"
|
|
68
|
+
"fs.callbackCall",
|
|
69
|
+
"fs.callbackGlob",
|
|
70
|
+
"fs.callbackValue",
|
|
71
|
+
"process.deprecationFlag",
|
|
72
|
+
"process.emitWarning",
|
|
73
|
+
"process.emitWarningText",
|
|
74
|
+
"process.offRejectionHandled",
|
|
17
75
|
"process.offUncaughtException",
|
|
18
|
-
"process.onUnhandledRejection",
|
|
19
76
|
"process.offUnhandledRejection",
|
|
77
|
+
"process.offWarning",
|
|
20
78
|
"process.onRejectionHandled",
|
|
21
|
-
"process.
|
|
79
|
+
"process.onUncaughtException",
|
|
80
|
+
"process.onUnhandledRejection",
|
|
22
81
|
"process.onWarning",
|
|
23
|
-
"process.offWarning",
|
|
24
|
-
"process.emitWarning",
|
|
25
|
-
"process.emitWarningText",
|
|
26
|
-
"process.deprecationFlag",
|
|
27
82
|
"process.setDeprecationFlag",
|
|
28
83
|
"process.setEmitWarning",
|
|
84
|
+
"punycode.warn",
|
|
85
|
+
"timers.immediatePromise",
|
|
29
86
|
// The performance timeline (scr_perf.c, linked with this unit for its
|
|
30
87
|
// MaxPerformanceEntryBufferExceededWarning).
|
|
31
|
-
"perf.mark",
|
|
32
|
-
"perf.measure",
|
|
33
|
-
"perf.entries",
|
|
34
88
|
"perf.clearMarks",
|
|
35
89
|
"perf.clearMeasures",
|
|
36
|
-
"perf.
|
|
37
|
-
"perf.entryType",
|
|
38
|
-
"perf.entryStart",
|
|
39
|
-
"perf.entryDuration",
|
|
90
|
+
"perf.entries",
|
|
40
91
|
"perf.entryDetail",
|
|
92
|
+
"perf.entryDuration",
|
|
41
93
|
"perf.entryKeep",
|
|
94
|
+
"perf.entryName",
|
|
42
95
|
"perf.entryRef",
|
|
96
|
+
"perf.entryStart",
|
|
97
|
+
"perf.entryType",
|
|
98
|
+
"perf.mark",
|
|
99
|
+
"perf.measure",
|
|
43
100
|
// Blob and File (scr_blob.c, linked with this unit, which boxes their
|
|
44
101
|
// reads as dyn promises).
|
|
45
|
-
"
|
|
102
|
+
"als.disable",
|
|
103
|
+
"als.enterWith",
|
|
104
|
+
"als.exitRun",
|
|
105
|
+
"als.get",
|
|
106
|
+
"als.new",
|
|
107
|
+
"als.run",
|
|
108
|
+
"blob.arrayBuffer",
|
|
109
|
+
"blob.bytes",
|
|
46
110
|
"blob.fileNew",
|
|
111
|
+
"blob.is",
|
|
112
|
+
"blob.new",
|
|
47
113
|
"blob.slice",
|
|
48
114
|
"blob.text",
|
|
49
|
-
"blob.bytes",
|
|
50
|
-
"blob.arrayBuffer",
|
|
51
|
-
"blob.is",
|
|
52
|
-
"util.styleText",
|
|
53
|
-
"util.inherits",
|
|
54
|
-
"util.deprecate",
|
|
55
|
-
"util.callbackify",
|
|
56
|
-
"util.debuglog",
|
|
57
|
-
"als.new",
|
|
58
|
-
"als.get",
|
|
59
|
-
"als.run",
|
|
60
|
-
"als.exitRun",
|
|
61
|
-
"als.enterWith",
|
|
62
|
-
"als.disable",
|
|
63
115
|
"dc.chanBindStore",
|
|
64
|
-
"dc.chanUnbindStore",
|
|
65
116
|
"dc.chanRunStores",
|
|
117
|
+
"dc.chanUnbindStore",
|
|
118
|
+
"util.callbackify",
|
|
119
|
+
"util.promisifyDyn",
|
|
120
|
+
"util.debuglog",
|
|
121
|
+
"util.deprecate",
|
|
122
|
+
"util.inherits",
|
|
123
|
+
"util.styleText",
|
|
66
124
|
]);
|
|
67
125
|
/** The libCalls that enter AsyncLocalStorage stores (RuntimeFeatures
|
|
68
126
|
* asyncContext). */
|
|
69
127
|
const ASYNC_CONTEXT_LIB_FNS = new Set([
|
|
70
|
-
"als.run",
|
|
71
|
-
"als.exitRun",
|
|
72
128
|
"als.enterWith",
|
|
129
|
+
"als.exitRun",
|
|
130
|
+
"als.run",
|
|
73
131
|
"dc.chanBindStore",
|
|
74
132
|
"dc.chanRunStores",
|
|
75
133
|
// getTestContext() reads the test runner's entry in the same snapshot.
|
|
76
|
-
"test.hasContext",
|
|
77
134
|
"test.context",
|
|
135
|
+
"test.hasContext",
|
|
78
136
|
]);
|
|
79
137
|
const LEGACY_URL_LIB_FNS = new Set([
|
|
80
|
-
"url.legacyParse",
|
|
81
|
-
"url.legacyFormat",
|
|
82
|
-
"url.legacyResolve",
|
|
83
138
|
"url.domainToASCII",
|
|
84
139
|
"url.domainToUnicode",
|
|
140
|
+
"url.legacyFormat",
|
|
141
|
+
"url.legacyParse",
|
|
142
|
+
"url.legacyResolve",
|
|
85
143
|
]);
|
|
86
144
|
const UTIL_CALLABLE_LIB_FNS = new Set([
|
|
87
|
-
"util.inherits",
|
|
88
|
-
"util.deprecate",
|
|
89
145
|
"util.callbackify",
|
|
90
146
|
"util.debuglog",
|
|
147
|
+
"util.deprecate",
|
|
148
|
+
"util.inherits",
|
|
91
149
|
]);
|
|
92
150
|
/** Entry points that link the regex unit: the regex and glob matchers (fs.glob's walk compiles its patterns with the glob matcher), and readline's terminal unit (scr_readline_tty.c), which measures with the regex unit's stripVTControlCharacters. */
|
|
93
151
|
const REGEX_LIB_FNS = new Set([
|
|
@@ -135,6 +193,8 @@ const ABORT_SIGNAL_LIB_FNS = new Set([
|
|
|
135
193
|
/** Entry points that link the stream unit (with STREAM_LIB_PREFIXES). */
|
|
136
194
|
const STREAM_LIB_FNS = new Set([
|
|
137
195
|
"child.stdioStream",
|
|
196
|
+
"stream.chunkDone",
|
|
197
|
+
"stream.objectMode",
|
|
138
198
|
"console.bind",
|
|
139
199
|
"crypto.hashStream",
|
|
140
200
|
"crypto.hashStreamPiped",
|
|
@@ -151,14 +211,15 @@ const STREAM_LIB_FNS = new Set([
|
|
|
151
211
|
"stream.addAbortSignalFn",
|
|
152
212
|
"stream.destroy",
|
|
153
213
|
"stream.destroyErr",
|
|
154
|
-
"stream.errored",
|
|
155
|
-
"stream.prop",
|
|
156
214
|
"stream.dynNative",
|
|
157
215
|
"stream.dynNativePipe",
|
|
216
|
+
"stream.errored",
|
|
158
217
|
"stream.pipeDyn",
|
|
159
|
-
"stream.
|
|
218
|
+
"stream.prop",
|
|
160
219
|
"stream.stdioWritable",
|
|
161
220
|
"stream.unboxDyn",
|
|
221
|
+
"stream.handleStream",
|
|
222
|
+
"stream.unpipeDyn",
|
|
162
223
|
"stream.workerStdio",
|
|
163
224
|
]);
|
|
164
225
|
/** libCall name prefixes that link the stream unit. */
|
|
@@ -189,21 +250,22 @@ const READABLE_DYN_ASYNC_LIB_FNS = new Set([
|
|
|
189
250
|
const READABLE_DYN_ASYNC_PREFIXES = ["readable.fromGen", "readable.op"];
|
|
190
251
|
/** Entry points that link the dyn-invoke unit. */
|
|
191
252
|
const DYN_INVOKE_LIB_FNS = new Set([
|
|
192
|
-
"stream.dynNative",
|
|
193
|
-
"stream.dynNativePipe",
|
|
194
|
-
"stream.pipeDyn",
|
|
195
|
-
"stream.unpipeDyn",
|
|
196
253
|
"dyn.arrayProtoCall",
|
|
197
254
|
"dyn.arrayPrototype",
|
|
198
255
|
"dyn.builtinFunction",
|
|
199
256
|
"dyn.builtinMethod",
|
|
200
257
|
"dyn.defineProperty",
|
|
258
|
+
"child.propsDefine",
|
|
201
259
|
"dyn.defineProps",
|
|
202
260
|
"dyn.definePrototypeProps",
|
|
203
261
|
"dyn.functionApply",
|
|
204
262
|
"dyn.globalConstructor",
|
|
205
263
|
"dyn.objCreateWithProperties",
|
|
206
264
|
"dyn.objectTag",
|
|
265
|
+
"stream.dynNative",
|
|
266
|
+
"stream.dynNativePipe",
|
|
267
|
+
"stream.pipeDyn",
|
|
268
|
+
"stream.unpipeDyn",
|
|
207
269
|
]);
|
|
208
270
|
/** Member names whose constant-key dynamic reads answer the inherited Object.prototype member through the dyn-invoke unit. Mirrors expr-dynamic.ts INHERITED_OBJECT_MEMBERS (the IR layer does not import the backend). */
|
|
209
271
|
const INHERITED_MEMBER_NAMES = new Set([
|
|
@@ -234,8 +296,8 @@ const CHILD_PROCESS_LIB_PREFIXES = ["child.", "cp.", "spawnRes.", "writer."];
|
|
|
234
296
|
const BUILTIN_CLASS_LIB_FNS = [
|
|
235
297
|
"dyn.builtinClass",
|
|
236
298
|
// the stream classes, through scr_dyn_builtin_stream.c
|
|
237
|
-
"dyn.builtinStreamClass",
|
|
238
299
|
"dyn.builtinInstanceOf",
|
|
300
|
+
"dyn.builtinStreamClass",
|
|
239
301
|
"dyn.functionInstanceOf",
|
|
240
302
|
];
|
|
241
303
|
/** Entry points that link the symbol unit, besides the sym. and disposable. families. */
|
|
@@ -341,67 +403,126 @@ function boxesPromise(t, tables, seen) {
|
|
|
341
403
|
return false;
|
|
342
404
|
}
|
|
343
405
|
}
|
|
406
|
+
/** Whether `t` carries a dgram socket, given the carrier sets so far:
|
|
407
|
+
* structural through functions (parameters and result), promises and
|
|
408
|
+
* collections; named records, unions and class instances by the sets. */
|
|
409
|
+
function carriesDgram(t, carriers) {
|
|
410
|
+
switch (t.kind) {
|
|
411
|
+
case "dgramSocket":
|
|
412
|
+
return true;
|
|
413
|
+
case "func":
|
|
414
|
+
return t.params.some((p) => carriesDgram(p, carriers)) || carriesDgram(t.ret, carriers);
|
|
415
|
+
case "promise":
|
|
416
|
+
return carriesDgram(t.inner, carriers);
|
|
417
|
+
case "array":
|
|
418
|
+
case "set":
|
|
419
|
+
return carriesDgram(t.elem, carriers);
|
|
420
|
+
case "map":
|
|
421
|
+
return carriesDgram(t.key, carriers) || carriesDgram(t.value, carriers);
|
|
422
|
+
case "record":
|
|
423
|
+
return carriers.records.has(t.shapeId);
|
|
424
|
+
case "union":
|
|
425
|
+
return carriers.unions.has(t.unionId);
|
|
426
|
+
case "object":
|
|
427
|
+
// Any class may be the instance's runtime class or one of its bases.
|
|
428
|
+
return carriers.anyClass;
|
|
429
|
+
default:
|
|
430
|
+
return false;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
/** The module's dgram carriers: a fixpoint over its records, unions and
|
|
434
|
+
* class fields. */
|
|
435
|
+
function dgramCarriers(tables) {
|
|
436
|
+
const carriers = { records: new Set(), unions: new Set(), anyClass: false };
|
|
437
|
+
for (let changed = true; changed;) {
|
|
438
|
+
changed = false;
|
|
439
|
+
for (const [id, shape] of tables.records)
|
|
440
|
+
if (!carriers.records.has(id) && shape.fields.some((f) => carriesDgram(f.type, carriers))) {
|
|
441
|
+
carriers.records.add(id);
|
|
442
|
+
changed = true;
|
|
443
|
+
}
|
|
444
|
+
for (const [id, def] of tables.unions)
|
|
445
|
+
if (!carriers.unions.has(id) && def.arms.some((a) => carriesDgram(a, carriers))) {
|
|
446
|
+
carriers.unions.add(id);
|
|
447
|
+
changed = true;
|
|
448
|
+
}
|
|
449
|
+
if (!carriers.anyClass &&
|
|
450
|
+
[...tables.classes.values()].some((c) => c.fields.some((f) => carriesDgram(f.type, carriers)))) {
|
|
451
|
+
carriers.anyClass = true;
|
|
452
|
+
changed = true;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
return carriers;
|
|
456
|
+
}
|
|
457
|
+
/** Whether converting a value of type `t` to or from dyn converts a dgram
|
|
458
|
+
* socket, which goes through scr_dgram_dyn.c: the socket itself, or a
|
|
459
|
+
* function, collection, record, union, promise or class instance that
|
|
460
|
+
* carries one (boxed functions convert their parameters too). */
|
|
461
|
+
function mentionsDgramSocket(t, tables) {
|
|
462
|
+
tables.dgramCarriers ??= dgramCarriers(tables);
|
|
463
|
+
return carriesDgram(t, tables.dgramCarriers);
|
|
464
|
+
}
|
|
344
465
|
/** The libCall fns served by the OPTIONAL events unit (scr_events.c):
|
|
345
466
|
* process signal/exit listeners and the piped-stdin surface. */
|
|
346
467
|
const PROCESS_EVENT_LIB_FNS = new Set([
|
|
347
|
-
"process.
|
|
348
|
-
"process.onSignal",
|
|
468
|
+
"process.offExit",
|
|
349
469
|
"process.offSignal",
|
|
350
470
|
"process.onExit",
|
|
351
|
-
"process.
|
|
471
|
+
"process.onSignal",
|
|
472
|
+
"process.stdio",
|
|
473
|
+
"stdin.nextChunk",
|
|
352
474
|
"stdin.onData",
|
|
353
475
|
"stdin.onEnd",
|
|
354
476
|
"stdin.onError",
|
|
355
|
-
"stdin.nextChunk",
|
|
356
477
|
// node:readline rides the stdin unit (scr_readline.c links beside
|
|
357
478
|
// scr_events.c under the same gate).
|
|
479
|
+
"rl.checkCompleter",
|
|
480
|
+
"rl.checkOptions",
|
|
481
|
+
"rl.close",
|
|
358
482
|
"rl.create",
|
|
359
483
|
"rl.createSignal",
|
|
484
|
+
"rl.cursor",
|
|
485
|
+
"rl.cursorPos",
|
|
486
|
+
"rl.getPrompt",
|
|
487
|
+
"rl.history",
|
|
488
|
+
"rl.isPromises",
|
|
489
|
+
"rl.isTerminal",
|
|
490
|
+
"rl.iterNext",
|
|
491
|
+
"rl.iterOpen",
|
|
492
|
+
"rl.iterReturn",
|
|
493
|
+
"rl.keypressStdin",
|
|
494
|
+
"rl.keypressStream",
|
|
495
|
+
"rl.line",
|
|
496
|
+
"rl.moves",
|
|
497
|
+
"rl.numProp",
|
|
498
|
+
"rl.on",
|
|
499
|
+
"rl.pause",
|
|
500
|
+
"rl.prompt",
|
|
501
|
+
"rl.promptWith",
|
|
360
502
|
"rl.question",
|
|
361
503
|
"rl.questionAsync",
|
|
362
|
-
"rl.questionAsyncSignal",
|
|
363
|
-
"rl.questionDyn",
|
|
364
504
|
"rl.questionAsyncDyn",
|
|
505
|
+
"rl.questionAsyncSignal",
|
|
365
506
|
"rl.questionAsyncSignalDyn",
|
|
366
|
-
"rl.
|
|
367
|
-
"rl.pause",
|
|
507
|
+
"rl.questionDyn",
|
|
368
508
|
"rl.resume",
|
|
369
|
-
"rl.
|
|
370
|
-
"rl.
|
|
509
|
+
"rl.seq",
|
|
510
|
+
"rl.setHistory",
|
|
511
|
+
"rl.setOptions",
|
|
371
512
|
"rl.setPrompt",
|
|
372
513
|
"rl.setPromptDyn",
|
|
373
|
-
"rl.getPrompt",
|
|
374
|
-
"rl.write",
|
|
375
|
-
"rl.writeKey",
|
|
376
|
-
"rl.on",
|
|
377
|
-
"rl.iterOpen",
|
|
378
|
-
"rl.iterNext",
|
|
379
|
-
"rl.iterReturn",
|
|
380
|
-
"rl.checkOptions",
|
|
381
|
-
"rl.checkCompleter",
|
|
382
|
-
"rl.setOptions",
|
|
383
|
-
"rl.setHistory",
|
|
384
|
-
"rl.history",
|
|
385
|
-
"rl.numProp",
|
|
386
514
|
"rl.terminal",
|
|
387
|
-
"rl.line",
|
|
388
|
-
"rl.isTerminal",
|
|
389
|
-
"rl.isPromises",
|
|
390
|
-
"rl.cursor",
|
|
391
|
-
"rl.seq",
|
|
392
|
-
"rl.moves",
|
|
393
|
-
"rl.cursorPos",
|
|
394
|
-
"rl.keypressStdin",
|
|
395
|
-
"rl.keypressStream",
|
|
396
|
-
"stdin.onKeypress",
|
|
397
|
-
"rl.uiOpen",
|
|
398
|
-
"rl.uiOpenStream",
|
|
399
|
-
"rl.uiCursorTo",
|
|
400
|
-
"rl.uiMoveCursor",
|
|
401
515
|
"rl.uiClearLine",
|
|
402
516
|
"rl.uiClearScreenDown",
|
|
403
|
-
"rl.uiRollback",
|
|
404
517
|
"rl.uiCommit",
|
|
518
|
+
"rl.uiCursorTo",
|
|
519
|
+
"rl.uiMoveCursor",
|
|
520
|
+
"rl.uiOpen",
|
|
521
|
+
"rl.uiOpenStream",
|
|
522
|
+
"rl.uiRollback",
|
|
523
|
+
"rl.write",
|
|
524
|
+
"rl.writeKey",
|
|
525
|
+
"stdin.onKeypress",
|
|
405
526
|
]);
|
|
406
527
|
/** The legacy http2.* libCalls implemented by scr_http.c/scr_tls.c (the
|
|
407
528
|
* allowHTTP1 compatibility slice) — they must NOT pull scr_http2.c, so
|
|
@@ -417,9 +538,66 @@ const STDIO_EXTENDED_NAMES = new Set(["setEncoding", "resize"]);
|
|
|
417
538
|
const rule = (r) => r;
|
|
418
539
|
/* The HTTP, HTTPS, HTTP/2 and TLS surfaces, which link the net unit. */
|
|
419
540
|
const NET_PREFIXES = ["net.", "http.", "tls.", "https.", "http2."];
|
|
541
|
+
/** The scr_pki.c entry points (the pki unit). */
|
|
542
|
+
export const PKI_LIB_FNS = new Set([
|
|
543
|
+
"crypto.createPrivateKey",
|
|
544
|
+
"crypto.createPublicKey",
|
|
545
|
+
"crypto.createSign",
|
|
546
|
+
"crypto.createVerify",
|
|
547
|
+
"crypto.generateKeyPairCb",
|
|
548
|
+
"crypto.generateKeyPairSync",
|
|
549
|
+
"crypto.signOneshot",
|
|
550
|
+
"crypto.verifyOneshot",
|
|
551
|
+
]);
|
|
552
|
+
/** The WebCrypto algorithms scr_webcrypto_pki.c implements over the pki
|
|
553
|
+
* unit (lowercased). */
|
|
554
|
+
const WEBCRYPTO_ASYMMETRIC_NAMES = new Set([
|
|
555
|
+
"ecdsa",
|
|
556
|
+
"ed25519",
|
|
557
|
+
"rsa-pss",
|
|
558
|
+
"rsassa-pkcs1-v1_5",
|
|
559
|
+
]);
|
|
560
|
+
/** Whether a string literal in the module names Ed25519, without regard
|
|
561
|
+
* to case ("ed25519" for node:crypto, "Ed25519" for WebCrypto): the
|
|
562
|
+
* Ed25519 unit links then, alongside the pki unit. */
|
|
563
|
+
export function moduleNamesEd25519(mod) {
|
|
564
|
+
let named = false;
|
|
565
|
+
everyModuleNode(mod, {
|
|
566
|
+
expr: (node) => {
|
|
567
|
+
if (node.kind === "strLit" && node.value.toLowerCase() === "ed25519")
|
|
568
|
+
named = true;
|
|
569
|
+
return !named;
|
|
570
|
+
},
|
|
571
|
+
stmt: () => !named,
|
|
572
|
+
type: () => true,
|
|
573
|
+
});
|
|
574
|
+
return named;
|
|
575
|
+
}
|
|
576
|
+
/** Whether the module calls WebCrypto and a string literal in it names one
|
|
577
|
+
* of the asymmetric algorithms (matched without regard to case, as
|
|
578
|
+
* normalizeAlgorithm matches names): scr_webcrypto_pki.c and the pki unit
|
|
579
|
+
* link then. */
|
|
580
|
+
export function moduleUsesWebCryptoAsymmetric(mod) {
|
|
581
|
+
let webcrypto = false;
|
|
582
|
+
let named = false;
|
|
583
|
+
everyModuleNode(mod, {
|
|
584
|
+
expr: (node) => {
|
|
585
|
+
if (node.kind === "libCall" && node.fn.startsWith("webcrypto."))
|
|
586
|
+
webcrypto = true;
|
|
587
|
+
if (node.kind === "strLit" && WEBCRYPTO_ASYMMETRIC_NAMES.has(node.value.toLowerCase()))
|
|
588
|
+
named = true;
|
|
589
|
+
return !(webcrypto && named);
|
|
590
|
+
},
|
|
591
|
+
stmt: () => !(webcrypto && named),
|
|
592
|
+
type: () => true,
|
|
593
|
+
});
|
|
594
|
+
return webcrypto && named;
|
|
595
|
+
}
|
|
420
596
|
/** One rule per runtime feature, sorted by name. A new feature is an
|
|
421
597
|
* entry here and its line in noRuntimeFeatures; RuntimeFeatures, the scan
|
|
422
|
-
* and its early exit derive from this table.
|
|
598
|
+
* and its early exit derive from this table. The lists above keep one
|
|
599
|
+
* entry per line, sorted within each commented group, so changes that add
|
|
600
|
+
* different entries touch different lines. */
|
|
423
601
|
const RUNTIME_FEATURE_RULES = {
|
|
424
602
|
assert: rule({ prefixes: ["assert."] }),
|
|
425
603
|
/** The program enters AsyncLocalStorage stores (store.run, enterWith,
|
|
@@ -441,8 +619,17 @@ const RUNTIME_FEATURE_RULES = {
|
|
|
441
619
|
}),
|
|
442
620
|
/** scr_cipher.c over the mbedTLS archive; DEP0182 reports through the
|
|
443
621
|
* process-warning unit, and unknown output encodings render through the
|
|
444
|
-
* inspect unit.
|
|
445
|
-
|
|
622
|
+
* inspect unit. WebCrypto's encrypt, decrypt, wrapKey and unwrapKey
|
|
623
|
+
* (scr_webcrypto_aes.c) link the same archive. */
|
|
624
|
+
cipher: rule({
|
|
625
|
+
fns: [
|
|
626
|
+
"crypto.cipherNew",
|
|
627
|
+
"webcrypto.encrypt",
|
|
628
|
+
"webcrypto.decrypt",
|
|
629
|
+
"webcrypto.wrapKey",
|
|
630
|
+
"webcrypto.unwrapKey",
|
|
631
|
+
],
|
|
632
|
+
}),
|
|
446
633
|
copying: rule({
|
|
447
634
|
expr: (node, _tables) => (node.kind === "arrIntrinsic" && COPYING_ARR_METHODS.has(node.method)) ||
|
|
448
635
|
(node.kind === "bytesIntrinsic" && COPYING_BYTES_METHODS.has(node.method)),
|
|
@@ -450,19 +637,32 @@ const RUNTIME_FEATURE_RULES = {
|
|
|
450
637
|
dc: rule({ prefixes: ["dc."] }),
|
|
451
638
|
/** dns.lookup lives in the dgram unit. */
|
|
452
639
|
dgram: rule({ prefixes: ["dgram.", "dns."], types: ["dgramSocket"] }),
|
|
640
|
+
/** A dgram socket converts to or from an untyped value (its handle box,
|
|
641
|
+
* a boxed function or record that carries one): scr_dgram_dyn.c over
|
|
642
|
+
* the dgram unit. */
|
|
643
|
+
dgramDyn: rule({
|
|
644
|
+
expr: (node, tables) => (node.kind === "dynFrom" && mentionsDgramSocket(node.value.type, tables())) ||
|
|
645
|
+
(node.kind === "dynCheck" && mentionsDgramSocket(node.type, tables())),
|
|
646
|
+
}),
|
|
453
647
|
/** node:dns/promises: scr_dns_promises.c over the dgram unit. */
|
|
454
648
|
dnsPromises: rule({ fns: ["dns.promisesLookup", "dns.promisesLookupService"] }),
|
|
455
649
|
dynAsync: rule({
|
|
456
650
|
initial: (mod) => mod.workers === true ||
|
|
457
651
|
mod.functions.some((fn) => fn.async === true && fn.generator === undefined && fn.returnType.kind === "dyn"),
|
|
458
|
-
// The legacy url functions
|
|
459
|
-
// deprecation warnings through the
|
|
460
|
-
//
|
|
652
|
+
// The legacy url functions, crypto.createCipheriv and
|
|
653
|
+
// ecdh.setPublicKey emit their deprecation warnings through the
|
|
654
|
+
// dyn-async unit (WebCrypto's encrypt and decrypt link scr_cipher.c
|
|
655
|
+
// too); scr_wasm.c boxes its handles and promises through it.
|
|
461
656
|
fns: [
|
|
462
657
|
...DYN_ASYNC_LIB_FNS,
|
|
463
658
|
...READABLE_DYN_ASYNC_LIB_FNS,
|
|
464
659
|
...LEGACY_URL_LIB_FNS,
|
|
465
660
|
"crypto.cipherNew",
|
|
661
|
+
"webcrypto.encrypt",
|
|
662
|
+
"webcrypto.decrypt",
|
|
663
|
+
"webcrypto.wrapKey",
|
|
664
|
+
"webcrypto.unwrapKey",
|
|
665
|
+
"crypto.ecdhNew",
|
|
466
666
|
],
|
|
467
667
|
prefixes: [...READABLE_DYN_ASYNC_PREFIXES, "wasm."],
|
|
468
668
|
expr: (node, tables) => (node.kind === "awaitExpr" && node.type.kind === "dyn") ||
|
|
@@ -485,7 +685,12 @@ const RUNTIME_FEATURE_RULES = {
|
|
|
485
685
|
dynBuiltinStream: rule({ fns: ["dyn.builtinStreamClass"] }),
|
|
486
686
|
dynInvoke: rule({
|
|
487
687
|
initial: (mod) => mod.workers === true,
|
|
488
|
-
fns: [
|
|
688
|
+
fns: [
|
|
689
|
+
...DYN_INVOKE_LIB_FNS,
|
|
690
|
+
...UTIL_CALLABLE_LIB_FNS,
|
|
691
|
+
...BUILTIN_CLASS_LIB_FNS,
|
|
692
|
+
"util.promisifyDyn",
|
|
693
|
+
],
|
|
489
694
|
// Constant-key reads of Object.prototype member names answer the
|
|
490
695
|
// inherited member through scr_dyn_invoke.c.
|
|
491
696
|
expr: (node, _tables) => node.kind === "dynInvoke" ||
|
|
@@ -501,8 +706,26 @@ const RUNTIME_FEATURE_RULES = {
|
|
|
501
706
|
streamDyn: rule({
|
|
502
707
|
fns: ["stream.dynNative", "stream.dynNativePipe", "stream.pipeDyn", "stream.unpipeDyn"],
|
|
503
708
|
}),
|
|
709
|
+
/** Own properties JavaScript adds to children (scr_dyn_handle_props.c). */
|
|
710
|
+
handleProps: rule({ fns: ["child.propsInstall"] }),
|
|
711
|
+
/** for await over checked-dynamic values (scr_dyn_for_await.c). */
|
|
712
|
+
dynForAwait: rule({ fns: ["dyn.asyncIteratorOpen", "dyn.asyncIteratorWasSync"] }),
|
|
713
|
+
/** Buffer.prototype methods called on checked-dynamic values
|
|
714
|
+
* (scr_bytes_dyn.c). */
|
|
715
|
+
dynBuffer: rule({
|
|
716
|
+
expr: (node, _tables) => node.kind === "dynInvoke" && DYN_BUFFER_METHODS.has(node.method),
|
|
717
|
+
}),
|
|
718
|
+
/** Builtin functions read as values (scr_builtin_values.c). */
|
|
719
|
+
builtinValues: rule({ fns: ["buffer.byteLenValue", "buffer.allocValue", "fs.realpathValue"] }),
|
|
504
720
|
/** The stream unit emits through the emitter unit, also when the
|
|
505
721
|
* program constructs no stream (a pipeline of functions). */
|
|
722
|
+
/** scr_ecdh.c over the mbedTLS archive; DEP0031 reports through the
|
|
723
|
+
* process-warning unit, and unknown encodings and formats render through
|
|
724
|
+
* the inspect unit. */
|
|
725
|
+
ecdh: rule({ fns: ["crypto.ecdhNew", "crypto.ecdhConvertKey"] }),
|
|
726
|
+
/** scr_dh.c over the mbedTLS archive; unknown encodings render through
|
|
727
|
+
* the inspect unit. */
|
|
728
|
+
dh: rule({ fns: ["crypto.dhNew", "crypto.dhGroupNew"] }),
|
|
506
729
|
emitter: rule({
|
|
507
730
|
initial: (mod) => mod.workers === true || (mod.classes ?? []).some((c) => c.name === RUNTIME_EMITTER_CLASS),
|
|
508
731
|
fns: [...STREAM_LIB_FNS, ...BUILTIN_CLASS_LIB_FNS],
|
|
@@ -542,6 +765,14 @@ const RUNTIME_FEATURE_RULES = {
|
|
|
542
765
|
"global.native",
|
|
543
766
|
"util.styleText",
|
|
544
767
|
"crypto.cipherNew",
|
|
768
|
+
"webcrypto.encrypt",
|
|
769
|
+
"webcrypto.decrypt",
|
|
770
|
+
"webcrypto.wrapKey",
|
|
771
|
+
"webcrypto.unwrapKey",
|
|
772
|
+
"crypto.ecdhNew",
|
|
773
|
+
"crypto.ecdhConvertKey",
|
|
774
|
+
"crypto.dhNew",
|
|
775
|
+
"crypto.dhGroupNew",
|
|
545
776
|
...BUILTIN_CLASS_LIB_FNS,
|
|
546
777
|
...UTIL_CALLABLE_LIB_FNS,
|
|
547
778
|
],
|
|
@@ -572,6 +803,12 @@ const RUNTIME_FEATURE_RULES = {
|
|
|
572
803
|
/** perf_hooks event-loop metrics (eventLoopUtilization,
|
|
573
804
|
* monitorEventLoopDelay): scr_perf_loop.c. */
|
|
574
805
|
perfLoop: rule({ fns: ["perf.idleTime"], prefixes: ["perf.loop", "perf.eld"] }),
|
|
806
|
+
/** scr_pki.c over the mbedTLS archive: asymmetric KeyObjects and
|
|
807
|
+
* signatures. */
|
|
808
|
+
pki: rule({ initial: moduleUsesWebCryptoAsymmetric, fns: [...PKI_LIB_FNS] }),
|
|
809
|
+
/** scr_ed25519.c (the vendored libsodium Ed25519), linked with pki: a
|
|
810
|
+
* string literal in the module names Ed25519. */
|
|
811
|
+
ed25519: rule({ initial: moduleNamesEd25519 }),
|
|
575
812
|
processEvents: rule({ fns: [...PROCESS_EVENT_LIB_FNS, "util.styleText"], types: ["procStream"] }),
|
|
576
813
|
/** scr_url_legacy.c parses and stringifies queries. */
|
|
577
814
|
qs: rule({ fns: [...QS_LIB_FNS, ...LEGACY_URL_LIB_FNS] }),
|
|
@@ -619,6 +856,10 @@ const RUNTIME_FEATURE_RULES = {
|
|
|
619
856
|
}),
|
|
620
857
|
tls: rule({ prefixes: ["tls.", "https.", "http2."], types: ["secureCtx"] }),
|
|
621
858
|
tlsCa: rule({ prefixes: ["tlsca."] }),
|
|
859
|
+
/** util.promisify over an untyped function (scr_util_promisify.c): its
|
|
860
|
+
* promises go through the dyn-async unit and its calls through the
|
|
861
|
+
* dyn-invoke unit. */
|
|
862
|
+
utilPromisify: rule({ fns: ["util.promisifyDyn"] }),
|
|
622
863
|
/** process.emitWarning is assigned (process.setEmitWarning). */
|
|
623
864
|
warningReplace: rule({ fns: ["process.setEmitWarning"] }),
|
|
624
865
|
/** The WebAssembly API (scr_wasm.c). */
|
|
@@ -643,28 +884,33 @@ function noRuntimeFeatures() {
|
|
|
643
884
|
copying: false,
|
|
644
885
|
dc: false,
|
|
645
886
|
dgram: false,
|
|
887
|
+
dgramDyn: false,
|
|
646
888
|
dnsPromises: false,
|
|
647
889
|
dynAsync: false,
|
|
648
890
|
dynBuiltinClass: false,
|
|
649
891
|
dynBuiltinStream: false,
|
|
650
892
|
dynInvoke: false,
|
|
651
893
|
dynTier: false,
|
|
894
|
+
ecdh: false,
|
|
895
|
+
dh: false,
|
|
652
896
|
emitter: false,
|
|
653
897
|
eventTarget: false,
|
|
654
898
|
eventsOnceSignal: false,
|
|
655
899
|
fetch: false,
|
|
656
900
|
fileHandle: false,
|
|
657
901
|
fsWatch: false,
|
|
658
|
-
netLookup: false,
|
|
659
|
-
http: false,
|
|
660
902
|
http2: false,
|
|
903
|
+
http: false,
|
|
661
904
|
inspect: false,
|
|
662
905
|
legacyTextDecoder: false,
|
|
663
906
|
mockTimers: false,
|
|
664
907
|
net: false,
|
|
908
|
+
netLookup: false,
|
|
665
909
|
nodeTest: false,
|
|
666
910
|
parseArgs: false,
|
|
667
911
|
perfLoop: false,
|
|
912
|
+
pki: false,
|
|
913
|
+
ed25519: false,
|
|
668
914
|
processEvents: false,
|
|
669
915
|
qs: false,
|
|
670
916
|
regex: false,
|
|
@@ -672,9 +918,14 @@ function noRuntimeFeatures() {
|
|
|
672
918
|
stdioExtended: false,
|
|
673
919
|
stream: false,
|
|
674
920
|
streamDyn: false,
|
|
921
|
+
handleProps: false,
|
|
922
|
+
dynForAwait: false,
|
|
923
|
+
dynBuffer: false,
|
|
924
|
+
builtinValues: false,
|
|
675
925
|
symbol: false,
|
|
676
926
|
tls: false,
|
|
677
927
|
tlsCa: false,
|
|
928
|
+
utilPromisify: false,
|
|
678
929
|
warningReplace: false,
|
|
679
930
|
wasm: false,
|
|
680
931
|
webcrypto: false,
|
|
@@ -752,6 +1003,12 @@ function scanRuntimeFeatures(mod, stopAt) {
|
|
|
752
1003
|
};
|
|
753
1004
|
if (keepGoing())
|
|
754
1005
|
everyModuleNode(mod, { expr, stmt: keepGoing, type });
|
|
1006
|
+
// Inline-cache sites of dynamic-tier functions use the tier's shapes
|
|
1007
|
+
// (scr_js_object.c, with the SCR_JS_TIER build of scr_json.c).
|
|
1008
|
+
if (!features.dynTier && mod.functions.some((fn) => fn.tier === "dynamic")) {
|
|
1009
|
+
const sites = new JsIcSites(mod);
|
|
1010
|
+
features.dynTier = mod.functions.some((fn) => fn.tier === "dynamic" && hasJsIcSite(fn, sites));
|
|
1011
|
+
}
|
|
755
1012
|
return features;
|
|
756
1013
|
}
|
|
757
1014
|
/** True when the module contains any regex construct — a regexLit /
|
|
@@ -984,9 +1241,9 @@ export function moduleUsesTls(mod) {
|
|
|
984
1241
|
export function moduleUsesTlsCa(mod) {
|
|
985
1242
|
return scanRuntimeFeatures(mod, "tlsCa").tlsCa;
|
|
986
1243
|
}
|
|
987
|
-
/** True when the module has dynamic-tier jsval operations
|
|
988
|
-
* for the scr_js_* runtime units (two-tier design
|
|
989
|
-
* them never link a scr_js_ symbol. */
|
|
1244
|
+
/** True when the module has dynamic-tier jsval operations or inline-cache
|
|
1245
|
+
* sites: the link switch for the scr_js_* runtime units (two-tier design
|
|
1246
|
+
* I3). Programs without them never link a scr_js_ symbol. */
|
|
990
1247
|
export function moduleUsesDynTier(mod) {
|
|
991
1248
|
return scanRuntimeFeatures(mod, "dynTier").dynTier;
|
|
992
1249
|
}
|