@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
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as ts from "../../ts7/adapter.js";
|
|
2
|
+
import { type Lowerer } from "../lowerer.js";
|
|
3
|
+
import { type IrExpr } from "../../../ir/ir.js";
|
|
4
|
+
/** Whether `node` names node:crypto's KeyObject class. */
|
|
5
|
+
export declare function isKeyObjectClass(lowerer: Lowerer, node: ts.Expression): boolean;
|
|
6
|
+
/** Whether a value's checker type is node:crypto's KeyObject. */
|
|
7
|
+
export declare function isKeyObjectValue(lowerer: Lowerer, node: ts.Expression): boolean;
|
|
8
|
+
/** `v instanceof KeyObject`. */
|
|
9
|
+
export declare function lowerKeyObjectInstanceof(lowerer: Lowerer, expr: ts.BinaryExpression): IrExpr | null;
|
|
10
|
+
/** `key.export(...)`, `key.equals(...)` and `key.toCryptoKey(...)`: the
|
|
11
|
+
* handle answers them as methods, so they dispatch through dynInvoke
|
|
12
|
+
* rather than as a member read and a call. */
|
|
13
|
+
export declare function lowerKeyObjectCall(lowerer: Lowerer, call: ts.CallExpression): IrExpr | null;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import * as ts from "../../ts7/adapter.js";
|
|
2
|
+
import {} from "../lowerer.js";
|
|
3
|
+
import { locOf } from "../../program.js";
|
|
4
|
+
import { BOOL, DYN } from "../../../ir/ir.js";
|
|
5
|
+
import { builtinImportOf } from "./module-bindings.js";
|
|
6
|
+
/* node:crypto's secret KeyObject is a native checked-dynamic handle
|
|
7
|
+
* (scr_lib.c): the KeyObject type maps to dyn, its getters and methods
|
|
8
|
+
* dispatch through the handle, and these helpers lower the class's uses
|
|
9
|
+
* that a dyn value cannot answer by itself. */
|
|
10
|
+
/** Whether `node` names node:crypto's KeyObject class. */
|
|
11
|
+
export function isKeyObjectClass(lowerer, node) {
|
|
12
|
+
const builtin = ts.isIdentifier(node)
|
|
13
|
+
? builtinImportOf(lowerer, node)
|
|
14
|
+
: ts.isPropertyAccessExpression(node) && !node.questionDotToken
|
|
15
|
+
? lowerer.builtinMemberOf(node)
|
|
16
|
+
: null;
|
|
17
|
+
return builtin?.module === "crypto" && builtin.member === "KeyObject";
|
|
18
|
+
}
|
|
19
|
+
/** Whether a value's checker type is node:crypto's KeyObject. */
|
|
20
|
+
export function isKeyObjectValue(lowerer, node) {
|
|
21
|
+
const type = lowerer.typeOf(node);
|
|
22
|
+
const sym = type.getAliasSymbol() ?? type.getSymbol();
|
|
23
|
+
return !!sym && sym.name === "KeyObject" && lowerer.isStdlibSymbol(sym);
|
|
24
|
+
}
|
|
25
|
+
/** `v instanceof KeyObject`. */
|
|
26
|
+
export function lowerKeyObjectInstanceof(lowerer, expr) {
|
|
27
|
+
if (!isKeyObjectClass(lowerer, expr.right))
|
|
28
|
+
return null;
|
|
29
|
+
const value = lowerer.coerceInto(expr.left, lowerer.lowerExpr(expr.left), DYN);
|
|
30
|
+
return { kind: "libCall", fn: "crypto.isKeyObject", args: [value], type: BOOL, loc: locOf(expr) };
|
|
31
|
+
}
|
|
32
|
+
const KEY_OBJECT_METHODS = new Set(["export", "equals", "toCryptoKey"]);
|
|
33
|
+
/** `key.export(...)`, `key.equals(...)` and `key.toCryptoKey(...)`: the
|
|
34
|
+
* handle answers them as methods, so they dispatch through dynInvoke
|
|
35
|
+
* rather than as a member read and a call. */
|
|
36
|
+
export function lowerKeyObjectCall(lowerer, call) {
|
|
37
|
+
if (call.questionDotToken || !ts.isPropertyAccessExpression(call.expression))
|
|
38
|
+
return null;
|
|
39
|
+
const access = call.expression;
|
|
40
|
+
if (access.questionDotToken || !KEY_OBJECT_METHODS.has(access.name.text))
|
|
41
|
+
return null;
|
|
42
|
+
if (!isKeyObjectValue(lowerer, access.expression))
|
|
43
|
+
return null;
|
|
44
|
+
if (call.arguments.some(ts.isSpreadElement))
|
|
45
|
+
return null;
|
|
46
|
+
return {
|
|
47
|
+
kind: "dynInvoke",
|
|
48
|
+
recv: lowerer.lowerExprExpecting(access.expression, DYN),
|
|
49
|
+
method: access.name.text,
|
|
50
|
+
calleeName: access.getText(),
|
|
51
|
+
args: call.arguments.map((arg) => lowerer.lowerExprExpecting(arg, DYN)),
|
|
52
|
+
type: DYN,
|
|
53
|
+
loc: locOf(call),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=key-object.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-object.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/builtins/key-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { lowerFileUrlCall } from "./url.js";
|
|
1
|
+
import { lowerFileUrlCall, lowerLegacyUrlCall } from "./url.js";
|
|
2
2
|
import { lowerReadlineCreateCall } from "./readline.js";
|
|
3
3
|
import { lowerDiagnosticsChannelCall } from "./async-context.js";
|
|
4
4
|
import { lowerTimersPromisesCall } from "./timers.js";
|
|
5
|
-
import { lowerFsCallbackCall, lowerFsLinkOrStatfsCall, lowerFsTimestampCall, lowerFsVectorOrTruncateCall, lowerFsNumericOpenCall, lowerFsPromisesOpenCall, lowerFsRenameCallbackCall, lowerFsReadSyncCall, lowerFsWriteSyncCall, lowerFsReadDescriptorCall, lowerFsEncodedRead, lowerFsMkdirSyncCall, lowerFsPromisesMkdirCall, lowerFsRemoveCall, lowerFsWriteBytesCall, lowerFsWriteOptionsCall, lowerFsReadPathCall, } from "./filesystem-calls.js";
|
|
5
|
+
import { lowerFsCallbackCall, lowerFsLinkOrStatfsCall, lowerFsTimestampCall, lowerFsVectorOrTruncateCall, lowerFsNumericOpenCall, lowerFsPromisesOpenCall, lowerFsRenameCallbackCall, lowerFsReadSyncCall, lowerFsWriteSyncCall, lowerFsReadDescriptorCall, lowerFsEncodedRead, lowerFsPromisesEncodedRead, lowerFsMkdirSyncCall, lowerFsOpendirCall, lowerFsPromisesMkdirCall, lowerFsRemoveCall, lowerFsWriteBytesCall, lowerFsWriteOptionsCall, lowerFsReadPathCall, } from "./filesystem-calls.js";
|
|
6
6
|
import { lowerBufferEncodingCall } from "./text-codecs.js";
|
|
7
7
|
import { lowerUtilTypeCall } from "./util-types.js";
|
|
8
8
|
import { InternalCompilerError } from "../../../errors.js";
|
|
@@ -10,13 +10,14 @@ import * as ts from "../../ts7/adapter.js";
|
|
|
10
10
|
import {} from "../lowerer.js";
|
|
11
11
|
import {} from "../surfaces.js";
|
|
12
12
|
import {} from "../call-signatures.js";
|
|
13
|
-
import { BYTES_U8, F64, STRING,
|
|
13
|
+
import { BYTES_U8, F64, STRING, arrayOf } from "../../../ir/ir.js";
|
|
14
14
|
import { lowerProcessLoadEnvFile } from "./environment.js";
|
|
15
15
|
import { lowerFsWatchCall, lowerFsReaddirTypesCall } from "./filesystem.js";
|
|
16
16
|
import { lowerZlibModuleCall } from "./compression.js";
|
|
17
17
|
import { lowerForkCall } from "./child-process.js";
|
|
18
18
|
import { lowerOsCpusCall, lowerOsGetPriorityCall, lowerOsNetworkInterfacesCall, lowerOsUserInfoCall, lowerPathFormatCall, lowerPathParseCall, } from "./operating-system.js";
|
|
19
19
|
import { lowerQuerystringParseCall, lowerQuerystringStringifyCall } from "./querystring.js";
|
|
20
|
+
import { lowerFsGlobCallbackCall, lowerFsGlobSyncCall, lowerFspGlobCall } from "./fs-glob.js";
|
|
20
21
|
export function lowerBuiltinModuleCall(lowerer, expr, bi, fn, loc) {
|
|
21
22
|
const name = expr.expression.getText();
|
|
22
23
|
if (bi.module === "util/types") {
|
|
@@ -27,6 +28,12 @@ export function lowerBuiltinModuleCall(lowerer, expr, bi, fn, loc) {
|
|
|
27
28
|
if (bi.module === "buffer" && ["isAscii", "isUtf8", "transcode"].includes(bi.member)) {
|
|
28
29
|
return lowerBufferEncodingCall(lowerer, expr, bi, fn, loc);
|
|
29
30
|
}
|
|
31
|
+
if (bi.module === "fs" && bi.member === "glob")
|
|
32
|
+
return lowerFsGlobCallbackCall(lowerer, expr, loc);
|
|
33
|
+
if (bi.module === "fs" && bi.member === "globSync")
|
|
34
|
+
return lowerFsGlobSyncCall(lowerer, expr, loc);
|
|
35
|
+
if (bi.module === "fs/promises" && bi.member === "glob")
|
|
36
|
+
return lowerFspGlobCall(lowerer, expr, loc);
|
|
30
37
|
if (fn.fn === "fs.callbackCall" && bi.member !== "rename") {
|
|
31
38
|
return lowerFsCallbackCall(lowerer, expr, bi, loc);
|
|
32
39
|
}
|
|
@@ -125,6 +132,10 @@ export function lowerBuiltinModuleCall(lowerer, expr, bi, fn, loc) {
|
|
|
125
132
|
return lowerQuerystringStringifyCall(lowerer, expr, loc);
|
|
126
133
|
}
|
|
127
134
|
}
|
|
135
|
+
if (bi.module === "url" &&
|
|
136
|
+
["parse", "format", "resolve", "domainToASCII", "domainToUnicode"].includes(bi.member)) {
|
|
137
|
+
return lowerLegacyUrlCall(lowerer, expr, bi, fn, loc);
|
|
138
|
+
}
|
|
128
139
|
if (bi.module === "timers/promises") {
|
|
129
140
|
const lowered = lowerTimersPromisesCall(lowerer, expr, bi, loc);
|
|
130
141
|
if (lowered)
|
|
@@ -135,7 +146,8 @@ export function lowerBuiltinModuleCall(lowerer, expr, bi, fn, loc) {
|
|
|
135
146
|
if (lowered)
|
|
136
147
|
return lowered;
|
|
137
148
|
}
|
|
138
|
-
if (bi.module === "readline"
|
|
149
|
+
if ((bi.module === "readline" || bi.module === "readline/promises") &&
|
|
150
|
+
bi.member === "createInterface") {
|
|
139
151
|
return lowerReadlineCreateCall(lowerer, expr, loc);
|
|
140
152
|
}
|
|
141
153
|
if (bi.module === "fs" && bi.member === "readFileSync" && expr.arguments.length === 2) {
|
|
@@ -155,6 +167,11 @@ export function lowerBuiltinModuleCall(lowerer, expr, bi, fn, loc) {
|
|
|
155
167
|
const path = lowerer.lowerExprExpecting(expr.arguments[0], STRING);
|
|
156
168
|
return { kind: "libCall", fn: "fs.readFileSyncBytes", args: [path], type: BYTES_U8, loc };
|
|
157
169
|
}
|
|
170
|
+
if (bi.module === "fs/promises" && bi.member === "readFile" && expr.arguments.length === 2) {
|
|
171
|
+
const encoded = lowerFsPromisesEncodedRead(lowerer, expr, loc);
|
|
172
|
+
if (encoded)
|
|
173
|
+
return encoded;
|
|
174
|
+
}
|
|
158
175
|
if (bi.module === "fs/promises" && bi.member === "readFile" && expr.arguments.length === 1) {
|
|
159
176
|
const path = lowerer.lowerExprExpecting(expr.arguments[0], STRING);
|
|
160
177
|
return {
|
|
@@ -171,6 +188,10 @@ export function lowerBuiltinModuleCall(lowerer, expr, bi, fn, loc) {
|
|
|
171
188
|
lowerer.mapTypeOf(lowerer.typeOf(expr.arguments[0]))?.kind === "f64") {
|
|
172
189
|
return lowerFsReadDescriptorCall(lowerer, expr, loc);
|
|
173
190
|
}
|
|
191
|
+
if ((bi.module === "fs" && bi.member === "opendirSync") ||
|
|
192
|
+
(bi.module === "fs/promises" && bi.member === "opendir")) {
|
|
193
|
+
return lowerFsOpendirCall(lowerer, expr, fn, bi.member, loc);
|
|
194
|
+
}
|
|
174
195
|
if (bi.module === "fs" && bi.member === "mkdirSync" && expr.arguments.length === 2) {
|
|
175
196
|
return lowerFsMkdirSyncCall(lowerer, expr, loc);
|
|
176
197
|
}
|
|
@@ -180,17 +201,29 @@ export function lowerBuiltinModuleCall(lowerer, expr, bi, fn, loc) {
|
|
|
180
201
|
if (bi.module === "fs" && bi.member === "rmSync" && expr.arguments.length === 2) {
|
|
181
202
|
return lowerFsRemoveCall(lowerer, expr, loc);
|
|
182
203
|
}
|
|
183
|
-
// accessSync(p, mode?)
|
|
184
|
-
//
|
|
185
|
-
|
|
204
|
+
// accessSync(p, mode?) and truncateSync(p, len?), with their promise
|
|
205
|
+
// spellings: an omitted mode is Node's F_OK (0) and an omitted len is 0.
|
|
206
|
+
// The mode is an ordinary number — fs.constants.* reads bake to literals.
|
|
207
|
+
const zeroDefault = bi.module === "fs"
|
|
208
|
+
? bi.member === "accessSync" || bi.member === "truncateSync"
|
|
209
|
+
: bi.module === "fs/promises" && (bi.member === "access" || bi.member === "truncate");
|
|
210
|
+
if (zeroDefault) {
|
|
186
211
|
if (expr.arguments.length < 1 || expr.arguments.length > 2) {
|
|
187
|
-
lowerer.noLowering(
|
|
212
|
+
lowerer.noLowering(`${bi.member} with ${expr.arguments.length} arguments`, expr);
|
|
188
213
|
}
|
|
189
214
|
const path = lowerer.lowerExprExpecting(expr.arguments[0], STRING);
|
|
190
|
-
const
|
|
215
|
+
const second = expr.arguments[1]
|
|
191
216
|
? lowerer.lowerExprExpecting(expr.arguments[1], F64)
|
|
192
217
|
: { kind: "numLit", value: 0, type: F64, loc };
|
|
193
|
-
return { kind: "libCall", fn:
|
|
218
|
+
return { kind: "libCall", fn: fn.fn, args: [path, second], type: fn.result, loc };
|
|
219
|
+
}
|
|
220
|
+
if (bi.module === "fs/promises" &&
|
|
221
|
+
bi.member === "appendFile" &&
|
|
222
|
+
expr.arguments.length === 2 &&
|
|
223
|
+
lowerer.mapTypeOf(lowerer.typeOf(expr.arguments[1]))?.kind === "bytes") {
|
|
224
|
+
const lowered = lowerFsWriteBytesCall(lowerer, expr, bi, loc);
|
|
225
|
+
if (lowered)
|
|
226
|
+
return lowered;
|
|
194
227
|
}
|
|
195
228
|
if (bi.module === "fs" &&
|
|
196
229
|
(bi.member === "writeFileSync" || bi.member === "appendFileSync") &&
|
|
@@ -266,7 +299,7 @@ export function lowerBuiltinModuleCall(lowerer, expr, bi, fn, loc) {
|
|
|
266
299
|
((bi.module === "fs" && bi.member === "readFileSync") ||
|
|
267
300
|
(bi.module === "fs/promises" && bi.member === "readFile"))) {
|
|
268
301
|
// The runtime reads utf8 unconditionally; any other encoding would
|
|
269
|
-
//
|
|
302
|
+
// decode wrong without an error, so the ARGUMENT'S TYPE must be the literal
|
|
270
303
|
// "utf8" — or Node's "utf-8" alias, the same decoder (the fallback
|
|
271
304
|
// declaration enforces the pair at typecheck; @types/node accepts
|
|
272
305
|
// every BufferEncoding).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-calls.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/builtins/module-calls.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"module-calls.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/builtins/module-calls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as ts from "../../ts7/adapter.js";
|
|
2
2
|
import { type Lowerer } from "../lowerer.js";
|
|
3
|
-
import { type IrExpr } from "../../../ir/ir.js";
|
|
3
|
+
import { type IrExpr, type IrType, type SrcLoc } from "../../../ir/ir.js";
|
|
4
4
|
/** Presence probes do not extract an unbound Performance method value. */
|
|
5
5
|
export declare function lowerPerfHooksTypeof(lowerer: Lowerer, expression: ts.Expression): IrExpr | null;
|
|
6
6
|
/** The node:perf_hooks spoke: `performance.now()` reads the runtime's
|
|
@@ -8,6 +8,28 @@ export declare function lowerPerfHooksTypeof(lowerer: Lowerer, expression: ts.Ex
|
|
|
8
8
|
* compiled program, fractional milliseconds — and
|
|
9
9
|
* `performance.now.bind(performance)` (the mockable-clock idiom's
|
|
10
10
|
* getTimestamp) is the same clock as a plain () => number function
|
|
11
|
-
* value.
|
|
12
|
-
*
|
|
11
|
+
* value. mark/measure, the getEntries family and the clears run over the
|
|
12
|
+
* runtime's performance timeline (lowerPerfTimelineCall), and an entry's
|
|
13
|
+
* toJSON() answers its plain object. Other members on the performance
|
|
14
|
+
* object fence by name; null for non-perf_hooks callees (the call chain
|
|
15
|
+
* keeps trying). */
|
|
13
16
|
export declare function lowerPerfHooksCall(lowerer: Lowerer, expr: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
|
|
17
|
+
/** True when `t` is the PerformanceEntry record (type-mapper's
|
|
18
|
+
* perfEntryShape). */
|
|
19
|
+
export declare function isPerfEntryType(lowerer: Lowerer, t: IrType | null | undefined): boolean;
|
|
20
|
+
/** An entry's toJSON() object: { name, entryType, startTime, duration,
|
|
21
|
+
* detail } read off the entry record. */
|
|
22
|
+
export declare function perfEntryJson(lowerer: Lowerer, entry: IrExpr, entryT: IrType & {
|
|
23
|
+
kind: "record";
|
|
24
|
+
}, loc: SrcLoc): IrExpr;
|
|
25
|
+
/** `String(entry)` / `${entry}` / entry.toString(): Object.prototype
|
|
26
|
+
* .toString's tag, "[object PerformanceMark]" or "[object
|
|
27
|
+
* PerformanceMeasure]" (an interned helper, so the entry evaluates once). */
|
|
28
|
+
export declare function perfEntryTag(lowerer: Lowerer, entry: IrExpr, entryT: IrType & {
|
|
29
|
+
kind: "record";
|
|
30
|
+
}, loc: SrcLoc): IrExpr;
|
|
31
|
+
/** Node keeps an entry's fields as prototype getters over internal
|
|
32
|
+
* slots, so own-key walks (Object.keys/values/entries, for-in, spread,
|
|
33
|
+
* hasOwnProperty) see none of them. Those walks over an entry record
|
|
34
|
+
* fence instead of listing the fields. */
|
|
35
|
+
export declare function fencePerfEntryKeyWalk(lowerer: Lowerer, t: IrType | null | undefined, node: ts.Node, what: string): void;
|