Upload Kmake

This commit is contained in:
Gorochu
2026-05-26 23:36:42 -07:00
parent ba051b2f74
commit 555ec72358
41615 changed files with 13344630 additions and 1 deletions

View File

@ -0,0 +1,71 @@
// 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: --no-liftoff
d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");
const builder = new WasmModuleBuilder();
let struct_type = builder.addStruct([makeField(kWasmStructRef, false)]);
let struct_type2 =
builder.addStruct([makeField(wasmRefType(kWasmStructRef), false)]);
let field_index = 0;
builder.addFunction('cast_i31', kSig_v_v)
.exportFunc()
.addBody([
kExprRefNull, struct_type,
kGCPrefix, kExprStructGet, struct_type, field_index,
kGCPrefix, kExprRefCastNull, kI31RefCode,
kExprDrop,
]);
builder.addFunction('cast_i31_nn', kSig_v_v)
.exportFunc()
.addBody([
kExprRefNull, struct_type2,
kGCPrefix, kExprStructGet, struct_type2, field_index,
kGCPrefix, kExprRefCast, kI31RefCode,
kExprDrop,
]);
builder.addFunction('cast_eq', kSig_v_v)
.exportFunc()
.addBody([
kExprRefNull, struct_type,
kGCPrefix, kExprStructGet, struct_type, field_index,
kGCPrefix, kExprRefCastNull, kEqRefCode,
kExprDrop,
]);
builder.addFunction('test_i31', kSig_v_v)
.exportFunc()
.addBody([
kExprRefNull, struct_type,
kGCPrefix, kExprStructGet, struct_type, field_index,
kGCPrefix, kExprRefTestNull, kI31RefCode,
kExprDrop,
]);
builder.addFunction('test_eq', kSig_v_v)
.exportFunc()
.addBody([
kExprRefNull, struct_type,
kGCPrefix, kExprStructGet, struct_type, field_index,
kGCPrefix, kExprRefTestNull, kEqRefCode,
kExprDrop,
]);
const instance = builder.instantiate();
assertThrows(() => instance.exports.cast_i31(), WebAssembly.RuntimeError,
'dereferencing a null pointer');
assertThrows(() => instance.exports.cast_i31_nn(), WebAssembly.RuntimeError,
'dereferencing a null pointer');
assertThrows(() => instance.exports.cast_eq(), WebAssembly.RuntimeError,
'dereferencing a null pointer');
assertThrows(() => instance.exports.test_i31(), WebAssembly.RuntimeError,
'dereferencing a null pointer');
assertThrows(() => instance.exports.test_eq(), WebAssembly.RuntimeError,
'dereferencing a null pointer');