| // 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 --gc-interval=500 --stress-compaction |
| |
| load("test/mjsunit/wasm/wasm-constants.js"); |
| load("test/mjsunit/wasm/wasm-module-builder.js"); |
| |
| function run(f) { |
| var builder = new WasmModuleBuilder(); |
| builder.addImport("m", "f", kSig_i_i); |
| builder.addFunction("main", kSig_i_i) |
| .addBody([ |
| kExprGetLocal, 0, |
| kExprCallFunction, 0]) |
| .exportAs("main"); |
| |
| print("module"); |
| var module = new WebAssembly.Module(builder.toBuffer()); |
| |
| for (var i = 0; i < 10; i++) { |
| print(" instance " + i); |
| var instance = new WebAssembly.Instance(module, {m: {f: f}}); |
| var g = instance.exports.main; |
| for (var j = 0; j < 10; j++) { |
| assertEquals(f(j), g(j)); |
| } |
| } |
| } |
| |
| (function test() { |
| for (var i = 0; i < 10; i++) { |
| run(x => (x + 19 + i)); |
| run(x => (x - 18)); |
| } |
| })(); |