@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.
@@ -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
- /** `base + mark`, freshly built. Callers must not share the node: Binaryen
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
- /** `base + mark + extra`, freshly built. Callers must not share the node:
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>, base: number, markLocal: Local, baseOffset: number, stmts: ExpressionRef[]): void;
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>, base: number, markLocal: Local, baseOffset: number, stmts: ExpressionRef[]): void;
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
  *