@scriptc/compiler 0.0.5 → 0.0.7
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 +25 -2
- package/dist/backend/emission/emit-exprs.js.map +1 -1
- package/dist/backend/emission/emit-walkers.js +47 -0
- package/dist/backend/emission/emit-walkers.js.map +1 -1
- package/dist/backend/emission/emitter.js +7 -0
- package/dist/backend/emission/emitter.js.map +1 -1
- package/dist/backend/emission/may-throw.js +12 -0
- package/dist/backend/emission/may-throw.js.map +1 -1
- package/dist/backend/llvm/dyn.js +23 -1
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.js +28 -4
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +5 -0
- package/dist/backend/llvm/walkers.js +65 -5
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +6 -0
- package/dist/diagnostics/diagnostic.js +16 -0
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/frontend/lib-contract.d.ts +96 -0
- package/dist/frontend/lib-contract.js +291 -0
- package/dist/frontend/lib-contract.js.map +1 -0
- package/dist/frontend/lowering/lower-assert.js +41 -1
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.js +19 -4
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +7 -0
- package/dist/frontend/lowering/lower-inspect.js +130 -28
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +9 -1
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +1 -1
- package/dist/frontend/lowering/lowerer.js +16 -6
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/types.d.ts +68 -6
- package/dist/frontend/types.js +285 -57
- package/dist/frontend/types.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.js +60 -1
- package/dist/index.js.map +1 -1
- package/dist/ir/nodes.d.ts +27 -4
- package/dist/ir/nodes.js +105 -13
- package/dist/ir/nodes.js.map +1 -1
- package/dist/ir/validate.js +10 -0
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/profile.d.ts +36 -0
- package/dist/library/profile.js +105 -3
- package/dist/library/profile.js.map +1 -1
- package/dist/library/sidecar-validate.d.ts +4 -0
- package/dist/library/sidecar-validate.js +506 -0
- package/dist/library/sidecar-validate.js.map +1 -0
- package/dist/library/sidecar.d.ts +191 -0
- package/dist/library/sidecar.js +568 -0
- package/dist/library/sidecar.js.map +1 -0
- package/dist/library/wyhash.d.ts +12 -0
- package/dist/library/wyhash.js +116 -0
- package/dist/library/wyhash.js.map +1 -0
- package/package.json +2 -2
- package/surface-manifest.json +1 -1
|
@@ -5132,6 +5132,10 @@ export function emitExpr(E, e) {
|
|
|
5132
5132
|
return finish(`scr_assert_eq_dyn(${arg(0)}, ${arg(1)}, ${arg(2)}, ${arg(3)}, ${arg(4)}, ${arg(5)})`);
|
|
5133
5133
|
case "assert.deepResult":
|
|
5134
5134
|
return finish(`scr_assert_deep_result(${arg(0)}, ${arg(1)}, ${arg(2)}, ${arg(3)})`);
|
|
5135
|
+
case "assert.deqEnter":
|
|
5136
|
+
return finish(`scr_assert_deq_enter(${arg(0)}, ${arg(1)})`);
|
|
5137
|
+
case "assert.deqLeave":
|
|
5138
|
+
return finish(`scr_assert_deq_leave()`);
|
|
5135
5139
|
case "assert.sameValue":
|
|
5136
5140
|
return finish(`scr_assert_same_value_f64(${arg(0)}, ${arg(1)})`);
|
|
5137
5141
|
case "assert.match":
|
|
@@ -5213,6 +5217,16 @@ export function emitExpr(E, e) {
|
|
|
5213
5217
|
return finish(`scr_insp_jsval(${arg(0)}, ${arg(1)}, ${arg(2)})`);
|
|
5214
5218
|
case "insp.begin":
|
|
5215
5219
|
return finish(`scr_insp_begin(${arg(0)})`);
|
|
5220
|
+
// Circular references over cycle-capable composites: check/push/
|
|
5221
|
+
// wrap drive Node's seen/circular machinery (scr_inspect.c).
|
|
5222
|
+
case "insp.circCheck":
|
|
5223
|
+
return finish(`scr_insp_circ_check(${arg(0)})`);
|
|
5224
|
+
case "insp.seenPush":
|
|
5225
|
+
return finish(`scr_insp_seen_push(${arg(0)})`);
|
|
5226
|
+
case "insp.refWrap":
|
|
5227
|
+
return finish(`scr_insp_ref_wrap(${arg(0)}, ${arg(1)})`);
|
|
5228
|
+
case "insp.circular":
|
|
5229
|
+
return finish(`scr_insp_circular(${arg(0)})`);
|
|
5216
5230
|
case "insp.entry":
|
|
5217
5231
|
return finish(`scr_insp_entry(${arg(0)}, ${arg(1)})`);
|
|
5218
5232
|
case "insp.key":
|
|
@@ -5381,7 +5395,9 @@ export function emitExpr(E, e) {
|
|
|
5381
5395
|
// Type-directed serialization: the STATIC type picks an emitted
|
|
5382
5396
|
// serializer (interned per type) — no DOM, no runtime dispatch. The
|
|
5383
5397
|
// value temp is BORROWED (released with this statement's frame);
|
|
5384
|
-
// the result string is owned (+1).
|
|
5398
|
+
// the result string is owned (+1). Throws only over CYCLE-CAPABLE
|
|
5399
|
+
// types (recursive records — the circular-structure TypeError) and
|
|
5400
|
+
// dyn roots; everything else keeps the throw-free path.
|
|
5385
5401
|
const v = E.emitExpr(e.value);
|
|
5386
5402
|
// A dyn root: the runtime's DOM walker (scr_dyn_format_j — the %j
|
|
5387
5403
|
// serializer IS JSON.stringify over the DOM: number/string/bool/
|
|
@@ -5395,7 +5411,14 @@ export function emitExpr(E, e) {
|
|
|
5395
5411
|
const buf = `sc_t${E.tempCounter++}`;
|
|
5396
5412
|
E.line(`ScrJsonBuf ${buf}; scr_jb_init(&${buf});${E.srcComment(e.loc)}`);
|
|
5397
5413
|
E.line(`${helper}(&${buf}, ${v.name});`);
|
|
5398
|
-
|
|
5414
|
+
const t = E.newTemp(e.type, `scr_jb_finish(&${buf})`);
|
|
5415
|
+
// A cycle-capable root can throw the circular-structure
|
|
5416
|
+
// TypeError mid-walk: finish still runs (frees the buffer,
|
|
5417
|
+
// the partial string joins the frame and releases on
|
|
5418
|
+
// unwind), then the pending check unwinds.
|
|
5419
|
+
if (E.traceAdapterC(e.value.type) !== null)
|
|
5420
|
+
E.emitPendingCheck();
|
|
5421
|
+
return t;
|
|
5399
5422
|
})();
|
|
5400
5423
|
// A pretty-print form (`stringify(v, null, 2)`): the frontend
|
|
5401
5424
|
// resolved the space to a compile-time indent string (Node's
|