@scriptc/compiler 0.0.8 → 0.0.9
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 +13 -0
- package/dist/backend/cc.js +14 -0
- package/dist/backend/cc.js.map +1 -1
- package/dist/backend/emission/emit-exprs.js +108 -5
- package/dist/backend/emission/emit-exprs.js.map +1 -1
- package/dist/backend/emission/emit-types.d.ts +3 -0
- package/dist/backend/emission/emit-types.js +12 -0
- package/dist/backend/emission/emit-types.js.map +1 -1
- package/dist/backend/emission/emit-walkers.d.ts +7 -5
- package/dist/backend/emission/emit-walkers.js +23 -10
- package/dist/backend/emission/emit-walkers.js.map +1 -1
- package/dist/backend/emission/emitter.d.ts +1 -1
- package/dist/backend/emission/emitter.js +30 -9
- package/dist/backend/emission/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.js +206 -11
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +55 -10
- package/dist/diagnostics/diagnostic.js +82 -20
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +16 -0
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +11 -0
- package/dist/frontend/lowering/lower-builtins.js +111 -3
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +30 -11
- package/dist/frontend/lowering/lower-calls.js +418 -8
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.js +27 -1
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +4 -2
- package/dist/frontend/lowering/lower-containers.js +193 -43
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-emitter.js +54 -0
- package/dist/frontend/lowering/lower-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.js +52 -7
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +445 -13
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +28 -2
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +66 -14
- package/dist/frontend/lowering/lowerer.js +273 -28
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/surfaces.js +20 -3
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/npm-static-rewrite.d.ts +7 -2
- package/dist/frontend/npm-static-rewrite.js +566 -138
- package/dist/frontend/npm-static-rewrite.js.map +1 -1
- package/dist/frontend/npm-static.js +11 -2
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/program.js +5 -5
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/shared.d.ts +6 -1
- package/dist/frontend/shared.js +46 -1
- package/dist/frontend/shared.js.map +1 -1
- package/dist/frontend/types.js +4 -2
- package/dist/frontend/types.js.map +1 -1
- package/dist/index.js +150 -25
- package/dist/index.js.map +1 -1
- package/dist/ir/nodes.d.ts +131 -7
- package/dist/ir/nodes.js +41 -3
- package/dist/ir/nodes.js.map +1 -1
- package/dist/ir/validate.js +58 -8
- package/dist/ir/validate.js.map +1 -1
- package/package.json +2 -2
- package/surface-manifest.json +10 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/backend/emission/emitter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/backend/emission/emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { canMarshalFuncIntoIsland, CAUGHT, F64, islandCallbackRet, isRefCounted, isUnitType, MAY_THROW_LIB_FNS, moduleUsesDynInvoke, moduleUsesFetch, moduleUsesFsWatch, moduleUsesHttpServer, moduleUsesNet, moduleUsesProcessEvents, moduleUsesStream, RUNTIME_EMITTER_CLASS, RUNTIME_ERROR_CLASSES, RUNTIME_STREAM_CLASSES, STRING, typeEquals, typeKey, VOID } from "../../ir/nodes.js";
|
|
1
|
+
import { canMarshalFuncIntoIsland, CAUGHT, DYN, F64, islandCallbackRet, isRefCounted, isUnitType, MAY_THROW_LIB_FNS, moduleUsesDynInvoke, moduleUsesFetch, moduleUsesFsWatch, moduleUsesHttpServer, moduleUsesNet, moduleUsesProcessEvents, moduleUsesStream, RUNTIME_EMITTER_CLASS, RUNTIME_ERROR_CLASSES, RUNTIME_STREAM_CLASSES, STRING, typeEquals, typeKey, VOID } from "../../ir/nodes.js";
|
|
2
2
|
import { computeMayThrow } from "../emission/may-throw.js";
|
|
3
3
|
import { mangleArgPack, mangleAsyncSpawn, mangleClassNew, mangleClassObj, mangleClassRetain, mangleFnClosure, mangleFunction, mangleGenDrop, mangleGenResThunk, mangleGenSpawn, mangleGlobal, mangleLocal, mangleRecordNew, mangleRecordStruct, mangleResolveThunk, mangleTrampoline, mangleVtStruct, mangleWrapper } from "../mangle.js";
|
|
4
4
|
import { BlockBuilder } from "./blocks.js";
|
|
@@ -60,6 +60,8 @@ const LIB_FN_SYMS = {
|
|
|
60
60
|
"dyn.errInstanceof": "scr_dyn_err_instanceof",
|
|
61
61
|
"num.toExponential": "scr_num_to_exponential",
|
|
62
62
|
"num.toFixed0": "scr_num_to_fixed0",
|
|
63
|
+
"num.sameValue": "scr_num_same_value",
|
|
64
|
+
"intl.numFormatEnUs": "scr_intl_num_format_en_us",
|
|
63
65
|
"number.isFinite": "scr_num_is_finite",
|
|
64
66
|
"number.isNaN": "scr_num_is_nan",
|
|
65
67
|
"number.isInteger": "scr_num_is_integer",
|
|
@@ -187,6 +189,14 @@ const LIB_FN_SYMS = {
|
|
|
187
189
|
"buffer.concatLen": "scr_bytes_concat_len",
|
|
188
190
|
"buffer.byteLenStr": "scr_bytes_byte_length_str",
|
|
189
191
|
"buffer.isEncoding": "scr_bytes_is_encoding",
|
|
192
|
+
// The checked-dynamic compare/equals validators (scr_bytes_io.c):
|
|
193
|
+
// Node's argument ladders throw catchably (MAY_THROW_LIB_FNS).
|
|
194
|
+
"dyn.toStringCoerce": "scr_dyn_string_coerce_js",
|
|
195
|
+
"buffer.compareChk": "scr_buffer_compare_chk",
|
|
196
|
+
"bytes.equalsChk": "scr_bytes_equals_chk",
|
|
197
|
+
"bytes.compareChk": "scr_bytes_compare_chk",
|
|
198
|
+
"buffer.newStringFail": "scr_buffer_new_string_fail",
|
|
199
|
+
"fs.toUnixTimestamp": "scr_fs_to_unix_timestamp",
|
|
190
200
|
"fs.readFileSyncBuf": "scr_fs_read_file_bytes",
|
|
191
201
|
"fs.readFileSyncBytes": "scr_fs_read_file_bytes",
|
|
192
202
|
"fs.writeFileSyncBytes": "scr_fs_write_file_bytes",
|
|
@@ -376,6 +386,8 @@ const LIB_FN_SYMS = {
|
|
|
376
386
|
"emitter.names": "scr_emitter_event_names",
|
|
377
387
|
"emitter.listeners": "scr_emitter_listeners",
|
|
378
388
|
"emitter.setMax": "scr_emitter_set_max",
|
|
389
|
+
"emitter.setMaxChk": "scr_emitter_set_max_chk",
|
|
390
|
+
"emitter.setDefaultMaxChk": "scr_emitter_set_default_max_chk",
|
|
379
391
|
"emitter.getMax": "scr_emitter_get_max",
|
|
380
392
|
"emitter.setDefaultMax": "scr_emitter_set_default_max",
|
|
381
393
|
"emitter.getDefaultMax": "scr_emitter_get_default_max",
|
|
@@ -483,6 +495,9 @@ const LIB_FN_SYMS = {
|
|
|
483
495
|
// generic shapes; the throwing members ride the pending check.
|
|
484
496
|
"tp.setTimeout": "scr_tp_set_timeout",
|
|
485
497
|
"tp.setImmediate": "scr_tp_set_immediate",
|
|
498
|
+
// stream/promises' finished form (+1 promise; may-throw pending check;
|
|
499
|
+
// the pipeline form needs the stream-array compound and emits below).
|
|
500
|
+
"sp.finished": "scr_sp_finished",
|
|
486
501
|
"dc.channel": "scr_dc_channel",
|
|
487
502
|
"dc.subscribe": "scr_dc_subscribe",
|
|
488
503
|
"dc.unsubscribe": "scr_dc_unsubscribe",
|
|
@@ -586,6 +601,7 @@ const USES_TIMERS_LIB_FNS = new Set([
|
|
|
586
601
|
"stream.setTransform", "stream.setFlush",
|
|
587
602
|
"process.activeResources",
|
|
588
603
|
"stream.finished", "stream.finishedDyn", "stream.pipeline", "stream.pipelineDyn",
|
|
604
|
+
"sp.finished", "sp.pipeline",
|
|
589
605
|
"net.listen", "net.listenCb", "net.listenOpts", "net.listenOptsCb",
|
|
590
606
|
"net.connect", "net.connectCb", "net.connectLookup",
|
|
591
607
|
"http.createServer", "http.createServerEmpty",
|
|
@@ -640,6 +656,18 @@ const DV_GET_KIND = {
|
|
|
640
656
|
dvGetBigUint64Number: 8,
|
|
641
657
|
dvGetBigInt64Number: 9,
|
|
642
658
|
};
|
|
659
|
+
/** ScrDataViewGet per dvSet* method (the setters reuse the getter kinds;
|
|
660
|
+
* no BIG setters exist). */
|
|
661
|
+
const DV_SET_KIND = {
|
|
662
|
+
dvSetUint8: 0,
|
|
663
|
+
dvSetInt8: 1,
|
|
664
|
+
dvSetUint16: 2,
|
|
665
|
+
dvSetInt16: 3,
|
|
666
|
+
dvSetUint32: 4,
|
|
667
|
+
dvSetInt32: 5,
|
|
668
|
+
dvSetFloat32: 6,
|
|
669
|
+
dvSetFloat64: 7,
|
|
670
|
+
};
|
|
643
671
|
class LlEmitter {
|
|
644
672
|
mod;
|
|
645
673
|
/** Interned string literals: UTF-8 text → { symbol, byte length } —
|
|
@@ -1015,7 +1043,7 @@ class LlEmitter {
|
|
|
1015
1043
|
// LIBRARY mode: the runtime entry points the generated library
|
|
1016
1044
|
// symbols delegate to — declared before the extern block flushes.
|
|
1017
1045
|
if (this.mod.lib !== undefined) {
|
|
1018
|
-
this.declare(`declare void @scr_library_entry(i1 zeroext)`);
|
|
1046
|
+
this.declare(`declare void @scr_library_entry(i1 zeroext, ptr)`);
|
|
1019
1047
|
this.declare(`declare void @scr_library_reset()`);
|
|
1020
1048
|
this.declare(`declare void @scr_library_check_exc()`);
|
|
1021
1049
|
this.declare(`declare void @scr_library_set_sink(ptr, ptr)`);
|
|
@@ -1259,6 +1287,45 @@ class LlEmitter {
|
|
|
1259
1287
|
const lib = this.mod.lib;
|
|
1260
1288
|
const autoReset = lib.resultResetSymbol === null;
|
|
1261
1289
|
const out = [``, `; ── library-mode entries (profile: ${lib.profileName}) ──`, ``];
|
|
1290
|
+
// Every entry's prologue records its external symbol in the funnel's
|
|
1291
|
+
// current-entry slot (structured trap-teaching field 2); the symbols
|
|
1292
|
+
// live as internal constants, one per entry.
|
|
1293
|
+
const symConst = (sym) => `@sc_lib_sym_${sym}`;
|
|
1294
|
+
const emitSymConst = (sym) => {
|
|
1295
|
+
out.push(`${symConst(sym)} = internal constant [${Buffer.byteLength(sym, "utf8") + 1} x i8] c"${llStrBytes(sym)}"`);
|
|
1296
|
+
};
|
|
1297
|
+
emitSymConst(lib.initSymbol);
|
|
1298
|
+
if (lib.resultResetSymbol !== null)
|
|
1299
|
+
emitSymConst(lib.resultResetSymbol);
|
|
1300
|
+
if (lib.collectSymbol !== null)
|
|
1301
|
+
emitSymConst(lib.collectSymbol);
|
|
1302
|
+
for (const e of lib.exports)
|
|
1303
|
+
emitSymConst(e.symbol);
|
|
1304
|
+
out.push(``);
|
|
1305
|
+
// The runtime detected-trap overlay table (scr_runtime.h declares it,
|
|
1306
|
+
// the library trap funnel consults it): flat code/teaching/remediation
|
|
1307
|
+
// triples, one per runtime trap code (SC4013–SC4019) the profile
|
|
1308
|
+
// declares text for — the same data the C emission defines, so the
|
|
1309
|
+
// funnel-assembled sink message is emission-invariant by construction.
|
|
1310
|
+
// The empty table still defines the symbols the funnel links against.
|
|
1311
|
+
const ovlCells = [];
|
|
1312
|
+
lib.trapOverlays.forEach((o, i) => {
|
|
1313
|
+
const cell = (name, text) => {
|
|
1314
|
+
if (text === undefined) {
|
|
1315
|
+
ovlCells.push("ptr null");
|
|
1316
|
+
return;
|
|
1317
|
+
}
|
|
1318
|
+
const sym = `@sc_lib_ovl_${i}_${name}`;
|
|
1319
|
+
out.push(`${sym} = internal constant [${Buffer.byteLength(text, "utf8") + 1} x i8] c"${llStrBytes(text)}"`);
|
|
1320
|
+
ovlCells.push(`ptr ${sym}`);
|
|
1321
|
+
};
|
|
1322
|
+
cell("code", o.code);
|
|
1323
|
+
cell("teach", o.teaching);
|
|
1324
|
+
cell("rem", o.remediation);
|
|
1325
|
+
});
|
|
1326
|
+
out.push(ovlCells.length === 0
|
|
1327
|
+
? `@scr_library_trap_overlays = constant [1 x ptr] zeroinitializer`
|
|
1328
|
+
: `@scr_library_trap_overlays = constant [${ovlCells.length} x ptr] [${ovlCells.join(", ")}]`, `@scr_library_trap_overlays_len = constant i64 ${lib.trapOverlays.length}`, ``);
|
|
1262
1329
|
// The init entry: full deterministic reset-and-reevaluate. Program
|
|
1263
1330
|
// globals release and zero first (run-once guards included), then the
|
|
1264
1331
|
// runtime session reset, the error-vt interval stamps verbatim from
|
|
@@ -1268,7 +1335,7 @@ class LlEmitter {
|
|
|
1268
1335
|
const zero = ty === "double" ? f64Lit(0) : ty === "ptr" ? "null" : "false";
|
|
1269
1336
|
return ` store ${ty} ${zero}, ptr @${mangleGlobal(g.id)} ; ${g.name}`;
|
|
1270
1337
|
});
|
|
1271
|
-
out.push(`define void @${lib.initSymbol}() ${FN_ATTRS} {`, `entry:`, ` call void @scr_library_entry(i1 zeroext true) ; init always resets the result arena`, ...globalReleaseLines("ci"), ...zeroStores, ` call void @scr_library_reset()`, ...stamps, ` call void @${mangleFunction(this.mod.entry)}()`, ` call void @scr_library_check_exc()`, ` ret void`, `}`, ``, `define void @${lib.sinkRegisterSymbol}(ptr %fn, ptr %ctx) ${FN_ATTRS} {`, `entry:`, ` call void @scr_library_set_sink(ptr %fn, ptr %ctx)`, ` ret void`, `}`, ``);
|
|
1338
|
+
out.push(`define void @${lib.initSymbol}() ${FN_ATTRS} {`, `entry:`, ` call void @scr_library_entry(i1 zeroext true, ptr ${symConst(lib.initSymbol)}) ; init always resets the result arena`, ...globalReleaseLines("ci"), ...zeroStores, ` call void @scr_library_reset()`, ...stamps, ` call void @${mangleFunction(this.mod.entry)}()`, ` call void @scr_library_check_exc()`, ` ret void`, `}`, ``, `define void @${lib.sinkRegisterSymbol}(ptr %fn, ptr %ctx) ${FN_ATTRS} {`, `entry:`, ` call void @scr_library_set_sink(ptr %fn, ptr %ctx)`, ` ret void`, `}`, ``);
|
|
1272
1339
|
if (lib.identity !== undefined) {
|
|
1273
1340
|
// Profile-declared identity getters (the ask-2 sidecar's boot-time
|
|
1274
1341
|
// pairing fence): pure data returns with NO entry prologue — exempt
|
|
@@ -1279,14 +1346,14 @@ class LlEmitter {
|
|
|
1279
1346
|
out.push(`define i64 @${lib.identity.buildIdSymbol}() ${FN_ATTRS} { ; identity getter build_id 0x${lib.identity.buildId}`, `entry:`, ` ret i64 ${buildId}`, `}`, ``, `define i32 @${lib.identity.abiVersionSymbol}() ${FN_ATTRS} { ; identity getter abi_version`, `entry:`, ` ret i32 ${lib.identity.abiVersion}`, `}`, ``);
|
|
1280
1347
|
}
|
|
1281
1348
|
if (lib.resultResetSymbol !== null) {
|
|
1282
|
-
out.push(`define void @${lib.resultResetSymbol}() ${FN_ATTRS} {`, `entry:`, ` call void @scr_library_entry(i1 zeroext false)`, ` call void @scr_library_arena_reset()`, ` ret void`, `}`, ``);
|
|
1349
|
+
out.push(`define void @${lib.resultResetSymbol}() ${FN_ATTRS} {`, `entry:`, ` call void @scr_library_entry(i1 zeroext false, ptr ${symConst(lib.resultResetSymbol)})`, ` call void @scr_library_arena_reset()`, ` ret void`, `}`, ``);
|
|
1283
1350
|
}
|
|
1284
1351
|
if (lib.collectSymbol !== null) {
|
|
1285
|
-
out.push(`define void @${lib.collectSymbol}() ${FN_ATTRS} {`, `entry:`, ` call void @scr_library_entry(i1 zeroext false)`, ` call void @scr_library_collect() ; arena reset + a full cycle collection`, ` ret void`, `}`, ``);
|
|
1352
|
+
out.push(`define void @${lib.collectSymbol}() ${FN_ATTRS} {`, `entry:`, ` call void @scr_library_entry(i1 zeroext false, ptr ${symConst(lib.collectSymbol)})`, ` call void @scr_library_collect() ; arena reset + a full cycle collection`, ` ret void`, `}`, ``);
|
|
1286
1353
|
}
|
|
1287
1354
|
for (const e of lib.exports) {
|
|
1288
1355
|
const params = [];
|
|
1289
|
-
const body = [` call void @scr_library_entry(i1 zeroext ${autoReset ? "true" : "false"})`];
|
|
1356
|
+
const body = [` call void @scr_library_entry(i1 zeroext ${autoReset ? "true" : "false"}, ptr ${symConst(e.symbol)})`];
|
|
1290
1357
|
const args = [];
|
|
1291
1358
|
if (e.inboundBytesTrap !== undefined) {
|
|
1292
1359
|
// The bytes-in helper's trap message: the compiler-assembled
|
|
@@ -3999,7 +4066,15 @@ class LlEmitter {
|
|
|
3999
4066
|
const t = B.tmp();
|
|
4000
4067
|
B.line(`${a} = call double @scr_union_get_f64(ptr ${l.name})`);
|
|
4001
4068
|
B.line(`${b} = call double @scr_union_get_f64(ptr ${r.name})`);
|
|
4002
|
-
|
|
4069
|
+
if (e.sameValue) {
|
|
4070
|
+
// Object.is's f64 compare: NaN equals NaN, +0 differs
|
|
4071
|
+
// from -0 — the runtime SameValue.
|
|
4072
|
+
this.declare(`declare zeroext i1 @scr_num_same_value(double, double)`);
|
|
4073
|
+
B.line(`${t} = call zeroext i1 @scr_num_same_value(double ${a}, double ${b})`);
|
|
4074
|
+
}
|
|
4075
|
+
else {
|
|
4076
|
+
B.line(`${t} = fcmp oeq double ${a}, ${b}`);
|
|
4077
|
+
}
|
|
4003
4078
|
B.line(`store i1 ${t}, ptr ${slot}`);
|
|
4004
4079
|
break;
|
|
4005
4080
|
}
|
|
@@ -5272,14 +5347,18 @@ class LlEmitter {
|
|
|
5272
5347
|
}
|
|
5273
5348
|
if (e.name === "promise.reject") {
|
|
5274
5349
|
// A fresh promise rejected through the exception cell: the
|
|
5275
|
-
// %Error-rooted reason moves in as the cell's OBJ payload
|
|
5276
|
-
//
|
|
5277
|
-
//
|
|
5350
|
+
// %Error-rooted reason moves in as the cell's OBJ payload (a
|
|
5351
|
+
// checked-dynamic reason rides the thrown-dyn REF representation
|
|
5352
|
+
// instead — identity flows to catch/unhandledRejection observers,
|
|
5353
|
+
// emitThrowValue's dyn arm), and reject_pending moves the cell
|
|
5354
|
+
// into the promise (consumed immediately — no pending check runs
|
|
5355
|
+
// in between).
|
|
5278
5356
|
if (e.type.kind !== "promise")
|
|
5279
5357
|
throw new Error("llvm emitter bug: promise.reject type");
|
|
5280
5358
|
const reasonT = e.args[0].type;
|
|
5281
|
-
if (reasonT.kind !== "object")
|
|
5359
|
+
if (reasonT.kind !== "object" && reasonT.kind !== "dyn") {
|
|
5282
5360
|
throw new Error("llvm emitter bug: promise.reject reason");
|
|
5361
|
+
}
|
|
5283
5362
|
this.declare(`declare ptr @scr_promise_new()`);
|
|
5284
5363
|
this.declare(`declare void @scr_promise_reject_pending(ptr)`);
|
|
5285
5364
|
const reason = this.emitExpr(e.args[0]);
|
|
@@ -5452,6 +5531,40 @@ class LlEmitter {
|
|
|
5452
5531
|
// boxed thunk builds its own typed copies. The callee's source
|
|
5453
5532
|
// spelling rides along for Node's "<name> is not a function".
|
|
5454
5533
|
const callee = this.emitExpr(e.callee);
|
|
5534
|
+
if (e.spreads !== undefined && e.spreads.length > 0) {
|
|
5535
|
+
// The RUNTIME-ARITY form (`f(...args)`): one fresh DOM array
|
|
5536
|
+
// collects the arguments left-to-right — plain args move in
|
|
5537
|
+
// (push takes ownership), spread args FLATTEN (push_spread
|
|
5538
|
+
// retains elements in and throws V8's spread-call TypeError for
|
|
5539
|
+
// non-iterable DOM kinds, checked per spread — JS's
|
|
5540
|
+
// ArgumentListEvaluation order) — then apply calls through the
|
|
5541
|
+
// array's elements (borrowed, exactly scr_dyn_call).
|
|
5542
|
+
this.declare(`declare ptr @scr_dyn_new_arr()`);
|
|
5543
|
+
this.declare(`declare void @scr_dyn_arr_push(ptr, ptr)`);
|
|
5544
|
+
this.declare(`declare void @scr_dyn_arr_push_spread(ptr, ptr, ptr)`);
|
|
5545
|
+
this.declare(`declare ptr @scr_dyn_apply(ptr, ptr, ptr)`);
|
|
5546
|
+
const spreadAt = new Map(e.spreads.map((s) => [s.arg, s.what]));
|
|
5547
|
+
const pack = B.tmp();
|
|
5548
|
+
B.line(`${pack} = call ptr @scr_dyn_new_arr()`);
|
|
5549
|
+
this.own({ name: pack, type: DYN });
|
|
5550
|
+
e.args.forEach((a, i) => {
|
|
5551
|
+
const v = this.emitExpr(a);
|
|
5552
|
+
const spreadWhat = spreadAt.get(i);
|
|
5553
|
+
if (spreadWhat !== undefined) {
|
|
5554
|
+
B.line(`call void @scr_dyn_arr_push_spread(ptr ${pack}, ptr ${v.name}, ptr ${this.cstr(spreadWhat)})`);
|
|
5555
|
+
this.emitPendingCheck();
|
|
5556
|
+
}
|
|
5557
|
+
else {
|
|
5558
|
+
this.moveTemp(v);
|
|
5559
|
+
B.line(`call void @scr_dyn_arr_push(ptr ${pack}, ptr ${v.name})`);
|
|
5560
|
+
}
|
|
5561
|
+
});
|
|
5562
|
+
const t = B.tmp();
|
|
5563
|
+
B.line(`${t} = call ptr @scr_dyn_apply(ptr ${callee.name}, ptr ${pack}, ptr ${this.cstr(e.calleeName)})`);
|
|
5564
|
+
const out = this.own({ name: t, type: e.type });
|
|
5565
|
+
this.emitPendingCheck();
|
|
5566
|
+
return out;
|
|
5567
|
+
}
|
|
5455
5568
|
const args = e.args.map((a) => this.emitExpr(a));
|
|
5456
5569
|
let argsPtr = "null";
|
|
5457
5570
|
if (args.length > 0) {
|
|
@@ -6037,6 +6150,18 @@ class LlEmitter {
|
|
|
6037
6150
|
return t;
|
|
6038
6151
|
});
|
|
6039
6152
|
}
|
|
6153
|
+
case "callSpread": {
|
|
6154
|
+
// Spread application (`f(...pre, ...s)`): the prelude helper's
|
|
6155
|
+
// real spread syntax — iterator protocols are the engine's own,
|
|
6156
|
+
// the guards front-run V8's spread-call TypeError texts (the name
|
|
6157
|
+
// literal is the spread expression's spelling).
|
|
6158
|
+
this.declare(`declare ptr @scr_jsval_call_spread(ptr, ptr, ptr, ptr)`);
|
|
6159
|
+
return fallible(() => {
|
|
6160
|
+
const t = B.tmp();
|
|
6161
|
+
B.line(`${t} = call ptr @scr_jsval_call_spread(ptr ${a(0)}, ptr ${a(1)}, ptr ${a(2)}, ptr ${nameSym()})`);
|
|
6162
|
+
return t;
|
|
6163
|
+
});
|
|
6164
|
+
}
|
|
6040
6165
|
case "construct": {
|
|
6041
6166
|
const pack = argPack(args.slice(1).map((x) => x.name));
|
|
6042
6167
|
this.declare(`declare ptr @scr_jsval_construct(ptr, i32, ptr)`);
|
|
@@ -8131,6 +8256,18 @@ class LlEmitter {
|
|
|
8131
8256
|
// DataView getters: an omitted littleEndian is big-endian (the JS
|
|
8132
8257
|
// default). Throw Node's constant RangeError on a bad offset.
|
|
8133
8258
|
return call("scr_dataview_get", "double (ptr, double, i32, i1 zeroext)", `ptr ${r.name}, double ${args[0].name}, i32 ${DV_GET_KIND[method]}, i1 ${args[1]?.name ?? "false"}`, false, true);
|
|
8259
|
+
case "dvSetUint8":
|
|
8260
|
+
case "dvSetInt8":
|
|
8261
|
+
case "dvSetUint16":
|
|
8262
|
+
case "dvSetInt16":
|
|
8263
|
+
case "dvSetUint32":
|
|
8264
|
+
case "dvSetInt32":
|
|
8265
|
+
case "dvSetFloat32":
|
|
8266
|
+
case "dvSetFloat64":
|
|
8267
|
+
// DataView setters: [offset, value, littleEndian?] — void; throw
|
|
8268
|
+
// the getters' constant RangeError on a bad offset.
|
|
8269
|
+
return call("scr_dataview_set", "void (ptr, double, double, i32, i1 zeroext)", `ptr ${r.name}, double ${args[0].name}, double ${args[1].name}, ` +
|
|
8270
|
+
`i32 ${DV_SET_KIND[method]}, i1 ${args[2]?.name ?? "false"}`, false, true);
|
|
8134
8271
|
default: {
|
|
8135
8272
|
const _exhaustive = method;
|
|
8136
8273
|
void _exhaustive;
|
|
@@ -8511,6 +8648,42 @@ class LlEmitter {
|
|
|
8511
8648
|
if (USES_TIMERS_LIB_FNS.has(e.fn))
|
|
8512
8649
|
this.usesTimers = true;
|
|
8513
8650
|
// The handful with non-generic shapes first.
|
|
8651
|
+
if (e.fn === "error.argTypeThrow") {
|
|
8652
|
+
// Always throws with the runtime-rendered Received tail (the
|
|
8653
|
+
// error.nodeThrow dummy pattern). Borrows all three.
|
|
8654
|
+
const an = this.emitExpr(e.args[0]);
|
|
8655
|
+
const ex = this.emitExpr(e.args[1]);
|
|
8656
|
+
const got = this.emitExpr(e.args[2]);
|
|
8657
|
+
this.declare(`declare void @scr_throw_arg_type(ptr, ptr, ptr)`);
|
|
8658
|
+
B.line(`call void @scr_throw_arg_type(ptr ${an.name}, ptr ${ex.name}, ptr ${got.name})`);
|
|
8659
|
+
const ty = this.llType(e.type);
|
|
8660
|
+
if (ty === "void") {
|
|
8661
|
+
this.emitPendingCheck();
|
|
8662
|
+
return { name: "", type: e.type };
|
|
8663
|
+
}
|
|
8664
|
+
const dummy = ty === "double" ? f64Lit(0) : ty === "i1" ? "false" : "null";
|
|
8665
|
+
const out = this.own({ name: dummy, type: e.type });
|
|
8666
|
+
this.emitPendingCheck();
|
|
8667
|
+
return out;
|
|
8668
|
+
}
|
|
8669
|
+
if (e.fn === "error.nodeThrow") {
|
|
8670
|
+
// The compiler-resolved Node-parity throw (always throws — the
|
|
8671
|
+
// typed dummy is abandoned by the pending check's unwind).
|
|
8672
|
+
const kind = this.emitExpr(e.args[0]);
|
|
8673
|
+
const code = this.emitExpr(e.args[1]);
|
|
8674
|
+
const msg = this.emitExpr(e.args[2]);
|
|
8675
|
+
this.declare(`declare void @scr_throw_node_coded(double, ptr, ptr)`);
|
|
8676
|
+
B.line(`call void @scr_throw_node_coded(double ${kind.name}, ptr ${code.name}, ptr ${msg.name})`);
|
|
8677
|
+
const ty = this.llType(e.type);
|
|
8678
|
+
if (ty === "void") {
|
|
8679
|
+
this.emitPendingCheck();
|
|
8680
|
+
return { name: "", type: e.type };
|
|
8681
|
+
}
|
|
8682
|
+
const dummy = ty === "double" ? f64Lit(0) : ty === "i1" ? "false" : "null";
|
|
8683
|
+
const out = this.own({ name: dummy, type: e.type });
|
|
8684
|
+
this.emitPendingCheck();
|
|
8685
|
+
return out;
|
|
8686
|
+
}
|
|
8514
8687
|
if (e.fn === "global.undefRead") {
|
|
8515
8688
|
// A declare-d const nothing defines: Node's catchable
|
|
8516
8689
|
// ReferenceError at the access (always throws — the typed dummy is
|
|
@@ -9742,6 +9915,28 @@ class LlEmitter {
|
|
|
9742
9915
|
this.emitPendingCheck();
|
|
9743
9916
|
return out;
|
|
9744
9917
|
}
|
|
9918
|
+
if (e.fn === "sp.pipeline") {
|
|
9919
|
+
// pipeline(count, s1..sn) settling a void promise: the stream list
|
|
9920
|
+
// rides the callback form's stack array, no callback slot.
|
|
9921
|
+
const countArg = e.args[0];
|
|
9922
|
+
if (countArg.kind !== "numLit")
|
|
9923
|
+
throw new Error(`llvm emitter bug: ${e.fn} count not a literal`);
|
|
9924
|
+
const n = countArg.value;
|
|
9925
|
+
const args = e.args.map((a) => this.emitExpr(a));
|
|
9926
|
+
const arr = B.slot();
|
|
9927
|
+
B.entryAllocas.push(`${arr} = alloca [${n} x ptr]`);
|
|
9928
|
+
for (let i = 0; i < n; i++) {
|
|
9929
|
+
const p = B.tmp();
|
|
9930
|
+
B.line(`${p} = getelementptr inbounds [${n} x ptr], ptr ${arr}, i64 0, i64 ${i}`);
|
|
9931
|
+
B.line(`store ptr ${args[1 + i].name}, ptr ${p}`);
|
|
9932
|
+
}
|
|
9933
|
+
const t = B.tmp();
|
|
9934
|
+
this.declare(`declare ptr @scr_sp_pipeline(double, ptr)`);
|
|
9935
|
+
B.line(`${t} = call ptr @scr_sp_pipeline(double ${f64Lit(n)}, ptr ${arr})`);
|
|
9936
|
+
const out = this.own({ name: t, type: e.type });
|
|
9937
|
+
this.emitPendingCheck();
|
|
9938
|
+
return out;
|
|
9939
|
+
}
|
|
9745
9940
|
if (e.fn === "stream.pipeline" || e.fn === "stream.pipelineDyn") {
|
|
9746
9941
|
// pipeline(count, s1..sn, cb): the destination answers +1. The
|
|
9747
9942
|
// stream list rides a stack array (the C compound literal).
|