// Copyright 2020 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: --no-liftoff --experimental-wasm-return-call --experimental-wasm-threads load("test/mjsunit/wasm/wasm-module-builder.js"); (function Regress1137608() { print(arguments.callee.name); let builder = new WasmModuleBuilder(); let sig0 = builder.addType(kSig_i_iii); let sig1 = builder.addType(makeSig([kWasmF64, kWasmF64, kWasmI32, kWasmI32, kWasmI32, kWasmF32, kWasmI32, kWasmF64, kWasmI32, kWasmF32, kWasmI32, kWasmF32, kWasmI32, kWasmF64, kWasmI32], [kWasmI32])); let main = builder.addFunction("main", sig0) .addBody([ kExprI64Const, 0, kExprF64UConvertI64, kExprF64Const, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, kExprF64Const, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, kExprF64Mul, kExprI32Const, 0, kExprF64Const, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, kExprF64StoreMem, 0x00, 0xb0, 0xe0, 0xc0, 0x81, 0x03, kExprI32Const, 0, kExprI32Const, 0, kExprI32Const, 0, kExprF32Const, 0x00, 0x00, 0x00, 0x00, kExprI32Const, 0, kExprF64Const, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, kExprI32Const, 0, kExprF32Const, 0x00, 0x00, 0x00, 0x00, kExprI32Const, 0, kExprF32Const, 0x00, 0x00, 0x00, 0x00, kExprI32Const, 0, kExprF64Const, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, kExprI32Const, 0, kExprI32Const, 2, kExprReturnCallIndirect, sig1, kTableZero]).exportFunc(); builder.addFunction("f", sig1).addBody([kExprI32Const, 0]); builder.addTable(kWasmAnyFunc, 4, 4); builder.addMemory(16, 32, false, true); let module = new WebAssembly.Module(builder.toBuffer()); let instance = new WebAssembly.Instance(module); })();