@scriptc/compiler 0.3.5 → 0.3.6
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 +278 -32
- package/dist/backend/llvm/dyn.js +31 -1
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +45 -1
- package/dist/backend/llvm/emitter.js +412 -104
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.js +1 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +25 -1
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +1 -1
- package/dist/backend/llvm/expr-primitives.js +11 -0
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +28 -1
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +61 -1
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +21 -3
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +10 -0
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +43 -0
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-test.js +16 -3
- package/dist/backend/llvm/lib-test.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.d.ts +6 -3
- package/dist/backend/llvm/nullable-unions.js +2 -0
- package/dist/backend/llvm/nullable-unions.js.map +1 -1
- package/dist/backend/llvm/record-results.d.ts +1 -1
- package/dist/backend/llvm/record-results.js +2 -2
- package/dist/backend/llvm/record-results.js.map +1 -1
- package/dist/backend/llvm/reference-writes.js +1 -0
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/shapes.d.ts +3 -0
- package/dist/backend/llvm/shapes.js +5 -0
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/speculative-integers.d.ts +74 -0
- package/dist/backend/llvm/speculative-integers.js +571 -0
- package/dist/backend/llvm/speculative-integers.js.map +1 -0
- package/dist/backend/llvm/speculative-integers.test.d.ts +1 -0
- package/dist/backend/llvm/speculative-integers.test.js +148 -0
- package/dist/backend/llvm/speculative-integers.test.js.map +1 -0
- package/dist/backend/may-throw.js +2 -0
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/native/executable.js +3 -0
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +1 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/runtime-pack.d.ts +7 -3
- package/dist/backend/runtime-pack.js +12 -6
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +15 -6
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/contracts/check.js +1 -0
- package/dist/contracts/check.js.map +1 -1
- package/dist/coverage/surface-manifest.js +3 -3
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +1 -1
- package/dist/diagnostics/diagnostic.js +6 -2
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/frontend/lowering/builtin-calls.js +10 -0
- package/dist/frontend/lowering/builtin-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/callable-aliases.js +31 -3
- package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
- package/dist/frontend/lowering/builtins/compression.d.ts +9 -0
- package/dist/frontend/lowering/builtins/compression.js +145 -30
- package/dist/frontend/lowering/builtins/compression.js.map +1 -1
- package/dist/frontend/lowering/builtins/crypto.js +12 -1
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
- package/dist/frontend/lowering/builtins/errors.js +5 -3
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +4 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +11 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.d.ts +8 -0
- package/dist/frontend/lowering/builtins/filesystem.js +139 -2
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/hash-stream.d.ts +12 -0
- package/dist/frontend/lowering/builtins/hash-stream.js +80 -0
- package/dist/frontend/lowering/builtins/hash-stream.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-calls.js +13 -3
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.js +9 -2
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.d.ts +45 -13
- package/dist/frontend/lowering/builtins/readline.js +812 -47
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/workers.d.ts +4 -0
- package/dist/frontend/lowering/builtins/workers.js +58 -0
- package/dist/frontend/lowering/builtins/workers.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.d.ts +55 -0
- package/dist/frontend/lowering/class-protocols.js +735 -0
- package/dist/frontend/lowering/class-protocols.js.map +1 -1
- package/dist/frontend/lowering/containers/array-from-async.d.ts +18 -0
- package/dist/frontend/lowering/containers/array-from-async.js +282 -0
- package/dist/frontend/lowering/containers/array-from-async.js.map +1 -0
- package/dist/frontend/lowering/containers/collection-grouping.js +2 -1
- package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +27 -23
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/divergences.js +188 -15
- package/dist/frontend/lowering/divergences.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +71 -22
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.js +39 -1
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.js +10 -1
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.js +107 -13
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +23 -3
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-mock.d.ts +11 -1
- package/dist/frontend/lowering/lower-mock.js +377 -61
- package/dist/frontend/lowering/lower-mock.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +1 -0
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-server.js +161 -16
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +48 -7
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +1 -3
- package/dist/frontend/lowering/lower-stream.js +317 -20
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-test.js +147 -48
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +10 -0
- package/dist/frontend/lowering/lowerer.js +8 -0
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/null-prototype.d.ts +13 -0
- package/dist/frontend/lowering/null-prototype.js +33 -0
- package/dist/frontend/lowering/null-prototype.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +3 -3
- package/dist/frontend/lowering/surfaces.js +27 -5
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/mock-shapes.d.ts +5 -0
- package/dist/frontend/mock-shapes.js +27 -2
- package/dist/frontend/mock-shapes.js.map +1 -1
- package/dist/frontend/program.js +5 -4
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/type-mapper.js +95 -4
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.js +18 -8
- package/dist/index.js.map +1 -1
- package/dist/ir/builtin-effects.js +36 -0
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +1 -1
- package/dist/ir/builtin-signatures.js +167 -6
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/function-references.test.js +1 -0
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/int32-slots.js +22 -0
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +28 -0
- package/dist/ir/int32-slots.test.js.map +1 -1
- package/dist/ir/integer-loop-facts.d.ts +14 -6
- package/dist/ir/integer-loop-facts.js +119 -35
- package/dist/ir/integer-loop-facts.js.map +1 -1
- package/dist/ir/integer-ranges.js +1 -5
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +60 -0
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/ir.d.ts +13 -0
- package/dist/ir/ir.js +4 -0
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +3 -1
- package/dist/ir/runtime-features.js +96 -6
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/runtime-features.test.js +62 -0
- package/dist/ir/runtime-features.test.js.map +1 -1
- package/dist/ir/traverse.js +4 -0
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +45 -3
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +38 -0
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/ir-policy.js +5 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +31 -19
|
@@ -273,6 +273,9 @@ export declare class LlEmitter {
|
|
|
273
273
|
private stableGlobals;
|
|
274
274
|
private readonly tdzGlobals;
|
|
275
275
|
readonly constantNumericTables: ReadonlyMap<string, ConstantNumericTable>;
|
|
276
|
+
/** Constant-key reads on checked-dynamic objects, each with its own
|
|
277
|
+
* zero-initialized ScrDynReadIc (scr_runtime.h). */
|
|
278
|
+
private dynReadIcSites;
|
|
276
279
|
/** May-throw analysis (computeMayThrow): pending
|
|
277
280
|
* checks are emitted only after calls that can actually raise. */
|
|
278
281
|
readonly mayThrow: Set<string>;
|
|
@@ -415,6 +418,17 @@ export declare class LlEmitter {
|
|
|
415
418
|
};
|
|
416
419
|
}>;
|
|
417
420
|
private countedLoopsEnabled;
|
|
421
|
+
/** Speculative integer loops (speculative-integers.ts) run in this function. */
|
|
422
|
+
private speculativeLoopsEnabled;
|
|
423
|
+
/** The fast copy of a speculative integer loop being emitted: its
|
|
424
|
+
* integer-computed writes and where each resumes in the ordinary copy. */
|
|
425
|
+
private speculation;
|
|
426
|
+
/** The ordinary copy being emitted: resume labels still to place. */
|
|
427
|
+
private speculationResume;
|
|
428
|
+
/** The function being emitted, for speculative globals. */
|
|
429
|
+
private speculativeFunction;
|
|
430
|
+
/** Every function that writes each number global (computed on demand). */
|
|
431
|
+
private globalWriters;
|
|
418
432
|
/** Whole-program final reference fields (ir/final-fields.ts). */
|
|
419
433
|
private finalFields;
|
|
420
434
|
/** The current function may borrow final fields of borrowable objects:
|
|
@@ -722,6 +736,31 @@ export declare class LlEmitter {
|
|
|
722
736
|
* conditions in expr-calls.ts). */
|
|
723
737
|
private callTestsPending;
|
|
724
738
|
private workerLoopBudget;
|
|
739
|
+
/** Emit a loop's condition, body and update through `emitCopy`, twice
|
|
740
|
+
* when speculative-integers.ts plans a fast integer copy. Both copies
|
|
741
|
+
* share the loop's setup and exit; the ordinary copy comes first so the
|
|
742
|
+
* fast copy is only emitted when every resume point exists. */
|
|
743
|
+
private emitLoopCopies;
|
|
744
|
+
private writeBackSpeculativeGlobals;
|
|
745
|
+
/** A number local whose only storage is its own double slot, so an i64
|
|
746
|
+
* shadow beside it can stand for it within one loop. */
|
|
747
|
+
private speculativeLocal;
|
|
748
|
+
/** A module-level number written only by the file's top-level code that
|
|
749
|
+
* is emitting this loop. Calls may still read it: the fast copy keeps its
|
|
750
|
+
* double current. An init function runs once and is never re-entered, so
|
|
751
|
+
* no call from the loop can write the global behind the shadow. */
|
|
752
|
+
private speculativeGlobal;
|
|
753
|
+
/** A module-level number a loop of any function only reads, written by
|
|
754
|
+
* nothing but top-level code: an init function never runs during a loop
|
|
755
|
+
* of another function, so the entry value stays its value. */
|
|
756
|
+
private speculativeInvariantGlobal;
|
|
757
|
+
/** The functions writing a number global a shadow may stand for, or null
|
|
758
|
+
* when the global is not such a number. */
|
|
759
|
+
private numberGlobalWriters;
|
|
760
|
+
/** A speculated write in the fast copy: compute the value as a safe
|
|
761
|
+
* integer, store it to the shadow and its exact double to the local.
|
|
762
|
+
* Any failed check re-executes the statement in the ordinary copy. */
|
|
763
|
+
private emitSpeculativeWrite;
|
|
725
764
|
/** The amortized cancellation poll, emitted on the loop's back edge (the
|
|
726
765
|
* continue target), after the body. A poll in the header would be a loop
|
|
727
766
|
* exit ahead of the body; LLVM then cannot rotate the loop, so loads that
|
|
@@ -802,6 +841,9 @@ export declare class LlEmitter {
|
|
|
802
841
|
};
|
|
803
842
|
/** The overflow map's slot pointer on an index-signature shape. */
|
|
804
843
|
recordOvfPtr(objName: string, shapeId: string): string;
|
|
844
|
+
/** The pointer to ScrMap.flags of an index-signature record's overflow
|
|
845
|
+
* map (byte offset sizeof(size_t) + 3; SCR_MAP_NULL_PROTO is bit 0). */
|
|
846
|
+
recordMapFlagsPtr(objName: string, shapeId: string): string;
|
|
805
847
|
/** Loads a record field (i8-stored bools trunc to i1). An inline union
|
|
806
848
|
* field answers a private stack box with the slot's own bits, ABSENT
|
|
807
849
|
* included: it may only be borrowed. */
|
|
@@ -1107,7 +1149,7 @@ export declare class LlEmitter {
|
|
|
1107
1149
|
/** A direct async call an enclosing `await` consumes whole: emitted
|
|
1108
1150
|
* through the callee's await-call entry, yielding the awaited value. */
|
|
1109
1151
|
emitAwaitedCall(e: ExprOf<"call">, adopt?: boolean): LlValue;
|
|
1110
|
-
emitRecordExpr(e: ExprOf<"fieldGet" | "recordGet" | "recordLit" | "recordClone" | "recordKeyGet" | "recordOvfKeys" | "recordOvfHas" | "recordHas" | "fieldAbsent">): LlValue;
|
|
1152
|
+
emitRecordExpr(e: ExprOf<"fieldGet" | "recordGet" | "recordLit" | "recordClone" | "recordKeyGet" | "recordOvfKeys" | "recordOvfHas" | "recordNullProto" | "recordHas" | "fieldAbsent">): LlValue;
|
|
1111
1153
|
emitDynamicExpr(e: ExprOf<"dynFrom" | "dynCall" | "dynInvoke" | "dynArrLit" | "dynObjLit" | "unionWrap" | "unionNarrow" | "unionDisc" | "unionKeyGet" | "unionIsTag" | "dynKeyGet" | "dynHasKey" | "dynScalarEq" | "dynTest" | "unionEq" | "unionFuncEq" | "caughtTest" | "caughtCheck" | "caughtNarrow" | "caughtToDyn">): LlValue;
|
|
1112
1154
|
emitIntrinsicExpr(e: ExprOf<"intrinsic">): LlValue;
|
|
1113
1155
|
/** InternTable's runtime calls (scr_itable.c). Table and entry handles
|
|
@@ -1232,6 +1274,8 @@ export declare class LlEmitter {
|
|
|
1232
1274
|
borrowableNullableWrap(e: IrExpr): "unit" | "ref" | null;
|
|
1233
1275
|
materializeSplitLocal(localId: string): void;
|
|
1234
1276
|
emitExpr(e: IrExpr): LlValue;
|
|
1277
|
+
/** A fresh read-site cache for one constant-key dyn read. */
|
|
1278
|
+
dynReadIcSite(): string;
|
|
1235
1279
|
dynKind(d: string): string;
|
|
1236
1280
|
raceAdapterFor(from: IrType, to: IrType): string;
|
|
1237
1281
|
genResultThunkFor(genT: IrType & {
|