Index: test/mjsunit/wasm/instance-gc.js |
diff --git a/test/mjsunit/wasm/instance-gc.js b/test/mjsunit/wasm/instance-gc.js |
deleted file mode 100644 |
index 1713f27b99af2eec16480445d0cc89a09fb264d2..0000000000000000000000000000000000000000 |
--- a/test/mjsunit/wasm/instance-gc.js |
+++ /dev/null |
@@ -1,122 +0,0 @@ |
-// Copyright 2016 the V8 project authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-// Flags: --expose-wasm --expose-gc |
- |
-load("test/mjsunit/wasm/wasm-constants.js"); |
-load("test/mjsunit/wasm/wasm-module-builder.js"); |
- |
-let nogc = () => {}; |
- |
-function newModule() { |
- let builder = new WasmModuleBuilder(); |
- builder.addMemory(1, 1, true); |
- builder.addFunction("main", kSig_i) |
- .addBody([kExprI32Const, 0, kExprI32LoadMem, 0, 0]) |
- .exportFunc(); |
- |
- return new WebAssembly.Module(builder.toBuffer()); |
-} |
- |
-function newInstance(module, val) { |
- var instance = new WebAssembly.Instance(module); |
- var view = new Int32Array(instance.exports.memory.buffer); |
- view[0] = val; |
- return instance; |
-} |
- |
-function TestSingleLiveInstance(gc) { |
- let module = newModule(); |
- |
- print("TestSingleLiveInstance..."); |
- for (var i = 0; i < 5; i++) { |
- (() => { // don't leak references between iterations. |
- print(" [" + i + "]..."); |
- gc(); |
- var instance = newInstance(module, i + 99); |
- assertEquals(i + 99, instance.exports.main()); |
- })(); |
- } |
-} |
- |
-TestSingleLiveInstance(nogc); |
-TestSingleLiveInstance(gc); |
- |
-function TestMultiInstance(gc) { |
- let module = newModule(); |
- |
- print("TestMultiInstance..."); |
- // Note: compute the root instances in another function to be |
- // sure that {roots} really is the only set of roots to the instances. |
- let roots = (() => { return [ |
- newInstance(module, 33), |
- newInstance(module, 4444), |
- newInstance(module, 555555) |
- ];})(); |
- |
- (() => { // don't leak references! |
- print(" [0]..."); |
- gc(); |
- assertEquals(33, roots[0].exports.main()); |
- roots[0] = null; |
- })(); |
- |
- (() => { // don't leak references! |
- print(" [1]..."); |
- gc(); |
- assertEquals(4444, roots[1].exports.main()); |
- roots[1] = null; |
- })(); |
- |
- (() => { // don't leak references! |
- print(" [2]..."); |
- gc(); |
- assertEquals(555555, roots[2].exports.main()); |
- roots[2] = null; |
- })(); |
-} |
- |
-TestMultiInstance(nogc); |
-TestMultiInstance(gc); |
- |
-function TestReclaimingCompiledModule() { |
- let module = newModule(); |
- |
- print("TestReclaimingCompiledModule..."); |
- let roots = (() => { return [ |
- newInstance(module, 7777), |
- newInstance(module, 8888), |
- ];})(); |
- |
- (() => { // don't leak references! |
- print(" [0]..."); |
- assertEquals(7777, roots[0].exports.main()); |
- assertEquals(8888, roots[1].exports.main()); |
- roots[1] = null; |
- })(); |
- |
- (() => { // don't leak references! |
- print(" [1]..."); |
- gc(); |
- roots[1] = newInstance(module, 9999); |
- assertEquals(7777, roots[0].exports.main()); |
- assertEquals(9999, roots[1].exports.main()); |
- roots[0] = null; |
- roots[1] = null; |
- })(); |
- |
- (() => { // don't leak references! |
- print(" [2]..."); |
- gc(); |
- roots[0] = newInstance(module, 11111); |
- roots[1] = newInstance(module, 22222); |
- assertEquals(11111, roots[0].exports.main()); |
- assertEquals(22222, roots[1].exports.main()); |
- roots[0] = null; |
- roots[1] = null; |
- })(); |
-} |
- |
-TestReclaimingCompiledModule(nogc); |
-TestReclaimingCompiledModule(gc); |