@scriptc/compiler 0.0.23 → 0.0.24
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 +100 -11
- package/dist/backend/cc.d.ts +13 -0
- package/dist/backend/cc.js +11 -0
- package/dist/backend/cc.js.map +1 -1
- package/dist/backend/emission/emit-async.d.ts +4 -0
- package/dist/backend/emission/emit-async.js +31 -1
- package/dist/backend/emission/emit-async.js.map +1 -1
- package/dist/backend/emission/emit-exprs.js +147 -14
- package/dist/backend/emission/emit-exprs.js.map +1 -1
- package/dist/backend/emission/emit-shapes.js +1 -0
- package/dist/backend/emission/emit-shapes.js.map +1 -1
- package/dist/backend/emission/emit-stmts.js +24 -5
- package/dist/backend/emission/emit-stmts.js.map +1 -1
- package/dist/backend/emission/emit-types.js +10 -0
- package/dist/backend/emission/emit-types.js.map +1 -1
- package/dist/backend/emission/emitter.d.ts +10 -2
- package/dist/backend/emission/emitter.js +49 -30
- package/dist/backend/emission/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.js +284 -25
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/shapes.js +9 -1
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/mangle.d.ts +3 -0
- package/dist/backend/mangle.js +5 -0
- package/dist/backend/mangle.js.map +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +14 -9
- package/dist/frontend/lowering/lower-builtins.js +737 -62
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +2 -1
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +2 -1
- package/dist/frontend/lowering/lower-containers.js +99 -32
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.js +53 -2
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +59 -1
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +5 -0
- package/dist/frontend/lowering/lower-server.js +1 -1
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +6 -2
- package/dist/frontend/lowering/lower-stmts.js +45 -10
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +2 -2
- package/dist/frontend/lowering/lowerer.js +11 -6
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/surfaces.js +65 -13
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/types.d.ts +3 -0
- package/dist/frontend/types.js +78 -0
- package/dist/frontend/types.js.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/ir/integer-loops.d.ts +23 -0
- package/dist/ir/integer-loops.js +82 -0
- package/dist/ir/integer-loops.js.map +1 -0
- package/dist/ir/nodes.d.ts +84 -21
- package/dist/ir/nodes.js +84 -1
- package/dist/ir/nodes.js.map +1 -1
- package/dist/ir/validate.js +92 -18
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/fence-eval.js +4 -3
- package/dist/library/fence-eval.js.map +1 -1
- package/package.json +2 -2
- package/surface-manifest.json +50 -2
|
@@ -1786,9 +1786,9 @@ export declare class Lowerer {
|
|
|
1786
1786
|
stmts: IrStmt[];
|
|
1787
1787
|
value: IrExpr;
|
|
1788
1788
|
};
|
|
1789
|
-
lowerBindingPattern(pattern: ts.ArrayBindingPattern | ts.ObjectBindingPattern, srcRef: () => IrExpr, srcType: IrType, isLet: boolean, out: IrStmt[], dynSpell?: string): void;
|
|
1789
|
+
lowerBindingPattern(pattern: ts.ArrayBindingPattern | ts.ObjectBindingPattern, srcRef: () => IrExpr, srcType: IrType, isLet: boolean, out: IrStmt[], dynSpell?: string, allowDynObject?: boolean): void;
|
|
1790
1790
|
checkBindingElement(el: ts.BindingElement, allowDefault?: boolean): void;
|
|
1791
|
-
bindPatternTarget(name: ts.BindingName, value: IrExpr, isLet: boolean, out: IrStmt[]): void;
|
|
1791
|
+
bindPatternTarget(name: ts.BindingName, value: IrExpr, isLet: boolean, out: IrStmt[], allowDynObject?: boolean): void;
|
|
1792
1792
|
lowerVarDeclList(list: ts.VariableDeclarationList): IrStmt | null;
|
|
1793
1793
|
lowerVarDecl(decl: ts.VariableDeclaration, isLet: boolean): IrStmt | null;
|
|
1794
1794
|
lowerSwitch(stmt: ts.SwitchStatement): IrStmt;
|
|
@@ -36,7 +36,7 @@ import { lowerNodeTestModuleCall, lowerTestDirectCall, lowerTestMethodCall, lowe
|
|
|
36
36
|
import { lowerAssertModuleCall, lowerAssertDirectCall } from "./lower-assert.js";
|
|
37
37
|
import { lowerUtilModuleCall } from "./lower-inspect.js";
|
|
38
38
|
import { lowerComptime, comptimeBakeable, rejectComptimeCaptures, comptimeValueToIr } from "./lower-comptime.js";
|
|
39
|
-
import { lowerStmts, noteBlockedBindings, isBlockedBinding, lowerScopedBlock, predeclareForwardCapture, predeclareForwardFnDecl, predeclareForwardVar, rejectJumpCrossingFinally, lowerStmt, lowerVarStatement, lowerDestructuringDecl, lowerDestructuringAssignParts, lowerBindingPattern, lowerJsvalBindingPattern, checkBindingElement, bindPatternTarget, lowerVarDeclList, lowerVarDecl, lowerSwitch, lowerTry, lowerExprStatement, lowerForOf, lowerForStatement } from "./lower-stmts.js";
|
|
39
|
+
import { lowerStmts, noteBlockedBindings, isBlockedBinding, lowerScopedBlock, predeclareForwardCapture, predeclareForwardFnDecl, predeclareForwardVar, rejectJumpCrossingFinally, lowerStmt, lowerVarStatement, lowerDestructuringDecl, lowerDestructuringAssignParts, lowerBindingPattern, lowerJsvalBindingPattern, checkBindingElement, bindPatternTarget, isParseArgsDynCheckerType, lowerVarDeclList, lowerVarDecl, lowerSwitch, lowerTry, lowerExprStatement, lowerForOf, lowerForStatement } from "./lower-stmts.js";
|
|
40
40
|
import { lowerDynObjectLiteral, lowerExpr, maybeNarrow, lowerUnitComparison, lowerNullishCoalesce, lowerOptionalChain, finishOptionalChain, lowerCondition, ensureBool, requireTruthyUnion, eqComparableUnion, lowerIntrinsicProperty, lowerArrayLiteral, lowerObjectLiteral, lowerShorthandValue, rejectThisInObjectMethod, lowerElementAccess, lowerElementWrite, lowerRecordKeyRead, ensureString, lowerTemplate, lowerAsExpression, lowerPrefixUnary, lowerBinary, lowerCaughtTypeofTest, caughtRead, caughtLocalOf, caughtToString, lowerInstanceOf, lowerRegexLiteral, lowerFieldRead, lowerUnionProperty, fieldTarget, fieldGetExpr, fieldSetStmt, lowerFieldCompound, uniqueSymbolKeyOf, foldedStringKeyOf } from "./lower-exprs.js";
|
|
41
41
|
import { lowerRecordFieldCall, lowerObjectMethodCall } from "./lower-calls.js";
|
|
42
42
|
import { fenceCrossBlockNsRef, nsPathPrefix } from "./lower-namespaces.js";
|
|
@@ -2505,7 +2505,7 @@ export class Lowerer {
|
|
|
2505
2505
|
Segmenter: intlHint,
|
|
2506
2506
|
DisplayNames: intlHint,
|
|
2507
2507
|
TextEncoder: "TextEncoder values have no representation — call through a const initialized with new TextEncoder(), or use the composed new TextEncoder().encode(s) form",
|
|
2508
|
-
TextDecoder: "TextDecoder values have no representation — call through a const initialized with
|
|
2508
|
+
TextDecoder: "TextDecoder values have no representation — call through a const initialized with a recognized literal label, or use the composed new TextDecoder(<literal label>).decode(bytes) form",
|
|
2509
2509
|
};
|
|
2510
2510
|
this.pushDiag(noLoweringDiag(this.checker.typeToString(type), locOf(node), typeHints[stdlibOwnSym?.name ?? ""]));
|
|
2511
2511
|
throw new PoisonError();
|
|
@@ -6719,9 +6719,14 @@ export class Lowerer {
|
|
|
6719
6719
|
lowerDestructuringAssignParts(target, rhs, loc) {
|
|
6720
6720
|
return lowerDestructuringAssignParts(this, target, rhs, loc);
|
|
6721
6721
|
}
|
|
6722
|
-
lowerBindingPattern(pattern, srcRef, srcType, isLet, out, dynSpell) {
|
|
6722
|
+
lowerBindingPattern(pattern, srcRef, srcType, isLet, out, dynSpell, allowDynObject = false) {
|
|
6723
6723
|
if (ts.isObjectBindingPattern(pattern)) {
|
|
6724
6724
|
fenceFetchObjectBinding(this, pattern);
|
|
6725
|
+
// parseArgs's declaration family deliberately maps to dyn. Infer the
|
|
6726
|
+
// scoped bridge at the binding site as well as at initializer-backed
|
|
6727
|
+
// declarations, covering parameter and for-of element patterns.
|
|
6728
|
+
allowDynObject ||= srcType.kind === "dyn" &&
|
|
6729
|
+
isParseArgsDynCheckerType(this, this.typeOf(pattern));
|
|
6725
6730
|
}
|
|
6726
6731
|
// An ISLAND source (`const { readFileSync } = await import("fs")` —
|
|
6727
6732
|
// a namespace handle, or any 'any'-typed object): each bound name is
|
|
@@ -6786,13 +6791,13 @@ export class Lowerer {
|
|
|
6786
6791
|
}
|
|
6787
6792
|
return;
|
|
6788
6793
|
}
|
|
6789
|
-
return lowerBindingPattern(this, pattern, srcRef, srcType, isLet, out, dynSpell);
|
|
6794
|
+
return lowerBindingPattern(this, pattern, srcRef, srcType, isLet, out, dynSpell, allowDynObject);
|
|
6790
6795
|
}
|
|
6791
6796
|
checkBindingElement(el, allowDefault = false) {
|
|
6792
6797
|
return checkBindingElement(this, el, allowDefault);
|
|
6793
6798
|
}
|
|
6794
|
-
bindPatternTarget(name, value, isLet, out) {
|
|
6795
|
-
return bindPatternTarget(this, name, value, isLet, out);
|
|
6799
|
+
bindPatternTarget(name, value, isLet, out, allowDynObject = false) {
|
|
6800
|
+
return bindPatternTarget(this, name, value, isLet, out, allowDynObject);
|
|
6796
6801
|
}
|
|
6797
6802
|
lowerVarDeclList(list) {
|
|
6798
6803
|
return lowerVarDeclList(this, list);
|