@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
|
@@ -112,10 +112,19 @@ export interface ClassInfo {
|
|
|
112
112
|
* the base chain. The value names which SIDES the class carries. User
|
|
113
113
|
* `extends` of these classes is fenced at the declaration (phase 1). */
|
|
114
114
|
builtinStream?: "r" | "w" | "rw";
|
|
115
|
+
/** Runtime-provided EventTarget ("target") or Event ("event") base of
|
|
116
|
+
* compiled subclasses (lower-event-target.ts): no bodies lower, super()
|
|
117
|
+
* becomes an event.* libCall, and the inherited members lower through
|
|
118
|
+
* lower-event-target.ts over any class rooted here. Subclass structs
|
|
119
|
+
* embed the runtime prefix. */
|
|
120
|
+
builtinEventTarget?: "target" | "event";
|
|
115
121
|
/** The synthetic LifetimeRegion class (@scriptc/experimental,
|
|
116
122
|
* lifetime-regions.ts): its constructor is synthesized with the class,
|
|
117
123
|
* and its methods lower at their call sites. */
|
|
118
124
|
lifetimeRegion?: true;
|
|
125
|
+
/** The synthetic InternTable class (@scriptc/experimental,
|
|
126
|
+
* intern-tables.ts): synthesized like lifetimeRegion. */
|
|
127
|
+
internTable?: true;
|
|
119
128
|
/** This class's own `emit` override in the FORWARDING SHAPE (the one
|
|
120
129
|
* EventEmitter member a subclass may re-declare): never in `methods` —
|
|
121
130
|
* emit calls keep routing through the emitter spoke, which lowers the
|
|
@@ -663,8 +672,8 @@ export declare function classMemberNameOf(lowerer: Lowerer, name: ts.PropertyNam
|
|
|
663
672
|
* `undefined` is falsy forever (Node loops forever too; corpus
|
|
664
673
|
* iterators of that shape are deliberately infinite). Iterator classes
|
|
665
674
|
* declaring `return`/`throw` members stay out — the desugars below
|
|
666
|
-
* never call IteratorClose, and
|
|
667
|
-
* would drop user cleanup. Null when the shape doesn't hold — callers
|
|
675
|
+
* never call IteratorClose, and skipping a declared return() without a
|
|
676
|
+
* diagnostic would drop user cleanup. Null when the shape doesn't hold — callers
|
|
668
677
|
* keep their fences. */
|
|
669
678
|
export interface ClassIteratorInfo {
|
|
670
679
|
/** The `[Symbol.iterator]()` call's receiver class + its declarer. */
|
|
@@ -8,6 +8,7 @@ import { InternalCompilerError } from "../../errors.js";
|
|
|
8
8
|
* accessor access, upcasts, `new` expressions, and the builtin Error
|
|
9
9
|
* hierarchy registration. */
|
|
10
10
|
import * as ts from "../ts7/adapter.js";
|
|
11
|
+
import { lowerZlibStreamNew, zlibStreamModeOf } from "./builtins/compression.js";
|
|
11
12
|
import { BOOL, DATE_T, DYN, F64, bytesOf, RUNTIME_EMITTER_CLASS, RUNTIME_ERROR_CLASSES, RUNTIME_STREAM_CLASSES, STRING, UNDEFINED_T, VOID, arrayOf, isSupportedMapKey, isSupportedMapValue, isSupportedSetElem, isUnitType, typeEquals, } from "../../ir/ir.js";
|
|
12
13
|
import { genericCallInstance, implicitAnyParamSymbolsOf, implicitCallInstance, implicitMonoFile, } from "./generic-functions.js";
|
|
13
14
|
import { extendInstantiationPath, MAX_INSTANTIATION_RECURSION, } from "./instantiation-path.js";
|
|
@@ -18,6 +19,7 @@ import { omittedArgFor } from "./call-arguments.js";
|
|
|
18
19
|
import { isGenericCallableMemberType, jsOpenObjectType, typeKey, withUnitArm, } from "../type-mapper.js";
|
|
19
20
|
import { cjsClassExprWholeExportOf, isCjsJsFile, isJsSourceFile, isModuleExportsAccess, isNodeTypesPath, locOf, } from "../program.js";
|
|
20
21
|
import { PoisonError, dynFallbackType, newFnCtx, own } from "./lowerer.js";
|
|
22
|
+
import { isAssertClassNew } from "./assert-instances.js";
|
|
21
23
|
import { lowerArrayConstructor } from "./containers/array-construction.js";
|
|
22
24
|
import { lowerMapSeedNew, lowerSetSeedNew } from "./containers/collection-methods.js";
|
|
23
25
|
import { lowerObjectConstructor } from "./containers/indexed-objects.js";
|
|
@@ -28,6 +30,7 @@ import { lowerTextCodecNew } from "./builtins/text-codecs.js";
|
|
|
28
30
|
import { lowerWorkerNew } from "./builtins/workers.js";
|
|
29
31
|
import { unsupportedPackageValueDiag, unsupportedDiag, } from "../../diagnostics/diagnostic.js";
|
|
30
32
|
import { STREAM_API_MEMBERS, STREAM_PROP_MEMBERS, UNDERSCORE_METHODS, lowerStreamNew, lowerStreamSuperCall, streamCtorShape, } from "./lower-stream.js";
|
|
33
|
+
import { builtinEventTargetBaseOf, eventTargetApiMembers, eventTargetApiMethod, eventTargetRootOf, eventTargetSuperCall, lowerEventTargetMethodCall, } from "./lower-event-target.js";
|
|
31
34
|
import { emitOverrideShapeReason, emitSpecSuperForward, emitterRooted, lowerEmitterSuperCall, } from "./lower-event-emitter.js";
|
|
32
35
|
import { declSymbolOf } from "./lower-modules.js";
|
|
33
36
|
import { classSymbolKeyOf, classSymbolKeyOfSymbol, symbolFieldDisplayName, } from "./symbol-fields.js";
|
|
@@ -990,8 +993,8 @@ function collectClassShapeDeferring(lowerer, decl) {
|
|
|
990
993
|
// A poisoned class containing a static BLOCK or a DECORATOR must report
|
|
991
994
|
// EAGERLY: deferral's premise ("an unreached broken declaration costs
|
|
992
995
|
// nothing") fails here — Node runs the block (and calls the decorator)
|
|
993
|
-
// when the class statement evaluates, referenced or not, so
|
|
994
|
-
//
|
|
996
|
+
// when the class statement evaluates, referenced or not, so dropping the
|
|
997
|
+
// declaration without a diagnostic would drop observable side effects (the
|
|
995
998
|
// classStaticBlock13/28 miscompiles).
|
|
996
999
|
const hasDeclTimeCode = (n) => ts.isClassStaticBlockDeclaration(n) ||
|
|
997
1000
|
(n.modifiers ?? []).some((m) => m.kind === ts.SyntaxKind.Decorator);
|
|
@@ -1440,10 +1443,14 @@ mixin) {
|
|
|
1440
1443
|
if (lowerer.builtinErrorInfoOf(symbol)?.def.name === "%AggregateError") {
|
|
1441
1444
|
lowerer.unsupported("SC1090", t, "extending AggregateError (its runtime layout carries a hidden errors slot a subclass would overlap — extend Error and keep the list in a field)");
|
|
1442
1445
|
}
|
|
1446
|
+
if (lowerer.builtinErrorInfoOf(symbol)?.def.name === "%AssertionError") {
|
|
1447
|
+
lowerer.unsupported("SC1090", t, "extending AssertionError (its constructor takes an options object the subclass constructor would have to forward — extend Error, or construct AssertionError directly)");
|
|
1448
|
+
}
|
|
1443
1449
|
const named = (symbol && lowerer.classBySymbol.get(symbol)) ??
|
|
1444
1450
|
lowerer.builtinErrorInfoOf(symbol) ??
|
|
1445
1451
|
lowerer.builtinEmitterInfoOf(symbol) ??
|
|
1446
1452
|
builtinStreamInfoOf(lowerer, symbol) ??
|
|
1453
|
+
builtinEventTargetBaseOf(lowerer, t.expression) ??
|
|
1447
1454
|
// A const BINDING holding exactly one class (`const B = Animal`,
|
|
1448
1455
|
// `const B = class {…}`): the base is that class — extends
|
|
1449
1456
|
// through the alias is the declaration story (a general class
|
|
@@ -1494,7 +1501,9 @@ mixin) {
|
|
|
1494
1501
|
}
|
|
1495
1502
|
if (lowerer.collectingExprClasses.has(decl)) {
|
|
1496
1503
|
for (let parent = base; parent; parent = parent.base) {
|
|
1497
|
-
if (parent.builtinEmitter ||
|
|
1504
|
+
if (parent.builtinEmitter ||
|
|
1505
|
+
parent.builtinStream !== undefined ||
|
|
1506
|
+
parent.builtinEventTarget !== undefined) {
|
|
1498
1507
|
lowerer.unsupported("SC1090", decl, "classes extending builtin bases as values (the inherited runtime constructor has no class-value adapter)");
|
|
1499
1508
|
}
|
|
1500
1509
|
}
|
|
@@ -1792,7 +1801,7 @@ mixin) {
|
|
|
1792
1801
|
// The EventEmitter API surface is runtime-provided: a subclass
|
|
1793
1802
|
// member with one of its names would shadow behavior the runtime
|
|
1794
1803
|
// dispatches internally (meta events, once removal), so the
|
|
1795
|
-
// override is fenced
|
|
1804
|
+
// override is fenced instead of compiling to split behavior — with ONE
|
|
1796
1805
|
// exception: `emit` in the forwarding shape on a plain (non-
|
|
1797
1806
|
// stream) emitter-rooted class monomorphizes per event name
|
|
1798
1807
|
// (lower-event-emitter.ts's emit-overrides block). Stream-rooted classes
|
|
@@ -1833,6 +1842,15 @@ mixin) {
|
|
|
1833
1842
|
}
|
|
1834
1843
|
lowerer.unsupported("SC1090", memberName, `overriding the EventEmitter member '${memberName.text}' (the runtime owns the emitter surface)`);
|
|
1835
1844
|
}
|
|
1845
|
+
// The inherited EventTarget/Event members read the engine's own
|
|
1846
|
+
// state: dispatch never calls a subclass override, and the engine
|
|
1847
|
+
// never reads an own field that shadows an accessor (`type`).
|
|
1848
|
+
if (memberName &&
|
|
1849
|
+
ts.isIdentifier(memberName) &&
|
|
1850
|
+
!(ts.getCombinedModifierFlags(member) & ts.ModifierFlags.Static) &&
|
|
1851
|
+
eventTargetApiMembers(base)?.has(memberName.text)) {
|
|
1852
|
+
lowerer.unsupported("SC1090", memberName, `overriding the ${eventTargetRootOf(base) === "target" ? "EventTarget" : "Event"} member '${memberName.text}' (the runtime owns the inherited surface)`);
|
|
1853
|
+
}
|
|
1836
1854
|
// The stream surface is likewise runtime-provided on stream-rooted
|
|
1837
1855
|
// subclasses: API members (push/read/write/...) and the property
|
|
1838
1856
|
// family (readableEnded/destroyed/...) dispatch into the runtime
|
|
@@ -2775,7 +2793,7 @@ mixin) {
|
|
|
2775
2793
|
// (conditional branches, methods) would be readable before any
|
|
2776
2794
|
// assignment ran — the zeroed-memory trap a TS declaration order
|
|
2777
2795
|
// forbids via strictPropertyInitialization — so they keep a named
|
|
2778
|
-
// fence instead of a
|
|
2796
|
+
// fence instead of reading undefined without a diagnostic.
|
|
2779
2797
|
if (isJsSourceFile(decl.getSourceFile())) {
|
|
2780
2798
|
const hasAccessor = (name) => methods.has(`get:${name}`) ||
|
|
2781
2799
|
methods.has(`set:${name}`) ||
|
|
@@ -2857,8 +2875,8 @@ mixin) {
|
|
|
2857
2875
|
// representation follows the body — the field widens to the
|
|
2858
2876
|
// undefined-armed union, so the declaring assignment and
|
|
2859
2877
|
// every pre-init read carry Node's actual undefined.
|
|
2860
|
-
// Trust-but-verify: the claim
|
|
2861
|
-
//
|
|
2878
|
+
// Trust-but-verify: the claim does not narrow the runtime
|
|
2879
|
+
// value.
|
|
2862
2880
|
{
|
|
2863
2881
|
const rhsT = lowerer.typeOf(rhs);
|
|
2864
2882
|
const assignsUndef = (rhsT.flags & ts.TypeFlags.Undefined) !== 0;
|
|
@@ -2992,7 +3010,7 @@ mixin) {
|
|
|
2992
3010
|
// poisoning the class (commander's `this.required` switch
|
|
2993
3011
|
// assignment, `this.runningCommand` method assignment).
|
|
2994
3012
|
// Unmappable inferences and arm-less kinds keep the fence.
|
|
2995
|
-
// TypeScript classes keep the
|
|
3013
|
+
// TypeScript classes keep the compile-time fence too: an annotated
|
|
2996
3014
|
// program can spell `T | undefined` itself.
|
|
2997
3015
|
if (isJsSourceFile(decl.getSourceFile())) {
|
|
2998
3016
|
const original = undefArmedFieldType(lowerer, p);
|
|
@@ -3892,6 +3910,7 @@ export function classValueRef(lowerer, info, blame) {
|
|
|
3892
3910
|
}
|
|
3893
3911
|
if (lowerer.inheritsBuiltinEmitterCtor(info) ||
|
|
3894
3912
|
inheritsBuiltinStreamCtor(lowerer, info) ||
|
|
3913
|
+
eventTargetRootOf(info) !== null ||
|
|
3895
3914
|
(() => {
|
|
3896
3915
|
for (let c = info.base; c; c = c.base)
|
|
3897
3916
|
if (c.builtinEmitter || c.builtinStream !== undefined)
|
|
@@ -3988,7 +4007,7 @@ export function lowerStaticFieldRead(lowerer, expr) {
|
|
|
3988
4007
|
// A #private static resolves only through the DECLARING class's own
|
|
3989
4008
|
// name: in JS the brand lives on that one constructor object, so
|
|
3990
4009
|
// `D.#s` (a subclass receiver) throws Node's TypeError instead of
|
|
3991
|
-
// reaching up the chain —
|
|
4010
|
+
// reaching up the chain — reported as SC1090 instead of resolved.
|
|
3992
4011
|
if (found && expr.name.text.startsWith("#") && found.declarer !== info) {
|
|
3993
4012
|
lowerer.unsupported("SC1090", expr, `reading the private static '${expr.name.text}' through the subclass '${info.def.name.replace(/^%|^%m\d+\./, "")}' (JS brands the declaring class object alone — Node throws a TypeError here; spell the declaring class's name)`);
|
|
3994
4013
|
}
|
|
@@ -6421,6 +6440,8 @@ export function superCallStmt(lowerer, info, thisLocal, args, loc) {
|
|
|
6421
6440
|
loc,
|
|
6422
6441
|
};
|
|
6423
6442
|
}
|
|
6443
|
+
if (base.builtinEventTarget)
|
|
6444
|
+
return eventTargetSuperCall(lowerer, base, thisRef, args, loc);
|
|
6424
6445
|
if (base.builtinStream) {
|
|
6425
6446
|
// The SYNTHESIZED constructor of a ctor-less stream subclass:
|
|
6426
6447
|
// super() with default options (underscore methods still bind; a
|
|
@@ -6490,6 +6511,21 @@ export function lowerSuperMethodCall(lowerer, call, access) {
|
|
|
6490
6511
|
if (viaEmitter)
|
|
6491
6512
|
return viaEmitter;
|
|
6492
6513
|
}
|
|
6514
|
+
// `super.dispatchEvent(e)`, `super.preventDefault()`: the inherited
|
|
6515
|
+
// runtime members over this method's own `this` (subclasses cannot
|
|
6516
|
+
// override them, so the static answer is the runtime's).
|
|
6517
|
+
if (eventTargetApiMethod(cls.base, access.name.text)) {
|
|
6518
|
+
const thisL = lowerer.resolveThis();
|
|
6519
|
+
if (!thisL)
|
|
6520
|
+
lowerer.unsupported("SC1080", access);
|
|
6521
|
+
const thisRef = {
|
|
6522
|
+
kind: "varRef",
|
|
6523
|
+
localId: thisL.id,
|
|
6524
|
+
type: thisL.type,
|
|
6525
|
+
loc: locOf(call),
|
|
6526
|
+
};
|
|
6527
|
+
return lowerEventTargetMethodCall(lowerer, call, access, cls.base, thisRef);
|
|
6528
|
+
}
|
|
6493
6529
|
lowerer.unsupported("SC1090", access, `'super.${access.name.text}' (no base class declares it)`);
|
|
6494
6530
|
}
|
|
6495
6531
|
// tsc rejects super-access of abstract members (TS2513); defensive —
|
|
@@ -6935,6 +6971,12 @@ export function lowerNew(lowerer, expr) {
|
|
|
6935
6971
|
const streamInfoNs = builtinStreamInfoOf(lowerer, resolved);
|
|
6936
6972
|
if (streamInfoNs)
|
|
6937
6973
|
return lowerStreamNew(lowerer, expr, streamInfoNs);
|
|
6974
|
+
// `new zlib.Gzip(options?)` — the zlib stream classes.
|
|
6975
|
+
const zlibModeNs = zlibStreamModeOf(lowerer, resolved);
|
|
6976
|
+
if (zlibModeNs !== null) {
|
|
6977
|
+
const what = `new zlib.${expr.expression.name.text}`;
|
|
6978
|
+
return lowerZlibStreamNew(lowerer, expr.arguments ?? [], zlibModeNs, what, expr, loc);
|
|
6979
|
+
}
|
|
6938
6980
|
// `new N.C(...)` / `new a.Point(...)` — construction through a
|
|
6939
6981
|
// USER namespace qualifier (import= alias chains included): the
|
|
6940
6982
|
// member resolves to the registered program class, guarded by the
|
|
@@ -7095,6 +7137,26 @@ export function lowerNew(lowerer, expr) {
|
|
|
7095
7137
|
loc,
|
|
7096
7138
|
};
|
|
7097
7139
|
}
|
|
7140
|
+
// `new Assert(...)` that is not a static instance (assert-instances.ts):
|
|
7141
|
+
// the instance would be a run-time value.
|
|
7142
|
+
if (isAssertClassNew(lowerer, expr)) {
|
|
7143
|
+
lowerer.noLowering("assert.Assert instances used as values", expr, "bind `new Assert(...)` with literal options to a const and only call methods on it (`const a = new Assert({ diff: 'full' }); a.strictEqual(x, y)`)");
|
|
7144
|
+
}
|
|
7145
|
+
if (errInfo && errInfo.def.name === "%AssertionError") {
|
|
7146
|
+
// new AssertionError(options): Node validates the options object and
|
|
7147
|
+
// generates the message from operator, actual and expected.
|
|
7148
|
+
const args = expr.arguments ?? [];
|
|
7149
|
+
if (args.length > 1 || args.some(ts.isSpreadElement)) {
|
|
7150
|
+
lowerer.noLowering(`new AssertionError with this argument list`, expr);
|
|
7151
|
+
}
|
|
7152
|
+
return {
|
|
7153
|
+
kind: "libCall",
|
|
7154
|
+
fn: "assert.errorNew",
|
|
7155
|
+
args: [args[0] ? lowerer.lowerExprExpecting(args[0], DYN) : dynUndefinedExpr(loc)],
|
|
7156
|
+
type: { kind: "object", className: "%AssertionError" },
|
|
7157
|
+
loc,
|
|
7158
|
+
};
|
|
7159
|
+
}
|
|
7098
7160
|
if (errInfo && errInfo.def.name === "%AggregateError") {
|
|
7099
7161
|
const args = expr.arguments ?? [];
|
|
7100
7162
|
if (args.length > 3 || args.some(ts.isSpreadElement)) {
|
|
@@ -7140,6 +7202,11 @@ export function lowerNew(lowerer, expr) {
|
|
|
7140
7202
|
const streamInfo = builtinStreamInfoOf(lowerer, symbol);
|
|
7141
7203
|
if (streamInfo)
|
|
7142
7204
|
return lowerStreamNew(lowerer, expr, streamInfo);
|
|
7205
|
+
const zlibMode = zlibStreamModeOf(lowerer, symbol);
|
|
7206
|
+
if (zlibMode !== null) {
|
|
7207
|
+
const what = `new zlib.${symbol.name}`;
|
|
7208
|
+
return lowerZlibStreamNew(lowerer, expr.arguments ?? [], zlibMode, what, expr, loc);
|
|
7209
|
+
}
|
|
7143
7210
|
// `new URL(input)`: the WHATWG URL class (stdlib/@types provenance —
|
|
7144
7211
|
// a user's own `class URL` resolves through classBySymbol below).
|
|
7145
7212
|
// Invalid input or base throws a catchable TypeError ("Invalid URL").
|