Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 4465767

Browse files
BREAKING CHANGE: Do not allocate buffers for memory.data(i32, i32?)
MemorySegments can now hold null buffers, which signifies that memory is in fact used in the compiled program, for programs that only reserve zero-filled memories. Using null buffers avoids passing zero-filled buffers to Binaryen, which isn't necessary since Wasm memories are initialized with zeroes when a (data ...) segment isn't present. This change is breaking in that modules using imported memories that contain non-zero values in such memory ranges at the time of instantiation will retain those values, as opposed to being filled. This shouldn't affect most users, however. Fixes #2827.
1 parent de174c5 commit 4465767

File tree

160 files changed

+6372
-6608
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

160 files changed

+6372
-6608
lines changed

‎src/builtins.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3322,7 +3322,7 @@ function builtin_memory_data(ctx: BuiltinFunctionContext): ExpressionRef {
33223322
return module.unreachable();
33233323
}
33243324
}
3325-
offset = compiler.addAlignedMemorySegment(newUint8Array(size), align).offset;
3325+
offset = compiler.addZeroedMemorySegment(size, align).offset;
33263326
}
33273327
// FIXME: what if recompiles happen? recompiles are bad.
33283328
compiler.currentType = usizeType;

‎src/compiler.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1894,6 +1894,16 @@ export class Compiler extends DiagnosticEmitter {
18941894
return segment;
18951895
}
18961896

1897+
/** Adds a dummy memory segment. */
1898+
addZeroedMemorySegment(size: i32, alignment: i32 = 16): MemorySegment {
1899+
assert(isPowerOf2(alignment));
1900+
let memoryOffset = i64_align(this.memoryOffset, alignment);
1901+
let segment = new MemorySegment(null, memoryOffset);
1902+
this.memorySegments.push(segment);
1903+
this.memoryOffset = i64_add(memoryOffset, i64_new(size));
1904+
return segment;
1905+
}
1906+
18971907
/** Adds a static memory segment representing a runtime object. */
18981908
addRuntimeMemorySegment(buffer: Uint8Array): MemorySegment {
18991909
let memoryOffset = this.program.computeBlockStart64(this.memoryOffset);
@@ -2043,7 +2053,7 @@ export class Compiler extends DiagnosticEmitter {
20432053
if (!arrayInstance) {
20442054
arrayInstance = assert(this.resolver.resolveClass(this.program.arrayPrototype, [ elementType ]));
20452055
}
2046-
let bufferLength = readI32(bufferSegment.buffer, program.OBJECTInstance.offsetof("rtSize"));
2056+
let bufferLength = readI32(bufferSegment.buffer!, program.OBJECTInstance.offsetof("rtSize"));
20472057
let arrayLength = i32(bufferLength / elementType.byteSize);
20482058
let bufferAddress = i64_add(bufferSegment.offset, i64_new(program.totalOverhead));
20492059
let buf = arrayInstance.createBuffer();
@@ -8060,7 +8070,7 @@ export class Compiler extends DiagnosticEmitter {
80608070
}
80618071
let arrayInstance = assert(this.resolver.resolveClass(this.program.staticArrayPrototype, [ stringType ]));
80628072
let segment = this.addStaticBuffer(stringType, values, arrayInstance.id);
8063-
this.program.OBJECTInstance.writeField("gcInfo", 3, segment.buffer, 0); // use transparent gcinfo
8073+
this.program.OBJECTInstance.writeField("gcInfo", 3, segment.buffer!, 0); // use transparent gcinfo
80648074
let offset = i64_add(segment.offset, i64_new(this.program.totalOverhead));
80658075
let joinInstance = assert(arrayInstance.getMethod("join"));
80668076
let indexedSetInstance = assert(arrayInstance.lookupOverload(OperatorKind.IndexedSet, true));
@@ -8151,7 +8161,7 @@ export class Compiler extends DiagnosticEmitter {
81518161
);
81528162
arrayInstance.writeField("raw",
81538163
i64_add(rawHeaderSegment.offset, i64_new(this.program.totalOverhead)),
8154-
arraySegment.buffer
8164+
arraySegment.buffer!
81558165
);
81568166
} else {
81578167
arraySegment = this.addStaticArrayHeader(stringType,

‎src/module.ts

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1366,7 +1366,7 @@ export const enum ExpressionRunnerFlags {
13661366
export class MemorySegment {
13671367
constructor(
13681368
/** Segment data. */
1369-
public buffer: Uint8Array,
1369+
public buffer: Uint8Array|null,
13701370
/** Segment offset. */
13711371
public offset: i64
13721372
) {}
@@ -2409,22 +2409,31 @@ export class Module {
24092409
let cStr1 = this.allocStringCached(exportName);
24102410
let cStr2 = this.allocStringCached(name);
24112411
let k = segments.length;
2412-
let segs = new Array<usize>(k);
2412+
let empty = 0;
2413+
2414+
let segs = new Array<usize>();
24132415
let psvs = new Uint8Array(k);
2414-
let offs = new Array<ExpressionRef>(k);
2415-
let sizs = new Array<Index>(k);
2416-
for (let i = 0; i < k; ++i) {
2416+
let offs = new Array<ExpressionRef>();
2417+
let sizs = new Array<Index>();
2418+
for (let i = 0; i < k; i++) {
24172419
let segment = unchecked(segments[i]);
24182420
let buffer = segment.buffer;
2421+
if (!buffer) {
2422+
empty++;
2423+
continue;
2424+
}
2425+
24192426
let offset = segment.offset;
2420-
unchecked(segs[i]=allocU8Array(buffer));
2421-
unchecked(psvs[i] = 0); // no passive segments currently
2422-
unchecked(offs[i]=target == Target.Wasm64
2427+
segs.push(allocU8Array(buffer));
2428+
psvs[i-empty] = 0; // no passive segments currently
2429+
offs.push(target == Target.Wasm64
24232430
? this.i64(i64_low(offset), i64_high(offset))
24242431
: this.i32(i64_low(offset))
24252432
);
2426-
unchecked(sizs[i]=buffer.length);
2433+
sizs.push(buffer.length);
24272434
}
2435+
2436+
k -= empty;
24282437
let cArr1 = allocPtrArray(segs);
24292438
let cArr2 = allocU8Array(psvs);
24302439
let cArr3 = allocPtrArray(offs);

‎tests/compiler/assignment-chain.debug.wat

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,11 @@
3535
(memory 0ドル 1)
3636
(data 0ドル (i32.const 12) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円(00円00円00円A00円l00円l00円o00円c00円a00円t00円i00円o00円n00円 00円t00円o00円o00円 00円l00円a00円r00円g00円e00円00円00円00円00円")
3737
(data 1ドル (i32.const 76) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円 00円00円00円~00円l00円i00円b00円/00円r00円t00円/00円i00円t00円c00円m00円s00円.00円t00円s00円00円00円00円00円00円00円00円00円00円00円00円00円")
38-
(data 2ドル (i32.const 144) "00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円")
39-
(data 3ドル (i32.const 176) "00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円")
40-
(data 4ドル (i32.const 204) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円$00円00円00円I00円n00円d00円e00円x00円 00円o00円u00円t00円 00円o00円f00円 00円r00円a00円n00円g00円e00円00円00円00円00円00円00円00円00円")
41-
(data 5ドル (i32.const 268) ",00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円14円00円00円00円~00円l00円i00円b00円/00円r00円t00円.00円t00円s00円00円00円00円00円00円00円00円00円")
42-
(data 6ドル (i32.const 320) "00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円")
43-
(data 7ドル (i32.const 348) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円1円e00円00円00円~00円l00円i00円b00円/00円r00円t00円/00円t00円l00円s00円f00円.00円t00円s00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円")
44-
(data 8ドル (i32.const 412) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円&00円00円00円a00円s00円s00円i00円g00円n00円m00円e00円n00円t00円-00円c00円h00円a00円i00円n00円.00円t00円s00円00円00円00円00円00円00円")
45-
(data 9ドル (i32.const 480) "06円00円00円00円 00円00円00円 00円00円00円 00円00円00円00円00円00円00円 00円00円00円 00円00円00円")
38+
(data 2ドル (i32.const 204) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円$00円00円00円I00円n00円d00円e00円x00円 00円o00円u00円t00円 00円o00円f00円 00円r00円a00円n00円g00円e00円00円00円00円00円00円00円00円00円")
39+
(data 3ドル (i32.const 268) ",00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円14円00円00円00円~00円l00円i00円b00円/00円r00円t00円.00円t00円s00円00円00円00円00円00円00円00円00円")
40+
(data 4ドル (i32.const 348) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円1円e00円00円00円~00円l00円i00円b00円/00円r00円t00円/00円t00円l00円s00円f00円.00円t00円s00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円")
41+
(data 5ドル (i32.const 412) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円&00円00円00円a00円s00円s00円i00円g00円n00円m00円e00円n00円t00円-00円c00円h00円a00円i00円n00円.00円t00円s00円00円00円00円00円00円00円")
42+
(data 6ドル (i32.const 480) "06円00円00円00円 00円00円00円 00円00円00円 00円00円00円00円00円00円00円 00円00円00円 00円00円00円")
4643
(table 0ドル 1 1 funcref)
4744
(elem 0ドル (i32.const 1))
4845
(export "normal_assignment_chain" (func $assignment-chain/normal_assignment_chain))

‎tests/compiler/assignment-chain.release.wat

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@
2525
(data 0ドル.1 (i32.const 1048) "02円00円00円00円(00円00円00円A00円l00円l00円o00円c00円a00円t00円i00円o00円n00円 00円t00円o00円o00円 00円l00円a00円r00円g00円e")
2626
(data 1ドル (i32.const 1100) "<")
2727
(data 1ドル.1 (i32.const 1112) "02円00円00円00円 00円00円00円~00円l00円i00円b00円/00円r00円t00円/00円i00円t00円c00円m00円s00円.00円t00円s")
28-
(data $4 (i32.const 1228) "<")
29-
(data $4.1 (i32.const 1240) "02円00円00円00円$00円00円00円I00円n00円d00円e00円x00円 00円o00円u00円t00円 00円o00円f00円 00円r00円a00円n00円g00円e")
30-
(data $5 (i32.const 1292) ",")
31-
(data $5.1 (i32.const 1304) "02円00円00円00円14円00円00円00円~00円l00円i00円b00円/00円r00円t00円.00円t00円s")
32-
(data $7 (i32.const 1372) "<")
33-
(data $7.1 (i32.const 1384) "02円00円00円00円1円e00円00円00円~00円l00円i00円b00円/00円r00円t00円/00円t00円l00円s00円f00円.00円t00円s")
34-
(data $8 (i32.const 1436) "<")
35-
(data $8.1 (i32.const 1448) "02円00円00円00円&00円00円00円a00円s00円s00円i00円g00円n00円m00円e00円n00円t00円-00円c00円h00円a00円i00円n00円.00円t00円s")
36-
(data $9 (i32.const 1504) "06円00円00円00円 00円00円00円 00円00円00円 00円00円00円00円00円00円00円 00円00円00円 ")
28+
(data $2 (i32.const 1228) "<")
29+
(data $2.1 (i32.const 1240) "02円00円00円00円$00円00円00円I00円n00円d00円e00円x00円 00円o00円u00円t00円 00円o00円f00円 00円r00円a00円n00円g00円e")
30+
(data $3 (i32.const 1292) ",")
31+
(data $3.1 (i32.const 1304) "02円00円00円00円14円00円00円00円~00円l00円i00円b00円/00円r00円t00円.00円t00円s")
32+
(data $4 (i32.const 1372) "<")
33+
(data $4.1 (i32.const 1384) "02円00円00円00円1円e00円00円00円~00円l00円i00円b00円/00円r00円t00円/00円t00円l00円s00円f00円.00円t00円s")
34+
(data $5 (i32.const 1436) "<")
35+
(data $5.1 (i32.const 1448) "02円00円00円00円&00円00円00円a00円s00円s00円i00円g00円n00円m00円e00円n00円t00円-00円c00円h00円a00円i00円n00円.00円t00円s")
36+
(data $6 (i32.const 1504) "06円00円00円00円 00円00円00円 00円00円00円 00円00円00円00円00円00円00円 00円00円00円 ")
3737
(export "normal_assignment_chain" (func $assignment-chain/normal_assignment_chain))
3838
(export "setter_assignment_chain" (func $assignment-chain/setter_assignment_chain))
3939
(export "static_setter_assignment_chain" (func $assignment-chain/static_setter_assignment_chain))

‎tests/compiler/bindings/esm.debug.wat

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -70,20 +70,17 @@
7070
(data 6ドル (i32.const 252) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円&00円00円00円~00円l00円i00円b00円/00円a00円r00円r00円a00円y00円b00円u00円f00円f00円e00円r00円.00円t00円s00円00円00円00円00円00円00円")
7171
(data 7ドル (i32.const 316) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円(00円00円00円A00円l00円l00円o00円c00円a00円t00円i00円o00円n00円 00円t00円o00円o00円 00円l00円a00円r00円g00円e00円00円00円00円00円")
7272
(data 8ドル (i32.const 380) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円 00円00円00円~00円l00円i00円b00円/00円r00円t00円/00円i00円t00円c00円m00円s00円.00円t00円s00円00円00円00円00円00円00円00円00円00円00円00円00円")
73-
(data 9ドル (i32.const 448) "00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円")
74-
(data 10ドル (i32.const 480) "00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円")
75-
(data 11ドル (i32.const 508) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円$00円00円00円I00円n00円d00円e00円x00円 00円o00円u00円t00円 00円o00円f00円 00円r00円a00円n00円g00円e00円00円00円00円00円00円00円00円00円")
76-
(data 12ドル (i32.const 572) ",00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円14円00円00円00円~00円l00円i00円b00円/00円r00円t00円.00円t00円s00円00円00円00円00円00円00円00円00円")
77-
(data 13ドル (i32.const 624) "00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円")
78-
(data 14ドル (i32.const 652) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円1円e00円00円00円~00円l00円i00円b00円/00円r00円t00円/00円t00円l00円s00円f00円.00円t00円s00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円")
79-
(data 15ドル (i32.const 716) "1円c00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円")
80-
(data 16ドル (i32.const 748) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円$00円00円00円~00円l00円i00円b00円/00円t00円y00円p00円e00円d00円a00円r00円r00円a00円y00円.00円t00円s00円00円00円00円00円00円00円00円00円")
81-
(data 17ドル (i32.const 812) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円&00円00円00円~00円l00円i00円b00円/00円s00円t00円a00円t00円i00円c00円a00円r00円r00円a00円y00円.00円t00円s00円00円00円00円00円00円00円")
82-
(data 18ドル (i32.const 876) ",00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円1円a00円00円00円~00円l00円i00円b00円/00円a00円r00円r00円a00円y00円.00円t00円s00円00円00円")
83-
(data 19ドル (i32.const 924) "|00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円^00円00円00円E00円l00円e00円m00円e00円n00円t00円 00円t00円y00円p00円e00円 00円m00円u00円s00円t00円 00円b00円e00円 00円n00円u00円l00円l00円a00円b00円l00円e00円 00円i00円f00円 00円a00円r00円r00円a00円y00円 00円i00円s00円 00円h00円o00円l00円e00円y00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円")
84-
(data 20ドル (i32.const 1052) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円*00円00円00円O00円b00円j00円e00円c00円t00円 00円a00円l00円r00円e00円a00円d00円y00円 00円p00円i00円n00円n00円e00円d00円00円00円")
85-
(data 21ドル (i32.const 1116) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円(00円00円00円O00円b00円j00円e00円c00円t00円 00円i00円s00円 00円n00円o00円t00円 00円p00円i00円n00円n00円e00円d00円00円00円00円00円")
86-
(data 22ドル (i32.const 1184) "10円00円00円00円 00円00円00円 00円00円00円 00円00円00円00円00円00円00円00円00円00円00円81円08円00円00円01円19円00円00円01円02円00円00円$\t00円00円\a400円00円00円$\n00円00円02円\t00円00円02円A00円00円00円00円00円00円A00円00円00円 00円00円00円")
73+
(data 9ドル (i32.const 508) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円$00円00円00円I00円n00円d00円e00円x00円 00円o00円u00円t00円 00円o00円f00円 00円r00円a00円n00円g00円e00円00円00円00円00円00円00円00円00円")
74+
(data 10ドル (i32.const 572) ",00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円14円00円00円00円~00円l00円i00円b00円/00円r00円t00円.00円t00円s00円00円00円00円00円00円00円00円00円")
75+
(data 11ドル (i32.const 652) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円1円e00円00円00円~00円l00円i00円b00円/00円r00円t00円/00円t00円l00円s00円f00円.00円t00円s00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円")
76+
(data 12ドル (i32.const 716) "1円c00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円")
77+
(data 13ドル (i32.const 748) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円$00円00円00円~00円l00円i00円b00円/00円t00円y00円p00円e00円d00円a00円r00円r00円a00円y00円.00円t00円s00円00円00円00円00円00円00円00円00円")
78+
(data 14ドル (i32.const 812) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円&00円00円00円~00円l00円i00円b00円/00円s00円t00円a00円t00円i00円c00円a00円r00円r00円a00円y00円.00円t00円s00円00円00円00円00円00円00円")
79+
(data 15ドル (i32.const 876) ",00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円1円a00円00円00円~00円l00円i00円b00円/00円a00円r00円r00円a00円y00円.00円t00円s00円00円00円")
80+
(data 16ドル (i32.const 924) "|00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円^00円00円00円E00円l00円e00円m00円e00円n00円t00円 00円t00円y00円p00円e00円 00円m00円u00円s00円t00円 00円b00円e00円 00円n00円u00円l00円l00円a00円b00円l00円e00円 00円i00円f00円 00円a00円r00円r00円a00円y00円 00円i00円s00円 00円h00円o00円l00円e00円y00円00円00円00円00円00円00円00円00円00円00円00円00円00円00円")
81+
(data 17ドル (i32.const 1052) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円*00円00円00円O00円b00円j00円e00円c00円t00円 00円a00円l00円r00円e00円a00円d00円y00円 00円p00円i00円n00円n00円e00円d00円00円00円")
82+
(data 18ドル (i32.const 1116) "<00円00円00円00円00円00円00円00円00円00円00円02円00円00円00円(00円00円00円O00円b00円j00円e00円c00円t00円 00円i00円s00円 00円n00円o00円t00円 00円p00円i00円n00円n00円e00円d00円00円00円00円00円")
83+
(data 19ドル (i32.const 1184) "10円00円00円00円 00円00円00円 00円00円00円 00円00円00円00円00円00円00円00円00円00円00円81円08円00円00円01円19円00円00円01円02円00円00円$\t00円00円\a400円00円00円$\n00円00円02円\t00円00円02円A00円00円00円00円00円00円A00円00円00円 00円00円00円")
8784
(table 0ドル 2 2 funcref)
8885
(elem 0ドル (i32.const 1) $start:bindings/esm~anonymous|0)
8986
(export "plainGlobal" (global $bindings/esm/plainGlobal))

‎tests/compiler/bindings/esm.release.wat

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -62,28 +62,28 @@
6262
(data 7ドル.1 (i32.const 1352) "02円00円00円00円(00円00円00円A00円l00円l00円o00円c00円a00円t00円i00円o00円n00円 00円t00円o00円o00円 00円l00円a00円r00円g00円e")
6363
(data 8ドル (i32.const 1404) "<")
6464
(data 8ドル.1 (i32.const 1416) "02円00円00円00円 00円00円00円~00円l00円i00円b00円/00円r00円t00円/00円i00円t00円c00円m00円s00円.00円t00円s")
65-
(data $11 (i32.const 1532) "<")
66-
(data $11.1 (i32.const 1544) "02円00円00円00円$00円00円00円I00円n00円d00円e00円x00円 00円o00円u00円t00円 00円o00円f00円 00円r00円a00円n00円g00円e")
67-
(data $12 (i32.const 1596) ",")
68-
(data $12.1 (i32.const 1608) "02円00円00円00円14円00円00円00円~00円l00円i00円b00円/00円r00円t00円.00円t00円s")
69-
(data $14 (i32.const 1676) "<")
70-
(data $14.1 (i32.const 1688) "02円00円00円00円1円e00円00円00円~00円l00円i00円b00円/00円r00円t00円/00円t00円l00円s00円f00円.00円t00円s")
71-
(data $15 (i32.const 1740) "1円c")
72-
(data $15.1 (i32.const 1752) "02円")
73-
(data $16 (i32.const 1772) "<")
74-
(data $16.1 (i32.const 1784) "02円00円00円00円$00円00円00円~00円l00円i00円b00円/00円t00円y00円p00円e00円d00円a00円r00円r00円a00円y00円.00円t00円s")
75-
(data $17 (i32.const 1836) "<")
76-
(data $17.1 (i32.const 1848) "02円00円00円00円&00円00円00円~00円l00円i00円b00円/00円s00円t00円a00円t00円i00円c00円a00円r00円r00円a00円y00円.00円t00円s")
77-
(data $18 (i32.const 1900) ",")
78-
(data $18.1 (i32.const 1912) "02円00円00円00円1円a00円00円00円~00円l00円i00円b00円/00円a00円r00円r00円a00円y00円.00円t00円s")
79-
(data $19 (i32.const 1948) "|")
80-
(data $19.1 (i32.const 1960) "02円00円00円00円^00円00円00円E00円l00円e00円m00円e00円n00円t00円 00円t00円y00円p00円e00円 00円m00円u00円s00円t00円 00円b00円e00円 00円n00円u00円l00円l00円a00円b00円l00円e00円 00円i00円f00円 00円a00円r00円r00円a00円y00円 00円i00円s00円 00円h00円o00円l00円e00円y")
81-
(data $20 (i32.const 2076) "<")
82-
(data $20.1 (i32.const 2088) "02円00円00円00円*00円00円00円O00円b00円j00円e00円c00円t00円 00円a00円l00円r00円e00円a00円d00円y00円 00円p00円i00円n00円n00円e00円d")
83-
(data $21 (i32.const 2140) "<")
84-
(data $21.1 (i32.const 2152) "02円00円00円00円(00円00円00円O00円b00円j00円e00円c00円t00円 00円i00円s00円 00円n00円o00円t00円 00円p00円i00円n00円n00円e00円d")
85-
(data $22 (i32.const 2208) "10円00円00円00円 00円00円00円 00円00円00円 ")
86-
(data $22.1 (i32.const 2232) "81円08円00円00円01円19円00円00円01円02円00円00円$\t00円00円\a400円00円00円$\n00円00円02円\t00円00円02円A00円00円00円00円00円00円A00円00円00円 ")
65+
(data $9 (i32.const 1532) "<")
66+
(data $9.1 (i32.const 1544) "02円00円00円00円$00円00円00円I00円n00円d00円e00円x00円 00円o00円u00円t00円 00円o00円f00円 00円r00円a00円n00円g00円e")
67+
(data $10 (i32.const 1596) ",")
68+
(data $10.1 (i32.const 1608) "02円00円00円00円14円00円00円00円~00円l00円i00円b00円/00円r00円t00円.00円t00円s")
69+
(data $11 (i32.const 1676) "<")
70+
(data $11.1 (i32.const 1688) "02円00円00円00円1円e00円00円00円~00円l00円i00円b00円/00円r00円t00円/00円t00円l00円s00円f00円.00円t00円s")
71+
(data $12 (i32.const 1740) "1円c")
72+
(data $12.1 (i32.const 1752) "02円")
73+
(data $13 (i32.const 1772) "<")
74+
(data $13.1 (i32.const 1784) "02円00円00円00円$00円00円00円~00円l00円i00円b00円/00円t00円y00円p00円e00円d00円a00円r00円r00円a00円y00円.00円t00円s")
75+
(data $14 (i32.const 1836) "<")
76+
(data $14.1 (i32.const 1848) "02円00円00円00円&00円00円00円~00円l00円i00円b00円/00円s00円t00円a00円t00円i00円c00円a00円r00円r00円a00円y00円.00円t00円s")
77+
(data $15 (i32.const 1900) ",")
78+
(data $15.1 (i32.const 1912) "02円00円00円00円1円a00円00円00円~00円l00円i00円b00円/00円a00円r00円r00円a00円y00円.00円t00円s")
79+
(data $16 (i32.const 1948) "|")
80+
(data $16.1 (i32.const 1960) "02円00円00円00円^00円00円00円E00円l00円e00円m00円e00円n00円t00円 00円t00円y00円p00円e00円 00円m00円u00円s00円t00円 00円b00円e00円 00円n00円u00円l00円l00円a00円b00円l00円e00円 00円i00円f00円 00円a00円r00円r00円a00円y00円 00円i00円s00円 00円h00円o00円l00円e00円y")
81+
(data $17 (i32.const 2076) "<")
82+
(data $17.1 (i32.const 2088) "02円00円00円00円*00円00円00円O00円b00円j00円e00円c00円t00円 00円a00円l00円r00円e00円a00円d00円y00円 00円p00円i00円n00円n00円e00円d")
83+
(data $18 (i32.const 2140) "<")
84+
(data $18.1 (i32.const 2152) "02円00円00円00円(00円00円00円O00円b00円j00円e00円c00円t00円 00円i00円s00円 00円n00円o00円t00円 00円p00円i00円n00円n00円e00円d")
85+
(data $19 (i32.const 2208) "10円00円00円00円 00円00円00円 00円00円00円 ")
86+
(data $19.1 (i32.const 2232) "81円08円00円00円01円19円00円00円01円02円00円00円$\t00円00円\a400円00円00円$\n00円00円02円\t00円00円02円A00円00円00円00円00円00円A00円00円00円 ")
8787
(export "plainGlobal" (global $bindings/esm/plainGlobal))
8888
(export "plainMutableGlobal" (global $bindings/esm/plainMutableGlobal))
8989
(export "stringGlobal" (global $bindings/esm/stringGlobal))

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /