Bug 1592783 - Update in-tree and spec-tests for trapping change. r=lth

This commit relies on a patch to the spec interpreter/tests to also make the
trapping change there [1] [2].

[1] https://github.com/eqrion/wasm-spec/tree/spidermonkey-tree-tests
[2] b467c3e4e3

Differential Revision: https://phabricator.services.mozilla.com/D51756

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Ryan Hunt 2019-11-05 15:27:34 +00:00
parent dfd7ad632e
commit 4d03d80f48
16 changed files with 9223 additions and 9877 deletions

View File

@ -55,6 +55,14 @@ function testTableFill(tbl_type, val_type, obj) {
// Now a bunch of tests involving only table 1.
// Partly outside the table
assertErrorMessage(() => ins.exports.fill1(8, obj[5], 3),
RangeError, /table index out of bounds/);
assertEq(ins.exports.get1(7), null);
assertEq(ins.exports.get1(8), null);
assertEq(ins.exports.get1(9), null);
// Within the table
assertEq(ins.exports.fill1(2, obj[0], 3), undefined);
assertEq(ins.exports.get1(1), null);
@ -91,14 +99,6 @@ function testTableFill(tbl_type, val_type, obj) {
assertEq(ins.exports.fill1(10, obj[4], 0), undefined);
assertEq(ins.exports.get1(9), null);
// Partly outside the table
assertErrorMessage(() => ins.exports.fill1(8, obj[5], 3),
RangeError, /table index out of bounds/);
assertEq(ins.exports.get1(7), null);
assertEq(ins.exports.get1(8), obj[5]);
assertEq(ins.exports.get1(9), obj[5]);
// Boundary tests on table 1: at the edge of the table.
// Length-zero fill1 at the edge of the table must succeed

View File

@ -589,7 +589,7 @@ assertEq(mem8[npages*64*1024-1], 2);
assertEq(tbl.get(0), i.exports.f);
assertEq(tbl.get(1), i.exports.g);
// Element segment applies partially and prevents subsequent elem segment and
// Element segment doesn't apply and prevents subsequent elem segment and
// data segment from being applied.
if (wasmBulkMemSupported()) {
@ -609,13 +609,13 @@ if (wasmBulkMemSupported()) {
LinkError,
/elem segment does not fit/);
assertEq(tbl.get(0), null);
assertEq(typeof tbl.get(1), "function");
assertEq(typeof tbl.get(2), "function");
assertEq(tbl.get(1), null);
assertEq(tbl.get(2), null);
let v = new Uint8Array(mem.buffer);
assertEq(v[0], 0);
}
// Data segment applies partially and prevents subsequent data segment from
// Data segment doesn't apply and prevents subsequent data segment from
// being applied.
if (wasmBulkMemSupported()) {
@ -630,8 +630,8 @@ if (wasmBulkMemSupported()) {
LinkError,
/data segment does not fit/);
let v = new Uint8Array(mem.buffer);
assertEq(v[65534], 1);
assertEq(v[65535], 2);
assertEq(v[65534], 0);
assertEq(v[65535], 0);
assertEq(v[0], 0);
}

View File

@ -13,7 +13,7 @@ if (conf.debug &&
const PAGESIZE = 65536;
// memory.fill: out of bounds, but should perform a partial fill.
// memory.fill: out of bounds, should not perform writes
//
// Arithmetic overflow of memory offset + len should not affect the behavior, we
// should still fill up to the limit.
@ -24,7 +24,8 @@ function mem_fill(min, max, shared, backup, write=backup*2) {
(memory (export "mem") ${min} ${max} ${shared})
(func (export "run") (param $offs i32) (param $val i32) (param $len i32)
(memory.fill (local.get $offs) (local.get $val) (local.get $len))))`);
// A fill past the end should throw *and* have filled all the way up to the end
// A fill past the end should throw *and* not have filled all the way up to
// the end
let offs = min*PAGESIZE - backup;
let val = 37;
assertErrorMessage(() => ins.exports.run(offs, val, write),
@ -32,7 +33,7 @@ function mem_fill(min, max, shared, backup, write=backup*2) {
/index out of bounds/);
let v = new Uint8Array(ins.exports.mem.buffer);
for (let i=0; i < backup; i++)
assertEq(v[offs+i], val);
assertEq(v[offs+i], 0);
for (let i=0; i < offs; i++)
assertEq(v[i], 0);
}
@ -45,8 +46,8 @@ mem_fill(2, 4, "shared", 256);
mem_fill(2, 4, "shared", 257);
mem_fill(2, 4, "shared", 257, 0xFFFFFFFF); // offs + len overflows 32-bit
// memory.init: out of bounds of the memory or the segment, but should perform
// the operation up to the appropriate bound.
// memory.init: out of bounds of the memory or the segment, and should not perform
// the operation at all.
//
// Arithmetic overflow of memoffset + len or of bufferoffset + len should not
// affect the behavior.
@ -61,22 +62,18 @@ function mem_init(min, max, shared, backup, write) {
(data "\\42\\42\\42\\42\\42\\42\\42\\42\\42\\42\\42\\42\\42\\42\\42\\42")
(func (export "run") (param $offs i32) (param $len i32)
(memory.init 0 (local.get $offs) (i32.const 0) (local.get $len))))`);
// A fill writing past the end of the memory should throw *and* have filled
// A fill writing past the end of the memory should throw *and* not have filled
// all the way up to the end.
//
// A fill reading past the end of the segment should throw *and* have filled
// A fill reading past the end of the segment should throw *and* not have filled
// memory with as much data as was available.
let offs = min*PAGESIZE - backup;
assertErrorMessage(() => ins.exports.run(offs, write),
WebAssembly.RuntimeError,
/index out of bounds/);
let v = new Uint8Array(ins.exports.mem.buffer);
for (let i=0; i < Math.min(backup, mem_init_len); i++)
assertEq(v[offs + i], 0x42);
for (let i=Math.min(backup, mem_init_len); i < backup; i++)
for (let i=0; i < min; i++)
assertEq(v[offs + i], 0);
for (let i=0; i < offs; i++)
assertEq(v[i], 0);
}
// We exceed the bounds of the memory but not of the data segment
@ -97,8 +94,8 @@ mem_init(1, "", "", Math.floor(mem_init_len/2), 0xFFFFFF00);
// We arithmetically overflow the segment limit but not the memory limit
mem_init(1, "", "", PAGESIZE, 0xFFFFFFFC);
// memory.copy: out of bounds of the memory for the source or target, but should
// perform the operation up to the appropriate bound. Major cases:
// memory.copy: out of bounds of the memory for the source or target, and should
// not perform at all. Major cases:
//
// - non-overlapping regions
// - overlapping regions with src >= dest
@ -125,9 +122,7 @@ function mem_copy(min, max, shared, srcOffs, targetOffs, len) {
let copyDown = srcOffs < targetOffs;
let targetAvail = v.length - targetOffs;
let srcAvail = v.length - srcOffs;
let targetLim = targetOffs + Math.min(len, targetAvail, srcAvail);
let srcLim = srcOffs + Math.min(len, targetAvail, srcAvail);
let immediateOOB = copyDown && (srcOffs + len > v.length || targetOffs + len > v.length);
for (let i=srcOffs, j=0; i < srcLim; i++, j++)
v[i] = j;
@ -135,38 +130,10 @@ function mem_copy(min, max, shared, srcOffs, targetOffs, len) {
WebAssembly.RuntimeError,
/index out of bounds/);
// :lth wants lambda-lifting and closure optimizations
var t = 0;
var s = 0;
var i = 0;
function checkTarget() {
if (i >= targetOffs && i < targetLim) {
assertEq(v[i], (t++) & 0xFF);
if (i >= srcOffs && i < srcLim)
s++;
return true;
}
return false;
}
function checkSource() {
for (var i=0, s=0; i < v.length; i++ ) {
if (i >= srcOffs && i < srcLim) {
assertEq(v[i], (s++) & 0xFF);
if (i >= targetOffs && i < targetLim)
t++;
return true;
}
return false;
}
for (i=0; i < v.length; i++ ) {
if (immediateOOB) {
if (checkSource())
continue;
} else {
if (copyDown && (checkSource() || checkTarget()))
continue;
if (!copyDown && (checkTarget() || checkSource()))
continue;
continue;
}
assertEq(v[i], 0);
}

View File

@ -2,8 +2,8 @@
// Sundry test cases for the "partial write" bounds checking semantics.
// table.init: out of bounds of the table or the element segment, but should
// perform the operation up to the appropriate bound.
// table.init: out of bounds of the table or the element segment, and should
// not perform the operation at all.
//
// Arithmetic overflow of tableoffset + len or of segmentoffset + len should not
// affect the behavior.
@ -44,13 +44,9 @@ function tbl_init(min, max, backup, write, segoffs=0) {
WebAssembly.RuntimeError,
/index out of bounds/);
let tbl = ins.exports.tbl;
for (let i=0; i < Math.min(backup, tbl_init_len - segoffs); i++) {
assertEq(tbl.get(offs + i), ins.exports["f" + (i + segoffs)]);
}
for (let i=Math.min(backup, tbl_init_len); i < backup; i++)
assertEq(tbl.get(offs + i), null);
for (let i=0; i < offs; i++)
for (let i=0; i < min; i++) {
assertEq(tbl.get(i), null);
}
}
// We exceed the bounds of the table but not of the element segment
@ -67,8 +63,8 @@ tbl_init(tbl_init_len*4, tbl_init_len*4, tbl_init_len, 0xFFFFFFF0);
// We arithmetically overflow the segment limit but not the table limit
tbl_init(tbl_init_len, tbl_init_len, tbl_init_len, 0xFFFFFFFC, Math.floor(tbl_init_len/2));
// table.copy: out of bounds of the table for the source or target, but should
// perform the operation up to the appropriate bound. Major cases:
// table.copy: out of bounds of the table for the source or target, and should
// perform the operation at all. Major cases:
//
// - non-overlapping regions
// - overlapping regions with src > dest
@ -116,9 +112,7 @@ function tbl_copy(min, max, srcOffs, targetOffs, len) {
let copyDown = srcOffs < targetOffs;
let targetAvail = tbl.length - targetOffs;
let srcAvail = tbl.length - srcOffs;
let targetLim = targetOffs + Math.min(len, targetAvail, srcAvail);
let srcLim = srcOffs + Math.min(len, targetAvail, srcAvail);
let immediateOOB = copyDown && (srcOffs + len > tbl.length || targetOffs + len > tbl.length);
for (let i=srcOffs, j=0; i < srcLim; i++, j++)
tbl.set(i, ins.exports["f" + j]);
@ -126,37 +120,10 @@ function tbl_copy(min, max, srcOffs, targetOffs, len) {
WebAssembly.RuntimeError,
/index out of bounds/);
var t = 0;
var s = 0;
var i = 0;
function checkTarget() {
if (i >= targetOffs && i < targetLim) {
assertEq(tbl.get(i), ins.exports["f" + (t++)]);
if (i >= srcOffs && i < srcLim)
s++;
return true;
}
return false;
}
function checkSource() {
for (var i=0, s=0; i < tbl.length; i++ ) {
if (i >= srcOffs && i < srcLim) {
assertEq(tbl.get(i), ins.exports["f" + (s++)]);
if (i >= targetOffs && i < targetLim)
t++;
return true;
}
return false;
}
for (i=0; i < tbl.length; i++ ) {
if (immediateOOB) {
if (checkSource())
continue;
} else {
if (copyDown && (checkSource() || checkTarget()))
continue;
if (!copyDown && (checkTarget() || checkSource()))
continue;
continue;
}
assertEq(tbl.get(i), null);
}

View File

@ -42,10 +42,10 @@ run(() => call($3, "fill", [0, 0, 65_536]));
assert_trap(() => call($3, "fill", [65_280, 1, 257]));
// bulk.wast:45
assert_return(() => call($3, "load8_u", [65_280]), 1);
assert_return(() => call($3, "load8_u", [65_280]), 0);
// bulk.wast:46
assert_return(() => call($3, "load8_u", [65_535]), 1);
assert_return(() => call($3, "load8_u", [65_535]), 0);
// bulk.wast:49
run(() => call($3, "fill", [65_536, 0, 0]));
@ -156,16 +156,16 @@ assert_return(() => call($5, "load8_u", [1]), 204);
assert_return(() => call($5, "load8_u", [2]), 0);
// bulk.wast:132
run(() => call($5, "init", [65_532, 0, 4]));
// bulk.wast:135
assert_trap(() => call($5, "init", [65_534, 0, 3]));
// bulk.wast:137
assert_return(() => call($5, "load8_u", [65_534]), 170);
// bulk.wast:134
assert_return(() => call($5, "load8_u", [65_534]), 0);
// bulk.wast:135
assert_return(() => call($5, "load8_u", [65_535]), 0);
// bulk.wast:138
assert_return(() => call($5, "load8_u", [65_535]), 187);
run(() => call($5, "init", [65_532, 0, 4]));
// bulk.wast:141
run(() => call($5, "init", [65_536, 0, 0]));
@ -203,113 +203,113 @@ assert_trap(() => call($6, "init_active", []));
// bulk.wast:172
let $7 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x90\x80\x80\x80\x00\x03\x60\x00\x01\x7f\x60\x03\x7f\x7f\x7f\x00\x60\x01\x7f\x01\x7f\x03\x85\x80\x80\x80\x00\x04\x00\x00\x01\x02\x04\x84\x80\x80\x80\x00\x01\x70\x00\x03\x07\x8f\x80\x80\x80\x00\x02\x04\x69\x6e\x69\x74\x00\x02\x04\x63\x61\x6c\x6c\x00\x03\x09\x90\x80\x80\x80\x00\x01\x05\x70\x04\xd2\x00\x0b\xd2\x01\x0b\xd2\x00\x0b\xd2\x01\x0b\x0a\xb0\x80\x80\x80\x00\x04\x84\x80\x80\x80\x00\x00\x41\x00\x0b\x84\x80\x80\x80\x00\x00\x41\x01\x0b\x8c\x80\x80\x80\x00\x00\x20\x00\x20\x01\x20\x02\xfc\x0c\x00\x00\x0b\x87\x80\x80\x80\x00\x00\x20\x00\x11\x00\x00\x0b");
// bulk.wast:191
run(() => call($7, "init", [0, 1, 2]));
// bulk.wast:192
assert_return(() => call($7, "call", [0]), 1);
// bulk.wast:193
assert_return(() => call($7, "call", [1]), 0);
assert_trap(() => call($7, "init", [2, 0, 2]));
// bulk.wast:194
assert_trap(() => call($7, "call", [2]));
// bulk.wast:197
run(() => call($7, "init", [1, 2, 2]));
run(() => call($7, "init", [0, 1, 2]));
// bulk.wast:198
assert_return(() => call($7, "call", [0]), 1);
// bulk.wast:199
assert_return(() => call($7, "call", [1]), 0);
// bulk.wast:200
assert_trap(() => call($7, "init", [2, 0, 2]));
assert_trap(() => call($7, "call", [2]));
// bulk.wast:202
assert_return(() => call($7, "call", [2]), 0);
// bulk.wast:205
run(() => call($7, "init", [3, 0, 0]));
// bulk.wast:203
run(() => call($7, "init", [1, 2, 2]));
// bulk.wast:206
run(() => call($7, "init", [3, 0, 0]));
// bulk.wast:207
run(() => call($7, "init", [0, 4, 0]));
// bulk.wast:209
// bulk.wast:210
run(() => call($7, "init", [4, 0, 0]));
// bulk.wast:210
// bulk.wast:211
run(() => call($7, "init", [0, 5, 0]));
// bulk.wast:214
// bulk.wast:215
let $8 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x84\x80\x80\x80\x00\x01\x60\x00\x00\x03\x86\x80\x80\x80\x00\x05\x00\x00\x00\x00\x00\x04\x84\x80\x80\x80\x00\x01\x70\x00\x01\x07\xbb\x80\x80\x80\x00\x04\x0c\x64\x72\x6f\x70\x5f\x70\x61\x73\x73\x69\x76\x65\x00\x01\x0c\x69\x6e\x69\x74\x5f\x70\x61\x73\x73\x69\x76\x65\x00\x02\x0b\x64\x72\x6f\x70\x5f\x61\x63\x74\x69\x76\x65\x00\x03\x0b\x69\x6e\x69\x74\x5f\x61\x63\x74\x69\x76\x65\x00\x04\x09\x8d\x80\x80\x80\x00\x02\x05\x70\x01\xd2\x00\x0b\x00\x41\x00\x0b\x01\x00\x0a\xbe\x80\x80\x80\x00\x05\x82\x80\x80\x80\x00\x00\x0b\x85\x80\x80\x80\x00\x00\xfc\x0d\x00\x0b\x8c\x80\x80\x80\x00\x00\x41\x00\x41\x00\x41\x00\xfc\x0c\x00\x00\x0b\x85\x80\x80\x80\x00\x00\xfc\x0d\x01\x0b\x8c\x80\x80\x80\x00\x00\x41\x00\x41\x00\x41\x00\xfc\x0c\x01\x00\x0b");
// bulk.wast:229
// bulk.wast:230
run(() => call($8, "init_passive", []));
// bulk.wast:230
// bulk.wast:231
run(() => call($8, "drop_passive", []));
// bulk.wast:231
// bulk.wast:232
assert_trap(() => call($8, "drop_passive", []));
// bulk.wast:232
// bulk.wast:233
assert_trap(() => call($8, "init_passive", []));
// bulk.wast:233
// bulk.wast:234
assert_trap(() => call($8, "drop_active", []));
// bulk.wast:234
// bulk.wast:235
assert_trap(() => call($8, "init_active", []));
// bulk.wast:238
// bulk.wast:239
let $9 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x90\x80\x80\x80\x00\x03\x60\x00\x01\x7f\x60\x03\x7f\x7f\x7f\x00\x60\x01\x7f\x01\x7f\x03\x86\x80\x80\x80\x00\x05\x00\x00\x00\x01\x02\x04\x84\x80\x80\x80\x00\x01\x70\x00\x0a\x07\x8f\x80\x80\x80\x00\x02\x04\x63\x6f\x70\x79\x00\x03\x04\x63\x61\x6c\x6c\x00\x04\x09\x89\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x03\x00\x01\x02\x0a\xb9\x80\x80\x80\x00\x05\x84\x80\x80\x80\x00\x00\x41\x00\x0b\x84\x80\x80\x80\x00\x00\x41\x01\x0b\x84\x80\x80\x80\x00\x00\x41\x02\x0b\x8c\x80\x80\x80\x00\x00\x20\x00\x20\x01\x20\x02\xfc\x0e\x00\x00\x0b\x87\x80\x80\x80\x00\x00\x20\x00\x11\x00\x00\x0b");
// bulk.wast:257
// bulk.wast:258
run(() => call($9, "copy", [3, 0, 3]));
// bulk.wast:259
// bulk.wast:260
assert_return(() => call($9, "call", [3]), 0);
// bulk.wast:260
// bulk.wast:261
assert_return(() => call($9, "call", [4]), 1);
// bulk.wast:261
// bulk.wast:262
assert_return(() => call($9, "call", [5]), 2);
// bulk.wast:264
// bulk.wast:265
run(() => call($9, "copy", [0, 1, 3]));
// bulk.wast:266
// bulk.wast:267
assert_return(() => call($9, "call", [0]), 1);
// bulk.wast:267
// bulk.wast:268
assert_return(() => call($9, "call", [1]), 2);
// bulk.wast:268
// bulk.wast:269
assert_return(() => call($9, "call", [2]), 0);
// bulk.wast:271
// bulk.wast:272
run(() => call($9, "copy", [2, 0, 3]));
// bulk.wast:273
// bulk.wast:274
assert_return(() => call($9, "call", [2]), 1);
// bulk.wast:274
// bulk.wast:275
assert_return(() => call($9, "call", [3]), 2);
// bulk.wast:275
// bulk.wast:276
assert_return(() => call($9, "call", [4]), 0);
// bulk.wast:278
// bulk.wast:279
run(() => call($9, "copy", [6, 8, 2]));
// bulk.wast:279
// bulk.wast:280
run(() => call($9, "copy", [8, 6, 2]));
// bulk.wast:282
// bulk.wast:283
run(() => call($9, "copy", [10, 0, 0]));
// bulk.wast:283
// bulk.wast:284
run(() => call($9, "copy", [0, 10, 0]));
// bulk.wast:286
// bulk.wast:287
run(() => call($9, "copy", [11, 0, 0]));
// bulk.wast:287
// bulk.wast:288
run(() => call($9, "copy", [0, 11, 0]));

File diff suppressed because one or more lines are too long

View File

@ -279,31 +279,22 @@ let $9 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8e\x80\x80\x80\x00\x02\
assert_trap(() => call($9, "run", [65_280, 37, 512]));
// memory_fill.wast:640
assert_return(() => call($9, "checkRange", [65_280, 65_536, 37]), -1);
assert_return(() => call($9, "checkRange", [0, 1, 0]), -1);
// memory_fill.wast:642
assert_return(() => call($9, "checkRange", [0, 65_280, 0]), -1);
// memory_fill.wast:644
let $10 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8e\x80\x80\x80\x00\x02\x60\x03\x7f\x7f\x7f\x01\x7f\x60\x03\x7f\x7f\x7f\x00\x03\x83\x80\x80\x80\x00\x02\x00\x01\x05\x84\x80\x80\x80\x00\x01\x01\x01\x01\x07\x94\x80\x80\x80\x00\x02\x0a\x63\x68\x65\x63\x6b\x52\x61\x6e\x67\x65\x00\x00\x03\x72\x75\x6e\x00\x01\x0a\xbd\x80\x80\x80\x00\x02\xa7\x80\x80\x80\x00\x00\x03\x40\x20\x00\x20\x01\x46\x04\x40\x41\x7f\x0f\x0b\x20\x00\x2d\x00\x00\x20\x02\x46\x04\x40\x20\x00\x41\x01\x6a\x21\x00\x0c\x01\x0b\x0b\x20\x00\x0f\x0b\x8b\x80\x80\x80\x00\x00\x20\x00\x20\x01\x20\x02\xfc\x0b\x00\x0b");
// memory_fill.wast:661
// memory_fill.wast:659
assert_trap(() => call($10, "run", [65_279, 37, 514]));
// memory_fill.wast:662
assert_return(() => call($10, "checkRange", [0, 1, 0]), -1);
// memory_fill.wast:664
assert_return(() => call($10, "checkRange", [65_279, 65_536, 37]), -1);
// memory_fill.wast:666
assert_return(() => call($10, "checkRange", [0, 65_279, 0]), -1);
// memory_fill.wast:668
let $11 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8e\x80\x80\x80\x00\x02\x60\x03\x7f\x7f\x7f\x01\x7f\x60\x03\x7f\x7f\x7f\x00\x03\x83\x80\x80\x80\x00\x02\x00\x01\x05\x84\x80\x80\x80\x00\x01\x01\x01\x01\x07\x94\x80\x80\x80\x00\x02\x0a\x63\x68\x65\x63\x6b\x52\x61\x6e\x67\x65\x00\x00\x03\x72\x75\x6e\x00\x01\x0a\xbd\x80\x80\x80\x00\x02\xa7\x80\x80\x80\x00\x00\x03\x40\x20\x00\x20\x01\x46\x04\x40\x41\x7f\x0f\x0b\x20\x00\x2d\x00\x00\x20\x02\x46\x04\x40\x20\x00\x41\x01\x6a\x21\x00\x0c\x01\x0b\x0b\x20\x00\x0f\x0b\x8b\x80\x80\x80\x00\x00\x20\x00\x20\x01\x20\x02\xfc\x0b\x00\x0b");
// memory_fill.wast:685
// memory_fill.wast:681
assert_trap(() => call($11, "run", [65_279, 37, -1]));
// memory_fill.wast:688
assert_return(() => call($11, "checkRange", [65_279, 65_536, 37]), -1);
// memory_fill.wast:690
assert_return(() => call($11, "checkRange", [0, 65_279, 0]), -1);
// memory_fill.wast:684
assert_return(() => call($11, "checkRange", [0, 1, 0]), -1);

View File

@ -663,85 +663,49 @@ let $17 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8d\x80\x80\x80\x00\x02
assert_trap(() => call($17, "run", [65_528, 16]));
// memory_init.wast:828
assert_return(() => call($17, "checkRange", [0, 65_528, 0]), -1);
assert_return(() => call($17, "checkRange", [0, 1, 0]), -1);
// memory_init.wast:830
assert_return(() => call($17, "checkRange", [65_528, 65_536, 66]), -1);
// memory_init.wast:832
assert_return(() => call($17, "checkRange", [65_536, 65_536, 0]), -1);
// memory_init.wast:834
let $18 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8d\x80\x80\x80\x00\x02\x60\x03\x7f\x7f\x7f\x01\x7f\x60\x02\x7f\x7f\x00\x03\x83\x80\x80\x80\x00\x02\x00\x01\x05\x84\x80\x80\x80\x00\x01\x01\x01\x01\x07\x94\x80\x80\x80\x00\x02\x0a\x63\x68\x65\x63\x6b\x52\x61\x6e\x67\x65\x00\x00\x03\x72\x75\x6e\x00\x01\x0c\x81\x80\x80\x80\x00\x01\x0a\xbe\x80\x80\x80\x00\x02\xa7\x80\x80\x80\x00\x00\x03\x40\x20\x00\x20\x01\x46\x04\x40\x41\x7f\x0f\x0b\x20\x00\x2d\x00\x00\x20\x02\x46\x04\x40\x20\x00\x41\x01\x6a\x21\x00\x0c\x01\x0b\x0b\x20\x00\x0f\x0b\x8c\x80\x80\x80\x00\x00\x20\x00\x41\x00\x20\x01\xfc\x08\x00\x00\x0b\x0b\x93\x80\x80\x80\x00\x01\x01\x10\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42");
// memory_init.wast:852
// memory_init.wast:848
assert_trap(() => call($18, "run", [65_527, 16]));
// memory_init.wast:855
assert_return(() => call($18, "checkRange", [0, 65_527, 0]), -1);
// memory_init.wast:851
assert_return(() => call($18, "checkRange", [0, 1, 0]), -1);
// memory_init.wast:857
assert_return(() => call($18, "checkRange", [65_527, 65_536, 66]), -1);
// memory_init.wast:859
assert_return(() => call($18, "checkRange", [65_536, 65_536, 0]), -1);
// memory_init.wast:861
// memory_init.wast:853
let $19 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8d\x80\x80\x80\x00\x02\x60\x03\x7f\x7f\x7f\x01\x7f\x60\x02\x7f\x7f\x00\x03\x83\x80\x80\x80\x00\x02\x00\x01\x05\x84\x80\x80\x80\x00\x01\x01\x01\x01\x07\x94\x80\x80\x80\x00\x02\x0a\x63\x68\x65\x63\x6b\x52\x61\x6e\x67\x65\x00\x00\x03\x72\x75\x6e\x00\x01\x0c\x81\x80\x80\x80\x00\x01\x0a\xbe\x80\x80\x80\x00\x02\xa7\x80\x80\x80\x00\x00\x03\x40\x20\x00\x20\x01\x46\x04\x40\x41\x7f\x0f\x0b\x20\x00\x2d\x00\x00\x20\x02\x46\x04\x40\x20\x00\x41\x01\x6a\x21\x00\x0c\x01\x0b\x0b\x20\x00\x0f\x0b\x8c\x80\x80\x80\x00\x00\x20\x00\x41\x00\x20\x01\xfc\x08\x00\x00\x0b\x0b\x93\x80\x80\x80\x00\x01\x01\x10\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42");
// memory_init.wast:879
// memory_init.wast:871
assert_trap(() => call($19, "run", [65_472, 30]));
// memory_init.wast:882
assert_return(() => call($19, "checkRange", [0, 65_472, 0]), -1);
// memory_init.wast:874
assert_return(() => call($19, "checkRange", [0, 1, 0]), -1);
// memory_init.wast:884
assert_return(() => call($19, "checkRange", [65_472, 65_488, 66]), -1);
// memory_init.wast:886
assert_return(() => call($19, "checkRange", [65_488, 65_536, 0]), -1);
// memory_init.wast:888
// memory_init.wast:876
let $20 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8d\x80\x80\x80\x00\x02\x60\x03\x7f\x7f\x7f\x01\x7f\x60\x02\x7f\x7f\x00\x03\x83\x80\x80\x80\x00\x02\x00\x01\x05\x84\x80\x80\x80\x00\x01\x01\x01\x01\x07\x94\x80\x80\x80\x00\x02\x0a\x63\x68\x65\x63\x6b\x52\x61\x6e\x67\x65\x00\x00\x03\x72\x75\x6e\x00\x01\x0c\x81\x80\x80\x80\x00\x01\x0a\xbe\x80\x80\x80\x00\x02\xa7\x80\x80\x80\x00\x00\x03\x40\x20\x00\x20\x01\x46\x04\x40\x41\x7f\x0f\x0b\x20\x00\x2d\x00\x00\x20\x02\x46\x04\x40\x20\x00\x41\x01\x6a\x21\x00\x0c\x01\x0b\x0b\x20\x00\x0f\x0b\x8c\x80\x80\x80\x00\x00\x20\x00\x41\x00\x20\x01\xfc\x08\x00\x00\x0b\x0b\x93\x80\x80\x80\x00\x01\x01\x10\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42");
// memory_init.wast:906
// memory_init.wast:894
assert_trap(() => call($20, "run", [65_473, 31]));
// memory_init.wast:909
assert_return(() => call($20, "checkRange", [0, 65_473, 0]), -1);
// memory_init.wast:897
assert_return(() => call($20, "checkRange", [0, 1, 0]), -1);
// memory_init.wast:911
assert_return(() => call($20, "checkRange", [65_473, 65_489, 66]), -1);
// memory_init.wast:913
assert_return(() => call($20, "checkRange", [65_489, 65_536, 0]), -1);
// memory_init.wast:915
// memory_init.wast:899
let $21 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8d\x80\x80\x80\x00\x02\x60\x03\x7f\x7f\x7f\x01\x7f\x60\x02\x7f\x7f\x00\x03\x83\x80\x80\x80\x00\x02\x00\x01\x05\x83\x80\x80\x80\x00\x01\x00\x01\x07\x94\x80\x80\x80\x00\x02\x0a\x63\x68\x65\x63\x6b\x52\x61\x6e\x67\x65\x00\x00\x03\x72\x75\x6e\x00\x01\x0c\x81\x80\x80\x80\x00\x01\x0a\xbe\x80\x80\x80\x00\x02\xa7\x80\x80\x80\x00\x00\x03\x40\x20\x00\x20\x01\x46\x04\x40\x41\x7f\x0f\x0b\x20\x00\x2d\x00\x00\x20\x02\x46\x04\x40\x20\x00\x41\x01\x6a\x21\x00\x0c\x01\x0b\x0b\x20\x00\x0f\x0b\x8c\x80\x80\x80\x00\x00\x20\x00\x41\x00\x20\x01\xfc\x08\x00\x00\x0b\x0b\x93\x80\x80\x80\x00\x01\x01\x10\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42");
// memory_init.wast:933
// memory_init.wast:917
assert_trap(() => call($21, "run", [65_528, -256]));
// memory_init.wast:936
assert_return(() => call($21, "checkRange", [0, 65_528, 0]), -1);
// memory_init.wast:920
assert_return(() => call($21, "checkRange", [0, 1, 0]), -1);
// memory_init.wast:938
assert_return(() => call($21, "checkRange", [65_528, 65_536, 66]), -1);
// memory_init.wast:940
assert_return(() => call($21, "checkRange", [65_536, 65_536, 0]), -1);
// memory_init.wast:942
// memory_init.wast:922
let $22 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8d\x80\x80\x80\x00\x02\x60\x03\x7f\x7f\x7f\x01\x7f\x60\x02\x7f\x7f\x00\x03\x83\x80\x80\x80\x00\x02\x00\x01\x05\x83\x80\x80\x80\x00\x01\x00\x01\x07\x94\x80\x80\x80\x00\x02\x0a\x63\x68\x65\x63\x6b\x52\x61\x6e\x67\x65\x00\x00\x03\x72\x75\x6e\x00\x01\x0c\x81\x80\x80\x80\x00\x01\x0a\xbe\x80\x80\x80\x00\x02\xa7\x80\x80\x80\x00\x00\x03\x40\x20\x00\x20\x01\x46\x04\x40\x41\x7f\x0f\x0b\x20\x00\x2d\x00\x00\x20\x02\x46\x04\x40\x20\x00\x41\x01\x6a\x21\x00\x0c\x01\x0b\x0b\x20\x00\x0f\x0b\x8c\x80\x80\x80\x00\x00\x20\x00\x41\x00\x20\x01\xfc\x08\x00\x00\x0b\x0b\x93\x80\x80\x80\x00\x01\x01\x10\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42");
// memory_init.wast:960
// memory_init.wast:940
assert_trap(() => call($22, "run", [0, -4]));
// memory_init.wast:963
assert_return(() => call($22, "checkRange", [0, 0, 0]), -1);
// memory_init.wast:965
assert_return(() => call($22, "checkRange", [0, 16, 66]), -1);
// memory_init.wast:967
assert_return(() => call($22, "checkRange", [16, 65_536, 0]), -1);
// memory_init.wast:943
assert_return(() => call($22, "checkRange", [0, 1, 0]), -1);

View File

@ -1044,28 +1044,28 @@ let $22 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x90\x80\x80\x80\x00\x03
assert_trap(() => call($22, "run", [0, 24, 16]));
// table_copy.wast:860
assert_return(() => call($22, "test", [0]), 0);
assert_trap(() => call($22, "test", [0]));
// table_copy.wast:861
assert_return(() => call($22, "test", [1]), 1);
assert_trap(() => call($22, "test", [1]));
// table_copy.wast:862
assert_return(() => call($22, "test", [2]), 2);
assert_trap(() => call($22, "test", [2]));
// table_copy.wast:863
assert_return(() => call($22, "test", [3]), 3);
assert_trap(() => call($22, "test", [3]));
// table_copy.wast:864
assert_return(() => call($22, "test", [4]), 4);
assert_trap(() => call($22, "test", [4]));
// table_copy.wast:865
assert_return(() => call($22, "test", [5]), 5);
assert_trap(() => call($22, "test", [5]));
// table_copy.wast:866
assert_return(() => call($22, "test", [6]), 6);
assert_trap(() => call($22, "test", [6]));
// table_copy.wast:867
assert_return(() => call($22, "test", [7]), 7);
assert_trap(() => call($22, "test", [7]));
// table_copy.wast:868
assert_trap(() => call($22, "test", [8]));
@ -1146,31 +1146,31 @@ let $23 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x90\x80\x80\x80\x00\x03
assert_trap(() => call($23, "run", [0, 23, 15]));
// table_copy.wast:921
assert_return(() => call($23, "test", [0]), 0);
assert_trap(() => call($23, "test", [0]));
// table_copy.wast:922
assert_return(() => call($23, "test", [1]), 1);
assert_trap(() => call($23, "test", [1]));
// table_copy.wast:923
assert_return(() => call($23, "test", [2]), 2);
assert_trap(() => call($23, "test", [2]));
// table_copy.wast:924
assert_return(() => call($23, "test", [3]), 3);
assert_trap(() => call($23, "test", [3]));
// table_copy.wast:925
assert_return(() => call($23, "test", [4]), 4);
assert_trap(() => call($23, "test", [4]));
// table_copy.wast:926
assert_return(() => call($23, "test", [5]), 5);
assert_trap(() => call($23, "test", [5]));
// table_copy.wast:927
assert_return(() => call($23, "test", [6]), 6);
assert_trap(() => call($23, "test", [6]));
// table_copy.wast:928
assert_return(() => call($23, "test", [7]), 7);
assert_trap(() => call($23, "test", [7]));
// table_copy.wast:929
assert_return(() => call($23, "test", [8]), 8);
assert_trap(() => call($23, "test", [8]));
// table_copy.wast:930
assert_trap(() => call($23, "test", [9]));
@ -1383,28 +1383,28 @@ assert_trap(() => call($25, "test", [9]));
assert_trap(() => call($25, "test", [10]));
// table_copy.wast:1054
assert_return(() => call($25, "test", [11]), 0);
assert_trap(() => call($25, "test", [11]));
// table_copy.wast:1055
assert_return(() => call($25, "test", [12]), 1);
assert_trap(() => call($25, "test", [12]));
// table_copy.wast:1056
assert_return(() => call($25, "test", [13]), 2);
assert_trap(() => call($25, "test", [13]));
// table_copy.wast:1057
assert_return(() => call($25, "test", [14]), 3);
assert_trap(() => call($25, "test", [14]));
// table_copy.wast:1058
assert_return(() => call($25, "test", [15]), 4);
assert_trap(() => call($25, "test", [15]));
// table_copy.wast:1059
assert_return(() => call($25, "test", [16]), 5);
assert_trap(() => call($25, "test", [16]));
// table_copy.wast:1060
assert_return(() => call($25, "test", [17]), 6);
assert_trap(() => call($25, "test", [17]));
// table_copy.wast:1061
assert_return(() => call($25, "test", [18]), 7);
assert_trap(() => call($25, "test", [18]));
// table_copy.wast:1062
assert_trap(() => call($25, "test", [19]));
@ -1617,28 +1617,28 @@ assert_trap(() => call($27, "test", [19]));
assert_trap(() => call($27, "test", [20]));
// table_copy.wast:1186
assert_return(() => call($27, "test", [21]), 0);
assert_trap(() => call($27, "test", [21]));
// table_copy.wast:1187
assert_return(() => call($27, "test", [22]), 1);
assert_trap(() => call($27, "test", [22]));
// table_copy.wast:1188
assert_return(() => call($27, "test", [23]), 2);
assert_trap(() => call($27, "test", [23]));
// table_copy.wast:1189
assert_return(() => call($27, "test", [24]), 3);
assert_return(() => call($27, "test", [24]), 0);
// table_copy.wast:1190
assert_return(() => call($27, "test", [25]), 4);
assert_return(() => call($27, "test", [25]), 1);
// table_copy.wast:1191
assert_return(() => call($27, "test", [26]), 5);
assert_return(() => call($27, "test", [26]), 2);
// table_copy.wast:1192
assert_return(() => call($27, "test", [27]), 6);
assert_return(() => call($27, "test", [27]), 3);
// table_copy.wast:1193
assert_return(() => call($27, "test", [28]), 7);
assert_return(() => call($27, "test", [28]), 4);
// table_copy.wast:1194
assert_return(() => call($27, "test", [29]), 5);
@ -1758,52 +1758,52 @@ let $29 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x90\x80\x80\x80\x00\x03
assert_trap(() => call($29, "run", [0, 112, -32]));
// table_copy.wast:1287
assert_return(() => call($29, "test", [0]), 0);
assert_trap(() => call($29, "test", [0]));
// table_copy.wast:1288
assert_return(() => call($29, "test", [1]), 1);
assert_trap(() => call($29, "test", [1]));
// table_copy.wast:1289
assert_return(() => call($29, "test", [2]), 2);
assert_trap(() => call($29, "test", [2]));
// table_copy.wast:1290
assert_return(() => call($29, "test", [3]), 3);
assert_trap(() => call($29, "test", [3]));
// table_copy.wast:1291
assert_return(() => call($29, "test", [4]), 4);
assert_trap(() => call($29, "test", [4]));
// table_copy.wast:1292
assert_return(() => call($29, "test", [5]), 5);
assert_trap(() => call($29, "test", [5]));
// table_copy.wast:1293
assert_return(() => call($29, "test", [6]), 6);
assert_trap(() => call($29, "test", [6]));
// table_copy.wast:1294
assert_return(() => call($29, "test", [7]), 7);
assert_trap(() => call($29, "test", [7]));
// table_copy.wast:1295
assert_return(() => call($29, "test", [8]), 8);
assert_trap(() => call($29, "test", [8]));
// table_copy.wast:1296
assert_return(() => call($29, "test", [9]), 9);
assert_trap(() => call($29, "test", [9]));
// table_copy.wast:1297
assert_return(() => call($29, "test", [10]), 10);
assert_trap(() => call($29, "test", [10]));
// table_copy.wast:1298
assert_return(() => call($29, "test", [11]), 11);
assert_trap(() => call($29, "test", [11]));
// table_copy.wast:1299
assert_return(() => call($29, "test", [12]), 12);
assert_trap(() => call($29, "test", [12]));
// table_copy.wast:1300
assert_return(() => call($29, "test", [13]), 13);
assert_trap(() => call($29, "test", [13]));
// table_copy.wast:1301
assert_return(() => call($29, "test", [14]), 14);
assert_trap(() => call($29, "test", [14]));
// table_copy.wast:1302
assert_return(() => call($29, "test", [15]), 15);
assert_trap(() => call($29, "test", [15]));
// table_copy.wast:1303
assert_trap(() => call($29, "test", [16]));

File diff suppressed because it is too large Load Diff

View File

@ -43,10 +43,10 @@ run(() => call($3, "fill", [0, 0, 65_536]));
assert_trap(() => call($3, "fill", [65_280, 1, 257]));
// bulk.wast:45
assert_return(() => call($3, "load8_u", [65_280]), 1);
assert_return(() => call($3, "load8_u", [65_280]), 0);
// bulk.wast:46
assert_return(() => call($3, "load8_u", [65_535]), 1);
assert_return(() => call($3, "load8_u", [65_535]), 0);
// bulk.wast:49
run(() => call($3, "fill", [65_536, 0, 0]));
@ -157,16 +157,16 @@ assert_return(() => call($5, "load8_u", [1]), 204);
assert_return(() => call($5, "load8_u", [2]), 0);
// bulk.wast:132
run(() => call($5, "init", [65_532, 0, 4]));
// bulk.wast:135
assert_trap(() => call($5, "init", [65_534, 0, 3]));
// bulk.wast:137
assert_return(() => call($5, "load8_u", [65_534]), 170);
// bulk.wast:134
assert_return(() => call($5, "load8_u", [65_534]), 0);
// bulk.wast:135
assert_return(() => call($5, "load8_u", [65_535]), 0);
// bulk.wast:138
assert_return(() => call($5, "load8_u", [65_535]), 187);
run(() => call($5, "init", [65_532, 0, 4]));
// bulk.wast:141
run(() => call($5, "init", [65_536, 0, 0]));
@ -204,115 +204,115 @@ assert_trap(() => call($6, "init_active", []));
// bulk.wast:172
let $7 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x90\x80\x80\x80\x00\x03\x60\x00\x01\x7f\x60\x03\x7f\x7f\x7f\x00\x60\x01\x7f\x01\x7f\x03\x85\x80\x80\x80\x00\x04\x00\x00\x01\x02\x04\x84\x80\x80\x80\x00\x01\x70\x00\x03\x07\x8f\x80\x80\x80\x00\x02\x04\x69\x6e\x69\x74\x00\x02\x04\x63\x61\x6c\x6c\x00\x03\x09\x90\x80\x80\x80\x00\x01\x05\x70\x04\xd2\x00\x0b\xd2\x01\x0b\xd2\x00\x0b\xd2\x01\x0b\x0a\xb0\x80\x80\x80\x00\x04\x84\x80\x80\x80\x00\x00\x41\x00\x0b\x84\x80\x80\x80\x00\x00\x41\x01\x0b\x8c\x80\x80\x80\x00\x00\x20\x00\x20\x01\x20\x02\xfc\x0c\x00\x00\x0b\x87\x80\x80\x80\x00\x00\x20\x00\x11\x00\x00\x0b");
// bulk.wast:191
run(() => call($7, "init", [0, 1, 2]));
// bulk.wast:192
assert_return(() => call($7, "call", [0]), 1);
// bulk.wast:193
assert_return(() => call($7, "call", [1]), 0);
assert_trap(() => call($7, "init", [2, 0, 2]));
// bulk.wast:194
assert_trap(() => call($7, "call", [2]));
// bulk.wast:197
run(() => call($7, "init", [1, 2, 2]));
run(() => call($7, "init", [0, 1, 2]));
// bulk.wast:198
assert_return(() => call($7, "call", [0]), 1);
// bulk.wast:199
assert_return(() => call($7, "call", [1]), 0);
// bulk.wast:200
assert_trap(() => call($7, "init", [2, 0, 2]));
assert_trap(() => call($7, "call", [2]));
// bulk.wast:202
assert_return(() => call($7, "call", [2]), 0);
// bulk.wast:205
run(() => call($7, "init", [3, 0, 0]));
// bulk.wast:203
run(() => call($7, "init", [1, 2, 2]));
// bulk.wast:206
run(() => call($7, "init", [3, 0, 0]));
// bulk.wast:207
run(() => call($7, "init", [0, 4, 0]));
// bulk.wast:209
// bulk.wast:210
run(() => call($7, "init", [4, 0, 0]));
// bulk.wast:210
// bulk.wast:211
run(() => call($7, "init", [0, 5, 0]));
// bulk.wast:214
// bulk.wast:215
let $8 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x84\x80\x80\x80\x00\x01\x60\x00\x00\x03\x86\x80\x80\x80\x00\x05\x00\x00\x00\x00\x00\x04\x84\x80\x80\x80\x00\x01\x70\x00\x01\x07\xbb\x80\x80\x80\x00\x04\x0c\x64\x72\x6f\x70\x5f\x70\x61\x73\x73\x69\x76\x65\x00\x01\x0c\x69\x6e\x69\x74\x5f\x70\x61\x73\x73\x69\x76\x65\x00\x02\x0b\x64\x72\x6f\x70\x5f\x61\x63\x74\x69\x76\x65\x00\x03\x0b\x69\x6e\x69\x74\x5f\x61\x63\x74\x69\x76\x65\x00\x04\x09\x8d\x80\x80\x80\x00\x02\x05\x70\x01\xd2\x00\x0b\x00\x41\x00\x0b\x01\x00\x0a\xbe\x80\x80\x80\x00\x05\x82\x80\x80\x80\x00\x00\x0b\x85\x80\x80\x80\x00\x00\xfc\x0d\x00\x0b\x8c\x80\x80\x80\x00\x00\x41\x00\x41\x00\x41\x00\xfc\x0c\x00\x00\x0b\x85\x80\x80\x80\x00\x00\xfc\x0d\x01\x0b\x8c\x80\x80\x80\x00\x00\x41\x00\x41\x00\x41\x00\xfc\x0c\x01\x00\x0b");
// bulk.wast:229
// bulk.wast:230
run(() => call($8, "init_passive", []));
// bulk.wast:230
// bulk.wast:231
run(() => call($8, "drop_passive", []));
// bulk.wast:231
// bulk.wast:232
assert_trap(() => call($8, "drop_passive", []));
// bulk.wast:232
// bulk.wast:233
assert_trap(() => call($8, "init_passive", []));
// bulk.wast:233
// bulk.wast:234
assert_trap(() => call($8, "drop_active", []));
// bulk.wast:234
// bulk.wast:235
assert_trap(() => call($8, "init_active", []));
// bulk.wast:238
// bulk.wast:239
let $9 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x90\x80\x80\x80\x00\x03\x60\x00\x01\x7f\x60\x03\x7f\x7f\x7f\x00\x60\x01\x7f\x01\x7f\x03\x86\x80\x80\x80\x00\x05\x00\x00\x00\x01\x02\x04\x84\x80\x80\x80\x00\x01\x70\x00\x0a\x07\x8f\x80\x80\x80\x00\x02\x04\x63\x6f\x70\x79\x00\x03\x04\x63\x61\x6c\x6c\x00\x04\x09\x89\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x03\x00\x01\x02\x0a\xb9\x80\x80\x80\x00\x05\x84\x80\x80\x80\x00\x00\x41\x00\x0b\x84\x80\x80\x80\x00\x00\x41\x01\x0b\x84\x80\x80\x80\x00\x00\x41\x02\x0b\x8c\x80\x80\x80\x00\x00\x20\x00\x20\x01\x20\x02\xfc\x0e\x00\x00\x0b\x87\x80\x80\x80\x00\x00\x20\x00\x11\x00\x00\x0b");
// bulk.wast:257
// bulk.wast:258
run(() => call($9, "copy", [3, 0, 3]));
// bulk.wast:259
// bulk.wast:260
assert_return(() => call($9, "call", [3]), 0);
// bulk.wast:260
// bulk.wast:261
assert_return(() => call($9, "call", [4]), 1);
// bulk.wast:261
// bulk.wast:262
assert_return(() => call($9, "call", [5]), 2);
// bulk.wast:264
// bulk.wast:265
run(() => call($9, "copy", [0, 1, 3]));
// bulk.wast:266
// bulk.wast:267
assert_return(() => call($9, "call", [0]), 1);
// bulk.wast:267
// bulk.wast:268
assert_return(() => call($9, "call", [1]), 2);
// bulk.wast:268
// bulk.wast:269
assert_return(() => call($9, "call", [2]), 0);
// bulk.wast:271
// bulk.wast:272
run(() => call($9, "copy", [2, 0, 3]));
// bulk.wast:273
// bulk.wast:274
assert_return(() => call($9, "call", [2]), 1);
// bulk.wast:274
// bulk.wast:275
assert_return(() => call($9, "call", [3]), 2);
// bulk.wast:275
// bulk.wast:276
assert_return(() => call($9, "call", [4]), 0);
// bulk.wast:278
// bulk.wast:279
run(() => call($9, "copy", [6, 8, 2]));
// bulk.wast:279
// bulk.wast:280
run(() => call($9, "copy", [8, 6, 2]));
// bulk.wast:282
// bulk.wast:283
run(() => call($9, "copy", [10, 0, 0]));
// bulk.wast:283
// bulk.wast:284
run(() => call($9, "copy", [0, 10, 0]));
// bulk.wast:286
// bulk.wast:287
run(() => call($9, "copy", [11, 0, 0]));
// bulk.wast:287
// bulk.wast:288
run(() => call($9, "copy", [0, 11, 0]));
reinitializeRegistry();
})();

File diff suppressed because one or more lines are too long

View File

@ -280,33 +280,24 @@ let $9 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8e\x80\x80\x80\x00\x02\
assert_trap(() => call($9, "run", [65_280, 37, 512]));
// memory_fill.wast:640
assert_return(() => call($9, "checkRange", [65_280, 65_536, 37]), -1);
assert_return(() => call($9, "checkRange", [0, 1, 0]), -1);
// memory_fill.wast:642
assert_return(() => call($9, "checkRange", [0, 65_280, 0]), -1);
// memory_fill.wast:644
let $10 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8e\x80\x80\x80\x00\x02\x60\x03\x7f\x7f\x7f\x01\x7f\x60\x03\x7f\x7f\x7f\x00\x03\x83\x80\x80\x80\x00\x02\x00\x01\x05\x84\x80\x80\x80\x00\x01\x01\x01\x01\x07\x94\x80\x80\x80\x00\x02\x0a\x63\x68\x65\x63\x6b\x52\x61\x6e\x67\x65\x00\x00\x03\x72\x75\x6e\x00\x01\x0a\xbd\x80\x80\x80\x00\x02\xa7\x80\x80\x80\x00\x00\x03\x40\x20\x00\x20\x01\x46\x04\x40\x41\x7f\x0f\x0b\x20\x00\x2d\x00\x00\x20\x02\x46\x04\x40\x20\x00\x41\x01\x6a\x21\x00\x0c\x01\x0b\x0b\x20\x00\x0f\x0b\x8b\x80\x80\x80\x00\x00\x20\x00\x20\x01\x20\x02\xfc\x0b\x00\x0b");
// memory_fill.wast:661
// memory_fill.wast:659
assert_trap(() => call($10, "run", [65_279, 37, 514]));
// memory_fill.wast:662
assert_return(() => call($10, "checkRange", [0, 1, 0]), -1);
// memory_fill.wast:664
assert_return(() => call($10, "checkRange", [65_279, 65_536, 37]), -1);
// memory_fill.wast:666
assert_return(() => call($10, "checkRange", [0, 65_279, 0]), -1);
// memory_fill.wast:668
let $11 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8e\x80\x80\x80\x00\x02\x60\x03\x7f\x7f\x7f\x01\x7f\x60\x03\x7f\x7f\x7f\x00\x03\x83\x80\x80\x80\x00\x02\x00\x01\x05\x84\x80\x80\x80\x00\x01\x01\x01\x01\x07\x94\x80\x80\x80\x00\x02\x0a\x63\x68\x65\x63\x6b\x52\x61\x6e\x67\x65\x00\x00\x03\x72\x75\x6e\x00\x01\x0a\xbd\x80\x80\x80\x00\x02\xa7\x80\x80\x80\x00\x00\x03\x40\x20\x00\x20\x01\x46\x04\x40\x41\x7f\x0f\x0b\x20\x00\x2d\x00\x00\x20\x02\x46\x04\x40\x20\x00\x41\x01\x6a\x21\x00\x0c\x01\x0b\x0b\x20\x00\x0f\x0b\x8b\x80\x80\x80\x00\x00\x20\x00\x20\x01\x20\x02\xfc\x0b\x00\x0b");
// memory_fill.wast:685
// memory_fill.wast:681
assert_trap(() => call($11, "run", [65_279, 37, -1]));
// memory_fill.wast:688
assert_return(() => call($11, "checkRange", [65_279, 65_536, 37]), -1);
// memory_fill.wast:690
assert_return(() => call($11, "checkRange", [0, 65_279, 0]), -1);
// memory_fill.wast:684
assert_return(() => call($11, "checkRange", [0, 1, 0]), -1);
reinitializeRegistry();
})();

View File

@ -664,87 +664,51 @@ let $17 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8d\x80\x80\x80\x00\x02
assert_trap(() => call($17, "run", [65_528, 16]));
// memory_init.wast:828
assert_return(() => call($17, "checkRange", [0, 65_528, 0]), -1);
assert_return(() => call($17, "checkRange", [0, 1, 0]), -1);
// memory_init.wast:830
assert_return(() => call($17, "checkRange", [65_528, 65_536, 66]), -1);
// memory_init.wast:832
assert_return(() => call($17, "checkRange", [65_536, 65_536, 0]), -1);
// memory_init.wast:834
let $18 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8d\x80\x80\x80\x00\x02\x60\x03\x7f\x7f\x7f\x01\x7f\x60\x02\x7f\x7f\x00\x03\x83\x80\x80\x80\x00\x02\x00\x01\x05\x84\x80\x80\x80\x00\x01\x01\x01\x01\x07\x94\x80\x80\x80\x00\x02\x0a\x63\x68\x65\x63\x6b\x52\x61\x6e\x67\x65\x00\x00\x03\x72\x75\x6e\x00\x01\x0c\x81\x80\x80\x80\x00\x01\x0a\xbe\x80\x80\x80\x00\x02\xa7\x80\x80\x80\x00\x00\x03\x40\x20\x00\x20\x01\x46\x04\x40\x41\x7f\x0f\x0b\x20\x00\x2d\x00\x00\x20\x02\x46\x04\x40\x20\x00\x41\x01\x6a\x21\x00\x0c\x01\x0b\x0b\x20\x00\x0f\x0b\x8c\x80\x80\x80\x00\x00\x20\x00\x41\x00\x20\x01\xfc\x08\x00\x00\x0b\x0b\x93\x80\x80\x80\x00\x01\x01\x10\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42");
// memory_init.wast:852
// memory_init.wast:848
assert_trap(() => call($18, "run", [65_527, 16]));
// memory_init.wast:855
assert_return(() => call($18, "checkRange", [0, 65_527, 0]), -1);
// memory_init.wast:851
assert_return(() => call($18, "checkRange", [0, 1, 0]), -1);
// memory_init.wast:857
assert_return(() => call($18, "checkRange", [65_527, 65_536, 66]), -1);
// memory_init.wast:859
assert_return(() => call($18, "checkRange", [65_536, 65_536, 0]), -1);
// memory_init.wast:861
// memory_init.wast:853
let $19 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8d\x80\x80\x80\x00\x02\x60\x03\x7f\x7f\x7f\x01\x7f\x60\x02\x7f\x7f\x00\x03\x83\x80\x80\x80\x00\x02\x00\x01\x05\x84\x80\x80\x80\x00\x01\x01\x01\x01\x07\x94\x80\x80\x80\x00\x02\x0a\x63\x68\x65\x63\x6b\x52\x61\x6e\x67\x65\x00\x00\x03\x72\x75\x6e\x00\x01\x0c\x81\x80\x80\x80\x00\x01\x0a\xbe\x80\x80\x80\x00\x02\xa7\x80\x80\x80\x00\x00\x03\x40\x20\x00\x20\x01\x46\x04\x40\x41\x7f\x0f\x0b\x20\x00\x2d\x00\x00\x20\x02\x46\x04\x40\x20\x00\x41\x01\x6a\x21\x00\x0c\x01\x0b\x0b\x20\x00\x0f\x0b\x8c\x80\x80\x80\x00\x00\x20\x00\x41\x00\x20\x01\xfc\x08\x00\x00\x0b\x0b\x93\x80\x80\x80\x00\x01\x01\x10\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42");
// memory_init.wast:879
// memory_init.wast:871
assert_trap(() => call($19, "run", [65_472, 30]));
// memory_init.wast:882
assert_return(() => call($19, "checkRange", [0, 65_472, 0]), -1);
// memory_init.wast:874
assert_return(() => call($19, "checkRange", [0, 1, 0]), -1);
// memory_init.wast:884
assert_return(() => call($19, "checkRange", [65_472, 65_488, 66]), -1);
// memory_init.wast:886
assert_return(() => call($19, "checkRange", [65_488, 65_536, 0]), -1);
// memory_init.wast:888
// memory_init.wast:876
let $20 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8d\x80\x80\x80\x00\x02\x60\x03\x7f\x7f\x7f\x01\x7f\x60\x02\x7f\x7f\x00\x03\x83\x80\x80\x80\x00\x02\x00\x01\x05\x84\x80\x80\x80\x00\x01\x01\x01\x01\x07\x94\x80\x80\x80\x00\x02\x0a\x63\x68\x65\x63\x6b\x52\x61\x6e\x67\x65\x00\x00\x03\x72\x75\x6e\x00\x01\x0c\x81\x80\x80\x80\x00\x01\x0a\xbe\x80\x80\x80\x00\x02\xa7\x80\x80\x80\x00\x00\x03\x40\x20\x00\x20\x01\x46\x04\x40\x41\x7f\x0f\x0b\x20\x00\x2d\x00\x00\x20\x02\x46\x04\x40\x20\x00\x41\x01\x6a\x21\x00\x0c\x01\x0b\x0b\x20\x00\x0f\x0b\x8c\x80\x80\x80\x00\x00\x20\x00\x41\x00\x20\x01\xfc\x08\x00\x00\x0b\x0b\x93\x80\x80\x80\x00\x01\x01\x10\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42");
// memory_init.wast:906
// memory_init.wast:894
assert_trap(() => call($20, "run", [65_473, 31]));
// memory_init.wast:909
assert_return(() => call($20, "checkRange", [0, 65_473, 0]), -1);
// memory_init.wast:897
assert_return(() => call($20, "checkRange", [0, 1, 0]), -1);
// memory_init.wast:911
assert_return(() => call($20, "checkRange", [65_473, 65_489, 66]), -1);
// memory_init.wast:913
assert_return(() => call($20, "checkRange", [65_489, 65_536, 0]), -1);
// memory_init.wast:915
// memory_init.wast:899
let $21 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8d\x80\x80\x80\x00\x02\x60\x03\x7f\x7f\x7f\x01\x7f\x60\x02\x7f\x7f\x00\x03\x83\x80\x80\x80\x00\x02\x00\x01\x05\x83\x80\x80\x80\x00\x01\x00\x01\x07\x94\x80\x80\x80\x00\x02\x0a\x63\x68\x65\x63\x6b\x52\x61\x6e\x67\x65\x00\x00\x03\x72\x75\x6e\x00\x01\x0c\x81\x80\x80\x80\x00\x01\x0a\xbe\x80\x80\x80\x00\x02\xa7\x80\x80\x80\x00\x00\x03\x40\x20\x00\x20\x01\x46\x04\x40\x41\x7f\x0f\x0b\x20\x00\x2d\x00\x00\x20\x02\x46\x04\x40\x20\x00\x41\x01\x6a\x21\x00\x0c\x01\x0b\x0b\x20\x00\x0f\x0b\x8c\x80\x80\x80\x00\x00\x20\x00\x41\x00\x20\x01\xfc\x08\x00\x00\x0b\x0b\x93\x80\x80\x80\x00\x01\x01\x10\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42");
// memory_init.wast:933
// memory_init.wast:917
assert_trap(() => call($21, "run", [65_528, -256]));
// memory_init.wast:936
assert_return(() => call($21, "checkRange", [0, 65_528, 0]), -1);
// memory_init.wast:920
assert_return(() => call($21, "checkRange", [0, 1, 0]), -1);
// memory_init.wast:938
assert_return(() => call($21, "checkRange", [65_528, 65_536, 66]), -1);
// memory_init.wast:940
assert_return(() => call($21, "checkRange", [65_536, 65_536, 0]), -1);
// memory_init.wast:942
// memory_init.wast:922
let $22 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x8d\x80\x80\x80\x00\x02\x60\x03\x7f\x7f\x7f\x01\x7f\x60\x02\x7f\x7f\x00\x03\x83\x80\x80\x80\x00\x02\x00\x01\x05\x83\x80\x80\x80\x00\x01\x00\x01\x07\x94\x80\x80\x80\x00\x02\x0a\x63\x68\x65\x63\x6b\x52\x61\x6e\x67\x65\x00\x00\x03\x72\x75\x6e\x00\x01\x0c\x81\x80\x80\x80\x00\x01\x0a\xbe\x80\x80\x80\x00\x02\xa7\x80\x80\x80\x00\x00\x03\x40\x20\x00\x20\x01\x46\x04\x40\x41\x7f\x0f\x0b\x20\x00\x2d\x00\x00\x20\x02\x46\x04\x40\x20\x00\x41\x01\x6a\x21\x00\x0c\x01\x0b\x0b\x20\x00\x0f\x0b\x8c\x80\x80\x80\x00\x00\x20\x00\x41\x00\x20\x01\xfc\x08\x00\x00\x0b\x0b\x93\x80\x80\x80\x00\x01\x01\x10\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42");
// memory_init.wast:960
// memory_init.wast:940
assert_trap(() => call($22, "run", [0, -4]));
// memory_init.wast:963
assert_return(() => call($22, "checkRange", [0, 0, 0]), -1);
// memory_init.wast:965
assert_return(() => call($22, "checkRange", [0, 16, 66]), -1);
// memory_init.wast:967
assert_return(() => call($22, "checkRange", [16, 65_536, 0]), -1);
// memory_init.wast:943
assert_return(() => call($22, "checkRange", [0, 1, 0]), -1);
reinitializeRegistry();
})();

View File

@ -1045,28 +1045,28 @@ let $22 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x90\x80\x80\x80\x00\x03
assert_trap(() => call($22, "run", [0, 24, 16]));
// table_copy.wast:860
assert_return(() => call($22, "test", [0]), 0);
assert_trap(() => call($22, "test", [0]));
// table_copy.wast:861
assert_return(() => call($22, "test", [1]), 1);
assert_trap(() => call($22, "test", [1]));
// table_copy.wast:862
assert_return(() => call($22, "test", [2]), 2);
assert_trap(() => call($22, "test", [2]));
// table_copy.wast:863
assert_return(() => call($22, "test", [3]), 3);
assert_trap(() => call($22, "test", [3]));
// table_copy.wast:864
assert_return(() => call($22, "test", [4]), 4);
assert_trap(() => call($22, "test", [4]));
// table_copy.wast:865
assert_return(() => call($22, "test", [5]), 5);
assert_trap(() => call($22, "test", [5]));
// table_copy.wast:866
assert_return(() => call($22, "test", [6]), 6);
assert_trap(() => call($22, "test", [6]));
// table_copy.wast:867
assert_return(() => call($22, "test", [7]), 7);
assert_trap(() => call($22, "test", [7]));
// table_copy.wast:868
assert_trap(() => call($22, "test", [8]));
@ -1147,31 +1147,31 @@ let $23 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x90\x80\x80\x80\x00\x03
assert_trap(() => call($23, "run", [0, 23, 15]));
// table_copy.wast:921
assert_return(() => call($23, "test", [0]), 0);
assert_trap(() => call($23, "test", [0]));
// table_copy.wast:922
assert_return(() => call($23, "test", [1]), 1);
assert_trap(() => call($23, "test", [1]));
// table_copy.wast:923
assert_return(() => call($23, "test", [2]), 2);
assert_trap(() => call($23, "test", [2]));
// table_copy.wast:924
assert_return(() => call($23, "test", [3]), 3);
assert_trap(() => call($23, "test", [3]));
// table_copy.wast:925
assert_return(() => call($23, "test", [4]), 4);
assert_trap(() => call($23, "test", [4]));
// table_copy.wast:926
assert_return(() => call($23, "test", [5]), 5);
assert_trap(() => call($23, "test", [5]));
// table_copy.wast:927
assert_return(() => call($23, "test", [6]), 6);
assert_trap(() => call($23, "test", [6]));
// table_copy.wast:928
assert_return(() => call($23, "test", [7]), 7);
assert_trap(() => call($23, "test", [7]));
// table_copy.wast:929
assert_return(() => call($23, "test", [8]), 8);
assert_trap(() => call($23, "test", [8]));
// table_copy.wast:930
assert_trap(() => call($23, "test", [9]));
@ -1384,28 +1384,28 @@ assert_trap(() => call($25, "test", [9]));
assert_trap(() => call($25, "test", [10]));
// table_copy.wast:1054
assert_return(() => call($25, "test", [11]), 0);
assert_trap(() => call($25, "test", [11]));
// table_copy.wast:1055
assert_return(() => call($25, "test", [12]), 1);
assert_trap(() => call($25, "test", [12]));
// table_copy.wast:1056
assert_return(() => call($25, "test", [13]), 2);
assert_trap(() => call($25, "test", [13]));
// table_copy.wast:1057
assert_return(() => call($25, "test", [14]), 3);
assert_trap(() => call($25, "test", [14]));
// table_copy.wast:1058
assert_return(() => call($25, "test", [15]), 4);
assert_trap(() => call($25, "test", [15]));
// table_copy.wast:1059
assert_return(() => call($25, "test", [16]), 5);
assert_trap(() => call($25, "test", [16]));
// table_copy.wast:1060
assert_return(() => call($25, "test", [17]), 6);
assert_trap(() => call($25, "test", [17]));
// table_copy.wast:1061
assert_return(() => call($25, "test", [18]), 7);
assert_trap(() => call($25, "test", [18]));
// table_copy.wast:1062
assert_trap(() => call($25, "test", [19]));
@ -1618,28 +1618,28 @@ assert_trap(() => call($27, "test", [19]));
assert_trap(() => call($27, "test", [20]));
// table_copy.wast:1186
assert_return(() => call($27, "test", [21]), 0);
assert_trap(() => call($27, "test", [21]));
// table_copy.wast:1187
assert_return(() => call($27, "test", [22]), 1);
assert_trap(() => call($27, "test", [22]));
// table_copy.wast:1188
assert_return(() => call($27, "test", [23]), 2);
assert_trap(() => call($27, "test", [23]));
// table_copy.wast:1189
assert_return(() => call($27, "test", [24]), 3);
assert_return(() => call($27, "test", [24]), 0);
// table_copy.wast:1190
assert_return(() => call($27, "test", [25]), 4);
assert_return(() => call($27, "test", [25]), 1);
// table_copy.wast:1191
assert_return(() => call($27, "test", [26]), 5);
assert_return(() => call($27, "test", [26]), 2);
// table_copy.wast:1192
assert_return(() => call($27, "test", [27]), 6);
assert_return(() => call($27, "test", [27]), 3);
// table_copy.wast:1193
assert_return(() => call($27, "test", [28]), 7);
assert_return(() => call($27, "test", [28]), 4);
// table_copy.wast:1194
assert_return(() => call($27, "test", [29]), 5);
@ -1759,52 +1759,52 @@ let $29 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x90\x80\x80\x80\x00\x03
assert_trap(() => call($29, "run", [0, 112, -32]));
// table_copy.wast:1287
assert_return(() => call($29, "test", [0]), 0);
assert_trap(() => call($29, "test", [0]));
// table_copy.wast:1288
assert_return(() => call($29, "test", [1]), 1);
assert_trap(() => call($29, "test", [1]));
// table_copy.wast:1289
assert_return(() => call($29, "test", [2]), 2);
assert_trap(() => call($29, "test", [2]));
// table_copy.wast:1290
assert_return(() => call($29, "test", [3]), 3);
assert_trap(() => call($29, "test", [3]));
// table_copy.wast:1291
assert_return(() => call($29, "test", [4]), 4);
assert_trap(() => call($29, "test", [4]));
// table_copy.wast:1292
assert_return(() => call($29, "test", [5]), 5);
assert_trap(() => call($29, "test", [5]));
// table_copy.wast:1293
assert_return(() => call($29, "test", [6]), 6);
assert_trap(() => call($29, "test", [6]));
// table_copy.wast:1294
assert_return(() => call($29, "test", [7]), 7);
assert_trap(() => call($29, "test", [7]));
// table_copy.wast:1295
assert_return(() => call($29, "test", [8]), 8);
assert_trap(() => call($29, "test", [8]));
// table_copy.wast:1296
assert_return(() => call($29, "test", [9]), 9);
assert_trap(() => call($29, "test", [9]));
// table_copy.wast:1297
assert_return(() => call($29, "test", [10]), 10);
assert_trap(() => call($29, "test", [10]));
// table_copy.wast:1298
assert_return(() => call($29, "test", [11]), 11);
assert_trap(() => call($29, "test", [11]));
// table_copy.wast:1299
assert_return(() => call($29, "test", [12]), 12);
assert_trap(() => call($29, "test", [12]));
// table_copy.wast:1300
assert_return(() => call($29, "test", [13]), 13);
assert_trap(() => call($29, "test", [13]));
// table_copy.wast:1301
assert_return(() => call($29, "test", [14]), 14);
assert_trap(() => call($29, "test", [14]));
// table_copy.wast:1302
assert_return(() => call($29, "test", [15]), 15);
assert_trap(() => call($29, "test", [15]));
// table_copy.wast:1303
assert_trap(() => call($29, "test", [16]));

File diff suppressed because it is too large Load Diff