nodejs/deps/v8/test/mjsunit/regress/wasm/regress-342602616.js
Michaël Zasso 918fe04351
deps: update V8 to 13.6.233.8
PR-URL: https://github.com/nodejs/node/pull/58070
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
2025-05-02 15:06:53 +02:00

81 lines
3.3 KiB
JavaScript

// Copyright 2024 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-staging --no-wasm-lazy-compilation
// Flags: --no-wasm-loop-peeling --no-wasm-loop-unrolling
d8.file.execute('test/mjsunit/wasm/wasm-module-builder.js');
const builder = new WasmModuleBuilder();
let $sig0 = builder.addType(kSig_v_v);
builder.startRecGroup();
let $array1 = builder.addArray(wasmRefType(6), true, kNoSuperType, true);
let $array2 = builder.addArray(wasmRefNullType(9), false, kNoSuperType, false);
let $sig3 = builder.addType(makeSig([], [kWasmF64]));
let $struct4 = builder.addStruct([makeField(kWasmI64, false), makeField(kWasmI8, true)], kNoSuperType, true);
let $sig5 = builder.addType(makeSig([wasmRefType(9)], [wasmRefType($array2)]), kNoSuperType, false);
let $sig6 = builder.addType(kSig_i_v, kNoSuperType, false);
let $struct7 = builder.addStruct([makeField(kWasmF64, true), makeField(kWasmEqRef, false), makeField(wasmRefType($sig6), false), makeField(kWasmI8, false)], kNoSuperType, false);
let $sig8 = builder.addType(makeSig([wasmRefType(9)], [kWasmF32]));
let $sig10 = builder.addType(makeSig([wasmRefNullType($array1), kWasmI32, wasmRefType(9)], []), kNoSuperType, false);
let $struct15 = builder.addStruct([makeField(kWasmI8, false), makeField(kWasmI16, true), makeField(kWasmI32, true), makeField(kWasmI64, true), makeField(kWasmI16, true)], kNoSuperType, false);
builder.endRecGroup();
let $sig175 = builder.addType(makeSig([kWasmStructRef, kWasmI32], [kWasmFuncRef]));
let $func322 = builder.addFunction("f322", $sig175).exportFunc();
let $mem0 = builder.addMemory(16, 17, true);
let $global14 = builder.addGlobal(kWasmI32, false, false, wasmI32Const(-2078671));
// func $func322: [kWasmStructRef, kWasmI32] -> [kWasmFuncRef]
$func322.addLocals(kWasmI32, 1)
.addLocals(wasmRefType($struct15), 1)
.addBody([
kGCPrefix, kExprStructNewDefault, $struct15,
kExprLocalSet, 3,
kExprBlock, kFuncRefCode,
kExprBlock, kWasmVoid,
kExprLoop, kWasmRefNull, kI31RefCode,
kExprGlobalGet, $global14.index,
...wasmF64Const(524287.133),
...wasmF64Const(-120),
kExprF64CopySign,
kExprF64StoreMem, 3, 22,
kExprLocalGet, 3,
kGCPrefix, kExprStructGetS, $struct15, 4,
kExprLocalTee, 2, // $var2
kExprBrIf, 1,
kExprUnreachable,
kExprEnd,
kExprDrop,
kExprEnd,
kExprLocalGet, 2, // $var2
kExprDrop,
kExprLoop, kWasmVoid,
kExprBlock, kWasmVoid,
...wasmF64Const(0),
kExprLoop, kWasmF64,
kExprBlock, kWasmF64,
...wasmI32Const(-2147483648),
kExprLocalGet, 1, // $var1
kExprLocalGet, 2, // $var2
kExprLocalTee, 1, // $var1
...wasmI64Const(-108n),
...wasmI32Const(-32767),
kGCPrefix, kExprStructNew, $struct15,
kExprI32Const, 0,
kExprIf, kWasmVoid,
kExprBr, 4,
kExprEnd,
kExprDrop,
...wasmF64Const(-144115188075855870),
kExprEnd,
kExprEnd,
kExprUnreachable,
kExprEnd,
kExprEnd,
kExprUnreachable,
kExprEnd,
]);
const instance = builder.instantiate({});