@scriptc/compiler 0.0.22 → 0.0.23
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 +39 -3
- package/dist/backend/emission/emit-async.js +3 -1
- package/dist/backend/emission/emit-async.js.map +1 -1
- package/dist/backend/emission/emit-exprs.d.ts +10 -0
- package/dist/backend/emission/emit-exprs.js +127 -10
- package/dist/backend/emission/emit-exprs.js.map +1 -1
- package/dist/backend/emission/emit-stmts.js +13 -5
- package/dist/backend/emission/emit-stmts.js.map +1 -1
- package/dist/backend/emission/emit-types.js +4 -1
- package/dist/backend/emission/emit-types.js.map +1 -1
- package/dist/backend/emission/emitter.d.ts +11 -1
- package/dist/backend/emission/emitter.js +61 -1
- package/dist/backend/emission/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.js +304 -21
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/shapes.js +3 -2
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/compat/fetch-profile.d.ts +10 -0
- package/dist/compat/fetch-profile.js +55 -6
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/coverage/surface-manifest.js +16 -1
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +10 -0
- package/dist/diagnostics/diagnostic.js +27 -1
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +3 -7
- package/dist/frontend/lowering/lower-builtins.js +80 -55
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +1 -0
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.js +28 -8
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +1 -1
- package/dist/frontend/lowering/lower-exprs.js +25 -4
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.js +7 -1
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +21 -0
- package/dist/frontend/lowering/lower-island.js +284 -10
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +8 -4
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +1 -0
- package/dist/frontend/lowering/lowerer.js +6 -2
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/surfaces.js +43 -12
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/program.d.ts +4 -4
- package/dist/frontend/program.js +264 -46
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/resolve.d.ts +10 -0
- package/dist/frontend/resolve.js +37 -0
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/ts7/enums.d.ts +9 -0
- package/dist/frontend/ts7/enums.js +8 -6
- package/dist/frontend/ts7/enums.js.map +1 -1
- package/dist/frontend/ts7/program.js +4 -1
- package/dist/frontend/ts7/program.js.map +1 -1
- package/dist/frontend/types.d.ts +4 -4
- package/dist/frontend/types.js +25 -8
- package/dist/frontend/types.js.map +1 -1
- package/dist/ir/nodes.d.ts +24 -11
- package/dist/ir/nodes.js +6 -1
- package/dist/ir/nodes.js.map +1 -1
- package/dist/ir/validate.js +45 -8
- package/dist/ir/validate.js.map +1 -1
- package/package.json +2 -2
- package/surface-manifest.json +137 -28
|
@@ -126,7 +126,13 @@ export function lowerGenMethodCall(L, call, access) {
|
|
|
126
126
|
L.unsupported("SC1071", call, ".throw() with no argument (Node would throw undefined into the generator — pass the error)");
|
|
127
127
|
}
|
|
128
128
|
arg = L.lowerExpr(argNode);
|
|
129
|
-
if (arg.type.kind === "
|
|
129
|
+
if (arg.type.kind === "date") {
|
|
130
|
+
L.unsupported("SC1090", argNode, ".throw() with a Date value (the exception channel cannot preserve Date's object kind; throw an Error or primitive instead)");
|
|
131
|
+
}
|
|
132
|
+
if (arg.type.kind === "void" ||
|
|
133
|
+
arg.type.kind === "dyn" ||
|
|
134
|
+
arg.type.kind === "caught" ||
|
|
135
|
+
isUnitType(arg.type)) {
|
|
130
136
|
L.unsupported("SC1090", argNode, `.throw() of a '${L.fmt(arg.type)}' value (throw numbers, strings, booleans, or Error instances)`);
|
|
131
137
|
}
|
|
132
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lower-generators.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-generators.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lower-generators.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-generators.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,6 +86,12 @@ export declare function fenceStaticResponseMember(L: Lowerer, access: StaticResp
|
|
|
86
86
|
* observed Node members cannot fall through to a runtime missing-method
|
|
87
87
|
* error in an engine-free build. */
|
|
88
88
|
export declare function fenceStaticHeadersMember(L: Lowerer, access: StaticResponseAccess, use: "read" | "call"): IrExpr | null;
|
|
89
|
+
/** The native AbortController handle dispatches `abort()` directly and
|
|
90
|
+
* exposes `.signal` as data, but it has no first-class function value for
|
|
91
|
+
* the prototype method. Fence method extraction before the checked-dynamic
|
|
92
|
+
* keyed-read fallback can silently answer `undefined`. Dynamic builds use
|
|
93
|
+
* the engine's real AbortController object and retain ordinary method reads. */
|
|
94
|
+
export declare function fenceStaticAbortControllerMemberRead(L: Lowerer, access: StaticResponseAccess): IrExpr | null;
|
|
89
95
|
/** Object binding syntax reads members without constructing property-access
|
|
90
96
|
* nodes, so the ordinary Response/Headers/ReadableStream chokepoints never
|
|
91
97
|
* see it. Attribute those reads to the same inventory rows before generic
|
|
@@ -128,6 +134,11 @@ export declare function lowerDynamicHeadersSpread(L: Lowerer, node: ts.Expressio
|
|
|
128
134
|
* fall through to a runtime missing-method error. */
|
|
129
135
|
export declare function fenceStaticReadableStreamMember(L: Lowerer, access: StaticResponseAccess, use: "read" | "call"): IrExpr | null;
|
|
130
136
|
export declare function lowerStaticFetchCompanionCall(L: Lowerer, call: ts.CallExpression): IrExpr | null;
|
|
137
|
+
/** `AbortController.abort(reason?)` mutates the native signal shared with
|
|
138
|
+
* `.signal` and fetch. Preserve a mutable reason's identity just like
|
|
139
|
+
* `AbortSignal.abort(reason)`; surplus arguments still evaluate in order and
|
|
140
|
+
* are ignored by the runtime operation. */
|
|
141
|
+
export declare function lowerStaticAbortControllerCall(L: Lowerer, call: ts.CallExpression): IrExpr | null;
|
|
131
142
|
/** Controller chunks and error reasons are dyn-handle calls, but unlike a
|
|
132
143
|
* general checked-dynamic boundary the Web Streams contract preserves their
|
|
133
144
|
* object identity for the reader/source callbacks that observe them. */
|
|
@@ -141,10 +152,20 @@ export declare function lowerStaticReadableStreamCancelCall(L: Lowerer, call: ts
|
|
|
141
152
|
* record/array/bytes listeners need the same live capsule used by stream
|
|
142
153
|
* chunks so repeated crossings still denote one EventListener object. */
|
|
143
154
|
export declare function lowerStaticAbortSignalListenerCall(L: Lowerer, call: ts.CallExpression): IrExpr | null;
|
|
155
|
+
/** `new AbortController()`. Static builds create a native controller handle
|
|
156
|
+
* over the same signal state consumed by fetch; dynamic builds construct the
|
|
157
|
+
* island Web object. JavaScript accepts surplus constructor arguments, so
|
|
158
|
+
* both tiers evaluate them even though AbortController ignores their values. */
|
|
159
|
+
export declare function lowerAbortControllerNew(L: Lowerer, expr: ts.NewExpression): IrExpr | null;
|
|
144
160
|
/** `new ReadableStream(source?)`. Static builds box the source record into
|
|
145
161
|
* the checked-dynamic tree; dynamic builds construct the island's Web
|
|
146
162
|
* stream directly so the returned handle composes with dynamic fetch. */
|
|
147
163
|
export declare function lowerStaticReadableStreamNew(L: Lowerer, expr: ts.NewExpression): IrExpr | null;
|
|
164
|
+
/** `new Response(body?, init?)`. Dynamic builds construct the island's
|
|
165
|
+
* Web Response directly. Static builds hand a checked-dynamic BodyInit and
|
|
166
|
+
* ResponseInit snapshot to the native fetch runtime, which returns the same
|
|
167
|
+
* opaque Response handle as fetch(). */
|
|
168
|
+
export declare function lowerResponseNew(L: Lowerer, expr: ts.NewExpression): IrExpr | null;
|
|
148
169
|
/** A static default reader's read() exits the native checked-dynamic
|
|
149
170
|
* transport into the checker's concrete chunk type. An exact chunk type
|
|
150
171
|
* preserves ReadableStream.from(array)'s element identity; structural
|
|
@@ -971,7 +971,7 @@ export function fenceUnsupportedFetchConstructorMember(L, access) {
|
|
|
971
971
|
const member = members.find((candidate) => fetchInventoryStatus("Response", candidate, "static") === "unsupported");
|
|
972
972
|
if (member === undefined)
|
|
973
973
|
return null;
|
|
974
|
-
L.noLowering(`Response.${member}`, access, "Response constructor-object operations have no compiler lowering in either tier");
|
|
974
|
+
L.noLowering(`Response.${member}`, access, "Response static constructor-object operations have no compiler lowering in either tier");
|
|
975
975
|
}
|
|
976
976
|
function hasLiveWebMutableArm(L, type) {
|
|
977
977
|
if (type.kind === "record" ||
|
|
@@ -988,8 +988,8 @@ function hasLiveWebMutableArm(L, type) {
|
|
|
988
988
|
* this capsule is deliberately limited to records/arrays/bytes (including
|
|
989
989
|
* those selected at runtime from a union) that the live materializer can
|
|
990
990
|
* snapshot and commit. */
|
|
991
|
-
function lowerLiveWebValue(L, node) {
|
|
992
|
-
const value = L.lowerExpr(node);
|
|
991
|
+
function lowerLiveWebValue(L, node, lowered) {
|
|
992
|
+
const value = lowered ?? L.lowerExpr(node);
|
|
993
993
|
if (hasLiveWebMutableArm(L, value.type) &&
|
|
994
994
|
canConvertToDyn(value.type, (id) => L.shapes.get(id), (id) => L.unions.get(id))) {
|
|
995
995
|
return {
|
|
@@ -1069,6 +1069,22 @@ export function fenceStaticHeadersMember(L, access, use) {
|
|
|
1069
1069
|
}
|
|
1070
1070
|
L.noLowering(`Headers.${member} in a static build`, access, "the native static Headers surface is append/delete/get/getSetCookie/has/set/forEach; use keys()/values()/entries() or symbol-keyed iteration with --dynamic, while construction remains unsupported", sym);
|
|
1071
1071
|
}
|
|
1072
|
+
/** The native AbortController handle dispatches `abort()` directly and
|
|
1073
|
+
* exposes `.signal` as data, but it has no first-class function value for
|
|
1074
|
+
* the prototype method. Fence method extraction before the checked-dynamic
|
|
1075
|
+
* keyed-read fallback can silently answer `undefined`. Dynamic builds use
|
|
1076
|
+
* the engine's real AbortController object and retain ordinary method reads. */
|
|
1077
|
+
export function fenceStaticAbortControllerMemberRead(L, access) {
|
|
1078
|
+
if (L.dynamic)
|
|
1079
|
+
return null;
|
|
1080
|
+
const symbol = isStdlibFetchInterface(L, access.expression, "AbortController");
|
|
1081
|
+
if (!symbol)
|
|
1082
|
+
return null;
|
|
1083
|
+
const members = fetchAccessMemberNames(L, access);
|
|
1084
|
+
if (members === null || !members.includes("abort"))
|
|
1085
|
+
return null;
|
|
1086
|
+
L.noLowering("AbortController.abort through method extraction in a static build", access, "call controller.abort(...) directly; the native AbortController handle does not expose abort as a first-class function value", symbol);
|
|
1087
|
+
}
|
|
1072
1088
|
function isStdlibFetchInterface(L, node, owner) {
|
|
1073
1089
|
const type = L.checker.getBaseTypeOfLiteralType(L.typeOf(node));
|
|
1074
1090
|
for (const symbol of [type.getSymbol(), type.getAliasSymbol()]) {
|
|
@@ -1525,17 +1541,17 @@ export function fenceStaticReadableStreamMember(L, access, use) {
|
|
|
1525
1541
|
* ambient globals have no first-class constructor-object representation;
|
|
1526
1542
|
* claim the direct calls by declaration provenance before the general
|
|
1527
1543
|
* member-call path tries to lower the receiver as a value. */
|
|
1528
|
-
function
|
|
1544
|
+
function staticFirstArgWithSurplusArgs(L, call, first) {
|
|
1529
1545
|
const loc = locOf(call);
|
|
1530
|
-
if (call.arguments.length
|
|
1531
|
-
return
|
|
1546
|
+
if (call.arguments.length <= 1)
|
|
1547
|
+
return first;
|
|
1532
1548
|
const firstLocal = L.declareHiddenLocal("%fetchArg", first.type);
|
|
1533
|
-
const firstRef =
|
|
1549
|
+
const firstRef = {
|
|
1534
1550
|
kind: "varRef",
|
|
1535
1551
|
localId: firstLocal.id,
|
|
1536
1552
|
type: first.type,
|
|
1537
1553
|
loc,
|
|
1538
|
-
}
|
|
1554
|
+
};
|
|
1539
1555
|
const stmts = [
|
|
1540
1556
|
{ kind: "varDecl", localId: firstLocal.id, init: first, loc },
|
|
1541
1557
|
];
|
|
@@ -1551,8 +1567,16 @@ function staticCallWithSurplusArgs(L, call, first, result) {
|
|
|
1551
1567
|
: L.lowerExpr(argument);
|
|
1552
1568
|
stmts.push({ kind: "exprStmt", expr: discarded, loc: discarded.loc });
|
|
1553
1569
|
}
|
|
1554
|
-
|
|
1555
|
-
|
|
1570
|
+
return {
|
|
1571
|
+
kind: "seqExpr",
|
|
1572
|
+
stmts,
|
|
1573
|
+
result: firstRef,
|
|
1574
|
+
type: first.type,
|
|
1575
|
+
loc,
|
|
1576
|
+
};
|
|
1577
|
+
}
|
|
1578
|
+
function staticCallWithSurplusArgs(L, call, first, result) {
|
|
1579
|
+
return result(staticFirstArgWithSurplusArgs(L, call, first));
|
|
1556
1580
|
}
|
|
1557
1581
|
export function lowerStaticFetchCompanionCall(L, call) {
|
|
1558
1582
|
if (L.dynamic ||
|
|
@@ -1668,6 +1692,46 @@ export function lowerStaticFetchCompanionCall(L, call) {
|
|
|
1668
1692
|
}
|
|
1669
1693
|
return null;
|
|
1670
1694
|
}
|
|
1695
|
+
/** `AbortController.abort(reason?)` mutates the native signal shared with
|
|
1696
|
+
* `.signal` and fetch. Preserve a mutable reason's identity just like
|
|
1697
|
+
* `AbortSignal.abort(reason)`; surplus arguments still evaluate in order and
|
|
1698
|
+
* are ignored by the runtime operation. */
|
|
1699
|
+
export function lowerStaticAbortControllerCall(L, call) {
|
|
1700
|
+
const access = call.expression;
|
|
1701
|
+
if (L.dynamic ||
|
|
1702
|
+
call.questionDotToken ||
|
|
1703
|
+
call.arguments.some((argument) => ts.isSpreadElement(argument)) ||
|
|
1704
|
+
(!ts.isPropertyAccessExpression(access) &&
|
|
1705
|
+
!ts.isElementAccessExpression(access)) ||
|
|
1706
|
+
access.questionDotToken ||
|
|
1707
|
+
staticResponseMemberName(L, access) !== "abort") {
|
|
1708
|
+
return null;
|
|
1709
|
+
}
|
|
1710
|
+
const receiverTs = L.checker.getBaseTypeOfLiteralType(L.typeOf(access.expression));
|
|
1711
|
+
const symbol = receiverTs.getAliasSymbol() ?? receiverTs.getSymbol();
|
|
1712
|
+
if (symbol?.name !== "AbortController" ||
|
|
1713
|
+
!L.checker.declarationsOf(symbol).some((d) => ts.isInterfaceDeclaration(d) &&
|
|
1714
|
+
L.isStdlibFile(d.getSourceFile()))) {
|
|
1715
|
+
return null;
|
|
1716
|
+
}
|
|
1717
|
+
const receiver = L.lowerExpr(access.expression);
|
|
1718
|
+
if (receiver.type.kind !== "dyn")
|
|
1719
|
+
return null;
|
|
1720
|
+
const loc = locOf(call);
|
|
1721
|
+
const first = call.arguments[0]
|
|
1722
|
+
? lowerLiveWebValue(L, call.arguments[0])
|
|
1723
|
+
: dynUndefinedExpr(loc);
|
|
1724
|
+
const args = [staticFirstArgWithSurplusArgs(L, call, first)];
|
|
1725
|
+
return lowerStaticFixedFetchMethodCall(L, call, access, "abort", receiver, args, (receiverRef, argumentRefs) => ({
|
|
1726
|
+
kind: "dynInvoke",
|
|
1727
|
+
recv: receiverRef,
|
|
1728
|
+
method: "abort",
|
|
1729
|
+
calleeName: access.getText(),
|
|
1730
|
+
args: argumentRefs,
|
|
1731
|
+
type: DYN,
|
|
1732
|
+
loc,
|
|
1733
|
+
}));
|
|
1734
|
+
}
|
|
1671
1735
|
/** Controller chunks and error reasons are dyn-handle calls, but unlike a
|
|
1672
1736
|
* general checked-dynamic boundary the Web Streams contract preserves their
|
|
1673
1737
|
* object identity for the reader/source callbacks that observe them. */
|
|
@@ -1792,6 +1856,60 @@ export function lowerStaticAbortSignalListenerCall(L, call) {
|
|
|
1792
1856
|
loc,
|
|
1793
1857
|
}));
|
|
1794
1858
|
}
|
|
1859
|
+
/** `new AbortController()`. Static builds create a native controller handle
|
|
1860
|
+
* over the same signal state consumed by fetch; dynamic builds construct the
|
|
1861
|
+
* island Web object. JavaScript accepts surplus constructor arguments, so
|
|
1862
|
+
* both tiers evaluate them even though AbortController ignores their values. */
|
|
1863
|
+
export function lowerAbortControllerNew(L, expr) {
|
|
1864
|
+
if (!ts.isIdentifier(expr.expression) ||
|
|
1865
|
+
expr.expression.text !== "AbortController") {
|
|
1866
|
+
return null;
|
|
1867
|
+
}
|
|
1868
|
+
const symbol = L.resolveValueSymbol(expr.expression);
|
|
1869
|
+
if (!symbol || !L.isStdlibSymbol(symbol))
|
|
1870
|
+
return null;
|
|
1871
|
+
const args = expr.arguments ?? [];
|
|
1872
|
+
if (args.some((argument) => ts.isSpreadElement(argument)))
|
|
1873
|
+
return null;
|
|
1874
|
+
const loc = locOf(expr);
|
|
1875
|
+
if (L.dynamic) {
|
|
1876
|
+
const ctor = {
|
|
1877
|
+
kind: "jsOp",
|
|
1878
|
+
op: "globalGet",
|
|
1879
|
+
name: "AbortController",
|
|
1880
|
+
args: [],
|
|
1881
|
+
type: JSVAL,
|
|
1882
|
+
loc,
|
|
1883
|
+
};
|
|
1884
|
+
return {
|
|
1885
|
+
kind: "jsOp",
|
|
1886
|
+
op: "construct",
|
|
1887
|
+
args: [ctor, ...args.map((argument) => L.jsvalIn(L.lowerExpr(argument), argument))],
|
|
1888
|
+
type: JSVAL,
|
|
1889
|
+
loc,
|
|
1890
|
+
};
|
|
1891
|
+
}
|
|
1892
|
+
const result = {
|
|
1893
|
+
kind: "libCall",
|
|
1894
|
+
fn: "fetch.abortControllerNew",
|
|
1895
|
+
args: [],
|
|
1896
|
+
type: DYN,
|
|
1897
|
+
loc,
|
|
1898
|
+
};
|
|
1899
|
+
if (args.length === 0)
|
|
1900
|
+
return result;
|
|
1901
|
+
return {
|
|
1902
|
+
kind: "seqExpr",
|
|
1903
|
+
stmts: args.map((argument) => ({
|
|
1904
|
+
kind: "exprStmt",
|
|
1905
|
+
expr: L.lowerExpr(argument),
|
|
1906
|
+
loc: locOf(argument),
|
|
1907
|
+
})),
|
|
1908
|
+
result,
|
|
1909
|
+
type: DYN,
|
|
1910
|
+
loc,
|
|
1911
|
+
};
|
|
1912
|
+
}
|
|
1795
1913
|
/** `new ReadableStream(source?)`. Static builds box the source record into
|
|
1796
1914
|
* the checked-dynamic tree; dynamic builds construct the island's Web
|
|
1797
1915
|
* stream directly so the returned handle composes with dynamic fetch. */
|
|
@@ -1842,6 +1960,162 @@ export function lowerStaticReadableStreamNew(L, expr) {
|
|
|
1842
1960
|
loc,
|
|
1843
1961
|
};
|
|
1844
1962
|
}
|
|
1963
|
+
/** `new Response(body?, init?)`. Dynamic builds construct the island's
|
|
1964
|
+
* Web Response directly. Static builds hand a checked-dynamic BodyInit and
|
|
1965
|
+
* ResponseInit snapshot to the native fetch runtime, which returns the same
|
|
1966
|
+
* opaque Response handle as fetch(). */
|
|
1967
|
+
export function lowerResponseNew(L, expr) {
|
|
1968
|
+
if (!ts.isIdentifier(expr.expression) ||
|
|
1969
|
+
expr.expression.text !== "Response") {
|
|
1970
|
+
return null;
|
|
1971
|
+
}
|
|
1972
|
+
const symbol = L.resolveValueSymbol(expr.expression);
|
|
1973
|
+
if (!symbol || !L.isStdlibSymbol(symbol))
|
|
1974
|
+
return null;
|
|
1975
|
+
const args = expr.arguments ?? [];
|
|
1976
|
+
if (args.some(ts.isSpreadElement))
|
|
1977
|
+
return null;
|
|
1978
|
+
const loc = locOf(expr);
|
|
1979
|
+
if (L.dynamic) {
|
|
1980
|
+
const ctor = {
|
|
1981
|
+
kind: "jsOp",
|
|
1982
|
+
op: "globalGet",
|
|
1983
|
+
name: "Response",
|
|
1984
|
+
args: [],
|
|
1985
|
+
type: JSVAL,
|
|
1986
|
+
loc,
|
|
1987
|
+
};
|
|
1988
|
+
const lowered = args.map((arg) => ts.isObjectLiteralExpression(arg)
|
|
1989
|
+
? lowerIslandObjectLiteral(L, arg)
|
|
1990
|
+
: L.jsvalIn(L.lowerExpr(arg), arg));
|
|
1991
|
+
return {
|
|
1992
|
+
kind: "jsOp",
|
|
1993
|
+
op: "construct",
|
|
1994
|
+
args: [ctor, ...lowered],
|
|
1995
|
+
type: JSVAL,
|
|
1996
|
+
loc,
|
|
1997
|
+
};
|
|
1998
|
+
}
|
|
1999
|
+
const toDyn = (node, value, what) => {
|
|
2000
|
+
if (node === undefined)
|
|
2001
|
+
return dynUndefinedExpr(loc);
|
|
2002
|
+
if (value.type.kind === "dyn")
|
|
2003
|
+
return value;
|
|
2004
|
+
/* A user class can satisfy ResponseInit structurally through plain
|
|
2005
|
+
* fields. Project just the declared dictionary members into a record,
|
|
2006
|
+
* then use the ordinary checked-dynamic copy. objRecordWidthHelper
|
|
2007
|
+
* deliberately declines accessors/methods, whose observable reads
|
|
2008
|
+
* cannot be moved into the runtime WebIDL conversion phase. */
|
|
2009
|
+
if (what === "an init value" && value.type.kind === "object") {
|
|
2010
|
+
const sourceType = L.typeOf(node);
|
|
2011
|
+
const fields = [];
|
|
2012
|
+
for (const name of ["headers", "status", "statusText"]) {
|
|
2013
|
+
const property = L.checker.getPropertyOfType(sourceType, name);
|
|
2014
|
+
if (!property)
|
|
2015
|
+
continue;
|
|
2016
|
+
const propertyType = L.checker.getTypeOfSymbolAtLocation(property, node);
|
|
2017
|
+
const mapped = L.mapTypeOf(propertyType);
|
|
2018
|
+
if (!mapped || mapped.kind === "void") {
|
|
2019
|
+
L.noLowering(`new Response with ${what} of type '${L.fmt(value.type)}'`, node, `the '${name}' field does not have a checked-dynamic representation`);
|
|
2020
|
+
}
|
|
2021
|
+
fields.push({ name, type: mapped });
|
|
2022
|
+
}
|
|
2023
|
+
const recordType = {
|
|
2024
|
+
kind: "record",
|
|
2025
|
+
shapeId: L.shapes.intern(fields, false, undefined, fields.map((field) => field.name)),
|
|
2026
|
+
};
|
|
2027
|
+
const projected = L.widthCoerce(value, recordType);
|
|
2028
|
+
if (projected && L.dynConvertible(projected.type)) {
|
|
2029
|
+
return {
|
|
2030
|
+
kind: "dynFrom",
|
|
2031
|
+
value: projected,
|
|
2032
|
+
liveRef: true,
|
|
2033
|
+
type: DYN,
|
|
2034
|
+
loc: value.loc,
|
|
2035
|
+
};
|
|
2036
|
+
}
|
|
2037
|
+
}
|
|
2038
|
+
if (value.kind === "unitLit" || L.dynConvertible(value.type)) {
|
|
2039
|
+
if (what === "an init value" &&
|
|
2040
|
+
hasLiveWebMutableArm(L, value.type)) {
|
|
2041
|
+
return {
|
|
2042
|
+
kind: "dynFrom",
|
|
2043
|
+
value,
|
|
2044
|
+
liveRef: true,
|
|
2045
|
+
type: DYN,
|
|
2046
|
+
loc: value.loc,
|
|
2047
|
+
};
|
|
2048
|
+
}
|
|
2049
|
+
return {
|
|
2050
|
+
kind: "dynFrom",
|
|
2051
|
+
value,
|
|
2052
|
+
type: DYN,
|
|
2053
|
+
loc: value.loc,
|
|
2054
|
+
};
|
|
2055
|
+
}
|
|
2056
|
+
L.noLowering(`new Response with ${what} of type '${L.fmt(value.type)}'`, node, "the static constructor accepts string, Uint8Array, ReadableStream, null, and the declared ResponseInit dictionary");
|
|
2057
|
+
};
|
|
2058
|
+
const bodyNode = args[0];
|
|
2059
|
+
const body = bodyNode === undefined
|
|
2060
|
+
? { kind: "unitLit", unit: "undefined", type: { kind: "undefinedT" }, loc }
|
|
2061
|
+
: L.lowerExpr(bodyNode);
|
|
2062
|
+
const initNode = args[1];
|
|
2063
|
+
const init = initNode === undefined
|
|
2064
|
+
? { kind: "unitLit", unit: "undefined", type: { kind: "undefinedT" }, loc }
|
|
2065
|
+
: ts.isObjectLiteralExpression(initNode)
|
|
2066
|
+
? lowerDynObjectLiteral(L, initNode, (node, value) => lowerLiveWebValue(L, node, value))
|
|
2067
|
+
: L.lowerExpr(initNode);
|
|
2068
|
+
/* JavaScript evaluates every argument expression before WebIDL starts
|
|
2069
|
+
* converting either BodyInit or ResponseInit. Capture the raw values in
|
|
2070
|
+
* source order; only the final libCall boxes the body and gives typed init
|
|
2071
|
+
* values a live capsule for the runtime's later dictionary reads. This is
|
|
2072
|
+
* observable when argument evaluation or BodyInit coercion mutates a
|
|
2073
|
+
* Uint8Array body or a typed ResponseInit record. Unit-valued expressions
|
|
2074
|
+
* still execute, then contribute the corresponding undefined/null literal. */
|
|
2075
|
+
const stmts = [];
|
|
2076
|
+
const capture = (value, name) => {
|
|
2077
|
+
if (isUnitType(value.type) || value.type.kind === "void") {
|
|
2078
|
+
if (value.kind !== "unitLit") {
|
|
2079
|
+
stmts.push({ kind: "exprStmt", expr: value, loc: value.loc });
|
|
2080
|
+
}
|
|
2081
|
+
return value.type.kind === "nullT"
|
|
2082
|
+
? { kind: "unitLit", unit: "null", type: value.type, loc: value.loc }
|
|
2083
|
+
: {
|
|
2084
|
+
kind: "unitLit",
|
|
2085
|
+
unit: "undefined",
|
|
2086
|
+
type: { kind: "undefinedT" },
|
|
2087
|
+
loc: value.loc,
|
|
2088
|
+
};
|
|
2089
|
+
}
|
|
2090
|
+
const local = L.declareHiddenLocal(name, value.type);
|
|
2091
|
+
stmts.push({ kind: "varDecl", localId: local.id, init: value, loc: value.loc });
|
|
2092
|
+
return {
|
|
2093
|
+
kind: "varRef",
|
|
2094
|
+
localId: local.id,
|
|
2095
|
+
type: local.type,
|
|
2096
|
+
loc: value.loc,
|
|
2097
|
+
};
|
|
2098
|
+
};
|
|
2099
|
+
const bodyRef = capture(body, "%responseBody");
|
|
2100
|
+
const initRef = capture(init, "%responseInit");
|
|
2101
|
+
for (const argument of args.slice(2)) {
|
|
2102
|
+
const discarded = ts.isVoidExpression(argument)
|
|
2103
|
+
? L.lowerExpr(argument.expression)
|
|
2104
|
+
: L.lowerExpr(argument);
|
|
2105
|
+
stmts.push({ kind: "exprStmt", expr: discarded, loc: discarded.loc });
|
|
2106
|
+
}
|
|
2107
|
+
const result = {
|
|
2108
|
+
kind: "libCall",
|
|
2109
|
+
fn: "fetch.responseNew",
|
|
2110
|
+
args: [
|
|
2111
|
+
toDyn(bodyNode, bodyRef, "a body"),
|
|
2112
|
+
toDyn(initNode, initRef, "an init value"),
|
|
2113
|
+
],
|
|
2114
|
+
type: DYN,
|
|
2115
|
+
loc,
|
|
2116
|
+
};
|
|
2117
|
+
return { kind: "seqExpr", stmts, result, type: DYN, loc };
|
|
2118
|
+
}
|
|
1845
2119
|
/** A static default reader's read() exits the native checked-dynamic
|
|
1846
2120
|
* transport into the checker's concrete chunk type. An exact chunk type
|
|
1847
2121
|
* preserves ReadableStream.from(array)'s element identity; structural
|