@scriptc/compiler 0.0.9 → 0.0.10
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/dist/backend/emission/emit-exprs.js +136 -12
- package/dist/backend/emission/emit-exprs.js.map +1 -1
- package/dist/backend/emission/emit-walkers.js +29 -2
- package/dist/backend/emission/emit-walkers.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +1 -0
- package/dist/backend/llvm/dyn.js +83 -1
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.js +151 -9
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +21 -7
- package/dist/diagnostics/diagnostic.js +35 -16
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/render.js +8 -0
- package/dist/diagnostics/render.js.map +1 -1
- package/dist/frontend/lowering/lib-boundary.js +11 -1
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +13 -0
- package/dist/frontend/lowering/lower-builtins.js +146 -1
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +41 -0
- package/dist/frontend/lowering/lower-calls.js +524 -10
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +17 -0
- package/dist/frontend/lowering/lower-containers.js +193 -10
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.js +92 -17
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.js +179 -10
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +33 -2
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +25 -11
- package/dist/frontend/lowering/lower-namespaces.js +50 -15
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-server.js +211 -4
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +1 -5
- package/dist/frontend/lowering/lower-stmts.js +216 -7
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +65 -4
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +36 -1
- package/dist/frontend/lowering/lowerer.js +106 -3
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/types.d.ts +13 -0
- package/dist/frontend/types.js +84 -7
- package/dist/frontend/types.js.map +1 -1
- package/dist/index.js +20 -8
- package/dist/index.js.map +1 -1
- package/dist/ir/nodes.d.ts +99 -5
- package/dist/ir/nodes.js +44 -3
- package/dist/ir/nodes.js.map +1 -1
- package/dist/ir/validate.js +53 -3
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/fence-eval.d.ts +77 -0
- package/dist/library/fence-eval.js +385 -0
- package/dist/library/fence-eval.js.map +1 -0
- package/dist/library/profile.d.ts +11 -1
- package/dist/library/profile.js +102 -18
- package/dist/library/profile.js.map +1 -1
- package/package.json +2 -2
- package/surface-manifest.json +1 -1
|
@@ -8,8 +8,9 @@
|
|
|
8
8
|
* (portless's mDNS publishes through dns-sd/avahi child processes, not
|
|
9
9
|
* dgram multicast); its members fence with a named hint. */
|
|
10
10
|
import * as ts from "../ts7/adapter.js";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
11
|
+
import { ladderFenceExpr } from "./lowerer.js";
|
|
12
|
+
import { isJsSourceFile, locOf } from "../program.js";
|
|
13
|
+
import { BOOL, canBoxFuncIntoDyn, DGRAMSOCK_T, DYN, F64, funcOf, STRING, UNDEFINED_T, VOID } from "../../ir/nodes.js";
|
|
13
14
|
import { DNS_LOOKUP_DOCUMENTED_OPTIONS, fenceOrDropOptionKey } from "./surfaces.js";
|
|
14
15
|
const DGRAM_SURFACE_HINT = "bind, connect, send, address, close, unref/ref, and on/once of " +
|
|
15
16
|
"message/listening/close/connect/error are the supported dgram.Socket members";
|
|
@@ -30,7 +31,13 @@ function requireStatementPosition(L, call, what) {
|
|
|
30
31
|
* satisfying `paramOk` (indexed). The lower-server helper's shape,
|
|
31
32
|
* re-stated here so the spoke stays self-contained. */
|
|
32
33
|
function lowerCallbackArg(L, node, what, maxParams, paramOk, paramHint) {
|
|
33
|
-
|
|
34
|
+
let cb = L.lowerExpr(node);
|
|
35
|
+
// A checked-dynamic callback (test/common's mustCall wrapper — a dyn
|
|
36
|
+
// value): the zero-parameter slots adapt through the dynCheck function
|
|
37
|
+
// boundary, the lower-server listen-callback precedent.
|
|
38
|
+
if (cb.type.kind === "dyn" && maxParams === 0) {
|
|
39
|
+
cb = { kind: "dynCheck", value: cb, type: funcOf([], VOID), loc: locOf(node) };
|
|
40
|
+
}
|
|
34
41
|
if (cb.type.kind !== "func" || cb.type.params.length > maxParams) {
|
|
35
42
|
L.unsupported("SC1090", node, `${what} with more than ${maxParams} parameter${maxParams === 1 ? "" : "s"} (${paramHint})`);
|
|
36
43
|
}
|
|
@@ -123,6 +130,29 @@ export function lowerDgramDnsModuleCall(L, expr, bi, loc) {
|
|
|
123
130
|
else if (name === "reuseAddr") {
|
|
124
131
|
reuseAddr = L.lowerExprExpecting(prop.initializer, BOOL);
|
|
125
132
|
}
|
|
133
|
+
else if (name === "signal" && isJsSourceFile(expr.getSourceFile())) {
|
|
134
|
+
// A provably-non-AbortSignal signal (the invalid-input probes:
|
|
135
|
+
// strings, numbers, plain records) throws Node's
|
|
136
|
+
// validateAbortSignal ladder; plausible signal values keep the
|
|
137
|
+
// fence — abort-driven close has no lowering yet.
|
|
138
|
+
const raw = L.lowerExpr(prop.initializer);
|
|
139
|
+
const provablyNot = raw.type.kind === "string" || raw.type.kind === "f64" ||
|
|
140
|
+
raw.type.kind === "bool" || raw.type.kind === "record" || raw.type.kind === "array";
|
|
141
|
+
if (provablyNot && L.dynConvertible(raw.type)) {
|
|
142
|
+
return {
|
|
143
|
+
kind: "libCall",
|
|
144
|
+
fn: "error.propTypeThrow",
|
|
145
|
+
args: [
|
|
146
|
+
{ kind: "strLit", value: "options.signal", type: STRING, loc },
|
|
147
|
+
{ kind: "strLit", value: "an instance of AbortSignal", type: STRING, loc },
|
|
148
|
+
{ kind: "dynFrom", value: raw, type: DYN, loc },
|
|
149
|
+
],
|
|
150
|
+
type: DGRAMSOCK_T,
|
|
151
|
+
loc,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
L.noLowering(`createSocket option 'signal'`, prop, "abort-driven close has no lowering yet — type and reuseAddr are the supported options");
|
|
155
|
+
}
|
|
126
156
|
else {
|
|
127
157
|
L.noLowering(`createSocket option '${name}'`, prop, "type and reuseAddr are the supported options");
|
|
128
158
|
}
|
|
@@ -235,22 +265,67 @@ export function lowerDgramMethodCall(L, call, access) {
|
|
|
235
265
|
}
|
|
236
266
|
if (name === "send") {
|
|
237
267
|
requireStatementPosition(L, call, "socket.send(...)");
|
|
238
|
-
// send(msg, port, address) — one datagram to an explicit destination
|
|
239
|
-
//
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
const
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
268
|
+
// send(msg, port, address) — one datagram to an explicit destination
|
|
269
|
+
// (the static fast path). Every OTHER shape in a JS source rides the
|
|
270
|
+
// checked-dynamic ladder (dgram.sendChk): Node's signature shuffle,
|
|
271
|
+
// slice bounds, list/type contracts, port/address validation, and
|
|
272
|
+
// the connected-state errors — with the compiler-rendered fence as
|
|
273
|
+
// the post-validation tail for the callback/list/connected forms.
|
|
274
|
+
const staticShape = args.length === 3 && !args.some(ts.isSpreadElement) &&
|
|
275
|
+
(() => {
|
|
276
|
+
const dataT = L.mapTypeOf(L.typeOf(args[0]));
|
|
277
|
+
const portT = L.mapTypeOf(L.typeOf(args[1]));
|
|
278
|
+
const hostT = L.mapTypeOf(L.typeOf(args[2]));
|
|
279
|
+
return (dataT?.kind === "string" || (dataT?.kind === "bytes" && dataT.elem === "u8")) &&
|
|
280
|
+
portT?.kind === "f64" && hostT?.kind === "string";
|
|
281
|
+
})();
|
|
282
|
+
if (staticShape) {
|
|
283
|
+
const receiver = L.lowerExpr(access.expression);
|
|
284
|
+
const data = L.lowerExpr(args[0]);
|
|
285
|
+
const port = L.lowerExprExpecting(args[1], F64);
|
|
286
|
+
const host = L.lowerExprExpecting(args[2], STRING);
|
|
287
|
+
const fn = data.type.kind === "string" ? "dgram.sendStr" : "dgram.sendBytes";
|
|
288
|
+
return { kind: "libCall", fn, args: [receiver, data, port, host], type: VOID, loc };
|
|
249
289
|
}
|
|
250
|
-
if (
|
|
251
|
-
|
|
290
|
+
if (isJsSourceFile(call.getSourceFile()) && args.length <= 5 && !args.some(ts.isSpreadElement)) {
|
|
291
|
+
const receiver = L.lowerExpr(access.expression);
|
|
292
|
+
const slots = [];
|
|
293
|
+
let ok = true;
|
|
294
|
+
for (let i = 0; i < 5; i++) {
|
|
295
|
+
const n = args[i];
|
|
296
|
+
if (!n) {
|
|
297
|
+
slots.push({
|
|
298
|
+
kind: "dynFrom",
|
|
299
|
+
value: { kind: "unitLit", unit: "undefined", type: UNDEFINED_T, loc },
|
|
300
|
+
type: DYN,
|
|
301
|
+
loc,
|
|
302
|
+
});
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
const raw = L.lowerExpr(n);
|
|
306
|
+
if (raw.type.kind === "dyn")
|
|
307
|
+
slots.push(raw);
|
|
308
|
+
else if (raw.kind === "unitLit" || L.dynConvertible(raw.type) ||
|
|
309
|
+
(raw.type.kind === "func" &&
|
|
310
|
+
canBoxFuncIntoDyn(raw.type, (id) => L.shapes.get(id), (id) => L.unions.get(id)))) {
|
|
311
|
+
slots.push({ kind: "dynFrom", value: raw, type: DYN, loc });
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
ok = false;
|
|
315
|
+
break;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
if (ok) {
|
|
319
|
+
return {
|
|
320
|
+
kind: "libCall",
|
|
321
|
+
fn: "dgram.sendChk",
|
|
322
|
+
args: [receiver, ...slots, ladderFenceExpr(L, `send in this form`, call, "send(msg, port, address) — one string or Buffer datagram — is the lowered form; callback, list, and connected sends have no lowering yet")],
|
|
323
|
+
type: VOID,
|
|
324
|
+
loc,
|
|
325
|
+
};
|
|
326
|
+
}
|
|
252
327
|
}
|
|
253
|
-
L.noLowering(`send
|
|
328
|
+
L.noLowering(`send with ${args.length} arguments`, call, "the supported form is send(msg, port, address) — one string or Buffer datagram");
|
|
254
329
|
}
|
|
255
330
|
if (name === "address") {
|
|
256
331
|
if (args.length !== 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lower-dgram.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-dgram.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lower-dgram.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-dgram.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import { BOOL, CAUGHT, DYN, DYN_HANDLE_KINDS, F64, JSVAL, NULL_T, REF_TRUTHY_KIN
|
|
|
10
10
|
import { cjsClassExprWholeExportOf, cjsExportAssignmentOf, cjsExportDiscardReason, isCjsExportTableLiteral, isCjsJsFile, isJsSourceFile, isModuleExportsAccess, isNodeEsmFile, locOf } from "../program.js";
|
|
11
11
|
import { ARRAY_METHODS, builtinConstLit, builtinFenceHintOf, builtinModuleConstOf, builtinModuleFnOf, ISLAND_SURFACE, isChildSurfaceMember, MAP_METHODS, NARROW_FIRST, SET_METHODS, STR_METHODS, UNSUPPORTED_EXPR, sideEffectFreeOptionValue, stdlibGlobalNameOf } from "./surfaces.js";
|
|
12
12
|
import { blockedBindingUseDiag, recordShapeMismatchDiag, requiresDynamicPackageDiag, unsupportedDiag } from "../../diagnostics/diagnostic.js";
|
|
13
|
-
import { PoisonError, dynUndefinedExpr, jsFuncNameOf, neverTaintedJsType, own } from "./lowerer.js";
|
|
13
|
+
import { PoisonError, dynUndefinedExpr, jsFuncNameOf, neverTaintedJsType, nodeThrowExpr, own } from "./lowerer.js";
|
|
14
14
|
import { lowerIndexMergeHelper, lowerNpmStaticSafeIndexRead, strCharsCall } from "./lower-containers.js";
|
|
15
15
|
import { npmStaticPackageOfPath } from "../npm-static.js";
|
|
16
16
|
import { unsupportedModuleFeatureOf } from "../shared.js";
|
|
@@ -19,7 +19,7 @@ import { ambientNsRootOf, ambientUndefReadType, ambientUndefVarRootOf, ambientUn
|
|
|
19
19
|
import { expandoMemberRead, expandoWritableTarget } from "./lower-expando.js";
|
|
20
20
|
import { lowerSocketInstanceOf } from "./lower-server.js";
|
|
21
21
|
import { findGenericMethodOn, lowerStaticFieldRead } from "./lower-classes.js";
|
|
22
|
-
import { bindingNeverReassigned, implicitMonoFile, lowerTaggedTemplate, objLitGenericFnInfoOf, objLitGenericFnNodeOf, requireObjLitGenericReceiver } from "./lower-calls.js";
|
|
22
|
+
import { bindingNeverReassigned, implicitMonoFile, lowerTaggedTemplate, nullishGenericBindingUnitOf, objLitGenericFnInfoOf, objLitGenericFnNodeOf, requireObjLitGenericReceiver } from "./lower-calls.js";
|
|
23
23
|
import { mixinFnOfCallee } from "./lower-mixins.js";
|
|
24
24
|
import { isConstAssertionTypeNode, isGenericCallableMemberType, underConstAssertion, unitOnlyUnion } from "../types.js";
|
|
25
25
|
import { lowerYield } from "./lower-generators.js";
|
|
@@ -796,6 +796,18 @@ function lowerExprInner(L, expr) {
|
|
|
796
796
|
return nsUndefRead(L, expr.text, expr, t);
|
|
797
797
|
}
|
|
798
798
|
}
|
|
799
|
+
// A read of a TRAP binding — a declaration whose own initializer
|
|
800
|
+
// provably threw (module init unwound there), so this reference can
|
|
801
|
+
// never execute: any lowering is sound, and the trap keeps the
|
|
802
|
+
// shape honest. Typed by the use site when it maps, the F64 dummy
|
|
803
|
+
// otherwise (never observed — never even reached).
|
|
804
|
+
{
|
|
805
|
+
const sym = L.resolveValueSymbol(expr);
|
|
806
|
+
if (sym !== null && L.trapBindings.has(sym)) {
|
|
807
|
+
const t = ambientUndefReadType(L, expr) ?? contextualUndefReadType(L, expr) ?? F64;
|
|
808
|
+
return nsUndefRead(L, expr.text, expr, t);
|
|
809
|
+
}
|
|
810
|
+
}
|
|
799
811
|
// A program CLASS NAME as a value: the classRef over the class's
|
|
800
812
|
// immortal class object (member accesses and construction never
|
|
801
813
|
// reach here — their hooks claim the property/new forms first).
|
|
@@ -1406,12 +1418,25 @@ function lowerExprInner(L, expr) {
|
|
|
1406
1418
|
// read (ARR answers length; everything else JS's own-property
|
|
1407
1419
|
// answer). Mapped receivers keep the fence-first order: their
|
|
1408
1420
|
// members' gaps are real surface gaps ([1,2].entries), not
|
|
1409
|
-
// representation artifacts.
|
|
1410
|
-
|
|
1421
|
+
// representation artifacts. `.length` on a receiver whose checker
|
|
1422
|
+
// ARRAY type lowers to the checked-dynamic representation —
|
|
1423
|
+
// `unknown[]`, the collapsed `(string | object)[]`, and the `any[]`
|
|
1424
|
+
// an Array.isArray guard narrows a collapsed union to — is the DOM
|
|
1425
|
+
// array's OWN length (a keyed read the ARR kind answers exactly),
|
|
1426
|
+
// never an `Array.prototype` surface gap; both source languages.
|
|
1427
|
+
// Prototype-method VALUE reads (`ps.map` unparenthesized) keep the
|
|
1428
|
+
// fence-first order: a stored-member undefined would mis-answer
|
|
1429
|
+
// them, and calls dispatch through the dyn method machinery
|
|
1430
|
+
// instead.
|
|
1431
|
+
if ((isJsSourceFile(expr.getSourceFile()) &&
|
|
1411
1432
|
(L.mapTypeOf(L.typeOf(expr.expression)) === null ||
|
|
1412
1433
|
// A never-tainted receiver type maps (never rides as f64) but
|
|
1413
1434
|
// its VALUE lowered checked-dynamic — same DOM read.
|
|
1414
|
-
neverTaintedJsType(L, expr.expression, L.typeOf(expr.expression))))
|
|
1435
|
+
neverTaintedJsType(L, expr.expression, L.typeOf(expr.expression)))) ||
|
|
1436
|
+
(expr.name.text === "length" &&
|
|
1437
|
+
(L.checkerAnyArray(expr.expression) ||
|
|
1438
|
+
(L.checker.isArrayType(L.typeOf(expr.expression)) &&
|
|
1439
|
+
L.mapTypeOf(L.typeOf(expr.expression))?.kind === "dyn")))) {
|
|
1415
1440
|
const recv = L.lowerExpr(expr.expression);
|
|
1416
1441
|
if (recv.type.kind === "dyn") {
|
|
1417
1442
|
const key = { kind: "strLit", value: expr.name.text, type: STRING, loc: locOf(expr.name) };
|
|
@@ -1479,6 +1504,17 @@ function lowerExprInner(L, expr) {
|
|
|
1479
1504
|
return nsUndefRead(L, ambientRoot.text, expr, t);
|
|
1480
1505
|
}
|
|
1481
1506
|
}
|
|
1507
|
+
// A member read through a NULLISH generic binding (`const i: I<A &
|
|
1508
|
+
// B> = null as any; const _i: I<A> = i.something` — the receiver
|
|
1509
|
+
// provably holds null/undefined forever): the read throws Node's
|
|
1510
|
+
// exact TypeError at the access.
|
|
1511
|
+
if (ts.isIdentifier(expr.expression) && expr.questionDotToken === undefined) {
|
|
1512
|
+
const unit = nullishGenericBindingUnitOf(L, L.resolveValueSymbol(expr.expression));
|
|
1513
|
+
if (unit !== null) {
|
|
1514
|
+
const t = ambientUndefReadType(L, expr) ?? contextualUndefReadType(L, expr) ?? F64;
|
|
1515
|
+
return nodeThrowExpr(1, "", `Cannot read properties of ${unit} (reading '${expr.name.text}')`, t, loc);
|
|
1516
|
+
}
|
|
1517
|
+
}
|
|
1482
1518
|
// The lib fence's PROPERTY chokepoint: a stdlib-declared member that
|
|
1483
1519
|
// no lowering above claimed ([1,2].entries, Math.SQRT2, Promise.all,
|
|
1484
1520
|
// re.exec as a value, ...) reports SC2020 here.
|
|
@@ -2154,7 +2190,18 @@ function pureCondExpr(e) {
|
|
|
2154
2190
|
export function lowerNullishCoalesce(L, expr, loc) {
|
|
2155
2191
|
const left = L.lowerExpr(expr.left);
|
|
2156
2192
|
if (left.type.kind === "dyn") {
|
|
2157
|
-
|
|
2193
|
+
// `a ?? b` on a CHECKED-DYNAMIC left: the deciding test is the
|
|
2194
|
+
// runtime kind (scr_dyn_is_nullish — UNDEF/NULL take the default;
|
|
2195
|
+
// a wrapped island value routes to the engine's test, defensively:
|
|
2196
|
+
// the wrap constructor scalar-normalizes engine null/undefined
|
|
2197
|
+
// away). Both sides live in the DOM — the right converts through
|
|
2198
|
+
// the usual boundary and evaluates lazily in its branch; a default
|
|
2199
|
+
// with no dyn representation keeps the fence.
|
|
2200
|
+
const right = L.coerceToExpected(L.lowerExpr(expr.right), DYN);
|
|
2201
|
+
if (right.type.kind !== "dyn") {
|
|
2202
|
+
L.unsupported("SC1100", expr, "nullish coalescing on 'unknown' values against defaults with no dynamic representation");
|
|
2203
|
+
}
|
|
2204
|
+
return { kind: "nullish", left, right, type: DYN, loc };
|
|
2158
2205
|
}
|
|
2159
2206
|
if (left.type.kind === "jsval") {
|
|
2160
2207
|
// `a ?? b` on an ISLAND value: the engine's own nullish test — the
|
|
@@ -2988,6 +3035,24 @@ export function lowerIntrinsicProperty(L, expr) {
|
|
|
2988
3035
|
return read;
|
|
2989
3036
|
return { kind: "jsExit", value: read, type: F64, loc: locOf(expr) };
|
|
2990
3037
|
}
|
|
3038
|
+
// A CHECKED-DYNAMIC value behind an array-typed checker spelling
|
|
3039
|
+
// (`Object.keys(u).length` — the dyn walk answers a DOM array while
|
|
3040
|
+
// tsc spells string[]): the runtime-world dispatch — a DOM keyed
|
|
3041
|
+
// read validated into the declared number (a lying length throws
|
|
3042
|
+
// the catchable TypeError, the dynCheck stance).
|
|
3043
|
+
if (receiver.type.kind === "dyn") {
|
|
3044
|
+
const read = {
|
|
3045
|
+
kind: "dynKeyGet",
|
|
3046
|
+
key: { kind: "strLit", value: "length", type: STRING, loc: locOf(expr) },
|
|
3047
|
+
...(expr.questionDotToken ? { optional: true } : {}),
|
|
3048
|
+
value: receiver,
|
|
3049
|
+
type: DYN,
|
|
3050
|
+
loc: locOf(expr),
|
|
3051
|
+
};
|
|
3052
|
+
if (expr.questionDotToken)
|
|
3053
|
+
return read;
|
|
3054
|
+
return { kind: "dynCheck", value: read, type: F64, loc: locOf(expr) };
|
|
3055
|
+
}
|
|
2991
3056
|
return kind === "string"
|
|
2992
3057
|
? { kind: "strIntrinsic", method: "length", receiver, args: [], type: F64, loc: locOf(expr) }
|
|
2993
3058
|
: { kind: "arrIntrinsic", method: "length", receiver, args: [], type: F64, loc: locOf(expr) };
|
|
@@ -3148,8 +3213,12 @@ export function lowerArrayLiteral(L, expr, expected) {
|
|
|
3148
3213
|
// []) builds as a DOM ARRAY — one dyn value whose elements each
|
|
3149
3214
|
// convert through the usual boundary (dynFrom's JSON-safe domain);
|
|
3150
3215
|
// an element that cannot convert fences per element. length/index
|
|
3151
|
-
// reads and dynamic consumers ride the keyed-DOM paths.
|
|
3152
|
-
|
|
3216
|
+
// reads and dynamic consumers ride the keyed-DOM paths. TS literals
|
|
3217
|
+
// take the same build when the slot ITSELF is checked-dynamic — an
|
|
3218
|
+
// `unknown[]` annotation or a collapsed `(string | object)[]` maps
|
|
3219
|
+
// to DYN wholesale now (mapType's dyn-element array rule), so the
|
|
3220
|
+
// literal IS the DOM array.
|
|
3221
|
+
if (isJsSourceFile(expr.getSourceFile()) || mapped?.kind === "dyn") {
|
|
3153
3222
|
const elems = expr.elements.map((el) => {
|
|
3154
3223
|
if (ts.isSpreadElement(el)) {
|
|
3155
3224
|
L.unsupported("SC1090", el, "spread elements in a dynamic (unknown[]) array literal");
|
|
@@ -5053,7 +5122,24 @@ export function lowerElementAccess(L, expr) {
|
|
|
5053
5122
|
? null
|
|
5054
5123
|
: L.mapTypeOf(L.typeOf(expr.expression));
|
|
5055
5124
|
if (receiverIr?.kind === "jsval") {
|
|
5056
|
-
|
|
5125
|
+
// Dispatch follows the RUNTIME world (383(d)): a checker-'any'
|
|
5126
|
+
// receiver whose value LOWERED checked-dynamic (`bag.list[0]` where
|
|
5127
|
+
// bag.list is a routed keyed read off a wrapped island value) takes
|
|
5128
|
+
// the DOM keyed read below — the routed JSVAL arm reads the real
|
|
5129
|
+
// engine element; a jsval-lowered receiver keeps the island read.
|
|
5130
|
+
const recv = L.lowerExpr(expr.expression);
|
|
5131
|
+
if (recv.type.kind !== "dyn")
|
|
5132
|
+
return islandElementRead(L, expr, recv);
|
|
5133
|
+
const rawKey = L.lowerExpr(expr.argumentExpression);
|
|
5134
|
+
const key = rawKey.type.kind === "string"
|
|
5135
|
+
? rawKey
|
|
5136
|
+
: rawKey.type.kind === "f64"
|
|
5137
|
+
? { kind: "toString", operand: rawKey, type: STRING, loc: rawKey.loc }
|
|
5138
|
+
: null;
|
|
5139
|
+
if (key) {
|
|
5140
|
+
const opt = chainGuardedByQuestionDot(expr.expression);
|
|
5141
|
+
return L.maybeNarrow({ kind: "dynKeyGet", key, ...(opt ? { optional: true } : {}), value: recv, type: DYN, loc: locOf(expr) }, expr);
|
|
5142
|
+
}
|
|
5057
5143
|
}
|
|
5058
5144
|
// Typed-array element read `b[i]` — like arrayGet with a scalar
|
|
5059
5145
|
// result; any invalid index traps (the array discipline; JS would
|
|
@@ -5131,9 +5217,12 @@ export function lowerElementAccess(L, expr) {
|
|
|
5131
5217
|
const obj = L.lowerExpr(expr.expression);
|
|
5132
5218
|
if (obj.type.kind === "dyn") {
|
|
5133
5219
|
const rawKey = L.lowerExpr(expr.argumentExpression);
|
|
5220
|
+
// Number, bool, and DYN keys stringify (ToPropertyKey) — the
|
|
5221
|
+
// dyn-keyed read `catchWarning[warning.name]` where the property
|
|
5222
|
+
// chain itself lowered dyn.
|
|
5134
5223
|
const key = rawKey.type.kind === "string"
|
|
5135
5224
|
? rawKey
|
|
5136
|
-
: rawKey.type.kind === "f64"
|
|
5225
|
+
: rawKey.type.kind === "f64" || rawKey.type.kind === "bool" || rawKey.type.kind === "dyn"
|
|
5137
5226
|
? { kind: "toString", operand: rawKey, type: STRING, loc: rawKey.loc }
|
|
5138
5227
|
: null;
|
|
5139
5228
|
if (key) {
|
|
@@ -5499,11 +5588,58 @@ export function lowerElementWrite(L, expr) {
|
|
|
5499
5588
|
const receiverIr = L.mapTypeOf(L.typeOf(target.expression));
|
|
5500
5589
|
if (receiverIr?.kind === "jsval") {
|
|
5501
5590
|
const obj = L.lowerExpr(target.expression);
|
|
5591
|
+
// Dispatch follows the RUNTIME world (383(d)): a checker-'any'
|
|
5592
|
+
// receiver whose value LOWERED checked-dynamic takes the DOM keyed
|
|
5593
|
+
// write — the routed JSVAL arm lands it on the real engine object.
|
|
5594
|
+
if (obj.type.kind === "dyn") {
|
|
5595
|
+
const loc = locOf(expr);
|
|
5596
|
+
const rawKey = L.lowerExpr(target.argumentExpression);
|
|
5597
|
+
const key = rawKey.type.kind === "f64" || rawKey.type.kind === "bool" || rawKey.type.kind === "dyn"
|
|
5598
|
+
? { kind: "toString", operand: rawKey, type: STRING, loc: rawKey.loc }
|
|
5599
|
+
: rawKey;
|
|
5600
|
+
if (key.type.kind !== "string") {
|
|
5601
|
+
L.unsupported("SC1090", target.argumentExpression, `'${L.fmt(key.type)}'-typed keys in keyed writes through 'unknown' values`);
|
|
5602
|
+
}
|
|
5603
|
+
const value = L.coerceToExpected(L.lowerExpr(expr.right), DYN);
|
|
5604
|
+
if (value.type.kind !== "dyn") {
|
|
5605
|
+
L.unsupported("SC1100", expr.right, `assigning '${L.fmt(value.type)}' values through 'unknown' receivers`);
|
|
5606
|
+
}
|
|
5607
|
+
return {
|
|
5608
|
+
kind: "exprStmt",
|
|
5609
|
+
expr: { kind: "libCall", fn: "dyn.keySet", args: [obj, key, value], type: VOID, loc },
|
|
5610
|
+
loc,
|
|
5611
|
+
};
|
|
5612
|
+
}
|
|
5502
5613
|
const key = L.jsvalIn(L.lowerExpr(target.argumentExpression), target.argumentExpression);
|
|
5503
5614
|
const value = L.jsvalIn(L.lowerExpr(expr.right), expr.right);
|
|
5504
5615
|
const loc = locOf(expr);
|
|
5505
5616
|
return { kind: "exprStmt", expr: { kind: "jsOp", op: "setIdx", args: [obj, key, value], type: VOID, loc }, loc };
|
|
5506
5617
|
}
|
|
5618
|
+
// A checked-dynamic receiver TYPE (`unknown[]` and the collapsed
|
|
5619
|
+
// `(string | object)[]` map to DYN wholesale now): the DOM keyed
|
|
5620
|
+
// write — dyn.keySet. Number keys canonicalize through the JS-exact
|
|
5621
|
+
// formatter; ARR receivers take canonical index keys as element
|
|
5622
|
+
// set/extend (undefined-hole padding, JS's length growth exactly),
|
|
5623
|
+
// OBJ receivers set the member, and the runtime throws Node's
|
|
5624
|
+
// TypeErrors on every other kind. Values convert into the DOM;
|
|
5625
|
+
// unconvertible ones fence per site (the dynFrom stance).
|
|
5626
|
+
if (receiverIr?.kind === "dyn") {
|
|
5627
|
+
const obj = L.lowerExpr(target.expression);
|
|
5628
|
+
if (obj.type.kind === "dyn") {
|
|
5629
|
+
const loc = locOf(expr);
|
|
5630
|
+
let key = L.lowerExpr(target.argumentExpression);
|
|
5631
|
+
if (key.type.kind === "f64")
|
|
5632
|
+
key = L.ensureString(key, target.argumentExpression);
|
|
5633
|
+
if (key.type.kind !== "string") {
|
|
5634
|
+
L.unsupported("SC1090", target.argumentExpression, "indexing with non-string or non-number keys");
|
|
5635
|
+
}
|
|
5636
|
+
const value = L.coerceToExpected(L.lowerExpr(expr.right), DYN);
|
|
5637
|
+
if (value.type.kind !== "dyn") {
|
|
5638
|
+
L.unsupported("SC1101", expr.right, `storing '${L.fmt(value.type)}' values in a checked-dynamic array (the value cannot convert into the DOM)`);
|
|
5639
|
+
}
|
|
5640
|
+
return { kind: "exprStmt", expr: { kind: "libCall", fn: "dyn.keySet", args: [obj, key, value], type: VOID, loc }, loc };
|
|
5641
|
+
}
|
|
5642
|
+
}
|
|
5507
5643
|
// Typed-array element write `b[i] = v` — bytesSet: the value is an f64
|
|
5508
5644
|
// the runtime coerces JS-exactly; invalid indices trap (no appends —
|
|
5509
5645
|
// typed arrays are fixed-length; JS would ignore the write).
|
|
@@ -5680,6 +5816,39 @@ export function lowerElementWrite(L, expr) {
|
|
|
5680
5816
|
};
|
|
5681
5817
|
}
|
|
5682
5818
|
}
|
|
5819
|
+
// Keyed write `d[k] = v` on a CHECKED-DYNAMIC receiver (a JS `any`
|
|
5820
|
+
// dictionary — the Object.create(null) memo-table idiom writes
|
|
5821
|
+
// `result[key] = value`): dyn.keySet, exactly the record-mapped dyn
|
|
5822
|
+
// arm above — later writes win in insertion order, number keys
|
|
5823
|
+
// canonicalize through the JS-exact formatter (ToPropertyKey's string
|
|
5824
|
+
// side), index keys on DOM arrays set/extend elements, and non-object
|
|
5825
|
+
// receivers throw Node's TypeErrors at runtime. An UNMAPPED checker
|
|
5826
|
+
// type (static `any` — mapTypeOf answers null without --dynamic)
|
|
5827
|
+
// probes the receiver's own lowered world: a dyn value takes the same
|
|
5828
|
+
// write, anything else falls through to the fences.
|
|
5829
|
+
if (receiverIr?.kind === "dyn" || receiverIr === null) {
|
|
5830
|
+
const obj = receiverIr !== null ? L.lowerExpr(target.expression) : probeLower(L, target.expression);
|
|
5831
|
+
if (obj !== null && obj.type.kind === "dyn") {
|
|
5832
|
+
const loc = locOf(expr);
|
|
5833
|
+
const litKey = recordKeyLiteralText(target.argumentExpression);
|
|
5834
|
+
let key = litKey !== null
|
|
5835
|
+
? { kind: "strLit", value: litKey, type: STRING, loc: locOf(target.argumentExpression) }
|
|
5836
|
+
: L.lowerExpr(target.argumentExpression);
|
|
5837
|
+
if (key.type.kind === "f64")
|
|
5838
|
+
key = L.ensureString(key, target.argumentExpression);
|
|
5839
|
+
if (key.type.kind === "bool" || key.type.kind === "dyn") {
|
|
5840
|
+
key = { kind: "toString", operand: key, type: STRING, loc: locOf(target.argumentExpression) };
|
|
5841
|
+
}
|
|
5842
|
+
if (key.type.kind !== "string") {
|
|
5843
|
+
L.unsupported("SC1090", target.argumentExpression, "indexing checked-dynamic values with non-string or non-number keys");
|
|
5844
|
+
}
|
|
5845
|
+
const value = L.coerceToExpected(L.lowerExpr(expr.right), DYN);
|
|
5846
|
+
if (value.type.kind !== "dyn") {
|
|
5847
|
+
L.unsupported("SC1101", expr.right, `storing '${L.fmt(value.type)}' values in a checked-dynamic object (the value cannot convert into the DOM)`);
|
|
5848
|
+
}
|
|
5849
|
+
return { kind: "exprStmt", expr: { kind: "libCall", fn: "dyn.keySet", args: [obj, key, value], type: VOID, loc }, loc };
|
|
5850
|
+
}
|
|
5851
|
+
}
|
|
5683
5852
|
if (receiverIr?.kind !== "array") {
|
|
5684
5853
|
L.unsupported("SC1090", target, "assignment to non-array elements");
|
|
5685
5854
|
}
|