@yabgu_gm/tensionscript 0.11.3 → 0.11.4
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/asc.generated.d.ts +11 -5
- package/dist/asc.js +1 -1
- package/dist/asc.js.map +1 -1
- package/dist/assemblyscript.generated.d.ts +11 -5
- package/dist/assemblyscript.js +117 -117
- package/dist/assemblyscript.js.map +3 -3
- package/dist/importmap.json +2 -2
- package/dist/web.js +3 -3
- package/package.json +1 -1
|
@@ -6215,8 +6215,14 @@ declare module "types:tensionscript/src/compiler" {
|
|
|
6215
6215
|
/** The bytes one call-temp slot needs for `type`, rounded up to the region's
|
|
6216
6216
|
* 16-byte alignment so every slot stays aligned for any field. */
|
|
6217
6217
|
private sretSizeOf;
|
|
6218
|
-
/**
|
|
6219
|
-
* passes assume a single parent per expression.
|
|
6218
|
+
/** The call-temp slot address: the mark alone, freshly built so callers never
|
|
6219
|
+
* share a node (Binaryen's passes assume a single parent per expression).
|
|
6220
|
+
*
|
|
6221
|
+
* **Not `base + mark`.** `ensureSretStack` initialises the bump global to
|
|
6222
|
+
* `base`, so a mark saved from it is already absolute — which is also what
|
|
6223
|
+
* `makeSretGuard` assumes when it tests `mark + size > base + SIZE`. Adding
|
|
6224
|
+
* `base` a second time yields `2 * base + ...`; measured, that produced a
|
|
6225
|
+
* fault at exactly `0x1002a60 = 2 * 0x801418`. */
|
|
6220
6226
|
private makeSretAddress;
|
|
6221
6227
|
/** A load of one field of an `@inline struct` at a slot address. */
|
|
6222
6228
|
private makeSretFieldLoad;
|
|
@@ -6236,7 +6242,7 @@ declare module "types:tensionscript/src/compiler" {
|
|
|
6236
6242
|
* the caller's later mutation of the struct cannot be observed by the body.
|
|
6237
6243
|
*/
|
|
6238
6244
|
private emitExportByValPrologue;
|
|
6239
|
-
/** `
|
|
6245
|
+
/** `mark + extra`, freshly built. Callers must not share the node:
|
|
6240
6246
|
* Binaryen's passes assume a single parent per expression. */
|
|
6241
6247
|
private makeSretAddressPlus;
|
|
6242
6248
|
/**
|
|
@@ -6247,7 +6253,7 @@ declare module "types:tensionscript/src/compiler" {
|
|
|
6247
6253
|
* descended into. Keeping one recursion is what makes a nested value cross a
|
|
6248
6254
|
* host boundary at the layout the C side expects.
|
|
6249
6255
|
*/
|
|
6250
|
-
emitTempArgumentLeaves(type: Type, fieldLocals: Map<string, Local>,
|
|
6256
|
+
emitTempArgumentLeaves(type: Type, fieldLocals: Map<string, Local>, markLocal: Local, baseOffset: number, stmts: ExpressionRef[]): void;
|
|
6251
6257
|
/**
|
|
6252
6258
|
* Materialises one `@inline struct` argument of an `@external` call on the
|
|
6253
6259
|
* static call-temp stack and returns the address to pass.
|
|
@@ -6382,7 +6388,7 @@ declare module "types:tensionscript/src/compiler" {
|
|
|
6382
6388
|
* back into the leaf locals a read path walks. A fresh slot address per load,
|
|
6383
6389
|
* for the same one-parent-per-node reason.
|
|
6384
6390
|
*/
|
|
6385
|
-
emitSretLoadsInto(type: Type, fieldLocals: Map<string, Local>,
|
|
6391
|
+
emitSretLoadsInto(type: Type, fieldLocals: Map<string, Local>, markLocal: Local, baseOffset: number, stmts: ExpressionRef[]): void;
|
|
6386
6392
|
/**
|
|
6387
6393
|
* The `fieldLocals` tree behind an SROA-tracked expression, or `null`.
|
|
6388
6394
|
*
|