diff options
Diffstat (limited to 'deps/v8/test/mjsunit/regress/wasm/regress-1417908.js')
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-1417908.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-1417908.js b/deps/v8/test/mjsunit/regress/wasm/regress-1417908.js new file mode 100644 index 0000000000..daa84d2cbe --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-1417908.js @@ -0,0 +1,32 @@ +// Copyright 2023 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-wasm-gc + +d8.file.execute('test/mjsunit/wasm/wasm-module-builder.js'); + +const builder = new WasmModuleBuilder(); +builder.addFunction("testFailNull", makeSig([], [kWasmAnyRef])) +.exportFunc() +.addBody([ + kExprRefNull, kAnyRefCode, + kGCPrefix, kExprBrOnStruct, 0, + kGCPrefix, kExprBrOnCastFailNull, 0, kNullRefCode, + kGCPrefix, kExprBrOnStruct, 0, + kExprUnreachable, +]); + +builder.addFunction("testNull", makeSig([], [kWasmAnyRef])) +.exportFunc() +.addBody([ + kExprRefNull, kAnyRefCode, + kGCPrefix, kExprBrOnStruct, 0, + kGCPrefix, kExprBrOnCastNull, 0, kNullRefCode, + kGCPrefix, kExprBrOnStruct, 0, + kExprUnreachable, +]); + +let wasm = builder.instantiate().exports; +assertTraps(kTrapUnreachable, () => wasm.testFailNull()); +assertSame(null, wasm.testNull()); |