nodejs/deps/v8/test/mjsunit/regress/wasm/regress-1490847-3.js

46 lines
1.2 KiB
JavaScript
Raw Permalink Normal View History

// Copyright 2021 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: --wasm-inlining
d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");
(function InliningIntoTryBlockWithPhi() {
let builder = new WasmModuleBuilder();
let tag = builder.addTag(makeSig([], []));
let sig = builder.addType(makeSig([], [kWasmI32]));
let callee = builder.addFunction('callee', makeSig([], [kWasmI32, kWasmI32]))
.addBody([
kExprTry, kWasmVoid,
kExprCatch, tag,
kExprI32Const, 2,
kExprI32Const, 2,
kExprReturn,
kExprEnd,
kExprI32Const, 3,
kExprI32Const, 3,
]).exportFunc();
builder.addFunction('main',
makeSig([kWasmI32], [kWasmI32]))
.addLocals(kWasmAnyRef, 1)
.addBody([
kExprRefNull, sig, kExprDrop,
kExprTry, sig,
kExprCallFunction, callee.index,
kExprI32Add,
kExprCatch, tag,
kExprI32Const, 2,
kExprEnd,
])
.exportFunc();
let instance = builder.instantiate({});
let wasm = instance.exports;
assertEquals(6, wasm.main());
})();