summaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/wasm/test-run-wasm-bulk-memory.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/cctest/wasm/test-run-wasm-bulk-memory.cc')
-rw-r--r--deps/v8/test/cctest/wasm/test-run-wasm-bulk-memory.cc298
1 files changed, 57 insertions, 241 deletions
diff --git a/deps/v8/test/cctest/wasm/test-run-wasm-bulk-memory.cc b/deps/v8/test/cctest/wasm/test-run-wasm-bulk-memory.cc
index f8523b114c..dd59b48ef5 100644
--- a/deps/v8/test/cctest/wasm/test-run-wasm-bulk-memory.cc
+++ b/deps/v8/test/cctest/wasm/test-run-wasm-bulk-memory.cc
@@ -51,10 +51,9 @@ WASM_EXEC_TEST(MemoryInit) {
r.builder().AddMemory(kWasmPageSize);
const byte data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
r.builder().AddPassiveDataSegment(base::ArrayVector(data));
- BUILD(r,
- WASM_MEMORY_INIT(0, WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
- WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_MEMORY_INIT(0, WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
+ WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
// All zeroes.
CheckMemoryEqualsZero(&r.builder(), 0, kWasmPageSize);
@@ -87,10 +86,9 @@ WASM_EXEC_TEST(MemoryInitOutOfBoundsData) {
r.builder().AddMemory(kWasmPageSize);
const byte data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
r.builder().AddPassiveDataSegment(base::ArrayVector(data));
- BUILD(r,
- WASM_MEMORY_INIT(0, WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
- WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_MEMORY_INIT(0, WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
+ WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
const uint32_t last_5_bytes = kWasmPageSize - 5;
@@ -108,10 +106,9 @@ WASM_EXEC_TEST(MemoryInitOutOfBounds) {
r.builder().AddMemory(kWasmPageSize);
const byte data[kWasmPageSize] = {};
r.builder().AddPassiveDataSegment(base::ArrayVector(data));
- BUILD(r,
- WASM_MEMORY_INIT(0, WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
- WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_MEMORY_INIT(0, WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
+ WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
// OK, copy the full data segment to memory.
r.Call(0, 0, kWasmPageSize);
@@ -137,10 +134,9 @@ WASM_EXEC_TEST(MemoryInitOutOfBounds) {
WASM_EXEC_TEST(MemoryCopy) {
WasmRunner<uint32_t, uint32_t, uint32_t, uint32_t> r(execution_tier);
byte* mem = r.builder().AddMemory(kWasmPageSize);
- BUILD(
- r,
- WASM_MEMORY_COPY(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_MEMORY_COPY(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
+ WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
const byte initial[] = {0, 11, 22, 33, 44, 55, 66, 77};
memcpy(mem, initial, sizeof(initial));
@@ -165,10 +161,9 @@ WASM_EXEC_TEST(MemoryCopy) {
WASM_EXEC_TEST(MemoryCopyOverlapping) {
WasmRunner<uint32_t, uint32_t, uint32_t, uint32_t> r(execution_tier);
byte* mem = r.builder().AddMemory(kWasmPageSize);
- BUILD(
- r,
- WASM_MEMORY_COPY(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_MEMORY_COPY(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
+ WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
const byte initial[] = {10, 20, 30};
memcpy(mem, initial, sizeof(initial));
@@ -187,10 +182,9 @@ WASM_EXEC_TEST(MemoryCopyOverlapping) {
WASM_EXEC_TEST(MemoryCopyOutOfBoundsData) {
WasmRunner<uint32_t, uint32_t, uint32_t, uint32_t> r(execution_tier);
byte* mem = r.builder().AddMemory(kWasmPageSize);
- BUILD(
- r,
- WASM_MEMORY_COPY(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_MEMORY_COPY(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
+ WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
const byte data[] = {11, 22, 33, 44, 55, 66, 77, 88};
memcpy(mem, data, sizeof(data));
@@ -215,10 +209,9 @@ WASM_EXEC_TEST(MemoryCopyOutOfBoundsData) {
WASM_EXEC_TEST(MemoryCopyOutOfBounds) {
WasmRunner<uint32_t, uint32_t, uint32_t, uint32_t> r(execution_tier);
r.builder().AddMemory(kWasmPageSize);
- BUILD(
- r,
- WASM_MEMORY_COPY(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_MEMORY_COPY(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
+ WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
// Copy full range is OK.
CHECK_EQ(0, r.Call(0, 0, kWasmPageSize));
@@ -244,10 +237,9 @@ WASM_EXEC_TEST(MemoryCopyOutOfBounds) {
WASM_EXEC_TEST(MemoryFill) {
WasmRunner<uint32_t, uint32_t, uint32_t, uint32_t> r(execution_tier);
r.builder().AddMemory(kWasmPageSize);
- BUILD(
- r,
- WASM_MEMORY_FILL(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_MEMORY_FILL(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
+ WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
CHECK_EQ(0, r.Call(1, 33, 5));
CheckMemoryEqualsFollowedByZeroes(&r.builder(), {0, 33, 33, 33, 33, 33});
@@ -267,10 +259,9 @@ WASM_EXEC_TEST(MemoryFill) {
WASM_EXEC_TEST(MemoryFillValueWrapsToByte) {
WasmRunner<uint32_t, uint32_t, uint32_t, uint32_t> r(execution_tier);
r.builder().AddMemory(kWasmPageSize);
- BUILD(
- r,
- WASM_MEMORY_FILL(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_MEMORY_FILL(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
+ WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
CHECK_EQ(0, r.Call(0, 1000, 3));
const byte expected = 1000 & 255;
CheckMemoryEqualsFollowedByZeroes(&r.builder(),
@@ -280,10 +271,9 @@ WASM_EXEC_TEST(MemoryFillValueWrapsToByte) {
WASM_EXEC_TEST(MemoryFillOutOfBoundsData) {
WasmRunner<uint32_t, uint32_t, uint32_t, uint32_t> r(execution_tier);
r.builder().AddMemory(kWasmPageSize);
- BUILD(
- r,
- WASM_MEMORY_FILL(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_MEMORY_FILL(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
+ WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
const byte v = 123;
CHECK_EQ(0xDEADBEEF, r.Call(kWasmPageSize - 5, v, 999));
CheckMemoryEquals(&r.builder(), kWasmPageSize - 6, {0, 0, 0, 0, 0, 0});
@@ -292,10 +282,9 @@ WASM_EXEC_TEST(MemoryFillOutOfBoundsData) {
WASM_EXEC_TEST(MemoryFillOutOfBounds) {
WasmRunner<uint32_t, uint32_t, uint32_t, uint32_t> r(execution_tier);
r.builder().AddMemory(kWasmPageSize);
- BUILD(
- r,
- WASM_MEMORY_FILL(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_MEMORY_FILL(WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
+ WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
const byte v = 123;
@@ -316,7 +305,7 @@ WASM_EXEC_TEST(DataDropTwice) {
r.builder().AddMemory(kWasmPageSize);
const byte data[] = {0};
r.builder().AddPassiveDataSegment(base::ArrayVector(data));
- BUILD(r, WASM_DATA_DROP(0), kExprI32Const, 0);
+ r.Build({WASM_DATA_DROP(0), kExprI32Const, 0});
CHECK_EQ(0, r.Call());
CHECK_EQ(0, r.Call());
@@ -327,9 +316,9 @@ WASM_EXEC_TEST(DataDropThenMemoryInit) {
r.builder().AddMemory(kWasmPageSize);
const byte data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
r.builder().AddPassiveDataSegment(base::ArrayVector(data));
- BUILD(r, WASM_DATA_DROP(0),
- WASM_MEMORY_INIT(0, WASM_I32V_1(0), WASM_I32V_1(1), WASM_I32V_1(2)),
- kExprI32Const, 0);
+ r.Build({WASM_DATA_DROP(0),
+ WASM_MEMORY_INIT(0, WASM_I32V_1(0), WASM_I32V_1(1), WASM_I32V_1(2)),
+ kExprI32Const, 0});
CHECK_EQ(0xDEADBEEF, r.Call());
}
@@ -342,10 +331,9 @@ void TestTableCopyInbounds(TestExecutionTier execution_tier, int table_dst,
for (int i = 0; i < 10; ++i) {
r.builder().AddIndirectFunctionTable(nullptr, kTableSize);
}
- BUILD(r,
- WASM_TABLE_COPY(table_dst, table_src, WASM_LOCAL_GET(0),
- WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_TABLE_COPY(table_dst, table_src, WASM_LOCAL_GET(0),
+ WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
for (uint32_t i = 0; i <= kTableSize; ++i) {
r.CheckCallViaJS(0, 0, 0, i); // nop
@@ -394,151 +382,6 @@ void CheckTableCall(Isolate* isolate, Handle<WasmTableObject> table,
}
} // namespace
-void TestTableInitElems(TestExecutionTier execution_tier, int table_index) {
- Isolate* isolate = CcTest::InitIsolateOnce();
- HandleScope scope(isolate);
- TestSignatures sigs;
- WasmRunner<uint32_t, uint32_t, uint32_t, uint32_t> r(execution_tier);
- const uint32_t kTableSize = 5;
- std::vector<uint32_t> function_indexes;
- const uint32_t sig_index = r.builder().AddSignature(sigs.i_v());
-
- for (uint32_t i = 0; i < kTableSize; ++i) {
- WasmFunctionCompiler& fn = r.NewFunction(sigs.i_v(), "f");
- BUILD(fn, WASM_I32V_1(i));
- fn.SetSigIndex(sig_index);
- function_indexes.push_back(fn.function_index());
- }
-
- // Add 10 function tables, even though we only test one table.
- for (int i = 0; i < 10; ++i) {
- r.builder().AddIndirectFunctionTable(nullptr, kTableSize);
- }
- // Passive element segment has [f0, f1, f2, f3, f4].
- r.builder().AddPassiveElementSegment(function_indexes);
-
- WasmFunctionCompiler& call = r.NewFunction(sigs.i_i(), "call");
- BUILD(call,
- WASM_CALL_INDIRECT_TABLE(table_index, sig_index, WASM_LOCAL_GET(0)));
- const uint32_t call_index = call.function_index();
-
- BUILD(r,
- WASM_TABLE_INIT(table_index, 0, WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
- WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
-
- auto table =
- handle(WasmTableObject::cast(
- r.builder().instance_object()->tables().get(table_index)),
- isolate);
- const double null = 0xDEADBEEF;
-
- CheckTableCall(isolate, table, &r, call_index, null, null, null, null, null);
-
- // 0 count is ok in bounds, and at end of regions.
- r.CheckCallViaJS(0, 0, 0, 0);
- r.CheckCallViaJS(0, kTableSize, 0, 0);
- r.CheckCallViaJS(0, 0, kTableSize, 0);
-
- // Test actual writes.
- r.CheckCallViaJS(0, 0, 0, 1);
- CheckTableCall(isolate, table, &r, call_index, 0.0, null, null, null, null);
- r.CheckCallViaJS(0, 0, 0, 2);
- CheckTableCall(isolate, table, &r, call_index, 0.0, 1.0, null, null, null);
- r.CheckCallViaJS(0, 0, 0, 3);
- CheckTableCall(isolate, table, &r, call_index, 0.0, 1.0, 2.0, null, null);
- r.CheckCallViaJS(0, 3, 0, 2);
- CheckTableCall(isolate, table, &r, call_index, 0.0, 1.0, 2.0, 0.0, 1.0);
- r.CheckCallViaJS(0, 3, 1, 2);
- CheckTableCall(isolate, table, &r, call_index, 0.0, 1.0, 2.0, 1.0, 2.0);
- r.CheckCallViaJS(0, 3, 2, 2);
- CheckTableCall(isolate, table, &r, call_index, 0.0, 1.0, 2.0, 2.0, 3.0);
- r.CheckCallViaJS(0, 3, 3, 2);
- CheckTableCall(isolate, table, &r, call_index, 0.0, 1.0, 2.0, 3.0, 4.0);
-}
-
-WASM_COMPILED_EXEC_TEST(TableInitElems0) {
- TestTableInitElems(execution_tier, 0);
-}
-WASM_COMPILED_EXEC_TEST(TableInitElems7) {
- TestTableInitElems(execution_tier, 7);
-}
-WASM_COMPILED_EXEC_TEST(TableInitElems9) {
- TestTableInitElems(execution_tier, 9);
-}
-
-void TestTableInitOob(TestExecutionTier execution_tier, int table_index) {
- Isolate* isolate = CcTest::InitIsolateOnce();
- HandleScope scope(isolate);
- TestSignatures sigs;
- WasmRunner<uint32_t, uint32_t, uint32_t, uint32_t> r(execution_tier);
- const uint32_t kTableSize = 5;
- std::vector<uint32_t> function_indexes;
- const uint32_t sig_index = r.builder().AddSignature(sigs.i_v());
-
- for (uint32_t i = 0; i < kTableSize; ++i) {
- WasmFunctionCompiler& fn = r.NewFunction(sigs.i_v(), "f");
- BUILD(fn, WASM_I32V_1(i));
- fn.SetSigIndex(sig_index);
- function_indexes.push_back(fn.function_index());
- }
-
- for (int i = 0; i < 10; ++i) {
- r.builder().AddIndirectFunctionTable(nullptr, kTableSize);
- }
- r.builder().AddPassiveElementSegment(function_indexes);
-
- WasmFunctionCompiler& call = r.NewFunction(sigs.i_i(), "call");
- BUILD(call,
- WASM_CALL_INDIRECT_TABLE(table_index, sig_index, WASM_LOCAL_GET(0)));
- const uint32_t call_index = call.function_index();
-
- BUILD(r,
- WASM_TABLE_INIT(table_index, 0, WASM_LOCAL_GET(0), WASM_LOCAL_GET(1),
- WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
-
- auto table =
- handle(WasmTableObject::cast(
- r.builder().instance_object()->tables().get(table_index)),
- isolate);
- const double null = 0xDEADBEEF;
-
- CheckTableCall(isolate, table, &r, call_index, null, null, null, null, null);
-
- // Out-of-bounds table.init should not have any effect.
- r.CheckCallViaJS(0xDEADBEEF, 3, 0, 3);
- CheckTableCall(isolate, table, &r, call_index, null, null, null, null, null);
-
- r.CheckCallViaJS(0xDEADBEEF, 0, 3, 3);
- CheckTableCall(isolate, table, &r, call_index, null, null, null, null, null);
-
- // 0-count is still oob if target is invalid.
- r.CheckCallViaJS(0xDEADBEEF, kTableSize + 1, 0, 0);
- r.CheckCallViaJS(0xDEADBEEF, 0, kTableSize + 1, 0);
-
- r.CheckCallViaJS(0xDEADBEEF, 0, 0, 6);
- r.CheckCallViaJS(0xDEADBEEF, 0, 1, 5);
- r.CheckCallViaJS(0xDEADBEEF, 0, 2, 4);
- r.CheckCallViaJS(0xDEADBEEF, 0, 3, 3);
- r.CheckCallViaJS(0xDEADBEEF, 0, 4, 2);
- r.CheckCallViaJS(0xDEADBEEF, 0, 5, 1);
-
- r.CheckCallViaJS(0xDEADBEEF, 0, 0, 6);
- r.CheckCallViaJS(0xDEADBEEF, 1, 0, 5);
- r.CheckCallViaJS(0xDEADBEEF, 2, 0, 4);
- r.CheckCallViaJS(0xDEADBEEF, 3, 0, 3);
- r.CheckCallViaJS(0xDEADBEEF, 4, 0, 2);
- r.CheckCallViaJS(0xDEADBEEF, 5, 0, 1);
-
- r.CheckCallViaJS(0xDEADBEEF, 10, 0, 1);
- r.CheckCallViaJS(0xDEADBEEF, 0, 10, 1);
-}
-
-WASM_COMPILED_EXEC_TEST(TableInitOob0) { TestTableInitOob(execution_tier, 0); }
-WASM_COMPILED_EXEC_TEST(TableInitOob7) { TestTableInitOob(execution_tier, 7); }
-WASM_COMPILED_EXEC_TEST(TableInitOob9) { TestTableInitOob(execution_tier, 9); }
-
void TestTableCopyElems(TestExecutionTier execution_tier, int table_dst,
int table_src) {
Isolate* isolate = CcTest::InitIsolateOnce();
@@ -551,7 +394,7 @@ void TestTableCopyElems(TestExecutionTier execution_tier, int table_dst,
for (uint32_t i = 0; i < kTableSize; ++i) {
WasmFunctionCompiler& fn = r.NewFunction(sigs.i_v(), "f");
- BUILD(fn, WASM_I32V_1(i));
+ fn.Build({WASM_I32V_1(i)});
fn.SetSigIndex(sig_index);
function_indexes[i] = fn.function_index();
}
@@ -560,10 +403,9 @@ void TestTableCopyElems(TestExecutionTier execution_tier, int table_dst,
r.builder().AddIndirectFunctionTable(function_indexes, kTableSize);
}
- BUILD(r,
- WASM_TABLE_COPY(table_dst, table_src, WASM_LOCAL_GET(0),
- WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_TABLE_COPY(table_dst, table_src, WASM_LOCAL_GET(0),
+ WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
r.builder().InitializeWrapperCache();
@@ -629,7 +471,7 @@ void TestTableCopyCalls(TestExecutionTier execution_tier, int table_dst,
for (uint32_t i = 0; i < kTableSize; ++i) {
WasmFunctionCompiler& fn = r.NewFunction(sigs.i_v(), "f");
- BUILD(fn, WASM_I32V_1(i));
+ fn.Build({WASM_I32V_1(i)});
fn.SetSigIndex(sig_index);
function_indexes[i] = fn.function_index();
}
@@ -639,14 +481,13 @@ void TestTableCopyCalls(TestExecutionTier execution_tier, int table_dst,
}
WasmFunctionCompiler& call = r.NewFunction(sigs.i_i(), "call");
- BUILD(call,
- WASM_CALL_INDIRECT_TABLE(table_dst, sig_index, WASM_LOCAL_GET(0)));
+ call.Build(
+ {WASM_CALL_INDIRECT_TABLE(table_dst, sig_index, WASM_LOCAL_GET(0))});
const uint32_t call_index = call.function_index();
- BUILD(r,
- WASM_TABLE_COPY(table_dst, table_src, WASM_LOCAL_GET(0),
- WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_TABLE_COPY(table_dst, table_src, WASM_LOCAL_GET(0),
+ WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
auto table =
handle(WasmTableObject::cast(
@@ -700,7 +541,7 @@ void TestTableCopyOobWrites(TestExecutionTier execution_tier, int table_dst,
for (uint32_t i = 0; i < kTableSize; ++i) {
WasmFunctionCompiler& fn = r.NewFunction(sigs.i_v(), "f");
- BUILD(fn, WASM_I32V_1(i));
+ fn.Build({WASM_I32V_1(i)});
fn.SetSigIndex(sig_index);
function_indexes[i] = fn.function_index();
}
@@ -709,10 +550,9 @@ void TestTableCopyOobWrites(TestExecutionTier execution_tier, int table_dst,
r.builder().AddIndirectFunctionTable(function_indexes, kTableSize);
}
- BUILD(r,
- WASM_TABLE_COPY(table_dst, table_src, WASM_LOCAL_GET(0),
- WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_TABLE_COPY(table_dst, table_src, WASM_LOCAL_GET(0),
+ WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
r.builder().InitializeWrapperCache();
@@ -769,10 +609,9 @@ void TestTableCopyOob1(TestExecutionTier execution_tier, int table_dst,
r.builder().AddIndirectFunctionTable(nullptr, kTableSize);
}
- BUILD(r,
- WASM_TABLE_COPY(table_dst, table_src, WASM_LOCAL_GET(0),
- WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
- kExprI32Const, 0);
+ r.Build({WASM_TABLE_COPY(table_dst, table_src, WASM_LOCAL_GET(0),
+ WASM_LOCAL_GET(1), WASM_LOCAL_GET(2)),
+ kExprI32Const, 0});
r.CheckCallViaJS(0, 0, 0, 1); // nop
r.CheckCallViaJS(0, 0, 0, kTableSize); // nop
@@ -815,29 +654,6 @@ WASM_COMPILED_EXEC_TEST(TableCopyOob1From6To6) {
TestTableCopyOob1(execution_tier, 6, 6);
}
-WASM_COMPILED_EXEC_TEST(ElemDropTwice) {
- WasmRunner<uint32_t> r(execution_tier);
- r.builder().AddIndirectFunctionTable(nullptr, 1);
- r.builder().AddPassiveElementSegment({});
- BUILD(r, WASM_ELEM_DROP(0), kExprI32Const, 0);
-
- r.CheckCallViaJS(0);
- r.CheckCallViaJS(0);
-}
-
-WASM_COMPILED_EXEC_TEST(ElemDropThenTableInit) {
- WasmRunner<uint32_t, uint32_t> r(execution_tier);
- r.builder().AddIndirectFunctionTable(nullptr, 1);
- r.builder().AddPassiveElementSegment({});
- BUILD(
- r, WASM_ELEM_DROP(0),
- WASM_TABLE_INIT(0, 0, WASM_I32V_1(0), WASM_I32V_1(0), WASM_LOCAL_GET(0)),
- kExprI32Const, 0);
-
- r.CheckCallViaJS(0, 0);
- r.CheckCallViaJS(0xDEADBEEF, 1);
-}
-
} // namespace test_run_wasm_bulk_memory
} // namespace wasm
} // namespace internal