@scriptc/compiler 0.0.35 → 0.1.1
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 +14 -11
- package/ambient/scriptc-overrides.d.ts +0 -7
- package/ambient/scriptc.d.ts +1 -1
- package/dist/backend/build-cache.d.ts +44 -0
- package/dist/backend/build-cache.js +241 -0
- package/dist/backend/build-cache.js.map +1 -0
- package/dist/backend/{emission/emit-async.d.ts → c/async.d.ts} +21 -30
- package/dist/backend/{emission/emit-async.js → c/async.js} +270 -286
- package/dist/backend/c/async.js.map +1 -0
- package/dist/backend/{emission/emitter.d.ts → c/c-emitter.d.ts} +6 -23
- package/dist/backend/{emission/emitter.js → c/c-emitter.js} +53 -107
- package/dist/backend/c/c-emitter.js.map +1 -0
- package/dist/backend/c/exprs.d.ts +8 -0
- package/dist/backend/c/exprs.js +7937 -0
- package/dist/backend/c/exprs.js.map +1 -0
- package/dist/backend/{emission/emit-island.d.ts → c/island.d.ts} +5 -5
- package/dist/backend/{emission/emit-island.js → c/island.js} +24 -22
- package/dist/backend/c/island.js.map +1 -0
- package/dist/backend/{emission → c}/may-throw.d.ts +1 -1
- package/dist/backend/{emission → c}/may-throw.js +4 -1
- package/dist/backend/c/may-throw.js.map +1 -0
- package/dist/backend/{emission/emit-shapes.d.ts → c/shapes.d.ts} +19 -19
- package/dist/backend/{emission/emit-shapes.js → c/shapes.js} +78 -87
- package/dist/backend/c/shapes.js.map +1 -0
- package/dist/backend/{emission/emit-stmts.d.ts → c/stmts.d.ts} +12 -12
- package/dist/backend/{emission/emit-stmts.js → c/stmts.js} +395 -343
- package/dist/backend/c/stmts.js.map +1 -0
- package/dist/backend/{emission/emit-types.d.ts → c/types.d.ts} +1 -1
- package/dist/backend/{emission/emit-types.js → c/types.js} +42 -286
- package/dist/backend/c/types.js.map +1 -0
- package/dist/backend/c/types.test.js +25 -0
- package/dist/backend/c/types.test.js.map +1 -0
- package/dist/backend/{emission/emit-walkers.d.ts → c/walkers.d.ts} +19 -41
- package/dist/backend/{emission/emit-walkers.js → c/walkers.js} +242 -304
- package/dist/backend/c/walkers.js.map +1 -0
- package/dist/backend/external-c.d.ts +33 -0
- package/dist/backend/external-c.js +51 -0
- package/dist/backend/external-c.js.map +1 -0
- package/dist/backend/ffi-callbacks.d.ts +1 -1
- package/dist/backend/ffi-callbacks.js +4 -3
- package/dist/backend/ffi-callbacks.js.map +1 -1
- package/dist/backend/{library-identity.d.ts → library-identity-markers.d.ts} +0 -4
- package/dist/backend/{library-identity.js → library-identity-markers.js} +10 -9
- package/dist/backend/library-identity-markers.js.map +1 -0
- package/dist/backend/link-plan.d.ts +37 -0
- package/dist/backend/link-plan.js +26 -0
- package/dist/backend/link-plan.js.map +1 -0
- package/dist/backend/linker.d.ts +22 -0
- package/dist/backend/linker.js +236 -0
- package/dist/backend/linker.js.map +1 -0
- package/dist/backend/llvm/blocks.d.ts +4 -0
- package/dist/backend/llvm/blocks.js +29 -0
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +2 -19
- package/dist/backend/llvm/classes.js +20 -52
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +4 -0
- package/dist/backend/llvm/common.js +27 -0
- package/dist/backend/llvm/common.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +3 -8
- package/dist/backend/llvm/dyn.js +159 -224
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +4 -1
- package/dist/backend/llvm/emitter.js +548 -9988
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-async.d.ts +4 -0
- package/dist/backend/llvm/expr-async.js +726 -0
- package/dist/backend/llvm/expr-async.js.map +1 -0
- package/dist/backend/llvm/expr-bytes.d.ts +13 -0
- package/dist/backend/llvm/expr-bytes.js +456 -0
- package/dist/backend/llvm/expr-bytes.js.map +1 -0
- package/dist/backend/llvm/expr-callbacks.d.ts +22 -0
- package/dist/backend/llvm/expr-callbacks.js +520 -0
- package/dist/backend/llvm/expr-callbacks.js.map +1 -0
- package/dist/backend/llvm/expr-calls.d.ts +2 -0
- package/dist/backend/llvm/expr-calls.js +618 -0
- package/dist/backend/llvm/expr-calls.js.map +1 -0
- package/dist/backend/llvm/expr-containers.d.ts +25 -0
- package/dist/backend/llvm/expr-containers.js +637 -0
- package/dist/backend/llvm/expr-containers.js.map +1 -0
- package/dist/backend/llvm/expr-context.d.ts +255 -0
- package/dist/backend/llvm/expr-context.js +2 -0
- package/dist/backend/llvm/expr-context.js.map +1 -0
- package/dist/backend/llvm/expr-control.d.ts +2 -0
- package/dist/backend/llvm/expr-control.js +473 -0
- package/dist/backend/llvm/expr-control.js.map +1 -0
- package/dist/backend/llvm/expr-dispatch.d.ts +4 -0
- package/dist/backend/llvm/expr-dispatch.js +153 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -0
- package/dist/backend/llvm/expr-dynamic.d.ts +2 -0
- package/dist/backend/llvm/expr-dynamic.js +810 -0
- package/dist/backend/llvm/expr-dynamic.js.map +1 -0
- package/dist/backend/llvm/expr-island.d.ts +15 -0
- package/dist/backend/llvm/expr-island.js +690 -0
- package/dist/backend/llvm/expr-island.js.map +1 -0
- package/dist/backend/llvm/expr-primitives.d.ts +6 -0
- package/dist/backend/llvm/expr-primitives.js +642 -0
- package/dist/backend/llvm/expr-primitives.js.map +1 -0
- package/dist/backend/llvm/expr-records.d.ts +9 -0
- package/dist/backend/llvm/expr-records.js +299 -0
- package/dist/backend/llvm/expr-records.js.map +1 -0
- package/dist/backend/llvm/expr-stream-bridges.d.ts +13 -0
- package/dist/backend/llvm/expr-stream-bridges.js +420 -0
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -0
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +12 -0
- package/dist/backend/llvm/expr-stream-callbacks.js +360 -0
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -0
- package/dist/backend/llvm/lib-dispatch.d.ts +5 -0
- package/dist/backend/llvm/lib-dispatch.js +267 -0
- package/dist/backend/llvm/lib-dispatch.js.map +1 -0
- package/dist/backend/llvm/lib-filesystem.d.ts +6 -0
- package/dist/backend/llvm/lib-filesystem.js +594 -0
- package/dist/backend/llvm/lib-filesystem.js.map +1 -0
- package/dist/backend/llvm/lib-network.d.ts +2 -0
- package/dist/backend/llvm/lib-network.js +429 -0
- package/dist/backend/llvm/lib-network.js.map +1 -0
- package/dist/backend/llvm/lib-process.d.ts +5 -0
- package/dist/backend/llvm/lib-process.js +585 -0
- package/dist/backend/llvm/lib-process.js.map +1 -0
- package/dist/backend/llvm/lib-shared.d.ts +6 -0
- package/dist/backend/llvm/lib-shared.js +687 -0
- package/dist/backend/llvm/lib-shared.js.map +1 -0
- package/dist/backend/llvm/lib-stream.d.ts +2 -0
- package/dist/backend/llvm/lib-stream.js +470 -0
- package/dist/backend/llvm/lib-stream.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +12 -2
- package/dist/backend/llvm/shapes.js +66 -307
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +52 -0
- package/dist/backend/llvm/shapes.test.js.map +1 -0
- package/dist/backend/llvm/unsupported.d.ts +1 -1
- package/dist/backend/llvm/walkers.d.ts +2 -3
- package/dist/backend/llvm/walkers.js +195 -222
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +45 -0
- package/dist/backend/native-codegen.js +275 -0
- package/dist/backend/native-codegen.js.map +1 -0
- package/dist/backend/native-codegen.test.js +226 -0
- package/dist/backend/native-codegen.test.js.map +1 -0
- package/dist/backend/native-link-info.d.ts +96 -0
- package/dist/backend/native-link-info.js +243 -0
- package/dist/backend/native-link-info.js.map +1 -0
- package/dist/backend/native-link-info.test.d.ts +1 -0
- package/dist/backend/native-link-info.test.js +134 -0
- package/dist/backend/native-link-info.test.js.map +1 -0
- package/dist/backend/{cc.d.ts → native-toolchain.d.ts} +54 -34
- package/dist/backend/{cc.js → native-toolchain.js} +231 -810
- package/dist/backend/native-toolchain.js.map +1 -0
- package/dist/backend/native-toolchain.test.d.ts +1 -0
- package/dist/backend/{cc-cache.test.js → native-toolchain.test.js} +219 -7
- package/dist/backend/native-toolchain.test.js.map +1 -0
- package/dist/backend/object-localize.js +1 -1
- package/dist/backend/runtime-abi.d.ts +10 -0
- package/dist/backend/runtime-abi.js +11 -0
- package/dist/backend/runtime-abi.js.map +1 -0
- package/dist/backend/runtime-pack-targets.test.d.ts +1 -0
- package/dist/backend/runtime-pack-targets.test.js +54 -0
- package/dist/backend/runtime-pack-targets.test.js.map +1 -0
- package/dist/backend/runtime-pack.d.ts +112 -0
- package/dist/backend/runtime-pack.js +305 -0
- package/dist/backend/runtime-pack.js.map +1 -0
- package/dist/backend/runtime-pack.test.d.ts +1 -0
- package/dist/backend/runtime-pack.test.js +473 -0
- package/dist/backend/runtime-pack.test.js.map +1 -0
- package/dist/backend/targets.d.ts +76 -0
- package/dist/backend/targets.js +262 -0
- package/dist/backend/targets.js.map +1 -0
- package/dist/backend/targets.test.d.ts +1 -0
- package/dist/backend/targets.test.js +41 -0
- package/dist/backend/targets.test.js.map +1 -0
- package/dist/backend/vendor-archives.d.ts +41 -0
- package/dist/backend/vendor-archives.js +462 -0
- package/dist/backend/vendor-archives.js.map +1 -0
- package/dist/compat/fetch-profile.d.ts +0 -1
- package/dist/compat/fetch-profile.js +0 -1
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/coverage/report.js +3 -3
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +35 -33
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +11 -12
- package/dist/diagnostics/diagnostic.js +19 -17
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/render.d.ts +1 -1
- package/dist/diagnostics/render.js +1 -1
- package/dist/diagnostics/render.js.map +1 -1
- package/dist/errors.d.ts +5 -0
- package/dist/errors.js +9 -0
- package/dist/errors.js.map +1 -0
- package/dist/executable/{early-cache.d.ts → executable-cache.d.ts} +2 -2
- package/dist/executable/{early-cache.js → executable-cache.js} +36 -98
- package/dist/executable/executable-cache.js.map +1 -0
- package/dist/executable/executable-cache.test.d.ts +1 -0
- package/dist/executable/{early-cache.test.js → executable-cache.test.js} +3 -3
- package/dist/executable/executable-cache.test.js.map +1 -0
- package/dist/ffi/{profile.js → ffi-manifest.js} +1 -1
- package/dist/ffi/ffi-manifest.js.map +1 -0
- package/dist/frontend/builtin-modules.d.ts +21 -0
- package/dist/frontend/builtin-modules.js +82 -0
- package/dist/frontend/builtin-modules.js.map +1 -0
- package/dist/frontend/cjs-lexer.d.ts +7 -0
- package/dist/frontend/cjs-lexer.js +15 -17
- package/dist/frontend/cjs-lexer.js.map +1 -1
- package/dist/frontend/dts-paths.d.ts +26 -0
- package/dist/frontend/dts-paths.js +41 -0
- package/dist/frontend/dts-paths.js.map +1 -0
- package/dist/frontend/input-tracker.d.ts +0 -2
- package/dist/frontend/input-tracker.js +1 -4
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/lib-contract.d.ts +1 -5
- package/dist/frontend/lib-contract.js +1 -1
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/lib-exports.d.ts +1 -1
- package/dist/frontend/lowering/array-values.d.ts +8 -0
- package/dist/frontend/lowering/array-values.js +60 -0
- package/dist/frontend/lowering/array-values.js.map +1 -0
- package/dist/frontend/lowering/call-position.d.ts +4 -0
- package/dist/frontend/lowering/call-position.js +7 -0
- package/dist/frontend/lowering/call-position.js.map +1 -0
- package/dist/frontend/lowering/callback-arg.d.ts +20 -0
- package/dist/frontend/lowering/callback-arg.js +44 -0
- package/dist/frontend/lowering/callback-arg.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.d.ts +1 -1
- package/dist/frontend/lowering/lib-boundary.js +34 -34
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.d.ts +22 -0
- package/dist/frontend/lowering/lower-array-sort.js +619 -0
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -0
- package/dist/frontend/lowering/lower-assert.d.ts +3 -3
- package/dist/frontend/lowering/lower-assert.js +214 -241
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +74 -146
- package/dist/frontend/lowering/lower-builtins.js +1285 -1233
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +59 -192
- package/dist/frontend/lowering/lower-calls.js +1644 -1506
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +62 -125
- package/dist/frontend/lowering/lower-classes.js +832 -866
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +5 -12
- package/dist/frontend/lowering/lower-comptime.js +32 -31
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +35 -135
- package/dist/frontend/lowering/lower-containers.js +1984 -2227
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.d.ts +3 -7
- package/dist/frontend/lowering/lower-dgram.js +97 -111
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-enums.d.ts +4 -4
- package/dist/frontend/lowering/lower-enums.js +30 -30
- package/dist/frontend/lowering/lower-enums.js.map +1 -1
- package/dist/frontend/lowering/{lower-emitter.d.ts → lower-event-emitter.d.ts} +7 -18
- package/dist/frontend/lowering/{lower-emitter.js → lower-event-emitter.js} +172 -174
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -0
- package/dist/frontend/lowering/lower-expando.d.ts +5 -5
- package/dist/frontend/lowering/lower-expando.js +40 -40
- package/dist/frontend/lowering/lower-expando.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +60 -264
- package/dist/frontend/lowering/lower-exprs.js +2361 -1765
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +6 -6
- package/dist/frontend/lowering/lower-generators.js +73 -72
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +5 -17
- package/dist/frontend/lowering/lower-inspect.js +273 -261
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +39 -49
- package/dist/frontend/lowering/lower-island.js +447 -513
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.d.ts +7 -10
- package/dist/frontend/lowering/lower-mixins.js +85 -85
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +12 -18
- package/dist/frontend/lowering/lower-modules.js +284 -283
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +23 -49
- package/dist/frontend/lowering/lower-namespaces.js +123 -115
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +18 -25
- package/dist/frontend/lowering/lower-server.js +909 -899
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +30 -149
- package/dist/frontend/lowering/lower-stmts.js +1463 -1285
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +12 -12
- package/dist/frontend/lowering/lower-stream.js +300 -301
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-test.d.ts +5 -5
- package/dist/frontend/lowering/lower-test.js +82 -82
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +134 -22
- package/dist/frontend/lowering/lowerer.js +1277 -126
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.d.ts +11 -0
- package/dist/frontend/lowering/pairs-snapshot.js +85 -0
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -0
- package/dist/frontend/lowering/static-this.d.ts +6 -0
- package/dist/frontend/lowering/static-this.js +24 -0
- package/dist/frontend/lowering/static-this.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +24 -35
- package/dist/frontend/lowering/surfaces.js +78 -66
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/npm-static-rewrite.js +6 -28
- package/dist/frontend/npm-static-rewrite.js.map +1 -1
- package/dist/frontend/npm-static.d.ts +0 -10
- package/dist/frontend/npm-static.js +4 -7
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.d.ts +0 -24
- package/dist/frontend/npm.js +11 -85
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/program.d.ts +3 -1
- package/dist/frontend/program.js +9 -4
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/provenance-registry.d.ts +0 -2
- package/dist/frontend/provenance-registry.js +0 -10
- package/dist/frontend/provenance-registry.js.map +1 -1
- package/dist/frontend/provenance.js +4 -7
- package/dist/frontend/provenance.js.map +1 -1
- package/dist/frontend/resolve.d.ts +7 -2
- package/dist/frontend/resolve.js +12 -17
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/resolve.test.d.ts +1 -0
- package/dist/frontend/resolve.test.js +29 -0
- package/dist/frontend/resolve.test.js.map +1 -0
- package/dist/frontend/ts7/adapter.d.ts +2 -2
- package/dist/frontend/ts7/adapter.js +1 -1
- package/dist/frontend/ts7/adapter.js.map +1 -1
- package/dist/frontend/ts7/checker.js +2 -36
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/enums.js +2 -1
- package/dist/frontend/ts7/enums.js.map +1 -1
- package/dist/frontend/ts7/{program.js → program-adapter.js} +7 -6
- package/dist/frontend/ts7/program-adapter.js.map +1 -0
- package/dist/frontend/ts7/world-check.d.ts +1 -3
- package/dist/frontend/ts7/world-check.js +3 -1
- package/dist/frontend/ts7/world-check.js.map +1 -1
- package/dist/frontend/tsc-codes.d.ts +8 -0
- package/dist/frontend/tsc-codes.js +109 -0
- package/dist/frontend/tsc-codes.js.map +1 -0
- package/dist/frontend/{types.d.ts → type-mapper.d.ts} +2 -25
- package/dist/frontend/{types.js → type-mapper.js} +12 -11
- package/dist/frontend/type-mapper.js.map +1 -0
- package/dist/frontend/workspace-registry.d.ts +26 -0
- package/dist/frontend/workspace-registry.js +71 -0
- package/dist/frontend/workspace-registry.js.map +1 -0
- package/dist/index.d.ts +113 -31
- package/dist/index.js +536 -128
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +37 -0
- package/dist/ir/analysis.js +118 -0
- package/dist/ir/analysis.js.map +1 -0
- package/dist/ir/analysis.test.d.ts +1 -0
- package/dist/ir/analysis.test.js +21 -0
- package/dist/ir/analysis.test.js.map +1 -0
- package/dist/ir/build.d.ts +9 -0
- package/dist/ir/build.js +33 -0
- package/dist/ir/build.js.map +1 -0
- package/dist/ir/integer-loops.d.ts +1 -1
- package/dist/ir/{nodes.d.ts → ir.d.ts} +119 -37
- package/dist/ir/{nodes.js → ir.js} +170 -166
- package/dist/ir/ir.js.map +1 -0
- package/dist/ir/ir.test.d.ts +1 -0
- package/dist/ir/ir.test.js +17 -0
- package/dist/ir/ir.test.js.map +1 -0
- package/dist/ir/serialize.d.ts +2 -2
- package/dist/ir/serialize.js +3 -2
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/validate.d.ts +1 -1
- package/dist/ir/validate.js +93 -41
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/cache-primitives.d.ts +24 -0
- package/dist/library/cache-primitives.js +83 -0
- package/dist/library/cache-primitives.js.map +1 -0
- package/dist/library/cache-reset.test.d.ts +1 -0
- package/dist/library/cache-reset.test.js +47 -0
- package/dist/library/cache-reset.test.js.map +1 -0
- package/dist/library/{implementation-identity.js → compiler-self-identity.js} +1 -1
- package/dist/library/compiler-self-identity.js.map +1 -0
- package/dist/library/fence-eval.d.ts +3 -1
- package/dist/library/fence-eval.js +8 -2
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/int-infer.d.ts +1 -36
- package/dist/library/int-infer.js +29 -18
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/int-infer.test.js +4 -4
- package/dist/library/{early-cache.d.ts → library-cache.d.ts} +1 -1
- package/dist/library/{early-cache.js → library-cache.js} +34 -89
- package/dist/library/library-cache.js.map +1 -0
- package/dist/library/library-cache.test.d.ts +1 -0
- package/dist/library/{early-cache.test.js → library-cache.test.js} +7 -7
- package/dist/library/library-cache.test.js.map +1 -0
- package/dist/library/{profile.d.ts → library-profile.d.ts} +4 -7
- package/dist/library/{profile.js → library-profile.js} +18 -11
- package/dist/library/library-profile.js.map +1 -0
- package/dist/library/semantic-source.js +2 -1
- package/dist/library/semantic-source.js.map +1 -1
- package/dist/library/sidecar.d.ts +5 -2
- package/dist/library/sidecar.js +11 -5
- package/dist/library/sidecar.js.map +1 -1
- package/dist/startup-cache.d.ts +11 -3
- package/dist/startup-cache.js +17 -2
- package/dist/startup-cache.js.map +1 -1
- package/package.json +19 -2
- package/surface-manifest.json +5 -5
- package/dist/backend/cc-cache.test.js.map +0 -1
- package/dist/backend/cc.js.map +0 -1
- package/dist/backend/emission/emit-async.js.map +0 -1
- package/dist/backend/emission/emit-exprs.d.ts +0 -13
- package/dist/backend/emission/emit-exprs.js +0 -7407
- package/dist/backend/emission/emit-exprs.js.map +0 -1
- package/dist/backend/emission/emit-island.js.map +0 -1
- package/dist/backend/emission/emit-shapes.js.map +0 -1
- package/dist/backend/emission/emit-stmts.js.map +0 -1
- package/dist/backend/emission/emit-types.js.map +0 -1
- package/dist/backend/emission/emit-walkers.js.map +0 -1
- package/dist/backend/emission/emitter.js.map +0 -1
- package/dist/backend/emission/may-throw.js.map +0 -1
- package/dist/backend/library-identity.js.map +0 -1
- package/dist/executable/early-cache.js.map +0 -1
- package/dist/executable/early-cache.test.js.map +0 -1
- package/dist/ffi/profile.js.map +0 -1
- package/dist/frontend/lowering/lower-emitter.js.map +0 -1
- package/dist/frontend/shared.d.ts +0 -82
- package/dist/frontend/shared.js +0 -308
- package/dist/frontend/shared.js.map +0 -1
- package/dist/frontend/ts7/program.js.map +0 -1
- package/dist/frontend/types.js.map +0 -1
- package/dist/ir/nodes.js.map +0 -1
- package/dist/library/early-cache.js.map +0 -1
- package/dist/library/early-cache.test.js.map +0 -1
- package/dist/library/implementation-identity.js.map +0 -1
- package/dist/library/profile.js.map +0 -1
- /package/dist/backend/{cc-cache.test.d.ts → c/types.test.d.ts} +0 -0
- /package/dist/{executable/early-cache.test.d.ts → backend/llvm/shapes.test.d.ts} +0 -0
- /package/dist/{library/early-cache.test.d.ts → backend/native-codegen.test.d.ts} +0 -0
- /package/dist/ffi/{profile.d.ts → ffi-manifest.d.ts} +0 -0
- /package/dist/frontend/ts7/{program.d.ts → program-adapter.d.ts} +0 -0
- /package/dist/library/{implementation-identity.d.ts → compiler-self-identity.d.ts} +0 -0
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import * as ts from "../ts7/adapter.js";
|
|
2
2
|
import type { ScrDiagnostic } from "../../diagnostics/diagnostic.js";
|
|
3
3
|
import { UNSUPPORTED } from "../../diagnostics/diagnostic.js";
|
|
4
|
-
import type { IrClassDef, IrExpr, IrFfiImport, IrFunction, IrGlobal, IrLocal, IrModule, IrParam, IrRecordShape, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/
|
|
4
|
+
import type { IrClassDef, IrExpr, IrFfiImport, IrFunction, IrGlobal, IrLocal, IrModule, IrParam, IrRecordShape, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/ir.js";
|
|
5
5
|
import { type DynamicImportResolution, type NpmBuiltinUse, type NpmLazyTrap } from "../npm.js";
|
|
6
6
|
import { type StartupCrash } from "../program.js";
|
|
7
|
-
import { ShapeRegistry, type TypeMapperCtx, UnionRegistry } from "../
|
|
7
|
+
import { ShapeRegistry, type TypeMapperCtx, UnionRegistry } from "../type-mapper.js";
|
|
8
8
|
import { CompoundOp, IslandFnEntry, BuiltinModuleFn } from "./surfaces.js";
|
|
9
9
|
import { FileParts } from "./lower-modules.js";
|
|
10
10
|
import { ClassInfo, ClassIteratorInfo, GenericClassInfo, findStaticOn } from "./lower-classes.js";
|
|
11
11
|
import { MixinFnShape } from "./lower-mixins.js";
|
|
12
12
|
import { ParamShape, FnSig, GenericFnInfo, GenericInstance } from "./lower-calls.js";
|
|
13
|
-
import { type EmitSpecCtx, type EmitSpecRequest } from "./lower-emitter.js";
|
|
13
|
+
import { type EmitSpecCtx, type EmitSpecRequest } from "./lower-event-emitter.js";
|
|
14
14
|
import { FieldTarget } from "./lower-exprs.js";
|
|
15
15
|
import type { ExpandoMember } from "./lower-expando.js";
|
|
16
16
|
/** Entry function name. '%' cannot appear in a TS identifier, so a user
|
|
@@ -59,10 +59,6 @@ export declare class PoisonError extends Error {
|
|
|
59
59
|
* NAMES user code can spell now that the real lib declares them; treating
|
|
60
60
|
* an inherited function as a table entry would mis-lower or ICE. */
|
|
61
61
|
export declare function own<T>(table: Record<string, T | undefined>, key: string): T | undefined;
|
|
62
|
-
/** Sentinel binding key for `this` (which has no ts.Symbol): a stable
|
|
63
|
-
* object identity used in the same scope/capture maps as real symbols, so
|
|
64
|
-
* arrows capturing `this` ride the ordinary capture machinery. */
|
|
65
|
-
export declare const THIS_BINDING: ts.Symbol;
|
|
66
62
|
/** Per-function lowering context. A stack of these models nested functions:
|
|
67
63
|
* identifier resolution walks outward, and a hit in an enclosing context
|
|
68
64
|
* turns into a capture (boxing the binding at its origin and threading it
|
|
@@ -135,12 +131,6 @@ export interface LowerStats {
|
|
|
135
131
|
/** Functions whose signature couldn't be analyzed (bodies not counted). */
|
|
136
132
|
functionsSkipped: number;
|
|
137
133
|
}
|
|
138
|
-
/** IrStmt discriminants — the island walk below must not descend into
|
|
139
|
-
* NESTED statements (each is counted individually by its own lowerStmts
|
|
140
|
-
* visit; descending would attribute a nested island statement to every
|
|
141
|
-
* enclosing construct too). The top-level statement object itself is
|
|
142
|
-
* always visited. */
|
|
143
|
-
export declare const IR_STMT_KINDS: Set<string>;
|
|
144
134
|
/** True when a lowered statement's OWN expressions contain island
|
|
145
135
|
* constructs — a generic JSON walk (like moduleUsesRegex): `kind`
|
|
146
136
|
* discriminants live only on IR objects, so user string values can never
|
|
@@ -230,6 +220,39 @@ export interface LowerOptions {
|
|
|
230
220
|
* to their owning external specifier. */
|
|
231
221
|
externalTypeSpecifiersByFile?: ReadonlyMap<string, readonly string[]>;
|
|
232
222
|
}
|
|
223
|
+
interface RuntimeFenceFallback {
|
|
224
|
+
code: `SC${number}`;
|
|
225
|
+
message: string;
|
|
226
|
+
}
|
|
227
|
+
interface RuntimeFenceBase {
|
|
228
|
+
/** Used only by catches that can legitimately have no fresh diagnostic. */
|
|
229
|
+
fallback?: RuntimeFenceFallback;
|
|
230
|
+
/** Legacy function-body fences throw the diagnostic text without a site suffix. */
|
|
231
|
+
bareMessage?: boolean;
|
|
232
|
+
/** The closure-probe fallback historically applies inside diagnostic captures. */
|
|
233
|
+
allowDiagSink?: boolean;
|
|
234
|
+
}
|
|
235
|
+
interface RuntimeFenceStatementTarget extends RuntimeFenceBase {
|
|
236
|
+
kind: "statement";
|
|
237
|
+
}
|
|
238
|
+
interface RuntimeFenceFunctionTarget extends RuntimeFenceBase {
|
|
239
|
+
kind: "function";
|
|
240
|
+
name: string | (() => string);
|
|
241
|
+
params?: IrParam[];
|
|
242
|
+
returnType: IrType;
|
|
243
|
+
paramsMutable?: boolean;
|
|
244
|
+
async?: true;
|
|
245
|
+
generator?: {
|
|
246
|
+
yieldT: IrType;
|
|
247
|
+
nextT: IrType;
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
interface RuntimeFenceClosureTarget extends Omit<RuntimeFenceFunctionTarget, "kind"> {
|
|
251
|
+
kind: "closure";
|
|
252
|
+
type: IrType & {
|
|
253
|
+
kind: "func";
|
|
254
|
+
};
|
|
255
|
+
}
|
|
233
256
|
/** The Lowerer's pass configuration (see lowerToIr). */
|
|
234
257
|
export interface LowererMode {
|
|
235
258
|
/** Names of bodies a prior reachability pass reached; null lowers everything. */
|
|
@@ -296,7 +319,7 @@ export declare function importCallHandleType(expr: ts.Expression | undefined): I
|
|
|
296
319
|
* Ambient (.d.ts) declarations never reach this: they have no compiled
|
|
297
320
|
* implementation, so their calls lower through the island/builtin paths
|
|
298
321
|
* whose validated exits keep the checker-trust trap. */
|
|
299
|
-
export declare function uncheckedOverloadHandleCall(
|
|
322
|
+
export declare function uncheckedOverloadHandleCall(lowerer: Lowerer, expr: ts.Expression | undefined): boolean;
|
|
300
323
|
/** The JavaScript declaration fallback for unmappable binding types (see
|
|
301
324
|
* irTypeOf): `any` and every other inference residue is the checked-
|
|
302
325
|
* dynamic 'unknown' kind, and array types keep their array-ness with the
|
|
@@ -314,7 +337,7 @@ export declare function uncheckedOverloadHandleCall(L: Lowerer, expr: ts.Express
|
|
|
314
337
|
* checked-dynamic fallbacks apply, the pre-never-mapping behavior. Bare
|
|
315
338
|
* `never` at the ROOT stays out (`for (const v of [])`'s loop var — the
|
|
316
339
|
* dead read the f64 mapping is FOR). */
|
|
317
|
-
export declare function neverTaintedJsType(
|
|
340
|
+
export declare function neverTaintedJsType(lowerer: Lowerer, node: ts.Node, t: ts.Type): boolean;
|
|
318
341
|
/** The dyn undefined value — what an uninitialized checked-dynamic
|
|
319
342
|
* binding holds (JS: declared bindings read `undefined` before any
|
|
320
343
|
* assignment). A NULL dyn slot is a trap, never a value, so every dyn
|
|
@@ -337,7 +360,7 @@ export declare function nodeThrowExpr(kind: 0 | 1 | 2, code: string, message: st
|
|
|
337
360
|
* (scr_throw_lowering_fence). The diagnostic joins the runtime-fence
|
|
338
361
|
* ledger exactly like a deferred statement fence — nothing silently
|
|
339
362
|
* drops off the coverage report. */
|
|
340
|
-
export declare function ladderFenceExpr(
|
|
363
|
+
export declare function ladderFenceExpr(lowerer: Lowerer, surface: string, node: ts.Node, hint?: string): IrExpr;
|
|
341
364
|
/** The checked-dynamic declaration fallback for unmappable binding types
|
|
342
365
|
* (see irTypeOf), two gates over one story:
|
|
343
366
|
*
|
|
@@ -361,7 +384,7 @@ export declare function ladderFenceExpr(L: Lowerer, surface: string, node: ts.No
|
|
|
361
384
|
* this fallback for `any` (mapType answers jsval first).
|
|
362
385
|
*
|
|
363
386
|
* Null for void (no value exists to represent). */
|
|
364
|
-
export declare function dynFallbackType(
|
|
387
|
+
export declare function dynFallbackType(lowerer: Lowerer, node: ts.Node, t: ts.Type): IrType | null;
|
|
365
388
|
/** The best-effort JS `Function.prototype.name` of an expression flowing
|
|
366
389
|
* into a dyn slot (the boxed function kind's inspect/error name):
|
|
367
390
|
* identifier and property reads answer the referenced NAME (a
|
|
@@ -481,10 +504,69 @@ export declare class Lowerer {
|
|
|
481
504
|
/** All storage slots widened for runtime absence, including slots whose
|
|
482
505
|
* current control-flow branch has temporarily narrowed the value. */
|
|
483
506
|
readonly runtimeOptionalStorageLocals: Set<IrLocal>;
|
|
507
|
+
/** Globals whose checker-bare type was widened because an indexed read can
|
|
508
|
+
* carry undefined at runtime. Identifier reads keep the union tag so
|
|
509
|
+
* typeof and later boundaries observe the real value. */
|
|
510
|
+
readonly runtimeOptionalGlobals: Set<IrGlobal>;
|
|
511
|
+
/** Bindings whose unchecked string arithmetic can produce either a number
|
|
512
|
+
* (NaN for an absent read) or a string. Preserve that result union at bare
|
|
513
|
+
* reads instead of applying the checker-bare string narrowing adapter. */
|
|
514
|
+
readonly runtimeOptionalArithmeticLocals: Set<IrLocal>;
|
|
515
|
+
readonly runtimeOptionalArithmeticGlobals: Set<IrGlobal>;
|
|
516
|
+
/** Binding symbols whose IR storage type was widened by the indexed-read
|
|
517
|
+
* prepass. This includes explicit annotations: unchecked TS annotations do
|
|
518
|
+
* not prove that an array property read produced a value. */
|
|
519
|
+
readonly runtimeOptionalBindingTypes: Map<ts.Symbol, IrType>;
|
|
520
|
+
/** Concise callback/lambda returns promoted by the HOF callback prepass;
|
|
521
|
+
* arrows have no declaration symbol to key in fnSigsBySymbol. */
|
|
522
|
+
readonly runtimeOptionalFunctionReturns: WeakMap<ts.Node, IrType>;
|
|
523
|
+
/** Arithmetic over an unchecked string read can answer either NaN or a
|
|
524
|
+
* string. Bindings and returns use this marker to retain that result union
|
|
525
|
+
* through checker-bare string annotations. */
|
|
526
|
+
readonly runtimeOptionalArithmeticTypes: WeakMap<ts.Node, IrType>;
|
|
527
|
+
/** Record fields promoted to an undefined-armed union by an indexed-read
|
|
528
|
+
* value. The key is the concrete emitted shape and field name. */
|
|
529
|
+
readonly runtimeOptionalFields: Set<string>;
|
|
530
|
+
/** Callback pattern parameters carry an optional source without making
|
|
531
|
+
* every name destructured from a present source optional. */
|
|
532
|
+
readonly runtimeOptionalPatternTypes: WeakMap<ts.Node, IrType>;
|
|
533
|
+
readonly runtimeOptionalReduceTypes: WeakMap<ts.CallExpression, IrType>;
|
|
484
534
|
/** Capture entries and their origin share one mutable box. Normalize each
|
|
485
535
|
* entry to the origin so writes and flow proofs stay synchronized. */
|
|
486
536
|
readonly runtimeOptionalRoots: Map<IrLocal, IrLocal>;
|
|
487
537
|
runtimeOptionalRootOf(local: IrLocal): IrLocal;
|
|
538
|
+
runtimeOptionalBindingType(node: ts.Node): IrType | null;
|
|
539
|
+
runtimeOptionalBindingType(node: ts.Node, fallback: IrType): IrType;
|
|
540
|
+
runtimeOptionalIdentifierValue(node: ts.Expression): {
|
|
541
|
+
value: IrExpr;
|
|
542
|
+
present: IrType;
|
|
543
|
+
unionId: string;
|
|
544
|
+
} | null;
|
|
545
|
+
/** Recover the original optional union when a checked single-arm helper
|
|
546
|
+
* was installed before a strict property consumer could name its member.
|
|
547
|
+
* Recovery is limited to array element reads and storage roots marked by
|
|
548
|
+
* the optional-read analysis, so ordinary assertions keep their generic
|
|
549
|
+
* checked-narrow behavior. */
|
|
550
|
+
runtimeOptionalSourceValue(node: ts.Expression, value: IrExpr): IrExpr | null;
|
|
551
|
+
/** A strict property or method receiver over an array-derived optional
|
|
552
|
+
* value. Stabilize the receiver once, throw Node's member-read TypeError
|
|
553
|
+
* for a unit arm, and extract the expected present arm otherwise. */
|
|
554
|
+
runtimeOptionalPropertyReceiver(node: ts.Expression, value: IrExpr, expected: IrType, member: string): IrExpr | null;
|
|
555
|
+
runtimeOptionalFieldKey(shapeId: string, field: string): string;
|
|
556
|
+
isRuntimeOptionalField(shapeId: string, field: string): boolean;
|
|
557
|
+
isRuntimeOptionalGlobal(global: IrGlobal): boolean;
|
|
558
|
+
isRuntimeOptionalArithmeticGlobal(global: IrGlobal): boolean;
|
|
559
|
+
/** The union produced when an unchecked array read reaches a typed slot
|
|
560
|
+
* whose checker type is the corresponding bare arm. */
|
|
561
|
+
runtimeOptionalWidening(actual: IrType, expected: IrType): IrType | null;
|
|
562
|
+
runtimeOptionalType(t: IrType): IrType;
|
|
563
|
+
promoteRuntimeOptionalParameter(node: ts.Node, type: IrType): IrType;
|
|
564
|
+
promoteRuntimeOptionalFunctionReturn(node: ts.Node, type: IrType): IrType;
|
|
565
|
+
runtimeOptionalFunctionReturnType(node: ts.Node, fallback: IrType): IrType;
|
|
566
|
+
/** Promote one field of a record storage shape to the value's runtime
|
|
567
|
+
* type. Shapes are immutable by identity, so this interns a sibling shape
|
|
568
|
+
* and records the field as runtime-optional for property-read narrowing. */
|
|
569
|
+
runtimeOptionalRecordField(type: IrType, field: string, fieldType: IrType): IrType;
|
|
488
570
|
/** Runs `fn` with the given aliased-typeof narrows applied (and restored
|
|
489
571
|
* after) — the branch-scoping primitive. */
|
|
490
572
|
narrowingAliases<T>(narrows: readonly {
|
|
@@ -510,7 +592,7 @@ export declare class Lowerer {
|
|
|
510
592
|
* Reachability lowers inits before the declarations they discover, so
|
|
511
593
|
* these rebuild after the worklist restores historical shape metadata. */
|
|
512
594
|
readonly shapeOrderHelperFinalizers: (() => void)[];
|
|
513
|
-
/** Emit-override specializations (`%C.emit:<event>` — lower-emitter.ts's
|
|
595
|
+
/** Emit-override specializations (`%C.emit:<event>` — lower-event-emitter.ts's
|
|
514
596
|
* emit-overrides block): interned names, the drive-loop queue, and the
|
|
515
597
|
* currently-lowering specialization's context (the super-forward
|
|
516
598
|
* interception reads it). */
|
|
@@ -569,6 +651,10 @@ export declare class Lowerer {
|
|
|
569
651
|
};
|
|
570
652
|
}>;
|
|
571
653
|
readonly narrowHelpers: Map<string, string>;
|
|
654
|
+
/** Exact members of narrowHelpers produced by narrowedArmHelper. This
|
|
655
|
+
* lets property consumers recognize an earlier checked extraction by
|
|
656
|
+
* provenance instead of relying on its generated-name prefix. */
|
|
657
|
+
private readonly checkedNarrowHelpers;
|
|
572
658
|
/** Interned `%iter.drain.<n>` helpers (classIteratorDrainCall): one per
|
|
573
659
|
* receiver class — the eager drain of a class iterable's protocol into
|
|
574
660
|
* a fresh element array, behind array/call spreads. */
|
|
@@ -888,6 +974,13 @@ export declare class Lowerer {
|
|
|
888
974
|
* point for deferred collection diagnostics: resolving a reference to a
|
|
889
975
|
* broken declaration reports what collection deferred. */
|
|
890
976
|
resolveValueSymbol(ident: ts.Identifier): ts.Symbol | null;
|
|
977
|
+
/** Whether this exact direct call belongs to a manifest-validated native
|
|
978
|
+
* binding. Declaration classification uses this as a probe before normal
|
|
979
|
+
* expression lowering: resolving must not flush deferred diagnostics or
|
|
980
|
+
* trigger the merged-namespace fence just because it is asking ownership.
|
|
981
|
+
* Call lowering remains the authority for every ABI and call-shape
|
|
982
|
+
* diagnostic once this answers true. */
|
|
983
|
+
ownsFfiCall(expr: ts.CallExpression): boolean;
|
|
891
984
|
/** The configured external host module owning an expression's runtime
|
|
892
985
|
* value, or null. Alias chains are followed to their declaration file so
|
|
893
986
|
* direct imports and local re-export facades classify identically. Type
|
|
@@ -976,6 +1069,12 @@ export declare class Lowerer {
|
|
|
976
1069
|
wantBody(name: string): boolean;
|
|
977
1070
|
collectNpmImports(parts: FileParts[]): void;
|
|
978
1071
|
collectJsonImports(parts: FileParts[]): void;
|
|
1072
|
+
/** Discover the unchecked-array values that cross static ABI/storage
|
|
1073
|
+
* boundaries before any function body or module initializer is emitted.
|
|
1074
|
+
* TypeScript's default indexed-access type is a useful source annotation,
|
|
1075
|
+
* but it is not a runtime proof; promoting only the affected slots keeps
|
|
1076
|
+
* the rest of the dense ABI unchanged. */
|
|
1077
|
+
analyzeRuntimeOptionalArrayReads(parts: FileParts[]): void;
|
|
979
1078
|
run(): LowerResult;
|
|
980
1079
|
/** Final retention, pruning, and module assembly shared by ordinary emit
|
|
981
1080
|
* and the retained reachability worklist. */
|
|
@@ -1030,6 +1129,15 @@ export declare class Lowerer {
|
|
|
1030
1129
|
records: IrRecordShape[];
|
|
1031
1130
|
unions: IrUnionDef[];
|
|
1032
1131
|
};
|
|
1132
|
+
/** Converts diagnostics recorded since `diagsBefore` into a runtime
|
|
1133
|
+
* fence. ICEs stay on the compile-diagnostic path; every other captured
|
|
1134
|
+
* diagnostic moves to the runtime-fence ledger. Function targets share
|
|
1135
|
+
* the same capture-free trap-function construction, while statement
|
|
1136
|
+
* targets return the fence inline. Null means the conversion was not
|
|
1137
|
+
* eligible (probe mode, no diagnostic/fallback, or an ICE). */
|
|
1138
|
+
deferToRuntimeFence(diagsBefore: number, node: ts.Node, target: RuntimeFenceStatementTarget): IrStmt | null;
|
|
1139
|
+
deferToRuntimeFence(diagsBefore: number, node: ts.Node, target: RuntimeFenceFunctionTarget): IrFunction | null;
|
|
1140
|
+
deferToRuntimeFence(diagsBefore: number, node: ts.Node, target: RuntimeFenceClosureTarget): IrExpr | null;
|
|
1033
1141
|
/** All diagnostics land here; while a generic instance body is lowering,
|
|
1034
1142
|
* the instantiation context is appended so the user knows which concrete
|
|
1035
1143
|
* types made the (source-anchored) construct fail. */
|
|
@@ -1103,9 +1211,10 @@ export declare class Lowerer {
|
|
|
1103
1211
|
* isArrayValueType so Array.isArray's predicate and its narrowing bridge
|
|
1104
1212
|
* cannot disagree about fixed tuple arms. */
|
|
1105
1213
|
arrayValueTags(unionId: string): number[];
|
|
1106
|
-
/**
|
|
1107
|
-
*
|
|
1214
|
+
/** Checked JSON conversion excludes undefined array slots because JSON
|
|
1215
|
+
* text cannot preserve that distinction. */
|
|
1108
1216
|
jsonSafe(t: IrType): boolean;
|
|
1217
|
+
jsonStringifySafe(t: IrType): boolean;
|
|
1109
1218
|
/** True when a type is a BARE undefined-armed union — the one JSON-unsafe
|
|
1110
1219
|
* shape whose rejections deserve their own wording: Node's stringify of
|
|
1111
1220
|
* bare undefined is not a string at all and JSON text never matches the
|
|
@@ -1167,7 +1276,7 @@ export declare class Lowerer {
|
|
|
1167
1276
|
/** Unwraps a HYBRID (function-with-properties) record to its callable:
|
|
1168
1277
|
* a record whose shape carries the reserved `%call` func field reads
|
|
1169
1278
|
* that field; anything else returns unchanged. The consumer half of
|
|
1170
|
-
*
|
|
1279
|
+
* type-mapper.ts's chalk-shape mapping — call paths and func-slot coercions
|
|
1171
1280
|
* share it. */
|
|
1172
1281
|
hybridCallUnwrap(expr: IrExpr): IrExpr;
|
|
1173
1282
|
/** The tag of the union arm equal to `arm`, or -1 (unknown union / no
|
|
@@ -1910,7 +2019,7 @@ export declare class Lowerer {
|
|
|
1910
2019
|
* node_modules but NOT the standard library (typescript's own lib files
|
|
1911
2020
|
* live under node_modules too), or inside a registered workspace-linked
|
|
1912
2021
|
* package (a node_modules symlink whose realpath'd files carry no
|
|
1913
|
-
* node_modules segment —
|
|
2022
|
+
* node_modules segment — workspace-registry.ts). The provenance half of the npm
|
|
1914
2023
|
* typing rule (package types are island handles) and of the per-package
|
|
1915
2024
|
* requires-dynamic attribution. */
|
|
1916
2025
|
readonly isNpmFile: (sf: ts.SourceFile) => boolean;
|
|
@@ -1942,6 +2051,8 @@ export declare class Lowerer {
|
|
|
1942
2051
|
caughtLocalOf(node: ts.Expression): IrLocal | null;
|
|
1943
2052
|
caughtToString(node: ts.Expression): IrExpr | null;
|
|
1944
2053
|
lowerInstanceOf(expr: ts.BinaryExpression, loc: SrcLoc): IrExpr;
|
|
2054
|
+
private withRuntimeOptionalClassValue;
|
|
2055
|
+
private withExpressionOverride;
|
|
1945
2056
|
lowerCall(expr: ts.CallExpression): IrExpr;
|
|
1946
2057
|
isTopLevelFnSymbol(ident: ts.Identifier): boolean;
|
|
1947
2058
|
lowerNestedFunctionDecl(stmt: ts.FunctionDeclaration): IrStmt;
|
|
@@ -2141,3 +2252,4 @@ export declare class Lowerer {
|
|
|
2141
2252
|
islandGlobalFnOf(ident: ts.Identifier): IslandFnEntry | null;
|
|
2142
2253
|
lowerIslandMethodCall(call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
|
|
2143
2254
|
}
|
|
2255
|
+
export {};
|