| // Copyright 2019 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: --experimental-stack-trace-frames |
| |
| // Test wasm compilation explicitly, since this creates a promise which is only |
| // resolved later, i.e. the message queue gets empty in-between. |
| // The important part here is that d8 exits with a non-zero exit code. |
| |
| load('test/mjsunit/mjsunit.js'); |
| load('test/mjsunit/wasm/wasm-module-builder.js'); |
| |
| assertPromiseResult((async function test() { |
| let ok_buffer = (() => { |
| let builder = new WasmModuleBuilder(); |
| builder.addFunction(undefined, kSig_i_v).addBody([kExprI32Const, 42]); |
| return builder.toBuffer(); |
| })(); |
| let bad_buffer = new ArrayBuffer(0); |
| let kNumCompiles = 3; |
| |
| // Three compilations of the OK module should succeed. |
| for (var i = 0; i < kNumCompiles; ++i) { |
| await WebAssembly.compile(ok_buffer); |
| } |
| |
| // Three compilations of the bad module should fail. |
| for (var i = 0; i < kNumCompiles; ++i) { |
| await WebAssembly.compile(bad_buffer); |
| } |
| })()); |