@scriptc/compiler 0.3.2 → 0.3.4
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 +1202 -64
- package/dist/backend/cycle-analysis.js +6 -1
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-mutability.d.ts +5 -0
- package/dist/backend/cycle-mutability.js +62 -3
- package/dist/backend/cycle-mutability.js.map +1 -1
- package/dist/backend/executable-features.js +1 -0
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/library-pack.js +1 -0
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/llvm/alloc.js +24 -10
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/alloc.test.js +47 -1
- package/dist/backend/llvm/alloc.test.js.map +1 -1
- package/dist/backend/llvm/array-search.d.ts +8 -0
- package/dist/backend/llvm/array-search.js +52 -0
- package/dist/backend/llvm/array-search.js.map +1 -0
- package/dist/backend/llvm/array-search.test.d.ts +1 -0
- package/dist/backend/llvm/array-search.test.js +72 -0
- package/dist/backend/llvm/array-search.test.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.d.ts +12 -1
- package/dist/backend/llvm/call-lifetimes.js +41 -11
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +85 -1
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/classes.js +87 -36
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +6 -1
- package/dist/backend/llvm/common.js +8 -1
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.d.ts +5 -0
- package/dist/backend/llvm/dense-array-access.js +3 -3
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +44 -1
- package/dist/backend/llvm/dyn.js +251 -36
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +77 -14
- package/dist/backend/llvm/emitter.js +461 -108
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +26 -3
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +52 -1
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +9 -0
- package/dist/backend/llvm/expr-bytes.js +169 -63
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.js +16 -2
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +3 -1
- package/dist/backend/llvm/expr-calls.js +57 -2
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.js +57 -19
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +19 -8
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +28 -30
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +8 -4
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +35 -32
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +13 -2
- package/dist/backend/llvm/expr-stream-callbacks.js +80 -5
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/inline-unions.d.ts +48 -0
- package/dist/backend/llvm/inline-unions.js +134 -0
- package/dist/backend/llvm/inline-unions.js.map +1 -0
- package/dist/backend/llvm/inline-unions.test.d.ts +1 -0
- package/dist/backend/llvm/inline-unions.test.js +124 -0
- package/dist/backend/llvm/inline-unions.test.js.map +1 -0
- package/dist/backend/llvm/integer-remainder.d.ts +28 -5
- package/dist/backend/llvm/integer-remainder.js +80 -9
- package/dist/backend/llvm/integer-remainder.js.map +1 -1
- package/dist/backend/llvm/intern-tables.test.d.ts +1 -0
- package/dist/backend/llvm/intern-tables.test.js +77 -0
- package/dist/backend/llvm/intern-tables.test.js.map +1 -0
- package/dist/backend/llvm/lib-datagram.js +10 -0
- package/dist/backend/llvm/lib-datagram.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +255 -29
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +176 -7
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +25 -6
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +2 -2
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.d.ts +5 -0
- package/dist/backend/llvm/lib-shared.js +212 -1
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +184 -0
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/lib-test.js +9 -0
- package/dist/backend/llvm/lib-test.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +7 -3
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +6 -3
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.d.ts +2 -0
- package/dist/backend/llvm/local-union-storage.js +5 -0
- package/dist/backend/llvm/local-union-storage.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +1 -0
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
- package/dist/backend/llvm/loop-array-borrows.d.ts +8 -2
- package/dist/backend/llvm/loop-array-borrows.js +93 -13
- package/dist/backend/llvm/loop-array-borrows.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.d.ts +24 -0
- package/dist/backend/llvm/map-number-lookup.js +88 -0
- package/dist/backend/llvm/map-number-lookup.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.test.d.ts +1 -0
- package/dist/backend/llvm/map-number-lookup.test.js +158 -0
- package/dist/backend/llvm/map-number-lookup.test.js.map +1 -0
- package/dist/backend/llvm/map-read-lifetimes.d.ts +9 -0
- package/dist/backend/llvm/map-read-lifetimes.js +90 -1
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +129 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/publish.d.ts +9 -0
- package/dist/backend/llvm/publish.js +25 -4
- package/dist/backend/llvm/publish.js.map +1 -1
- package/dist/backend/llvm/record-results.d.ts +8 -5
- package/dist/backend/llvm/record-results.js +20 -12
- package/dist/backend/llvm/record-results.js.map +1 -1
- package/dist/backend/llvm/reference-effects.js +13 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-writes.js +19 -2
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/regions.d.ts +5 -1
- package/dist/backend/llvm/regions.js +24 -10
- package/dist/backend/llvm/regions.js.map +1 -1
- package/dist/backend/llvm/serialized-ir-emission.test.js +2 -0
- package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
- package/dist/backend/llvm/shapes.d.ts +56 -10
- package/dist/backend/llvm/shapes.js +178 -39
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +61 -3
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/stack-objects.js +16 -4
- package/dist/backend/llvm/stack-objects.js.map +1 -1
- package/dist/backend/llvm/stack-objects.test.js +3 -0
- package/dist/backend/llvm/stack-objects.test.js.map +1 -1
- package/dist/backend/llvm/string-reads.js +2 -2
- package/dist/backend/llvm/string-reads.js.map +1 -1
- package/dist/backend/llvm/string-slices.js +2 -2
- package/dist/backend/llvm/string-slices.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +11 -0
- package/dist/backend/llvm/walkers.js +106 -10
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/may-throw.js +13 -4
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +5 -2
- package/dist/backend/native/executable.js +27 -8
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +2 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native-codegen-core.d.ts +4 -4
- package/dist/backend/native-codegen-core.js +4 -6
- package/dist/backend/native-codegen-core.js.map +1 -1
- package/dist/backend/native-codegen.test.js +7 -8
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +3 -0
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +1 -1
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/publication.js +3 -1
- 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-targets.test.js +2 -1
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +2 -1
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/target-diagnostics.js +11 -1
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +4 -1
- package/dist/backend/target-diagnostics.test.js.map +1 -1
- package/dist/backend/warm-cache.js +1 -0
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/compat/fetch-profile.js +4 -4
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/contracts/check.js +2 -0
- package/dist/contracts/check.js.map +1 -1
- package/dist/coverage/report.js +1 -1
- package/dist/coverage/report.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +6 -5
- package/dist/diagnostics/diagnostic.js +7 -6
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +1 -0
- package/dist/executable/executable-cache.js +1 -0
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +1 -0
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/frontend/builtin-modules.d.ts +1 -1
- package/dist/frontend/builtin-modules.js +1 -0
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/comptime-node.js +2 -2
- package/dist/frontend/comptime-node.js.map +1 -1
- package/dist/frontend/experimental-import.d.ts +5 -1
- package/dist/frontend/experimental-import.js +28 -3
- package/dist/frontend/experimental-import.js.map +1 -1
- package/dist/frontend/lowering/assert-instances.d.ts +38 -0
- package/dist/frontend/lowering/assert-instances.js +269 -0
- package/dist/frontend/lowering/assert-instances.js.map +1 -0
- package/dist/frontend/lowering/binding-analysis.d.ts +1 -1
- package/dist/frontend/lowering/binding-analysis.js +1 -1
- package/dist/frontend/lowering/builtins/arguments.d.ts +4 -0
- package/dist/frontend/lowering/builtins/arguments.js +8 -4
- package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
- package/dist/frontend/lowering/builtins/blob.d.ts +20 -0
- package/dist/frontend/lowering/builtins/blob.js +167 -0
- package/dist/frontend/lowering/builtins/blob.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process-async.d.ts +2 -2
- package/dist/frontend/lowering/builtins/child-process-async.js +2 -2
- package/dist/frontend/lowering/builtins/child-process-methods.js +1 -1
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js +1 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
- package/dist/frontend/lowering/builtins/compression.d.ts +18 -0
- package/dist/frontend/lowering/builtins/compression.js +178 -4
- package/dist/frontend/lowering/builtins/compression.js.map +1 -1
- package/dist/frontend/lowering/builtins/constants.js +7 -2
- package/dist/frontend/lowering/builtins/constants.js.map +1 -1
- package/dist/frontend/lowering/builtins/crypto.d.ts +6 -0
- package/dist/frontend/lowering/builtins/crypto.js +526 -121
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
- package/dist/frontend/lowering/builtins/errors.js +23 -0
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +10 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +89 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.d.ts +16 -7
- package/dist/frontend/lowering/builtins/filesystem.js +97 -15
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-glob.d.ts +23 -0
- package/dist/frontend/lowering/builtins/fs-glob.js +224 -0
- package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -0
- package/dist/frontend/lowering/builtins/key-object.d.ts +13 -0
- package/dist/frontend/lowering/builtins/key-object.js +56 -0
- package/dist/frontend/lowering/builtins/key-object.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-calls.js +44 -11
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/performance.d.ts +25 -3
- package/dist/frontend/lowering/builtins/performance.js +340 -5
- package/dist/frontend/lowering/builtins/performance.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.d.ts +2 -2
- package/dist/frontend/lowering/builtins/process.js +107 -14
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/properties.d.ts +0 -7
- package/dist/frontend/lowering/builtins/properties.js +39 -11
- package/dist/frontend/lowering/builtins/properties.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.d.ts +23 -8
- package/dist/frontend/lowering/builtins/readline.js +266 -90
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/timers.d.ts +3 -0
- package/dist/frontend/lowering/builtins/timers.js +109 -23
- package/dist/frontend/lowering/builtins/timers.js.map +1 -1
- package/dist/frontend/lowering/builtins/url.d.ts +8 -0
- package/dist/frontend/lowering/builtins/url.js +36 -0
- package/dist/frontend/lowering/builtins/url.js.map +1 -1
- package/dist/frontend/lowering/call-arguments.js +1 -1
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.js +26 -2
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +2 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +171 -13
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-protocol-dispatch.d.ts +45 -0
- package/dist/frontend/lowering/class-protocol-dispatch.js +516 -0
- package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -0
- package/dist/frontend/lowering/coercions/structural-plans.js +2 -1
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +3 -3
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/collation-repertoire.js +6 -5
- package/dist/frontend/lowering/collation-repertoire.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.js +4 -7
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.d.ts +0 -7
- package/dist/frontend/lowering/containers/array-methods.js +43 -2
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.js +38 -26
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/for-of.d.ts +1 -1
- package/dist/frontend/lowering/containers/for-of.js +5 -1
- package/dist/frontend/lowering/containers/for-of.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/crypto-tables.d.ts +3 -3
- package/dist/frontend/lowering/crypto-tables.js +77 -12
- package/dist/frontend/lowering/crypto-tables.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +10 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +16 -12
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +2 -2
- package/dist/frontend/lowering/generic-functions.js +2 -2
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/http2-constants.js +1 -1
- package/dist/frontend/lowering/intern-tables.d.ts +13 -0
- package/dist/frontend/lowering/intern-tables.js +536 -0
- package/dist/frontend/lowering/intern-tables.js.map +1 -0
- package/dist/frontend/lowering/lower-array-sort.d.ts +12 -1
- package/dist/frontend/lowering/lower-array-sort.js +561 -191
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.test.js +4 -2
- package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +702 -63
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.d.ts +6 -3
- package/dist/frontend/lowering/lower-async-iteration.js +259 -4
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +118 -12
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +11 -2
- package/dist/frontend/lowering/lower-classes.js +76 -9
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +1 -1
- package/dist/frontend/lowering/lower-comptime.js +4 -4
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.js +77 -52
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-event-target.d.ts +63 -0
- package/dist/frontend/lowering/lower-event-target.js +362 -0
- package/dist/frontend/lowering/lower-event-target.js.map +1 -0
- package/dist/frontend/lowering/lower-expando.js +2 -2
- package/dist/frontend/lowering/lower-exprs.js +124 -22
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +6 -0
- package/dist/frontend/lowering/lower-inspect.js +240 -49
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.js +1 -1
- package/dist/frontend/lowering/lower-mock.d.ts +11 -0
- package/dist/frontend/lowering/lower-mock.js +504 -0
- package/dist/frontend/lowering/lower-mock.js.map +1 -0
- package/dist/frontend/lowering/lower-modules.d.ts +1 -1
- package/dist/frontend/lowering/lower-modules.js +14 -3
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +2 -2
- package/dist/frontend/lowering/lower-namespaces.js +2 -2
- package/dist/frontend/lowering/lower-server.d.ts +3 -0
- package/dist/frontend/lowering/lower-server.js +419 -44
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.d.ts +7 -1
- package/dist/frontend/lowering/lower-stdlib.js +10 -3
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +2 -2
- package/dist/frontend/lowering/lower-stmts.js +69 -14
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +10 -6
- package/dist/frontend/lowering/lower-stream.js +1020 -49
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-test.js +86 -8
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.js +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +45 -5
- package/dist/frontend/lowering/lowerer.js +317 -48
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/native-ffi.js +2 -2
- package/dist/frontend/lowering/native-ffi.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.d.ts +6 -0
- package/dist/frontend/lowering/pairs-snapshot.js +49 -0
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-records.d.ts +115 -0
- package/dist/frontend/lowering/runtime-optional-records.js +715 -0
- package/dist/frontend/lowering/runtime-optional-records.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-records.test.d.ts +1 -0
- package/dist/frontend/lowering/runtime-optional-records.test.js +175 -0
- package/dist/frontend/lowering/runtime-optional-records.test.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +11 -3
- package/dist/frontend/lowering/surfaces.js +334 -37
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/zlib-constants.d.ts +1 -0
- package/dist/frontend/lowering/zlib-constants.js +181 -0
- package/dist/frontend/lowering/zlib-constants.js.map +1 -0
- package/dist/frontend/mock-shapes.d.ts +10 -0
- package/dist/frontend/mock-shapes.js +76 -0
- package/dist/frontend/mock-shapes.js.map +1 -0
- package/dist/frontend/module-syntax.d.ts +1 -1
- package/dist/frontend/module-syntax.js +1 -1
- package/dist/frontend/npm-static-prune.js +1 -1
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-syntax.js +4 -3
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
- package/dist/frontend/pipeline.js +6 -4
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/program.d.ts +3 -3
- package/dist/frontend/program.js +25 -18
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/resolve.d.ts +4 -0
- package/dist/frontend/resolve.js +15 -1
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/ts7/adapter.js +1 -1
- package/dist/frontend/ts7/ast-bytes.d.ts +1 -1
- package/dist/frontend/ts7/ast-bytes.js +1 -1
- package/dist/frontend/ts7/semantic-json.d.ts +1 -1
- package/dist/frontend/ts7/semantic-json.js +1 -1
- package/dist/frontend/ts7/semantic-json.js.map +1 -1
- package/dist/frontend/ts7/world-check.js +1 -1
- package/dist/frontend/tsc-codes.js +3 -2
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +21 -1
- package/dist/frontend/type-mapper.js +245 -27
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +12 -6
- package/dist/ir/analysis.js +26 -10
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/analysis.test.js +15 -3
- package/dist/ir/analysis.test.js.map +1 -1
- package/dist/ir/builtin-effects.js +115 -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 +438 -46
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/int32-slots.js +1 -0
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/ir.d.ts +84 -17
- package/dist/ir/ir.js +54 -1
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +1 -0
- package/dist/ir/runtime-features.js +111 -7
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/serialize.js +1 -1
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/traverse.js +1 -0
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +295 -14
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +60 -0
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/fence-eval.d.ts +1 -1
- package/dist/library/fence-eval.js +5 -4
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/ir-policy.js +11 -4
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/library/library-profile.js +13 -13
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/prepare.js +1 -1
- package/dist/library/prepare.js.map +1 -1
- package/dist/library/sidecar.js +3 -3
- package/dist/library/sidecar.js.map +1 -1
- package/dist/native/cli.js +1 -0
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.js +1 -3
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/prepare.js +4 -2
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/sanitizer.test.js +1 -0
- package/dist/native/sanitizer.test.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +1279 -221
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { dynUndefinedExpr, numLit, varRef } from "../../ir/build.js";
|
|
2
|
+
import { lowerEventObjectPropertyWrite } from "./lower-event-target.js";
|
|
2
3
|
import { lowerDynObjectLiteral } from "./expressions/object-literals.js";
|
|
3
4
|
import { importMetaBindingSource } from "./import-meta.js";
|
|
4
5
|
import { iteratorCanStep, iteratorValue } from "./iterator-consumption.js";
|
|
@@ -38,8 +39,11 @@ import { isClassCallback, lowerClassCallbackAssign } from "./class-callbacks.js"
|
|
|
38
39
|
import { classForInHasKey, classPropertiesHelper } from "./class-dynamic-dispatch.js";
|
|
39
40
|
import { genericIfaceBindingKeepsClass } from "./lower-classes.js";
|
|
40
41
|
import { lowerStreamUnderscoreAssign, streamClassAliasDecl } from "./lower-stream.js";
|
|
41
|
-
import {
|
|
42
|
+
import { staticAssertInstanceDecl } from "./assert-instances.js";
|
|
43
|
+
import { lowerHttpResPropertyAssignment, lowerHttpServerTimeoutAssignment, lowerNetServerMaxConnectionsAssignment, lowerServerCloseOverrideAssignment, } from "./lower-server.js";
|
|
42
44
|
import { lowerUrlAssignment } from "./builtins/url.js";
|
|
45
|
+
import { isFspGlobCall, lowerFspGlobForAwait } from "./builtins/fs-glob.js";
|
|
46
|
+
import { isTimersPromisesIntervalCall } from "./builtins/timers.js";
|
|
43
47
|
import { isNativeFfiRequire, builtinMemberRequireDecl, builtinNamespaceDestructureModuleOf, createRequireBindingDecl, createRequireCalleeFileOf, createRequireNamespaceDecl, createRequireProgramModuleDecl, createRequireProgramModuleOf, } from "./builtins/module-bindings.js";
|
|
44
48
|
import { lowerNodeModuleCall } from "./builtins/module-resolution.js";
|
|
45
49
|
import { registerBuiltinCallableAlias } from "./builtins/callable-aliases.js";
|
|
@@ -59,6 +63,7 @@ import { probeNodeRequireRefusal } from "../npm.js";
|
|
|
59
63
|
import { constituentTypes } from "../ts7/checker.js";
|
|
60
64
|
import { npmStaticPackageOfPath } from "../npm-static.js";
|
|
61
65
|
import { fenceNodeModuleMutation } from "./lower-node-module.js";
|
|
66
|
+
import { fencePerfEntryKeyWalk } from "./builtins/performance.js";
|
|
62
67
|
/** An opted package's directly-returned empty array may take the function's
|
|
63
68
|
* explicit static return element type. This is the common JS accumulator
|
|
64
69
|
* shape (`const result = []; result.push(value); return result`) and is
|
|
@@ -524,7 +529,7 @@ export function lowerStmts(lowerer, stmts) {
|
|
|
524
529
|
// only — a capture wrapper in force means collection owns the
|
|
525
530
|
// report). The statement's diagnostics move OFF the build and
|
|
526
531
|
// onto the fence: executing the statement throws the first
|
|
527
|
-
// one's message, so
|
|
532
|
+
// one's message, so no diagnostic is dropped — either
|
|
528
533
|
// the statement never runs (Node parity: the construct never
|
|
529
534
|
// executed) or it reports exactly what the compile fence would
|
|
530
535
|
// have said.
|
|
@@ -805,7 +810,7 @@ function varBindingType(lowerer, nameNode) {
|
|
|
805
810
|
* the whole enclosing function body regardless of block position, and
|
|
806
811
|
* every same-name `var` in that function is the SAME binding (tsc merges
|
|
807
812
|
* the declarations into one symbol, so symbol-keyed resolution gets the
|
|
808
|
-
* merge
|
|
813
|
+
* merge automatically). This mints the one function-scoped slot on first
|
|
809
814
|
* encounter: an IrLocal registered in the function's ROOT scope frame
|
|
810
815
|
* (never popped by block exits) whose `varDecl` is PUSHED into the
|
|
811
816
|
* function-root statement list at the current position — everything
|
|
@@ -871,8 +876,8 @@ function hoistVarBinding(lowerer, symbol, nameNode) {
|
|
|
871
876
|
* bindings (the dyn undefined). Everything else returns false
|
|
872
877
|
* and the reference lands on the named fence in rejectUnresolvedSymbol:
|
|
873
878
|
* a slot of a narrower type has no bit pattern for the `undefined` Node
|
|
874
|
-
* would yield if the capture ran early, and guessing "it won't"
|
|
875
|
-
*
|
|
879
|
+
* would yield if the capture ran early, and guessing "it won't" would
|
|
880
|
+
* produce wrong output without an error. */
|
|
876
881
|
export function predeclareForwardVar(lowerer, symbol) {
|
|
877
882
|
// Module-scope vars already have their global storage.
|
|
878
883
|
if (lowerer.globalsBySymbol.has(symbol))
|
|
@@ -2119,7 +2124,7 @@ export function lowerBindingPattern(lowerer, pattern, srcRef, srcType, isLet, ou
|
|
|
2119
2124
|
// reads (base-chain accessors and setter-only rejections resolve
|
|
2120
2125
|
// identically). Rest elements, methods, and names no class on the
|
|
2121
2126
|
// chain declares keep named fences (a detached method would lose its
|
|
2122
|
-
// receiver
|
|
2127
|
+
// receiver without an error; JS binds the prototype function).
|
|
2123
2128
|
if (srcType.kind === "object") {
|
|
2124
2129
|
const info = lowerer.classes.get(srcType.className);
|
|
2125
2130
|
if (!info)
|
|
@@ -3036,12 +3041,12 @@ function objectRestValue(lowerer, el, srcRef, srcType, shape) {
|
|
|
3036
3041
|
* members (methods and accessors stay behind; the checker's rest type
|
|
3037
3042
|
* excludes them too, so the two sides agree). The packed record must
|
|
3038
3043
|
* agree with the checker's rest type field-for-field — a non-public
|
|
3039
|
-
* field IS copied by JS but the rest type cannot name it (
|
|
3044
|
+
* field IS copied by JS but the rest type cannot name it (undiagnosed
|
|
3040
3045
|
* divergence; fence) — and key-for-key in ORDER: the packed shape's
|
|
3041
3046
|
* JSON/Object.keys order is first-seen global metadata, and a checker
|
|
3042
3047
|
* rest type that reorders (own-before-inherited) would make the
|
|
3043
3048
|
* enumeration surfaces diverge from Node, so it fences instead of
|
|
3044
|
-
*
|
|
3049
|
+
* reordering. Runtime-provided chains (Error/EventEmitter/
|
|
3045
3050
|
* stream roots) carry runtime-internal state no record copy can
|
|
3046
3051
|
* reproduce — fenced. ES-#private fields are own but non-enumerable:
|
|
3047
3052
|
* JS skips them and so does the packing. */
|
|
@@ -3051,7 +3056,7 @@ function classInstanceRestValue(lowerer, blame, srcRef, srcType, info, consumed,
|
|
|
3051
3056
|
lowerer.unsupported("SC1031", blame, "rest bindings over class instances with symbol-keyed fields (the copied symbols have no record form)");
|
|
3052
3057
|
}
|
|
3053
3058
|
for (let c = info; c; c = c.base) {
|
|
3054
|
-
if (c.builtinError || c.builtinEmitter || c.builtinStream) {
|
|
3059
|
+
if (c.builtinError || c.builtinEmitter || c.builtinStream || c.builtinEventTarget) {
|
|
3055
3060
|
lowerer.unsupported("SC1031", blame, "rest bindings over runtime-provided class instances (Error/EventEmitter/stream internals have no record form)");
|
|
3056
3061
|
}
|
|
3057
3062
|
}
|
|
@@ -3455,6 +3460,12 @@ export function lowerVarDecl(lowerer, decl, isLet) {
|
|
|
3455
3460
|
// builtinStreamInfoOf's alias following).
|
|
3456
3461
|
if (!isLet && streamClassAliasDecl(lowerer, decl.name, decl.initializer))
|
|
3457
3462
|
return null;
|
|
3463
|
+
// `const a = new Assert(<literal options>)` used only for method calls:
|
|
3464
|
+
// a static instance whose calls lower with its options (assert-instances.ts);
|
|
3465
|
+
// the declaration emits nothing (collectGlobals skipped its global by the
|
|
3466
|
+
// same test).
|
|
3467
|
+
if (!isLet && staticAssertInstanceDecl(lowerer, decl.name, decl.initializer) !== null)
|
|
3468
|
+
return null;
|
|
3458
3469
|
// `const process = globalThis.process` — a stdlib-global snapshot:
|
|
3459
3470
|
// alias plumbing (see stdlibGlobalAliasDecl), no storage, no code.
|
|
3460
3471
|
const stableStdlibAlias = !isLet ||
|
|
@@ -4080,6 +4091,9 @@ function annotatedInitializerTarget(lowerer, name) {
|
|
|
4080
4091
|
function inferredOptionalRecordType(lowerer, decl, declared, actual) {
|
|
4081
4092
|
if (decl.type || hasJsTypeAnnotation(decl))
|
|
4082
4093
|
return declared;
|
|
4094
|
+
const symbol = ts.isIdentifier(decl.name) ? lowerer.resolveValueSymbol(decl.name) : undefined;
|
|
4095
|
+
if (symbol && lowerer.runtimeOptionalRecordsKeptDeclared.has(symbol))
|
|
4096
|
+
return declared;
|
|
4083
4097
|
if (lowerer.isRuntimeOptionalRecordVariant(actual, declared))
|
|
4084
4098
|
return actual;
|
|
4085
4099
|
if (declared.kind !== "record" || actual.kind !== "record")
|
|
@@ -4873,7 +4887,7 @@ function lowerCjsExportStatement(lowerer, cjs) {
|
|
|
4873
4887
|
// through to the declaration) — EXACT for const/function bindings, a
|
|
4874
4888
|
// live-binding lie for `let`: Node copies the VALUE into the table at
|
|
4875
4889
|
// this statement, so later reassignments are invisible to importers.
|
|
4876
|
-
// Mutable bindings fence instead of diverging
|
|
4890
|
+
// Mutable bindings fence instead of diverging from Node.
|
|
4877
4891
|
const fenceMutable = (nameNode) => {
|
|
4878
4892
|
const sym = lowerer.resolveValueSymbol(nameNode);
|
|
4879
4893
|
const g = sym ? lowerer.globalsBySymbol.get(sym) : undefined;
|
|
@@ -5214,6 +5228,12 @@ export function lowerExprStatement(lowerer, expr) {
|
|
|
5214
5228
|
return lowerer.lowerElementWrite(expr);
|
|
5215
5229
|
if (ts.isPropertyAccessExpression(expr.left)) {
|
|
5216
5230
|
fenceNodeModuleMutation(lowerer, expr.left, "assignment");
|
|
5231
|
+
// The writable Event accessors on Event subclass instances.
|
|
5232
|
+
{
|
|
5233
|
+
const eventWrite = lowerEventObjectPropertyWrite(lowerer, expr.left, expr.right);
|
|
5234
|
+
if (eventWrite)
|
|
5235
|
+
return { kind: "exprStmt", expr: eventWrite, loc: locOf(expr) };
|
|
5236
|
+
}
|
|
5217
5237
|
// Native arrays have a writable length property. The runtime grows
|
|
5218
5238
|
// by creating holes and truncates with RC-aware removal; keep this
|
|
5219
5239
|
// as a statement operation so invalid lengths can use the normal
|
|
@@ -5232,7 +5252,7 @@ export function lowerExprStatement(lowerer, expr) {
|
|
|
5232
5252
|
// `process.env.NAME = v` — setenv(3): later env reads and spawned
|
|
5233
5253
|
// children observe the write, exactly Node. Values are strings
|
|
5234
5254
|
// (Node stringifies everything; a non-string RHS fences instead
|
|
5235
|
-
// of
|
|
5255
|
+
// of diverging from Node). The computed-key form lands in
|
|
5236
5256
|
// lowerElementWrite.
|
|
5237
5257
|
if (lowerer.isProcessEnv(expr.left.expression) && !expr.left.questionDotToken) {
|
|
5238
5258
|
const loc = locOf(expr);
|
|
@@ -5279,6 +5299,12 @@ export function lowerExprStatement(lowerer, expr) {
|
|
|
5279
5299
|
if (timeoutProp)
|
|
5280
5300
|
return timeoutProp;
|
|
5281
5301
|
}
|
|
5302
|
+
// server.maxConnections — net.Server's connection cap.
|
|
5303
|
+
{
|
|
5304
|
+
const capProp = lowerNetServerMaxConnectionsAssignment(lowerer, expr.left, expr.right, locOf(expr));
|
|
5305
|
+
if (capProp)
|
|
5306
|
+
return capProp;
|
|
5307
|
+
}
|
|
5282
5308
|
// `N.x = v` — a namespace-qualified write: exported `let`
|
|
5283
5309
|
// members are module globals, so the qualified spelling assigns
|
|
5284
5310
|
// exactly like the bare one inside the namespace body.
|
|
@@ -5293,7 +5319,7 @@ export function lowerExprStatement(lowerer, expr) {
|
|
|
5293
5319
|
// own name: the field's module global assigns. Writes through a
|
|
5294
5320
|
// SUBCLASS name (`D.x = v` creates an OWN property on D in JS —
|
|
5295
5321
|
// different storage) and through class VALUES (the same dynamic
|
|
5296
|
-
// story) are named fences
|
|
5322
|
+
// story) are named fences instead of an incorrect global write.
|
|
5297
5323
|
if (!expr.left.questionDotToken &&
|
|
5298
5324
|
(ts.isIdentifier(expr.left.expression) ||
|
|
5299
5325
|
expr.left.expression.kind === ts.SyntaxKind.ThisKeyword)) {
|
|
@@ -5447,6 +5473,20 @@ export function lowerExprStatement(lowerer, expr) {
|
|
|
5447
5473
|
loc,
|
|
5448
5474
|
};
|
|
5449
5475
|
}
|
|
5476
|
+
// process.title = name: libuv's uv_set_process_title (the
|
|
5477
|
+
// runtime truncates to the original argument area on POSIX).
|
|
5478
|
+
if (flag === "title") {
|
|
5479
|
+
const loc = locOf(expr);
|
|
5480
|
+
const value = lowerer.lowerExpr(expr.right);
|
|
5481
|
+
if (value.type.kind !== "string") {
|
|
5482
|
+
lowerer.noLowering(`process.title writes of '${lowerer.fmt(value.type)}' values`, expr.right, "assign a string");
|
|
5483
|
+
}
|
|
5484
|
+
return {
|
|
5485
|
+
kind: "exprStmt",
|
|
5486
|
+
expr: { kind: "libCall", fn: "process.setTitle", args: [value], type: VOID, loc },
|
|
5487
|
+
loc,
|
|
5488
|
+
};
|
|
5489
|
+
}
|
|
5450
5490
|
}
|
|
5451
5491
|
// `r._read = fn` / `w._write = fn` (and the other underscore
|
|
5452
5492
|
// methods) on a runtime-stream-rooted receiver: Node's
|
|
@@ -6677,10 +6717,24 @@ export function lowerForOf(lowerer, stmt) {
|
|
|
6677
6717
|
// A synchronous array iterator is also valid in `for await`. Its values
|
|
6678
6718
|
// take the async-from-sync path below; other async sources retain their
|
|
6679
6719
|
// dedicated request protocols.
|
|
6720
|
+
if (stmt.awaitModifier) {
|
|
6721
|
+
let head = stmt.expression;
|
|
6722
|
+
while (ts.isParenthesizedExpression(head))
|
|
6723
|
+
head = head.expression;
|
|
6724
|
+
if (isFspGlobCall(lowerer, head))
|
|
6725
|
+
return lowerFspGlobForAwait(lowerer, stmt, head);
|
|
6726
|
+
if (isTimersPromisesIntervalCall(lowerer, head)) {
|
|
6727
|
+
const iterable = lowerer.lowerExpr(head);
|
|
6728
|
+
if (iterable.type.kind === "generator" && iterable.type.async) {
|
|
6729
|
+
return lowerForAwaitGenerator(lowerer, stmt, iterable, labels);
|
|
6730
|
+
}
|
|
6731
|
+
}
|
|
6732
|
+
}
|
|
6680
6733
|
const awaitArray = !!stmt.awaitModifier && lowerer.mapTypeOf(lowerer.typeOf(stmt.expression))?.kind === "array";
|
|
6681
6734
|
if (stmt.awaitModifier && !awaitArray) {
|
|
6682
6735
|
{
|
|
6683
|
-
const genT = lowerer.
|
|
6736
|
+
const genT = lowerer.stageSourceType(stmt.expression) ??
|
|
6737
|
+
lowerer.mapTypeOf(lowerer.typeOf(stmt.expression));
|
|
6684
6738
|
if (genT?.kind === "generator" && genT.async) {
|
|
6685
6739
|
const iterable = lowerer.lowerExpr(stmt.expression);
|
|
6686
6740
|
if (iterable.type.kind === "generator" && iterable.type.async) {
|
|
@@ -8341,7 +8395,8 @@ function lowerForIn(lowerer, stmt) {
|
|
|
8341
8395
|
// Accessor-carrying shapes: Node's for-in visits the accessor
|
|
8342
8396
|
// NAMES (own enumerable properties) — the static key walk omits
|
|
8343
8397
|
// them (accessor slots live outside declaredOrder), so the loop
|
|
8344
|
-
// fences rather than
|
|
8398
|
+
// fences rather than skip keys.
|
|
8399
|
+
fencePerfEntryKeyWalk(lowerer, receiver.type, stmt.expression, "for-in");
|
|
8345
8400
|
if (shapeHasAccessorSlots(rShape)) {
|
|
8346
8401
|
lowerer.unsupported("SC1090", stmt.expression, "for-in over a shape carrying get/set accessor properties (Node visits the accessor names — the static key walk cannot; read the properties explicitly)");
|
|
8347
8402
|
}
|