MCPcopy Create free account
hub / github.com/nodejs/node / MakeFuncs

Function MakeFuncs

deps/v8/test/mjsunit/wasm/custom-descriptors-casts.js:49–80  ·  view source on GitHub ↗
(name, type_index, global_index, exact_bit)

Source from the content-addressed store, hash-verified

47]);
48
49function MakeFuncs(name, type_index, global_index, exact_bit) {
50 let sig_r_v = makeSig([], [wasmRefType(type_index)]);
51 let exact = exact_bit ? [kWasmExact] : [];
52 builder.addFunction("cast" + name, sig_r_v).exportFunc().addBody([
53 kExprGlobalGet, global_index,
54 kGCPrefix, kExprRefCast, ...exact, type_index,
55 ]);
56 builder.addFunction("test" + name, kSig_i_v).exportFunc().addBody([
57 kExprGlobalGet, global_index,
58 kGCPrefix, kExprRefTest, ...exact, type_index,
59 ]);
60 builder.addFunction("br" + name, kSig_i_v).exportFunc().addBody([
61 kExprBlock, kAnyRefCode,
62 kExprGlobalGet, global_index,
63 kGCPrefix, kExprBrOnCast, 0b11, 0, kAnyRefCode, ...exact, type_index,
64 kExprI32Const, 0, // Branch not taken.
65 kExprReturn,
66 kExprEnd,
67 kExprDrop,
68 kExprI32Const, 1, // Branch taken.
69 ]);
70 builder.addFunction("brfail" + name, kSig_i_v).exportFunc().addBody([
71 kExprBlock, kAnyRefCode,
72 kExprGlobalGet, global_index,
73 kGCPrefix, kExprBrOnCastFail, 0b11, 0, kAnyRefCode, ...exact, type_index,
74 kExprI32Const, 1, // Branch not taken.
75 kExprReturn,
76 kExprEnd,
77 kExprDrop,
78 kExprI32Const, 0, // Branch taken.
79 ]);
80}
81
82MakeFuncs("_exact", $s0, $glob_s0.index, true);
83MakeFuncs("_final_exact", $s1, $glob_s1.index, true);

Callers 1

Calls 5

makeSigFunction · 0.70
wasmRefTypeFunction · 0.70
addBodyMethod · 0.45
exportFuncMethod · 0.45
addFunctionMethod · 0.45

Tested by

no test coverage detected