@scriptc/compiler 0.2.2 → 0.2.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 +99 -27
- package/dist/backend/cycle-analysis.js +63 -50
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-analysis.test.js +51 -0
- package/dist/backend/cycle-analysis.test.js.map +1 -1
- package/dist/backend/llvm/borrowed-inputs.d.ts +15 -0
- package/dist/backend/llvm/borrowed-inputs.js +28 -0
- package/dist/backend/llvm/borrowed-inputs.js.map +1 -0
- package/dist/backend/llvm/borrowed-receivers.d.ts +9 -0
- package/dist/backend/llvm/borrowed-receivers.js +58 -0
- package/dist/backend/llvm/borrowed-receivers.js.map +1 -0
- package/dist/backend/llvm/byte-numbers.d.ts +10 -0
- package/dist/backend/llvm/byte-numbers.js +235 -0
- package/dist/backend/llvm/byte-numbers.js.map +1 -0
- package/dist/backend/llvm/bytes-bounds.d.ts +9 -0
- package/dist/backend/llvm/bytes-bounds.js +189 -0
- package/dist/backend/llvm/bytes-bounds.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.d.ts +27 -0
- package/dist/backend/llvm/call-lifetimes.js +199 -0
- package/dist/backend/llvm/call-lifetimes.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.test.d.ts +1 -0
- package/dist/backend/llvm/call-lifetimes.test.js +259 -0
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -0
- package/dist/backend/llvm/checked-value-lifetimes.d.ts +9 -0
- package/dist/backend/llvm/checked-value-lifetimes.js +35 -0
- package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -0
- package/dist/backend/llvm/counted-loops.d.ts +6 -0
- package/dist/backend/llvm/counted-loops.js +28 -0
- package/dist/backend/llvm/counted-loops.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +2 -2
- package/dist/backend/llvm/dyn.js +79 -35
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +56 -7
- package/dist/backend/llvm/emitter.js +310 -37
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +24 -5
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +4 -3
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +4 -4
- package/dist/backend/llvm/expr-bytes.js +68 -35
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +50 -5
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +2 -1
- package/dist/backend/llvm/expr-containers.js +136 -57
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +11 -0
- package/dist/backend/llvm/expr-control.js +26 -5
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +33 -31
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +61 -27
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +9 -3
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +5 -10
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/integer-values.d.ts +10 -0
- package/dist/backend/llvm/integer-values.js +41 -0
- package/dist/backend/llvm/integer-values.js.map +1 -0
- package/dist/backend/llvm/integer-views.d.ts +7 -0
- package/dist/backend/llvm/integer-views.js +67 -0
- package/dist/backend/llvm/integer-views.js.map +1 -0
- package/dist/backend/llvm/integer-views.test.d.ts +1 -0
- package/dist/backend/llvm/integer-views.test.js +34 -0
- package/dist/backend/llvm/integer-views.test.js.map +1 -0
- package/dist/backend/llvm/lib-dispatch.js +3 -1
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +5 -5
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +35 -1
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.d.ts +42 -0
- package/dist/backend/llvm/local-array-reads.js +226 -0
- package/dist/backend/llvm/local-array-reads.js.map +1 -0
- package/dist/backend/llvm/local-array-reads.test.d.ts +1 -0
- package/dist/backend/llvm/local-array-reads.test.js +446 -0
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -0
- package/dist/backend/llvm/map-read-lifetimes.d.ts +36 -0
- package/dist/backend/llvm/map-read-lifetimes.js +128 -0
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -0
- package/dist/backend/llvm/map-read-lifetimes.test.d.ts +1 -0
- package/dist/backend/llvm/map-read-lifetimes.test.js +127 -0
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -0
- package/dist/backend/llvm/reference-effects.d.ts +22 -0
- package/dist/backend/llvm/reference-effects.js +148 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -0
- package/dist/backend/llvm/reference-effects.test.d.ts +1 -0
- package/dist/backend/llvm/reference-effects.test.js +74 -0
- package/dist/backend/llvm/reference-effects.test.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +7 -4
- package/dist/backend/llvm/shapes.js +24 -6
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/split.js +15 -5
- package/dist/backend/llvm/split.js.map +1 -1
- package/dist/backend/llvm/split.test.js +17 -0
- package/dist/backend/llvm/split.test.js.map +1 -1
- package/dist/backend/llvm/stack-unions.d.ts +20 -0
- package/dist/backend/llvm/stack-unions.js +61 -0
- package/dist/backend/llvm/stack-unions.js.map +1 -0
- package/dist/backend/llvm/stack-unions.test.d.ts +1 -0
- package/dist/backend/llvm/stack-unions.test.js +262 -0
- package/dist/backend/llvm/stack-unions.test.js.map +1 -0
- package/dist/backend/llvm/string-construction.d.ts +10 -0
- package/dist/backend/llvm/string-construction.js +38 -0
- package/dist/backend/llvm/string-construction.js.map +1 -0
- package/dist/backend/llvm/string-construction.test.d.ts +1 -0
- package/dist/backend/llvm/string-construction.test.js +65 -0
- package/dist/backend/llvm/string-construction.test.js.map +1 -0
- package/dist/backend/llvm/string-lifetimes.d.ts +12 -0
- package/dist/backend/llvm/string-lifetimes.js +72 -0
- package/dist/backend/llvm/string-lifetimes.js.map +1 -0
- package/dist/backend/llvm/string-lifetimes.test.d.ts +1 -0
- package/dist/backend/llvm/string-lifetimes.test.js +239 -0
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -0
- package/dist/backend/mangle.d.ts +2 -0
- package/dist/backend/mangle.js +4 -0
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/may-throw.js +67 -29
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +104 -1
- package/dist/backend/may-throw.test.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +2 -2
- package/dist/backend/native-toolchain.js +2 -0
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/frontend/input-tracker.js +3 -3
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +38 -2
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lowering/collection-ingestion.d.ts +31 -0
- package/dist/frontend/lowering/collection-ingestion.js +224 -0
- package/dist/frontend/lowering/collection-ingestion.js.map +1 -0
- package/dist/frontend/lowering/containers/bytes.js +2 -0
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.js +6 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/import-meta.d.ts +10 -0
- package/dist/frontend/lowering/import-meta.js +52 -0
- package/dist/frontend/lowering/import-meta.js.map +1 -0
- package/dist/frontend/lowering/lower-assert.js +105 -41
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.d.ts +2 -0
- package/dist/frontend/lowering/lower-builtin-values.js +22 -1
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +3 -13
- package/dist/frontend/lowering/lower-builtins.js +152 -46
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +6 -3
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.js +7 -7
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +5 -1
- package/dist/frontend/lowering/lower-containers.js +52 -37
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.js +47 -43
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +43 -0
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +72 -68
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-system-errors.d.ts +6 -0
- package/dist/frontend/lowering/lower-system-errors.js +29 -0
- package/dist/frontend/lowering/lower-system-errors.js.map +1 -0
- package/dist/frontend/lowering/lowerer.d.ts +4 -3
- package/dist/frontend/lowering/lowerer.js +60 -25
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +2 -2
- package/dist/frontend/lowering/surfaces.js +69 -21
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/module-syntax.d.ts +1 -1
- package/dist/frontend/module-syntax.js +8 -1
- package/dist/frontend/module-syntax.js.map +1 -1
- package/dist/frontend/module-syntax.test.js +10 -0
- package/dist/frontend/module-syntax.test.js.map +1 -1
- package/dist/frontend/npm.d.ts +4 -0
- package/dist/frontend/npm.js +86 -33
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/npm.test.js +103 -0
- package/dist/frontend/npm.test.js.map +1 -1
- package/dist/frontend/pipeline-native.js +2 -1
- package/dist/frontend/pipeline-native.js.map +1 -1
- package/dist/frontend/services-node.js +3 -2
- package/dist/frontend/services-node.js.map +1 -1
- package/dist/frontend/services.d.ts +5 -1
- package/dist/frontend/services.js +9 -1
- package/dist/frontend/services.js.map +1 -1
- package/dist/frontend/services.test.js +21 -0
- package/dist/frontend/services.test.js.map +1 -1
- package/dist/frontend/ts7/ast-node.d.ts +2 -0
- package/dist/frontend/ts7/ast-node.js +30 -4
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +60 -1
- package/dist/frontend/ts7/ast-node.test.js.map +1 -1
- package/dist/frontend/type-mapper.js +8 -2
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js +4 -1
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/byte-numbers.d.ts +20 -0
- package/dist/ir/byte-numbers.js +65 -0
- package/dist/ir/byte-numbers.js.map +1 -0
- package/dist/ir/byte-numbers.test.d.ts +1 -0
- package/dist/ir/byte-numbers.test.js +42 -0
- package/dist/ir/byte-numbers.test.js.map +1 -0
- package/dist/ir/integer-loops.d.ts +26 -0
- package/dist/ir/integer-loops.js +130 -1
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.d.ts +1 -0
- package/dist/ir/integer-loops.test.js +91 -0
- package/dist/ir/integer-loops.test.js.map +1 -0
- package/dist/ir/integer-ranges.d.ts +8 -6
- package/dist/ir/integer-ranges.js +343 -89
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +54 -3
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/ir.d.ts +29 -22
- package/dist/ir/ir.js +59 -14
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +18 -0
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/validate.js +208 -105
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +247 -0
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/fence-eval.js +9 -2
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/fence-eval.test.d.ts +1 -0
- package/dist/library/fence-eval.test.js +21 -0
- package/dist/library/fence-eval.test.js.map +1 -0
- package/dist/native/runtime-typescript.d.ts +4 -0
- package/dist/native/runtime-typescript.js +61 -0
- package/dist/native/runtime-typescript.js.map +1 -0
- package/dist/native/runtime-typescript.test.d.ts +1 -0
- package/dist/native/runtime-typescript.test.js +41 -0
- package/dist/native/runtime-typescript.test.js.map +1 -0
- package/dist/native/toolchain.js +6 -3
- package/dist/native/toolchain.js.map +1 -1
- package/dist/native/toolchain.test.js +43 -5
- package/dist/native/toolchain.test.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +271 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integer-ranges.test.js","sourceRoot":"","sources":["../../src/ir/integer-ranges.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"integer-ranges.test.js","sourceRoot":"","sources":["../../src/ir/integer-ranges.test.ts"],"names":[],"mappings":"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"}
|
package/dist/ir/ir.d.ts
CHANGED
|
@@ -494,9 +494,10 @@ export declare function setOf(elem: IrType): IrType;
|
|
|
494
494
|
* classes and arrays can point back at their collection, so constructors
|
|
495
495
|
* must carry key tracing as well as retain/release adapters. */
|
|
496
496
|
export declare function isIdentityCollectionKey(t: IrType): boolean;
|
|
497
|
-
/**
|
|
498
|
-
*
|
|
499
|
-
*
|
|
497
|
+
/** Primitive keys compare by value and reference keys by identity. Union
|
|
498
|
+
* wrappers carry either domain without becoming observable key identities;
|
|
499
|
+
* null and undefined are distinct tag-only keys inside a union. */
|
|
500
|
+
export declare function isPrimitiveCollectionKey(t: IrType, unionArms?: IrType[]): boolean;
|
|
500
501
|
export declare function isSupportedMapKey(t: IrType, unionArms?: IrType[]): boolean;
|
|
501
502
|
/** Set elements and Map keys share storage, equality and ownership rules. */
|
|
502
503
|
export declare function isSupportedSetElem(t: IrType, unionArms?: IrType[]): boolean;
|
|
@@ -1438,13 +1439,15 @@ export declare const MAY_THROW_ARR_METHODS: ReadonlySet<IrArrIntrinsicMethod>;
|
|
|
1438
1439
|
* callback mutation because the runtime never compacts between
|
|
1439
1440
|
* `iterEnter`/`iterExit` — live-iteration semantics, Node-exact). The iter*
|
|
1440
1441
|
* members are compiler-internal: no ambient declaration reaches them. */
|
|
1441
|
-
export type IrMapIntrinsicMethod =
|
|
1442
|
+
export type IrMapIntrinsicMethod =
|
|
1443
|
+
/** Internal shallow-copy constructors over builtin collection storage. */
|
|
1444
|
+
"clone" | "keySet" | "valueSet" | "get" | "set" | "has" | "delete" | "size" | "clear" | "iterCount" | "iterLive" | "iterKey" | "iterValue" | "iterEnter" | "iterExit";
|
|
1442
1445
|
/** The Set method/property surface — Map's minus get/set/iterValue (there
|
|
1443
1446
|
* is no value slot; `add` fills set's role) plus `add`. `forEach` desugars
|
|
1444
1447
|
* in the frontend exactly like Map's, over the same iteration primitives —
|
|
1445
1448
|
* iterKey doubles as the element read (JS's Set forEach passes the element
|
|
1446
1449
|
* as both `value` and `key`). */
|
|
1447
|
-
export type IrSetIntrinsicMethod = "add" | "has" | "delete" | "size" | "clear" | "iterCount" | "iterLive" | "iterKey" | "iterEnter" | "iterExit"
|
|
1450
|
+
export type IrSetIntrinsicMethod = "clone" | "add" | "has" | "delete" | "size" | "clear" | "iterCount" | "iterLive" | "iterKey" | "iterEnter" | "iterExit"
|
|
1448
1451
|
/** `[...set]` and friends: drain the live entries into a FRESH elem[]
|
|
1449
1452
|
* in insertion order (tombstones skipped — the same walk the forEach
|
|
1450
1453
|
* desugar does, folded into one runtime call; no user code runs during
|
|
@@ -1866,7 +1869,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
1866
1869
|
* result is constant true there). Borrows the name; never throws. */
|
|
1867
1870
|
| "process.envUnset"
|
|
1868
1871
|
/** node:url + the URL class (scr_url.c). url.new parses one absolute
|
|
1869
|
-
* URL string into
|
|
1872
|
+
* URL string into a mutable URL value (+1) — invalid input THROWS a
|
|
1870
1873
|
* catchable TypeError ("Invalid URL"), like Node's constructor. The
|
|
1871
1874
|
* getters (borrowed receiver, +1 string) never throw; url.href doubles
|
|
1872
1875
|
* as toString(). fileURLToPath has one libFn per receiver form (URL
|
|
@@ -1877,7 +1880,10 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
1877
1880
|
/** Factories consume already-converted input/base strings. canParse
|
|
1878
1881
|
* answers a boolean; parse returns a checked native URL or null (+1).
|
|
1879
1882
|
* Parser failures are suppressed; conversion occurs before these calls. */
|
|
1880
|
-
| "url.canParse" | "url.canParseBase" | "url.parse" | "url.parseBase" | "url.protocol" | "url.origin" | "url.username" | "url.password" | "url.host" | "url.hostname" | "url.port" | "url.pathname" | "url.href"
|
|
1883
|
+
| "url.canParse" | "url.canParseBase" | "url.parse" | "url.parseBase" | "url.protocol" | "url.origin" | "url.username" | "url.password" | "url.host" | "url.hostname" | "url.port" | "url.pathname" | "url.href"
|
|
1884
|
+
/** Selected component writes borrow the receiver and converted string.
|
|
1885
|
+
* href replaces its parsed fields while retaining cached params identity. */
|
|
1886
|
+
| "url.set" | "url.setChecked" | "url.fileURLToPathUrl" | "url.fileURLToPathChecked" | "url.fileURLToPathOptions" | "url.fileURLToPathBuffer" | "url.pathToFileURLChecked" | "url.fileURLToPathStr" | "url.pathToFileURL"
|
|
1881
1887
|
/** Explicit path syntax from the options.windows argument, independent
|
|
1882
1888
|
* of the executable's host platform. Windows UNC input can throw. */
|
|
1883
1889
|
| "url.pathToFileURLPlatform"
|
|
@@ -1930,7 +1936,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
1930
1936
|
* checked-dynamic ParsedResults tree out. Statically typed member reads
|
|
1931
1937
|
* validate their values when leaving that tree. The native parser may
|
|
1932
1938
|
* throw Node's coded validation/grammar TypeErrors. */
|
|
1933
|
-
| "util.parseArgs" | "util.parseEnv"
|
|
1939
|
+
| "util.parseArgs" | "util.parseEnv" | "util.getSystemErrorName" | "util.getSystemErrorMessage" | "util.systemErrorEntries" | "util.stripVTControlCharacters" | "util.toUSVString" | "util.isDeepStrictEqual" | "util.styleText" | "util.typeIs" | "util.typeValue"
|
|
1934
1940
|
/** ES Symbol values (scr_symbol.c — link-gated by moduleUsesSymbol).
|
|
1935
1941
|
* sym.new: `Symbol(desc)` — a fresh runtime-unique identity (+1) whose
|
|
1936
1942
|
* one arg is the description string (borrowed); sym.newAnon is the
|
|
@@ -2595,7 +2601,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
2595
2601
|
* literal { recursive?, mode? } options (the mkdirSync matrix behind
|
|
2596
2602
|
* settled promises), unlink, chmod. Failures REJECT (catchable at the
|
|
2597
2603
|
* await), like the rest of the fsp family. */
|
|
2598
|
-
| "fsp.mkdirMode" | "fsp.mkdirRecursive" | "fsp.mkdirRecursiveMode" | "fsp.unlink" | "fsp.chmod" | "fsp.rename" | "fsp.readdir"
|
|
2604
|
+
| "fsp.mkdirMode" | "fsp.mkdirRecursive" | "fsp.mkdirRecursiveMode" | "fsp.unlink" | "fsp.chmod" | "fsp.link" | "fsp.symlink" | "fsp.readlink" | "fsp.statfs" | "fsp.readlinkStr" | "fsp.readlinkBuffer" | "fsp.utimes" | "fsp.lutimes" | "fsp.rename" | "fsp.readdir"
|
|
2599
2605
|
/** `fs.promises.readdir(path, { withFileTypes: true })` — the settled-
|
|
2600
2606
|
* promise twin of fs.readdirTypesSync. The backends assemble the same
|
|
2601
2607
|
* call-site-shaped Dirent rows, then move the array into a promise;
|
|
@@ -2606,7 +2612,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
2606
2612
|
* become rejections rather than escaping synchronously. read/write
|
|
2607
2613
|
* results are call-site record shapes ({ bytesRead/bytesWritten,
|
|
2608
2614
|
* buffer }) assembled by the backends around the fixed runtime ABI. */
|
|
2609
|
-
| "fsp.open" | "fileHandle.fd" | "fileHandle.close" | "fileHandle.sync" | "fileHandle.datasync" | "fileHandle.truncate" | "fileHandle.chmod" | "fileHandle.readv" | "fileHandle.writev" | "fileHandle.read" | "fileHandle.writeBytes" | "fileHandle.writeStr" | "fileHandle.readFile" | "fileHandle.readFileBytes" | "fileHandle.writeFile" | "fileHandle.writeFileBytes" | "fileHandle.stat" | "process.argv" | "process.platform"
|
|
2615
|
+
| "fsp.open" | "fileHandle.fd" | "fileHandle.close" | "fileHandle.sync" | "fileHandle.datasync" | "fileHandle.truncate" | "fileHandle.chmod" | "fileHandle.utimes" | "fileHandle.readv" | "fileHandle.writev" | "fileHandle.read" | "fileHandle.writeBytes" | "fileHandle.writeStr" | "fileHandle.readFile" | "fileHandle.readFileBytes" | "fileHandle.writeFile" | "fileHandle.writeFileBytes" | "fileHandle.stat" | "process.argv" | "process.platform"
|
|
2610
2616
|
/** getenv(3): one string key arg → the interned `string | undefined`
|
|
2611
2617
|
* union (present: +1 string wrapped into the string arm; absent: the
|
|
2612
2618
|
* interned undefined-arm instance). BOTH source forms — `process.env.FOO`
|
|
@@ -3133,7 +3139,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
3133
3139
|
* the value's inspection) — the frontend routes null/undefined to a
|
|
3134
3140
|
* no-op and everything else here (Node throws for falsy values too).
|
|
3135
3141
|
* All arguments are borrowed. */
|
|
3136
|
-
| "assert.ok" | "assert.eqF64" | "assert.eqBigInt" | "assert.eqStr" | "assert.eqBool" | "assert.eqSym" | "assert.eqDyn" | "assert.looseResult" | "assert.deepResult" | "assert.sameValue" | "assert.deqEnter" | "assert.deqLeave" | "assert.match" | "assert.throwsNone" | "assert.throwsMismatch" | "assert.throwsRegex" | "assert.shapeBegin" | "assert.shapeStr" | "assert.shapeRe" | "assert.shapeEnd" | "assert.regexErrTest" | "assert.unwantedRejection"
|
|
3142
|
+
| "assert.ok" | "assert.eqF64" | "assert.eqBigInt" | "assert.eqStr" | "assert.eqBool" | "assert.eqSym" | "assert.eqDyn" | "assert.looseResult" | "assert.deepResult" | "assert.sameValue" | "assert.deqEnter" | "assert.deqLeave" | "assert.match" | "assert.throwsNone" | "assert.throwsMismatch" | "assert.throwsRegex" | "assert.shapeBegin" | "assert.shapeStr" | "assert.shapeRe" | "assert.shapeEnd" | "assert.regexErrTest" | "assert.unwantedRejection" | "assert.unwantedError" | "assert.noErrorPredicate" | "assert.regexDynTest"
|
|
3137
3143
|
/** Node's expectsError over an error-INSTANCE expected (assert.throws/
|
|
3138
3144
|
* rejects second argument): walk the expected dyn error's keys (name,
|
|
3139
3145
|
* message, code — the %error marker skipped) and deep-compare each
|
|
@@ -3405,7 +3411,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
3405
3411
|
/** renameSync is the direct two-path syscall wrapper. renameCb defers
|
|
3406
3412
|
* the operation to the loop and fires a program-shaped Error | null
|
|
3407
3413
|
* callback through a backend-emitted adapter. */
|
|
3408
|
-
| "fs.renameSync" | "fs.renameCb" | "fs.lstatSync" | "fs.fstatSync" | "fs.fchmodSync" | "fs.fsyncSync" | "fs.fdatasyncSync" | "fs.ftruncateSync" | "fs.readvSync" | "fs.writevSync" | "fs.linkSync"
|
|
3414
|
+
| "fs.renameSync" | "fs.renameCb" | "fs.lstatSync" | "fs.fstatSync" | "fs.fchmodSync" | "fs.fsyncSync" | "fs.fdatasyncSync" | "fs.ftruncateSync" | "fs.utimesSync" | "fs.futimesSync" | "fs.lutimesSync" | "fs.readvSync" | "fs.writevSync" | "fs.linkSync" | "fs.symlinkSync" | "fs.readlinkSync" | "fs.statfsSync" | "fs.readlinkSyncStr" | "fs.readlinkSyncBuffer"
|
|
3409
3415
|
/** fs.openSync(path, flags) → the raw fd as f64; fs.readSync/fs.writeSync
|
|
3410
3416
|
* over Buffer windows perform sequential I/O when position is -1 and
|
|
3411
3417
|
* offset-preserving positioned I/O otherwise; fs.writeStrSync is the
|
|
@@ -3985,12 +3991,10 @@ export type IrExpr =
|
|
|
3985
3991
|
}
|
|
3986
3992
|
/** `new Set<T>()` — allocate an empty set. `type` is the set type (the
|
|
3987
3993
|
* element fence already enforced by the frontend); the result is owned
|
|
3988
|
-
* (+1). `seed`
|
|
3989
|
-
*
|
|
3990
|
-
*
|
|
3991
|
-
*
|
|
3992
|
-
* SameValueZero — exactly JS). Non-array seeds (another Set, general
|
|
3993
|
-
* iterables) stay frontend-fenced. */
|
|
3994
|
+
* (+1). `seed` is one borrowed array whose elements add() in order
|
|
3995
|
+
* (duplicates collapse, first insertion position wins, SameValueZero).
|
|
3996
|
+
* The frontend materializes supported non-array seeds, including Sets,
|
|
3997
|
+
* strings, tuples, and collection iterators, before constructing this IR. */
|
|
3994
3998
|
| {
|
|
3995
3999
|
kind: "setNew";
|
|
3996
4000
|
seed?: IrExpr;
|
|
@@ -4952,10 +4956,13 @@ export type IrExpr =
|
|
|
4952
4956
|
* The dyn operand is borrowed; the result is owned (+1). This is
|
|
4953
4957
|
* scriptc-specific behavior — JS `as` never checks (SEMANTICS.md
|
|
4954
4958
|
* documents it as the headline divergence: a lying cast throws instead of
|
|
4955
|
-
* corrupting memory).
|
|
4959
|
+
* corrupting memory). `preserveRefs` refuses structural copies of native
|
|
4960
|
+
* references, including references nested in newly materialized arrays or
|
|
4961
|
+
* tuples; collection seeds use it to preserve key identity. */
|
|
4956
4962
|
| {
|
|
4957
4963
|
kind: "dynCheck";
|
|
4958
4964
|
value: IrExpr;
|
|
4965
|
+
preserveRefs?: true;
|
|
4959
4966
|
type: IrType;
|
|
4960
4967
|
loc: SrcLoc;
|
|
4961
4968
|
}
|
|
@@ -5430,9 +5437,9 @@ export declare function moduleUsesSearchParams(mod: IrModule): boolean;
|
|
|
5430
5437
|
* loop hooks, cross-compiles everywhere). qs-free programs keep their
|
|
5431
5438
|
* exact link line. Same generic-walk shape as moduleUsesZlib. */
|
|
5432
5439
|
export declare function moduleUsesQs(mod: IrModule): boolean;
|
|
5433
|
-
/** True when the module uses native util
|
|
5434
|
-
*
|
|
5435
|
-
*
|
|
5440
|
+
/** True when the module uses native util parsing, comparison, or styling.
|
|
5441
|
+
* The utility units also follow their required symbol, inspection, and
|
|
5442
|
+
* warning features, independently of the island's node:util shim. */
|
|
5436
5443
|
export declare function moduleUsesParseArgs(mod: IrModule): boolean;
|
|
5437
5444
|
/** True when the module contains any fs.watch/watcher.* libCall — the
|
|
5438
5445
|
* link switch that pulls scr_watch.c into the binary and has the emitted
|
package/dist/ir/ir.js
CHANGED
|
@@ -247,12 +247,23 @@ export function isIdentityCollectionKey(t) {
|
|
|
247
247
|
return t.kind === "record" || t.kind === "object" || t.kind === "array" ||
|
|
248
248
|
t.kind === "netServer" || t.kind === "symbol";
|
|
249
249
|
}
|
|
250
|
-
/**
|
|
251
|
-
*
|
|
252
|
-
*
|
|
250
|
+
/** Primitive keys compare by value and reference keys by identity. Union
|
|
251
|
+
* wrappers carry either domain without becoming observable key identities;
|
|
252
|
+
* null and undefined are distinct tag-only keys inside a union. */
|
|
253
|
+
export function isPrimitiveCollectionKey(t, unionArms) {
|
|
254
|
+
if (t.kind === "union")
|
|
255
|
+
return !!unionArms?.length && unionArms.every((arm) => isPrimitiveCollectionKey(arm));
|
|
256
|
+
return t.kind === "f64" || t.kind === "string" || t.kind === "bigint" || t.kind === "bool" ||
|
|
257
|
+
t.kind === "symbol" || isUnitType(t);
|
|
258
|
+
}
|
|
253
259
|
export function isSupportedMapKey(t, unionArms) {
|
|
254
|
-
return t
|
|
255
|
-
(t.kind === "union" && unionArms !== undefined && unionArms.length > 0 &&
|
|
260
|
+
return isCollectionValueKey(t) || t.kind === "dyn" ||
|
|
261
|
+
(t.kind === "union" && unionArms !== undefined && unionArms.length > 0 &&
|
|
262
|
+
unionArms.every((arm) => isCollectionValueKey(arm) || isUnitType(arm)));
|
|
263
|
+
}
|
|
264
|
+
function isCollectionValueKey(t) {
|
|
265
|
+
return t.kind === "f64" || t.kind === "string" || t.kind === "bigint" || t.kind === "bool" ||
|
|
266
|
+
isIdentityCollectionKey(t);
|
|
256
267
|
}
|
|
257
268
|
/** Set elements and Map keys share storage, equality and ownership rules. */
|
|
258
269
|
export function isSupportedSetElem(t, unionArms) {
|
|
@@ -1086,6 +1097,7 @@ function canBoxDynComposite(t, getRecord, getUnion, visiting = new Set()) {
|
|
|
1086
1097
|
}
|
|
1087
1098
|
function canBoxDynCompositeAt(t, getRecord, getUnion, visiting) {
|
|
1088
1099
|
switch (t.kind) {
|
|
1100
|
+
case "procStream":
|
|
1089
1101
|
case "f64":
|
|
1090
1102
|
case "bigint":
|
|
1091
1103
|
case "symbol":
|
|
@@ -1111,7 +1123,9 @@ function canBoxDynCompositeAt(t, getRecord, getUnion, visiting) {
|
|
|
1111
1123
|
case "object":
|
|
1112
1124
|
return RUNTIME_ERROR_CLASSES.has(t.className) || isDynTypedRefType(t);
|
|
1113
1125
|
case "array":
|
|
1114
|
-
|
|
1126
|
+
// Process streams have scalar storage only in fields, closures and
|
|
1127
|
+
// unions. A direct procStream array has no native ScrArr layout.
|
|
1128
|
+
return t.elem.kind !== "procStream" && canBoxDynComposite(t.elem, getRecord, getUnion, visiting);
|
|
1115
1129
|
case "record": {
|
|
1116
1130
|
const shape = getRecord(t.shapeId);
|
|
1117
1131
|
if (!shape)
|
|
@@ -1181,6 +1195,8 @@ function clearDynConversionResults(visiting) {
|
|
|
1181
1195
|
}
|
|
1182
1196
|
}
|
|
1183
1197
|
function canDynCheckToAt(t, getRecord, getUnion, visiting) {
|
|
1198
|
+
if (t.kind === "procStream")
|
|
1199
|
+
return true;
|
|
1184
1200
|
// Unknown fields keep an owned dyn subtree; checking the surrounding
|
|
1185
1201
|
// record/array still validates its layout. This is broader than the
|
|
1186
1202
|
// stringify/island JSON domain, which cannot assume opaque slots are
|
|
@@ -1207,6 +1223,8 @@ function canDynCheckToAt(t, getRecord, getUnion, visiting) {
|
|
|
1207
1223
|
if (isDynTypedRefType(t))
|
|
1208
1224
|
return true;
|
|
1209
1225
|
if (t.kind === "array") {
|
|
1226
|
+
if (t.elem.kind === "procStream")
|
|
1227
|
+
return false;
|
|
1210
1228
|
const key = typeKey(t);
|
|
1211
1229
|
if (visiting.has(key))
|
|
1212
1230
|
return false;
|
|
@@ -1338,7 +1356,7 @@ const DYN_ASYNC_LIB_FNS = new Set([
|
|
|
1338
1356
|
"process.onUncaughtException", "process.offUncaughtException",
|
|
1339
1357
|
"process.onUnhandledRejection", "process.offUnhandledRejection",
|
|
1340
1358
|
"process.onRejectionHandled", "process.offRejectionHandled",
|
|
1341
|
-
"process.onWarning", "process.offWarning", "process.emitWarning",
|
|
1359
|
+
"process.onWarning", "process.offWarning", "process.emitWarning", "util.styleText",
|
|
1342
1360
|
"als.new", "als.get", "als.run", "als.exitRun", "als.enterWith", "als.disable",
|
|
1343
1361
|
"dc.chanBindStore", "dc.chanUnbindStore", "dc.chanRunStores",
|
|
1344
1362
|
]);
|
|
@@ -1365,7 +1383,7 @@ function scanRuntimeFeatures(mod, stopAt) {
|
|
|
1365
1383
|
const expr = (node) => {
|
|
1366
1384
|
if (node.kind === "libCall") {
|
|
1367
1385
|
const fn = node.fn;
|
|
1368
|
-
if (fn === "regexp.escape" || fn === "dyn.nativeRegexIs")
|
|
1386
|
+
if (fn === "regexp.escape" || fn === "dyn.nativeRegexIs" || fn === "util.stripVTControlCharacters")
|
|
1369
1387
|
features.regex = true;
|
|
1370
1388
|
if (fn === "text.decodeLegacy" || fn === "text.decodeLegacyOptions" || fn === "text.decodeStream")
|
|
1371
1389
|
features.legacyTextDecoder = true;
|
|
@@ -1390,7 +1408,7 @@ function scanRuntimeFeatures(mod, stopAt) {
|
|
|
1390
1408
|
features.dynInvoke = true;
|
|
1391
1409
|
if (DYN_ASYNC_LIB_FNS.has(fn))
|
|
1392
1410
|
features.dynAsync = true;
|
|
1393
|
-
if (fn.startsWith("insp.") || fn === "console.native" || fn === "global.native")
|
|
1411
|
+
if (fn.startsWith("insp.") || fn === "console.native" || fn === "global.native" || fn === "util.styleText")
|
|
1394
1412
|
features.inspect = true;
|
|
1395
1413
|
if (fn.startsWith("cp.") || fn.startsWith("child.") || fn.startsWith("writer.") || fn.startsWith("spawnRes.") ||
|
|
1396
1414
|
fn === "process.forkTarget" || fn === "process.connected" || fn === "process.send" || fn === "process.sendCb" ||
|
|
@@ -1409,7 +1427,7 @@ function scanRuntimeFeatures(mod, stopAt) {
|
|
|
1409
1427
|
}
|
|
1410
1428
|
if (fn.startsWith("http2.") && !HTTP2_LEGACY_FNS.has(fn))
|
|
1411
1429
|
features.http2 = true;
|
|
1412
|
-
if (fn.startsWith("sym."))
|
|
1430
|
+
if (fn.startsWith("sym.") || fn === "util.isDeepStrictEqual")
|
|
1413
1431
|
features.symbol = true;
|
|
1414
1432
|
if (fn === "process.hrtimeValue")
|
|
1415
1433
|
features.bigint = true;
|
|
@@ -1419,8 +1437,10 @@ function scanRuntimeFeatures(mod, stopAt) {
|
|
|
1419
1437
|
features.searchParams = true;
|
|
1420
1438
|
if (fn === "qs.parse" || fn === "qs.stringify" || fn === "qs.unescape")
|
|
1421
1439
|
features.qs = true;
|
|
1422
|
-
if (fn === "util.parseArgs")
|
|
1440
|
+
if (fn === "util.parseArgs" || fn === "util.isDeepStrictEqual" || fn === "util.styleText")
|
|
1423
1441
|
features.parseArgs = true;
|
|
1442
|
+
if (fn === "util.styleText")
|
|
1443
|
+
features.processEvents = true;
|
|
1424
1444
|
if (fn.startsWith("fs.watch") || fn.startsWith("watcher."))
|
|
1425
1445
|
features.fsWatch = true;
|
|
1426
1446
|
if (fn.startsWith("test."))
|
|
@@ -1477,6 +1497,9 @@ function scanRuntimeFeatures(mod, stopAt) {
|
|
|
1477
1497
|
case "fileHandle":
|
|
1478
1498
|
features.fileHandle = true;
|
|
1479
1499
|
break;
|
|
1500
|
+
case "procStream":
|
|
1501
|
+
features.processEvents = true;
|
|
1502
|
+
break;
|
|
1480
1503
|
case "child":
|
|
1481
1504
|
case "childStream":
|
|
1482
1505
|
case "childWriter":
|
|
@@ -1734,9 +1757,9 @@ export function moduleUsesSearchParams(mod) {
|
|
|
1734
1757
|
export function moduleUsesQs(mod) {
|
|
1735
1758
|
return scanRuntimeFeatures(mod, "qs").qs;
|
|
1736
1759
|
}
|
|
1737
|
-
/** True when the module uses native util
|
|
1738
|
-
*
|
|
1739
|
-
*
|
|
1760
|
+
/** True when the module uses native util parsing, comparison, or styling.
|
|
1761
|
+
* The utility units also follow their required symbol, inspection, and
|
|
1762
|
+
* warning features, independently of the island's node:util shim. */
|
|
1740
1763
|
export function moduleUsesParseArgs(mod) {
|
|
1741
1764
|
return scanRuntimeFeatures(mod, "parseArgs").parseArgs;
|
|
1742
1765
|
}
|
|
@@ -2376,6 +2399,12 @@ export const MAY_THROW_LIB_FNS = new Set([
|
|
|
2376
2399
|
"date.checkedValue",
|
|
2377
2400
|
"util.parseArgs",
|
|
2378
2401
|
"util.parseEnv",
|
|
2402
|
+
"util.getSystemErrorName",
|
|
2403
|
+
"util.getSystemErrorMessage",
|
|
2404
|
+
"util.stripVTControlCharacters",
|
|
2405
|
+
"util.isDeepStrictEqual",
|
|
2406
|
+
"util.styleText",
|
|
2407
|
+
"util.toUSVString",
|
|
2379
2408
|
// decodeURIComponent throws the spec's URIError on bad hex/invalid
|
|
2380
2409
|
// UTF-8 octets (encodeURIComponent never throws — see the IrLibFn doc).
|
|
2381
2410
|
"str.decodeUriComponent",
|
|
@@ -2474,8 +2503,13 @@ export const MAY_THROW_LIB_FNS = new Set([
|
|
|
2474
2503
|
"fs.readdirTypesSync",
|
|
2475
2504
|
"url.new",
|
|
2476
2505
|
"url.newBase",
|
|
2506
|
+
"url.set",
|
|
2507
|
+
"url.setChecked",
|
|
2477
2508
|
"url.fileURLToPathUrl",
|
|
2478
2509
|
"url.fileURLToPathChecked",
|
|
2510
|
+
"url.fileURLToPathOptions",
|
|
2511
|
+
"url.fileURLToPathBuffer",
|
|
2512
|
+
"url.pathToFileURLChecked",
|
|
2479
2513
|
"url.fileURLToPathStr",
|
|
2480
2514
|
// The win32-target flavor of pathToFileURL (same runtime entry point —
|
|
2481
2515
|
// the bridge dispatches by the binary's platform): Node's win32 arm
|
|
@@ -2594,6 +2628,9 @@ export const MAY_THROW_LIB_FNS = new Set([
|
|
|
2594
2628
|
"assert.throwsRegex",
|
|
2595
2629
|
"assert.shapeEnd",
|
|
2596
2630
|
"assert.unwantedRejection",
|
|
2631
|
+
"assert.unwantedError",
|
|
2632
|
+
"assert.noErrorPredicate",
|
|
2633
|
+
"assert.regexDynTest",
|
|
2597
2634
|
"assert.expectsErrDyn",
|
|
2598
2635
|
"assert.ifErrorErr",
|
|
2599
2636
|
"assert.ifErrorF64",
|
|
@@ -2615,9 +2652,17 @@ export const MAY_THROW_LIB_FNS = new Set([
|
|
|
2615
2652
|
"fs.fsyncSync",
|
|
2616
2653
|
"fs.fdatasyncSync",
|
|
2617
2654
|
"fs.ftruncateSync",
|
|
2655
|
+
"fs.utimesSync",
|
|
2656
|
+
"fs.futimesSync",
|
|
2657
|
+
"fs.lutimesSync",
|
|
2618
2658
|
"fs.readvSync",
|
|
2619
2659
|
"fs.writevSync",
|
|
2620
2660
|
"fs.linkSync",
|
|
2661
|
+
"fs.symlinkSync",
|
|
2662
|
+
"fs.readlinkSync",
|
|
2663
|
+
"fs.statfsSync",
|
|
2664
|
+
"fs.readlinkSyncStr",
|
|
2665
|
+
"fs.readlinkSyncBuffer",
|
|
2621
2666
|
"fs.writeFileModeSync",
|
|
2622
2667
|
"fs.mkdirModeSync",
|
|
2623
2668
|
"fs.mkdirRecursiveModeSync",
|