@scriptc/compiler 0.0.21 → 0.0.22
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 +78 -34
- package/dist/backend/cc-cache.test.d.ts +1 -0
- package/dist/backend/cc-cache.test.js +2507 -0
- package/dist/backend/cc-cache.test.js.map +1 -0
- package/dist/backend/cc.d.ts +69 -11
- package/dist/backend/cc.js +1937 -222
- package/dist/backend/cc.js.map +1 -1
- package/dist/backend/emission/emit-exprs.js +355 -8
- package/dist/backend/emission/emit-exprs.js.map +1 -1
- package/dist/backend/emission/emit-walkers.js +108 -7
- package/dist/backend/emission/emit-walkers.js.map +1 -1
- package/dist/backend/emission/emitter.d.ts +16 -0
- package/dist/backend/emission/emitter.js +23 -2
- package/dist/backend/emission/emitter.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +1 -0
- package/dist/backend/llvm/dyn.js +305 -8
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.js +527 -2
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/compat/fetch-profile.d.ts +108 -0
- package/dist/compat/fetch-profile.js +482 -0
- package/dist/compat/fetch-profile.js.map +1 -0
- package/dist/coverage/surface-manifest.js +54 -0
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +21 -8
- package/dist/frontend/lowering/lower-builtins.js +137 -14
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +40 -0
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.js +4 -3
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +2 -2
- package/dist/frontend/lowering/lower-exprs.js +63 -12
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +102 -7
- package/dist/frontend/lowering/lower-island.js +1702 -26
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +17 -1
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +25 -5
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +39 -0
- package/dist/frontend/lowering/lowerer.js +286 -18
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/surfaces.js +12 -0
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/program.d.ts +16 -0
- package/dist/frontend/program.js +130 -6
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/types.d.ts +14 -7
- package/dist/frontend/types.js +95 -31
- package/dist/frontend/types.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +70 -14
- package/dist/index.js.map +1 -1
- package/dist/ir/nodes.d.ts +32 -16
- package/dist/ir/nodes.js +36 -28
- package/dist/ir/nodes.js.map +1 -1
- package/dist/ir/validate.js +61 -1
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/int-infer.js +7 -1
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/int-infer.test.js +80 -0
- package/dist/library/int-infer.test.js.map +1 -1
- package/dist/library/sidecar-validate.js +5 -0
- package/dist/library/sidecar-validate.js.map +1 -1
- package/dist/library/sidecar.d.ts +3 -0
- package/dist/library/sidecar.js.map +1 -1
- package/package.json +2 -2
- package/surface-manifest.json +859 -1
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
* byte-deterministic: entries sort by id, keys are emitted in one fixed
|
|
39
39
|
* order, and the output carries no timestamps or absolute paths. */
|
|
40
40
|
import { FENCE_CODES, UNSUPPORTED } from "../diagnostics/diagnostic.js";
|
|
41
|
+
import { NODE24_FETCH_COMPAT_PROFILE } from "../compat/fetch-profile.js";
|
|
41
42
|
import { SUPPORTED_BUILTIN_MODULES, SUPPORTED_NODE_MODULES } from "../frontend/shared.js";
|
|
42
43
|
import { AMBIENT_SURFACE_FNS, ARRAY_METHODS, BUILTIN_MODULE_CONSTS, BUILTIN_MODULE_FENCE_HINTS, BUILTIN_MODULE_FNS, COMPOUND_ASSIGN_OPS, ISLAND_SURFACE, MAP_METHODS, SET_COMBINE_METHODS, SET_METHODS, STATIC_MATH_FNS, STATIC_NUMBER_METHODS, STR_METHODS, UNSUPPORTED_EXPR, UNSUPPORTED_STMT, } from "../frontend/lowering/surfaces.js";
|
|
43
44
|
export const MANIFEST_SCHEMA_VERSION = 1;
|
|
@@ -51,6 +52,8 @@ const COVERAGE_NOTES = [
|
|
|
51
52
|
"stdlib and node-builtin member entries name surface whose LOWERED call forms are constrained (arity, argument shapes); declared call forms outside the lowered set are refused per site, with code SC2020 for standard-library and node-builtin surface.",
|
|
52
53
|
"Entries with status 'unsupported' or 'dynamic-only' describe where the named code is raised: forms of the construct outside the supported subset are refused with that code — not that every form of the named feature is refused. Supported forms appear as their own static entries where a table projects them.",
|
|
53
54
|
"Entries with status 'dynamic-only' compile when the build embeds the dynamic engine (--dynamic); without the flag each use site is refused with the entry's code.",
|
|
55
|
+
`The engine-free fetch projection targets Node ${NODE24_FETCH_COMPAT_PROFILE.target.node} with bundled Undici ${NODE24_FETCH_COMPAT_PROFILE.target.undici}. Each projected row names the differential evidence that guards it; changing the pinned Node or Undici version is an explicit profile update.`,
|
|
56
|
+
"The fetch profile also contains a runtime-reflected census of the selected fetch, abort, Headers, and readable-stream interfaces plus RequestInit/ResponseInit dictionary reads. Static, dynamic-only, and unsupported census rows are projected here; its explicitly out-of-scope metadata rows and adjacent-interface exclusions remain in the profile so absence is deliberate rather than ambiguous.",
|
|
54
57
|
"Process-level diagnostic codes are not surface entries: SC0001-SC0004 are preflight gates, SC1110 is a comptime evaluation failure, SC3001 is the alternate-backend tier refusal, SC9001/SC9002 are internal errors.",
|
|
55
58
|
"No scheduling metadata is published; entry ids are the stable diff keys across releases.",
|
|
56
59
|
];
|
|
@@ -262,6 +265,57 @@ export function generateSurfaceManifest(compilerVersion) {
|
|
|
262
265
|
});
|
|
263
266
|
}
|
|
264
267
|
}
|
|
268
|
+
// ── fetch/Web platform: one explicit, versioned compatibility profile ─
|
|
269
|
+
const fetchTarget = `Node ${NODE24_FETCH_COMPAT_PROFILE.target.node} / ` +
|
|
270
|
+
`Undici ${NODE24_FETCH_COMPAT_PROFILE.target.undici}`;
|
|
271
|
+
for (const operation of NODE24_FETCH_COMPAT_PROFILE.operations) {
|
|
272
|
+
const evidence = operation.evidence.map((item) => item.generated !== undefined
|
|
273
|
+
? `generated:${item.generated}`
|
|
274
|
+
: `fixture:${item.fixture}`);
|
|
275
|
+
add({
|
|
276
|
+
id: operation.id,
|
|
277
|
+
kind: "stdlib",
|
|
278
|
+
name: operation.name,
|
|
279
|
+
status: "static",
|
|
280
|
+
note: `${fetchTarget}; facets: ${operation.facets.join(", ")}; ` +
|
|
281
|
+
`differential evidence: ${evidence.join(", ")}`,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
for (const option of NODE24_FETCH_COMPAT_PROFILE.requestInit) {
|
|
285
|
+
const evidence = option.evidence.map((item) => item.generated !== undefined
|
|
286
|
+
? `generated:${item.generated}`
|
|
287
|
+
: `fixture:${item.fixture}`);
|
|
288
|
+
add({
|
|
289
|
+
id: option.id,
|
|
290
|
+
kind: "stdlib",
|
|
291
|
+
name: option.name,
|
|
292
|
+
status: "static",
|
|
293
|
+
note: `${fetchTarget}; conversion: ${option.conversion}; ` +
|
|
294
|
+
`differential evidence: ${evidence.join(", ")}`,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
for (const row of NODE24_FETCH_COMPAT_PROFILE.inventory.entries) {
|
|
298
|
+
if (row.status !== "dynamic-only" && row.status !== "unsupported")
|
|
299
|
+
continue;
|
|
300
|
+
if (row.code === undefined || row.reason === undefined) {
|
|
301
|
+
throw new Error(`non-static fetch inventory row '${row.id}' is incomplete`);
|
|
302
|
+
}
|
|
303
|
+
const name = row.placement === "constructor"
|
|
304
|
+
? `${row.owner} constructor`
|
|
305
|
+
: row.placement === "dictionary"
|
|
306
|
+
? `${row.owner}.${row.member}`
|
|
307
|
+
: row.owner === "globalThis"
|
|
308
|
+
? row.member
|
|
309
|
+
: `${row.owner}.${row.member}`;
|
|
310
|
+
add({
|
|
311
|
+
id: row.id,
|
|
312
|
+
kind: "stdlib",
|
|
313
|
+
name,
|
|
314
|
+
status: row.status,
|
|
315
|
+
code: row.code,
|
|
316
|
+
note: `${fetchTarget}; ${row.reason}`,
|
|
317
|
+
});
|
|
318
|
+
}
|
|
265
319
|
// ── ambient dedicated-path surfaces: the attestation's ground ─────────
|
|
266
320
|
// Date/perf_hooks/process rows from the one ambient table — each entry
|
|
267
321
|
// is fenceable by construction (its row carries the reach-witnessing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface-manifest.js","sourceRoot":"","sources":["../../src/coverage/surface-manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"surface-manifest.js","sourceRoot":"","sources":["../../src/coverage/surface-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -572,15 +572,27 @@ export declare function lowerNumberStaticCall(L: Lowerer, call: ts.CallExpressio
|
|
|
572
572
|
* semantics), and Date VALUES stay fenced — lowerNew carries the hint.
|
|
573
573
|
* Null when this is neither form. */
|
|
574
574
|
export declare function lowerDateCall(L: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
*
|
|
581
|
-
*
|
|
575
|
+
type TextCodecCtor = {
|
|
576
|
+
cls: "TextDecoder" | "TextEncoder";
|
|
577
|
+
ctor: ts.NewExpression;
|
|
578
|
+
};
|
|
579
|
+
/** `const encoder = new TextEncoder()` / the default TextDecoder twin:
|
|
580
|
+
* compile-time alias plumbing with no runtime object. Calls through the
|
|
581
|
+
* stable binding are recognized by textCodecReceiverOf below; any other
|
|
582
|
+
* reached value use keeps the ordinary SC2020 representation fence. Both
|
|
583
|
+
* declaration walks call this and independently gate on constness. */
|
|
584
|
+
export declare function textCodecBindingClassOf(L: Lowerer, nameNode: ts.Node, init: ts.Expression | undefined): TextCodecCtor["cls"] | null;
|
|
585
|
+
export declare function textCodecBindingDecl(L: Lowerer, nameNode: ts.Node, init: ts.Expression | undefined): boolean;
|
|
586
|
+
/** The WHATWG encoder pair, COMPOSED or through an erasable const binding:
|
|
587
|
+
* `new TextDecoder().decode(bytes)`, `new TextEncoder().encode(s)`, and
|
|
588
|
+
* the idiomatic store-then-call equivalents. The codec object never
|
|
589
|
+
* exists (the crypto/Date precedent); bare construction and value uses
|
|
590
|
+
* are fenced with the composed hint. decode is the runtime's WHATWG
|
|
591
|
+
* utf-8 decode with the leading BOM stripped; a zero-argument decode()
|
|
592
|
+
* is "" like the spec's. encode IS Buffer.from(s, "utf8") — ScrStr
|
|
593
|
+
* storage is well-formed UTF-8, so the bytes are identical (lone
|
|
582
594
|
* surrogates became U+FFFD at string construction, exactly what the
|
|
583
|
-
* spec's encoder emits). Null when this is neither
|
|
595
|
+
* spec's encoder emits). Null when this is neither supported form. */
|
|
584
596
|
export declare function lowerTextCodecCall(L: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
|
|
585
597
|
/** `String.fromCharCode(...codes)` on THE String global: every argument
|
|
586
598
|
* lowers as a number and packs into ONE f64[] array-literal argument
|
|
@@ -640,3 +652,4 @@ export declare function isConsoleLog(L: Lowerer, call: ts.CallExpression): boole
|
|
|
640
652
|
* like every stdlib global. Null for anything else (console.table, a
|
|
641
653
|
* user's own console binding, ...). */
|
|
642
654
|
export declare function consoleCallMember(L: Lowerer, call: ts.CallExpression): "log" | "info" | "debug" | "error" | "warn" | null;
|
|
655
|
+
export {};
|
|
@@ -5418,28 +5418,151 @@ export function lowerDateCall(L, call, access) {
|
|
|
5418
5418
|
}
|
|
5419
5419
|
return { kind: "libCall", fn: "date.toISOString", args: [ms], type: STRING, loc };
|
|
5420
5420
|
}
|
|
5421
|
-
/**
|
|
5422
|
-
*
|
|
5423
|
-
*
|
|
5424
|
-
|
|
5425
|
-
|
|
5426
|
-
|
|
5427
|
-
|
|
5421
|
+
/** A direct construction of THE stdlib TextEncoder/TextDecoder, through
|
|
5422
|
+
* type-only wrappers. Name alone is never enough: a user class with the
|
|
5423
|
+
* same spelling keeps the ordinary class lowering. */
|
|
5424
|
+
function directTextCodecCtorOf(L, expr) {
|
|
5425
|
+
const ctor = stripTypeCasts(expr);
|
|
5426
|
+
if (!ts.isNewExpression(ctor))
|
|
5427
|
+
return null;
|
|
5428
|
+
const callee = stripTypeCasts(ctor.expression);
|
|
5429
|
+
if (!ts.isIdentifier(callee))
|
|
5430
|
+
return null;
|
|
5431
|
+
if (callee.text !== "TextDecoder" && callee.text !== "TextEncoder")
|
|
5432
|
+
return null;
|
|
5433
|
+
const sym = L.resolveValueSymbol(callee);
|
|
5434
|
+
if (!sym || !L.isStdlibSymbol(sym))
|
|
5435
|
+
return null;
|
|
5436
|
+
if (sym.name !== "TextDecoder" && sym.name !== "TextEncoder")
|
|
5437
|
+
return null;
|
|
5438
|
+
return { cls: sym.name, ctor };
|
|
5439
|
+
}
|
|
5440
|
+
/** True when construction itself is effect-free and inside the already
|
|
5441
|
+
* lowered codec slice, so a const binding can be erased and calls can
|
|
5442
|
+
* resolve back to the initializer. TextDecoder's explicit label must be
|
|
5443
|
+
* an actual literal here: accepting an arbitrary expression merely typed
|
|
5444
|
+
* as "utf-8" would move or repeat its effects when the binding is erased. */
|
|
5445
|
+
function erasableTextCodecCtor(info) {
|
|
5446
|
+
const args = info.ctor.arguments ?? [];
|
|
5447
|
+
if (info.cls === "TextEncoder")
|
|
5448
|
+
return args.length === 0;
|
|
5449
|
+
if (args.length === 0)
|
|
5450
|
+
return true;
|
|
5451
|
+
if (args.length !== 1)
|
|
5452
|
+
return false;
|
|
5453
|
+
const label = stripTypeCasts(args[0]);
|
|
5454
|
+
return ts.isStringLiteralLike(label) && (label.text === "utf-8" || label.text === "utf8");
|
|
5455
|
+
}
|
|
5456
|
+
/** `const encoder = new TextEncoder()` / the default TextDecoder twin:
|
|
5457
|
+
* compile-time alias plumbing with no runtime object. Calls through the
|
|
5458
|
+
* stable binding are recognized by textCodecReceiverOf below; any other
|
|
5459
|
+
* reached value use keeps the ordinary SC2020 representation fence. Both
|
|
5460
|
+
* declaration walks call this and independently gate on constness. */
|
|
5461
|
+
export function textCodecBindingClassOf(L, nameNode, init) {
|
|
5462
|
+
if (!ts.isIdentifier(nameNode) || init === undefined)
|
|
5463
|
+
return null;
|
|
5464
|
+
const decl = nameNode.parent;
|
|
5465
|
+
if (!ts.isVariableDeclaration(decl) || !ts.isVariableDeclarationList(decl.parent) ||
|
|
5466
|
+
!ts.isVariableStatement(decl.parent.parent)) {
|
|
5467
|
+
return null;
|
|
5468
|
+
}
|
|
5469
|
+
const info = directTextCodecCtorOf(L, init);
|
|
5470
|
+
return info !== null && erasableTextCodecCtor(info) ? info.cls : null;
|
|
5471
|
+
}
|
|
5472
|
+
export function textCodecBindingDecl(L, nameNode, init) {
|
|
5473
|
+
return textCodecBindingClassOf(L, nameNode, init) !== null;
|
|
5474
|
+
}
|
|
5475
|
+
/** The inline composed receiver, or a const identifier whose initializer
|
|
5476
|
+
* is an erasable codec construction in the same execution scope and
|
|
5477
|
+
* after that declaration. Following the declaration instead of
|
|
5478
|
+
* materializing the value is honest for the supported slice: receiver
|
|
5479
|
+
* reads are pure, construction has no effects, and every non-call use
|
|
5480
|
+
* fences because there is deliberately no general value lowering. */
|
|
5481
|
+
function textCodecReceiverOf(L, expr) {
|
|
5482
|
+
const direct = directTextCodecCtorOf(L, expr);
|
|
5483
|
+
if (direct !== null)
|
|
5484
|
+
return direct;
|
|
5485
|
+
const receiver = stripTypeCasts(expr);
|
|
5486
|
+
if (!ts.isIdentifier(receiver))
|
|
5487
|
+
return null;
|
|
5488
|
+
const sym = L.resolveValueSymbol(receiver);
|
|
5489
|
+
const decl = sym ? L.checker.valueDeclarationOf(sym) : undefined;
|
|
5490
|
+
if (!decl || !ts.isVariableDeclaration(decl) || decl.initializer === undefined ||
|
|
5491
|
+
!ts.isVariableDeclarationList(decl.parent) || (decl.parent.flags & ts.NodeFlags.Const) === 0 ||
|
|
5492
|
+
!textCodecBindingDecl(L, decl.name, decl.initializer)) {
|
|
5493
|
+
return null;
|
|
5494
|
+
}
|
|
5495
|
+
// A closure can run before the const initializes (TDZ), and an
|
|
5496
|
+
// imported binding can be observed during a module cycle; both need
|
|
5497
|
+
// real runtime storage rather than this deliberately trivial rewrite.
|
|
5498
|
+
const executionScope = (node) => {
|
|
5499
|
+
let child = node;
|
|
5500
|
+
for (let cur = node.parent;; child = cur, cur = cur.parent) {
|
|
5501
|
+
if (ts.isFunctionLike(cur) || ts.isSourceFile(cur))
|
|
5502
|
+
return cur;
|
|
5503
|
+
// An instance field initializer runs when an object is constructed,
|
|
5504
|
+
// not when its enclosing class expression evaluates. Treat it like
|
|
5505
|
+
// a closure boundary: a later source position does not prove the
|
|
5506
|
+
// codec declaration ran (a switch can enter a following case and
|
|
5507
|
+
// instantiate the class while the binding is still in its TDZ).
|
|
5508
|
+
if (ts.isPropertyDeclaration(cur) && cur.initializer === child &&
|
|
5509
|
+
(ts.getCombinedModifierFlags(cur) & ts.ModifierFlags.Static) === 0) {
|
|
5510
|
+
return cur;
|
|
5511
|
+
}
|
|
5512
|
+
}
|
|
5513
|
+
};
|
|
5514
|
+
if (executionScope(receiver) !== executionScope(decl) || receiver.getStart() < decl.end)
|
|
5515
|
+
return null;
|
|
5516
|
+
// All switch clauses share one lexical environment, but dispatch can
|
|
5517
|
+
// enter a later clause without executing a const in an earlier one.
|
|
5518
|
+
// TypeScript normally diagnoses the direct read; an @ts-expect-error
|
|
5519
|
+
// can deliberately retain the runtime TDZ shape, so source order alone
|
|
5520
|
+
// is not a sufficient proof. A codec declared in a clause is erasable
|
|
5521
|
+
// only for uses inside that exact clause's subtree (nested switches are
|
|
5522
|
+
// fine; closures and instance initializers already fail executionScope).
|
|
5523
|
+
const switchClauseOf = (node) => {
|
|
5524
|
+
for (let cur = node.parent; cur !== undefined; cur = cur.parent) {
|
|
5525
|
+
if (ts.isCaseClause(cur) || ts.isDefaultClause(cur))
|
|
5526
|
+
return cur;
|
|
5527
|
+
if (ts.isFunctionLike(cur) || ts.isSourceFile(cur))
|
|
5528
|
+
return null;
|
|
5529
|
+
}
|
|
5530
|
+
return null;
|
|
5531
|
+
};
|
|
5532
|
+
const declClause = switchClauseOf(decl);
|
|
5533
|
+
if (declClause !== null) {
|
|
5534
|
+
let insideDeclClause = false;
|
|
5535
|
+
for (let cur = receiver; cur !== undefined; cur = cur.parent) {
|
|
5536
|
+
if (cur === declClause) {
|
|
5537
|
+
insideDeclClause = true;
|
|
5538
|
+
break;
|
|
5539
|
+
}
|
|
5540
|
+
}
|
|
5541
|
+
if (!insideDeclClause)
|
|
5542
|
+
return null;
|
|
5543
|
+
}
|
|
5544
|
+
return directTextCodecCtorOf(L, decl.initializer);
|
|
5545
|
+
}
|
|
5546
|
+
/** The WHATWG encoder pair, COMPOSED or through an erasable const binding:
|
|
5547
|
+
* `new TextDecoder().decode(bytes)`, `new TextEncoder().encode(s)`, and
|
|
5548
|
+
* the idiomatic store-then-call equivalents. The codec object never
|
|
5549
|
+
* exists (the crypto/Date precedent); bare construction and value uses
|
|
5550
|
+
* are fenced with the composed hint. decode is the runtime's WHATWG
|
|
5551
|
+
* utf-8 decode with the leading BOM stripped; a zero-argument decode()
|
|
5552
|
+
* is "" like the spec's. encode IS Buffer.from(s, "utf8") — ScrStr
|
|
5553
|
+
* storage is well-formed UTF-8, so the bytes are identical (lone
|
|
5428
5554
|
* surrogates became U+FFFD at string construction, exactly what the
|
|
5429
|
-
* spec's encoder emits). Null when this is neither
|
|
5555
|
+
* spec's encoder emits). Null when this is neither supported form. */
|
|
5430
5556
|
export function lowerTextCodecCall(L, call, access) {
|
|
5431
5557
|
if (call.questionDotToken || access.questionDotToken)
|
|
5432
5558
|
return null;
|
|
5433
5559
|
const member = access.name.text;
|
|
5434
5560
|
if (member !== "decode" && member !== "encode")
|
|
5435
5561
|
return null;
|
|
5436
|
-
const
|
|
5437
|
-
if (
|
|
5438
|
-
return null;
|
|
5439
|
-
const sym = L.resolveValueSymbol(recv.expression);
|
|
5440
|
-
const cls = sym?.name;
|
|
5441
|
-
if (!sym || !L.isStdlibSymbol(sym))
|
|
5562
|
+
const info = textCodecReceiverOf(L, access.expression);
|
|
5563
|
+
if (info === null || !L.isStdlibMember(access))
|
|
5442
5564
|
return null;
|
|
5565
|
+
const { cls, ctor: recv } = info;
|
|
5443
5566
|
if (!(cls === "TextDecoder" && member === "decode") && !(cls === "TextEncoder" && member === "encode")) {
|
|
5444
5567
|
return null;
|
|
5445
5568
|
}
|