@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
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type IrExpr, type IrLibFn, type IrParam, type IrType, type SrcLoc } from "../../ir/ir.js";
|
|
2
|
+
import type { Lowerer } from "./lowerer.js";
|
|
3
|
+
/** Intern a helper that materializes a pure string-index record from a flat
|
|
4
|
+
* `[key, value, ...]` array returned by a runtime call. */
|
|
5
|
+
export declare function pairsSnapshotHelper(lowerer: Lowerer, shapeId: string, loc: SrcLoc, options: {
|
|
6
|
+
keyPrefix: string;
|
|
7
|
+
libCall: IrLibFn;
|
|
8
|
+
params?: IrParam[];
|
|
9
|
+
callArgs?: IrExpr[];
|
|
10
|
+
indexValueOk?: (indexValue: IrType) => boolean;
|
|
11
|
+
}): string | null;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { arrayOf, BOOL, F64, STRING } from "../../ir/ir.js";
|
|
2
|
+
import { numLit, varRef } from "../../ir/build.js";
|
|
3
|
+
/** Intern a helper that materializes a pure string-index record from a flat
|
|
4
|
+
* `[key, value, ...]` array returned by a runtime call. */
|
|
5
|
+
export function pairsSnapshotHelper(lowerer, shapeId, loc, options) {
|
|
6
|
+
const shape = lowerer.shapes.get(shapeId);
|
|
7
|
+
if (!shape || shape.tuple || shape.fields.length > 0 || !shape.indexValue)
|
|
8
|
+
return null;
|
|
9
|
+
const indexValue = shape.indexValue;
|
|
10
|
+
if (options.indexValueOk && !options.indexValueOk(indexValue))
|
|
11
|
+
return null;
|
|
12
|
+
if (indexValue.kind !== "union")
|
|
13
|
+
return null;
|
|
14
|
+
const stringTag = lowerer.armTag(indexValue.unionId, STRING);
|
|
15
|
+
if (stringTag < 0)
|
|
16
|
+
return null;
|
|
17
|
+
const key = `${options.keyPrefix}.snapshot:${shapeId}`;
|
|
18
|
+
const existing = lowerer.widthHelpers.get(key);
|
|
19
|
+
if (existing)
|
|
20
|
+
return existing;
|
|
21
|
+
const name = `%${options.keyPrefix}.snapshot.${lowerer.widthHelpers.size}`;
|
|
22
|
+
lowerer.widthHelpers.set(key, name);
|
|
23
|
+
const recordType = { kind: "record", shapeId };
|
|
24
|
+
const pairsType = arrayOf(STRING);
|
|
25
|
+
const pairAt = (offset) => ({
|
|
26
|
+
kind: "arrayGet",
|
|
27
|
+
arr: varRef("ps.0", pairsType, loc),
|
|
28
|
+
index: offset === 0
|
|
29
|
+
? varRef("i.0", F64, loc)
|
|
30
|
+
: { kind: "bin", op: "+", left: varRef("i.0", F64, loc), right: numLit(offset, loc), type: F64, loc },
|
|
31
|
+
type: STRING,
|
|
32
|
+
loc,
|
|
33
|
+
});
|
|
34
|
+
lowerer.liftedFns.push({
|
|
35
|
+
name,
|
|
36
|
+
params: options.params ?? [],
|
|
37
|
+
returnType: recordType,
|
|
38
|
+
locals: [
|
|
39
|
+
...(options.params ?? []).map((param) => ({ id: param.localId, name: param.name, type: param.type, mutable: false })),
|
|
40
|
+
{ id: "ps.0", name: "ps", type: pairsType, mutable: false },
|
|
41
|
+
{ id: "out.0", name: "out", type: recordType, mutable: false },
|
|
42
|
+
{ id: "i.0", name: "i", type: F64, mutable: true },
|
|
43
|
+
],
|
|
44
|
+
body: [
|
|
45
|
+
{
|
|
46
|
+
kind: "varDecl",
|
|
47
|
+
localId: "ps.0",
|
|
48
|
+
init: { kind: "libCall", fn: options.libCall, args: options.callArgs ?? [], type: pairsType, loc },
|
|
49
|
+
loc,
|
|
50
|
+
},
|
|
51
|
+
{ kind: "varDecl", localId: "out.0", init: { kind: "recordLit", fields: [], type: recordType, loc }, loc },
|
|
52
|
+
{
|
|
53
|
+
kind: "for",
|
|
54
|
+
init: { kind: "varDecl", localId: "i.0", init: numLit(0, loc), loc },
|
|
55
|
+
cond: {
|
|
56
|
+
kind: "bin",
|
|
57
|
+
op: "<",
|
|
58
|
+
left: varRef("i.0", F64, loc),
|
|
59
|
+
right: { kind: "arrIntrinsic", method: "length", receiver: varRef("ps.0", pairsType, loc), args: [], type: F64, loc },
|
|
60
|
+
type: BOOL,
|
|
61
|
+
loc,
|
|
62
|
+
},
|
|
63
|
+
update: {
|
|
64
|
+
kind: "assign",
|
|
65
|
+
localId: "i.0",
|
|
66
|
+
value: { kind: "bin", op: "+", left: varRef("i.0", F64, loc), right: numLit(2, loc), type: F64, loc },
|
|
67
|
+
loc,
|
|
68
|
+
},
|
|
69
|
+
body: [{
|
|
70
|
+
kind: "recordKeySet",
|
|
71
|
+
obj: varRef("out.0", recordType, loc),
|
|
72
|
+
shapeId,
|
|
73
|
+
key: pairAt(0),
|
|
74
|
+
value: { kind: "unionWrap", unionId: indexValue.unionId, tag: stringTag, value: pairAt(1), type: indexValue, loc },
|
|
75
|
+
loc,
|
|
76
|
+
}],
|
|
77
|
+
loc,
|
|
78
|
+
},
|
|
79
|
+
{ kind: "return", value: varRef("out.0", recordType, loc), loc },
|
|
80
|
+
],
|
|
81
|
+
loc,
|
|
82
|
+
});
|
|
83
|
+
return name;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=pairs-snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pairs-snapshot.js","sourceRoot":"","sources":["../../../src/frontend/lowering/pairs-snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as ts from "../ts7/adapter.js";
|
|
2
|
+
import type { Lowerer } from "./lowerer.js";
|
|
3
|
+
/** Walk a static class context for `this`/`super`. Arrows inherit the
|
|
4
|
+
* surrounding receiver and remain transparent; declarations that bind
|
|
5
|
+
* their own receiver (and nested classes) are opaque. */
|
|
6
|
+
export declare function rejectStaticThis(lowerer: Lowerer, root: ts.Node, message: (keyword: "this" | "super") => string, includeRoot?: boolean): void;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as ts from "../ts7/adapter.js";
|
|
2
|
+
/** Walk a static class context for `this`/`super`. Arrows inherit the
|
|
3
|
+
* surrounding receiver and remain transparent; declarations that bind
|
|
4
|
+
* their own receiver (and nested classes) are opaque. */
|
|
5
|
+
export function rejectStaticThis(lowerer, root, message, includeRoot = false) {
|
|
6
|
+
const visit = (node) => {
|
|
7
|
+
if (ts.isFunctionExpression(node) || ts.isFunctionDeclaration(node) ||
|
|
8
|
+
ts.isMethodDeclaration(node) || ts.isConstructorDeclaration(node) ||
|
|
9
|
+
ts.isGetAccessor(node) || ts.isSetAccessor(node) ||
|
|
10
|
+
ts.isClassDeclaration(node) || ts.isClassExpression(node)) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
if (node.kind === ts.SyntaxKind.ThisKeyword || node.kind === ts.SyntaxKind.SuperKeyword) {
|
|
14
|
+
const keyword = node.kind === ts.SyntaxKind.ThisKeyword ? "this" : "super";
|
|
15
|
+
lowerer.unsupported("SC1090", node, message(keyword));
|
|
16
|
+
}
|
|
17
|
+
node.forEachChild(visit);
|
|
18
|
+
};
|
|
19
|
+
if (includeRoot)
|
|
20
|
+
visit(root);
|
|
21
|
+
else
|
|
22
|
+
root.forEachChild(visit);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=static-this.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-this.js","sourceRoot":"","sources":["../../../src/frontend/lowering/static-this.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGxC;;yDAEyD;AACzD,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,IAAa,EACb,OAA8C,EAC9C,WAAW,GAAG,KAAK;IAEnB,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;QACpC,IACE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC/D,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC;YACjE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;YAChD,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EACzD,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YACxF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3E,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,CAAC;IACF,IAAI,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC;;QACxB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as ts from "../ts7/adapter.js";
|
|
2
2
|
import type { Lowerer } from "./lowerer.js";
|
|
3
3
|
import { UNSUPPORTED } from "../../diagnostics/diagnostic.js";
|
|
4
|
-
import { IrExpr, IrLibFn, IrStrIntrinsicMethod, IrType } from "../../ir/
|
|
4
|
+
import { IrExpr, IrLibFn, IrStrIntrinsicMethod, IrType } from "../../ir/ir.js";
|
|
5
5
|
/** Statement-level constructs rejected wholesale, keyed by syntax kind. */
|
|
6
6
|
export declare const UNSUPPORTED_STMT: Partial<Record<ts.SyntaxKind, {
|
|
7
7
|
code: keyof typeof UNSUPPORTED;
|
|
@@ -27,7 +27,7 @@ export declare function sideEffectFreeOptionValue(node: ts.Expression): boolean;
|
|
|
27
27
|
* supported-options hint otherwise); undocumented keys drop like Node
|
|
28
28
|
* drops them when the value is side-effect-free, and fence when it is
|
|
29
29
|
* not. `prop` is the property entry (assignment or shorthand) for spans. */
|
|
30
|
-
export declare function fenceOrDropOptionKey(
|
|
30
|
+
export declare function fenceOrDropOptionKey(lowerer: Lowerer, prop: ts.ObjectLiteralElementLike, key: string, api: string, documented: ReadonlySet<string>, supportedHint: string, pointedHints?: Record<string, string | undefined>): void;
|
|
31
31
|
/** http.request/http.get's documented option keys (Node v24 — the
|
|
32
32
|
* `http.request(options)` and `net.socket.connect` tables); everything
|
|
33
33
|
* else on a client options literal is undocumented and drops. */
|
|
@@ -111,12 +111,11 @@ export interface IslandFnEntry {
|
|
|
111
111
|
args: IrType[];
|
|
112
112
|
ret: IrType;
|
|
113
113
|
}
|
|
114
|
-
export declare const ISL_N1: IslandFnEntry;
|
|
115
|
-
export declare const ISL_N2: IslandFnEntry;
|
|
116
114
|
export declare const boundaryIntoIslandMsg: (typeName: string) => string;
|
|
117
115
|
export declare const boundaryOutOfIslandMsg: (typeName: string) => string;
|
|
118
116
|
/** The island-backed surface — standard-library APIs with no static
|
|
119
|
-
* runtime implementation (Math
|
|
117
|
+
* runtime implementation (Math methods/properties beyond the compile-time
|
|
118
|
+
* constants, number/string methods beyond the
|
|
120
119
|
* intrinsic set, parseFloat, ...). ONE table drives both sides of the
|
|
121
120
|
* gate: under --dynamic each entry lowers to marshal → engine execution →
|
|
122
121
|
* validated exit to the declared return type; without the flag each use
|
|
@@ -131,7 +130,8 @@ export declare const boundaryOutOfIslandMsg: (typeName: string) => string;
|
|
|
131
130
|
* user. */
|
|
132
131
|
export declare const ISLAND_SURFACE: {
|
|
133
132
|
/** `Math.<fn>(...)` lowers to callMethod(globalGet("Math"), fn, args);
|
|
134
|
-
*
|
|
133
|
+
* Math.PI and Math.E are compile-time numeric literals in STATIC_MATH_PROPS;
|
|
134
|
+
* remaining Math properties retain island/fence behavior.
|
|
135
135
|
* min/max/atan2/hypot/pow are declared with exactly two parameters
|
|
136
136
|
* (rest/optional parameters aren't representable). */
|
|
137
137
|
math: {
|
|
@@ -158,6 +158,12 @@ export declare const ISLAND_SURFACE: {
|
|
|
158
158
|
* coercions stay engine territory. */
|
|
159
159
|
globals: Record<string, IslandFnEntry | undefined>;
|
|
160
160
|
};
|
|
161
|
+
/** Math properties with a STATIC lowering: each read becomes the exact
|
|
162
|
+
* JavaScript numeric constant in the typed IR. No runtime Math object read or
|
|
163
|
+
* dynamic-engine dependency is involved. Remaining Math properties retain
|
|
164
|
+
* their island/fence behavior through ISLAND_SURFACE.math.props and the
|
|
165
|
+
* generic standard-library member fence. */
|
|
166
|
+
export declare const STATIC_MATH_PROPS: Record<string, number | undefined>;
|
|
161
167
|
/** Math members with a STATIC lowering — each is one C call that IS the
|
|
162
168
|
* JS operation, at the tabled arity (floor: libm's floor; min/max: the
|
|
163
169
|
* NaN-poisoning ±0-ordered scalar folds; random: arc4random-backed
|
|
@@ -215,7 +221,7 @@ export declare const BUILTIN_MODULE_FN_ALIASES: Record<string, Record<string, re
|
|
|
215
221
|
/** Ambient surfaces lowered through DEDICATED code paths (no lowering-table
|
|
216
222
|
* row): the Date compositions, perf_hooks' performance.now, and the process
|
|
217
223
|
* global's ambient reads and authority calls. These are the determinism
|
|
218
|
-
* attestation's ground (ir/
|
|
224
|
+
* attestation's ground (ir/ir.ts's LIB_NONDETERMINISTIC_PREFIXES), so
|
|
219
225
|
* each row projects one surface-manifest entry — a permanent, fenceable id
|
|
220
226
|
* — and carries the libCall spellings that witness the surface's reach in
|
|
221
227
|
* a compiled graph (the fence detector and the attestation must agree; the
|
|
@@ -231,20 +237,15 @@ export interface AmbientSurfaceRow {
|
|
|
231
237
|
note?: string;
|
|
232
238
|
}
|
|
233
239
|
export declare const AMBIENT_SURFACE_FNS: readonly AmbientSurfaceRow[];
|
|
234
|
-
/** BUILTIN_MODULE_FNS with the platform-conditional modules bound per
|
|
235
|
-
* TARGET: a win32 triple compiles Node-on-Windows semantics — `path` is
|
|
236
|
-
* path.win32 and url's bridge takes the win32 flavors. Fence wording is
|
|
237
|
-
* unaffected — callers keep naming the module the source spelled. */
|
|
238
|
-
export declare function builtinModuleFnsOf(L: Lowerer, module: string): Record<string, BuiltinModuleFn | undefined> | undefined;
|
|
239
240
|
/** One MEMBER's table entry, own-property-safe (`path.toString` must not
|
|
240
241
|
* answer Object.prototype.toString as a BuiltinModuleFn). */
|
|
241
|
-
export declare function builtinModuleFnOf(
|
|
242
|
+
export declare function builtinModuleFnOf(lowerer: Lowerer, module: string, member: string): BuiltinModuleFn | undefined;
|
|
242
243
|
/** One member's fence hint, own-property-safe (a collision would print an
|
|
243
244
|
* inherited function into the diagnostic text). */
|
|
244
245
|
export declare function builtinFenceHintOf(module: string, member: string): string | undefined;
|
|
245
246
|
/** BUILTIN_MODULE_CONSTS with the win32-target overrides applied — the
|
|
246
247
|
* constants twin of builtinModuleFnsOf. */
|
|
247
|
-
export declare function builtinModuleConstOf(
|
|
248
|
+
export declare function builtinModuleConstOf(lowerer: Lowerer, module: string, member: string): string | number | boolean | undefined;
|
|
248
249
|
/** The IR literal of a builtin-module constant — one place so both value
|
|
249
250
|
* paths (named-import bindings and namespace member reads) emit the same
|
|
250
251
|
* kinds. */
|
|
@@ -253,14 +254,6 @@ export declare function builtinConstLit(value: string | number | boolean, loc: {
|
|
|
253
254
|
start: number;
|
|
254
255
|
end: number;
|
|
255
256
|
}): IrExpr;
|
|
256
|
-
/** node:module's builtinModules, BAKED — Node v24's exact list (verbatim
|
|
257
|
-
* order: the bare names, then the node:-prefix-only tails), pinned to
|
|
258
|
-
* the compat target rather than read from the COMPILING host's Node so
|
|
259
|
-
* emitted programs are host-independent (the cache-identity contract).
|
|
260
|
-
* Node ships one frozen singleton; each read here mints a fresh string
|
|
261
|
-
* array — a divergence only mutation could observe, and mutating Node's
|
|
262
|
-
* frozen array throws anyway. */
|
|
263
|
-
export declare const NODE_BUILTIN_MODULES_V24: readonly string[];
|
|
264
257
|
/** The array-literal read of module.builtinModules — both value paths
|
|
265
258
|
* (the named-import binding and the namespace member read) mint the
|
|
266
259
|
* same fresh string[]. */
|
|
@@ -269,10 +262,6 @@ export declare function builtinModulesArrayLit(loc: {
|
|
|
269
262
|
start: number;
|
|
270
263
|
end: number;
|
|
271
264
|
}): IrExpr;
|
|
272
|
-
/** Member-specific hints for RECOGNIZED builtin modules whose member has
|
|
273
|
-
* no lowering. deflateSync/inflateSync lower now (Buffers are real);
|
|
274
|
-
* the rest of the zlib surface points at the lowered pair. */
|
|
275
|
-
export declare const ZLIB_HINT = "deflateSync and inflateSync are the lowered zlib surface";
|
|
276
265
|
export declare const BUILTIN_MODULE_FENCE_HINTS: Record<string, Record<string, string | undefined> | undefined>;
|
|
277
266
|
/** The MEMBER chokepoint of the lib fence: called from the property-read
|
|
278
267
|
* and method-call fallbacks after every lowering has passed. When the
|
|
@@ -281,23 +270,23 @@ export declare const BUILTIN_MODULE_FENCE_HINTS: Record<string, Record<string, s
|
|
|
281
270
|
* receiver's global name when it IS a stdlib global like Math or Promise,
|
|
282
271
|
* its widened type text otherwise). Returns silently for non-stdlib
|
|
283
272
|
* members so the caller's generic rejection applies. */
|
|
284
|
-
export declare function stdlibMemberFence(
|
|
273
|
+
export declare function stdlibMemberFence(lowerer: Lowerer, access: ts.PropertyAccessExpression): void;
|
|
285
274
|
/** True iff the accessed member is declared by the standard library —
|
|
286
275
|
* the same technique as isConsoleLog: trust declarations, not names. */
|
|
287
|
-
export declare function isStdlibMember(
|
|
276
|
+
export declare function isStdlibMember(lowerer: Lowerer, access: ts.PropertyAccessExpression): boolean;
|
|
288
277
|
/** The provenance check the CHILD receiver lowerings use: a stdlib
|
|
289
278
|
* member, OR a member the user's own child-shaped interface declares
|
|
290
279
|
* (the NgrokChildProcess idiom — mapType's duck rule admits an
|
|
291
280
|
* interface only when EVERY member names the lowered ChildProcess
|
|
292
281
|
* surface, so accepting its members here cannot widen the surface;
|
|
293
282
|
* the receiver-kind gate already proved the type maps to child). */
|
|
294
|
-
export declare function isChildSurfaceMember(
|
|
283
|
+
export declare function isChildSurfaceMember(lowerer: Lowerer, access: ts.PropertyAccessExpression): boolean;
|
|
295
284
|
/** True iff some declaration of the symbol lives in the standard library
|
|
296
285
|
* (shipped ambient or default lib — the provenance half of every
|
|
297
286
|
* supported-surface check). `some`, not `[0]`: divergence overrides merge
|
|
298
287
|
* with lib interfaces, so a member can carry declarations from both. A
|
|
299
288
|
* user's own declaration is in neither, so shadowing never matches. */
|
|
300
|
-
export declare function isStdlibSymbol(
|
|
289
|
+
export declare function isStdlibSymbol(lowerer: Lowerer, symbol: ts.Symbol | undefined): boolean;
|
|
301
290
|
/** The canonical stdlib-global name `expr` denotes, or null. Three
|
|
302
291
|
* spellings reach the same global (Node's own aliasing):
|
|
303
292
|
* - the bare identifier (`process`), name + provenance checked;
|
|
@@ -308,19 +297,19 @@ export declare function isStdlibSymbol(L: Lowerer, symbol: ts.Symbol | undefined
|
|
|
308
297
|
* `typeof globalThis`, same symbol either way;
|
|
309
298
|
* - a local alias binding (`const process = globalThis.process`, the
|
|
310
299
|
* tamper-guard prologue) registered in stdlibGlobalAliases. */
|
|
311
|
-
export declare function stdlibGlobalNameOf(
|
|
300
|
+
export declare function stdlibGlobalNameOf(lowerer: Lowerer, expr: ts.Expression): string | null;
|
|
312
301
|
/** True iff `expr` denotes THE standard-library global `name` — name AND
|
|
313
302
|
* provenance, because neither alone suffices: several globals share
|
|
314
303
|
* member names (Math.log must never lower as console.log), and a user
|
|
315
304
|
* binding shadowing a global's name has a different, non-stdlib symbol.
|
|
316
305
|
* All of stdlibGlobalNameOf's spellings answer (globalThis.process is
|
|
317
306
|
* process; `const process = globalThis.process` aliases through). */
|
|
318
|
-
export declare function isStdlibGlobal(
|
|
307
|
+
export declare function isStdlibGlobal(lowerer: Lowerer, expr: ts.Expression, name: string): boolean;
|
|
319
308
|
/** The member name of a `<global>.<member>` access whose receiver is THE
|
|
320
309
|
* standard-library global `name` (console, JSON, process, Math). Null for
|
|
321
310
|
* anything else, so property-lowering chains keep trying other
|
|
322
311
|
* receivers. */
|
|
323
|
-
export declare function stdlibGlobalMember(
|
|
312
|
+
export declare function stdlibGlobalMember(lowerer: Lowerer, access: ts.PropertyAccessExpression, name: string): string | null;
|
|
324
313
|
/** `const process = globalThis.process` (and any `const x = <stdlib
|
|
325
314
|
* global>` snapshot — the suite harness's tamper-guard prologue): the
|
|
326
315
|
* binding is pure alias plumbing. Nothing in a compiled program can
|
|
@@ -330,9 +319,9 @@ export declare function stdlibGlobalMember(L: Lowerer, access: ts.PropertyAccess
|
|
|
330
319
|
* nothing. Only the globals with lowered member surfaces alias this
|
|
331
320
|
* way; aliasing, say, `Math` would change nothing (its members lower
|
|
332
321
|
* by receiver too). Returns true when recognized. */
|
|
333
|
-
export declare function stdlibGlobalAliasDecl(
|
|
322
|
+
export declare function stdlibGlobalAliasDecl(lowerer: Lowerer, nameNode: ts.Node, init: ts.Expression | undefined): boolean;
|
|
334
323
|
/** True iff the symbol is declared ONLY by the adopted @types/node
|
|
335
324
|
* surface (no es-lib or shipped-ambient declaration merges in) — chooses
|
|
336
325
|
* the SC2020 fence's wording: "typed by @types/node", not "standard
|
|
337
326
|
* library". */
|
|
338
|
-
export declare function nodeTypesOnlySymbol(
|
|
327
|
+
export declare function nodeTypesOnlySymbol(lowerer: Lowerer, sym: ts.Symbol | null | undefined): boolean;
|