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

Function testCallBinopVoid

deps/v8/test/mjsunit/wasm/import-function.js:167–227  ·  view source on GitHub ↗
(type, func, check)

Source from the content-addressed store, hash-verified

165
166
167function testCallBinopVoid(type, func, check) {
168 var passed_length = -1;
169 var passed_a = -1;
170 var passed_b = -1;
171 var args_a = -1;
172 var args_b = -1;
173
174 var ffi = {q: {func: function(a, b) {
175 passed_length = arguments.length;
176 passed_a = a;
177 passed_b = b;
178 args_a = arguments[0];
179 args_b = arguments[1];
180 }}};
181
182 var builder = new WasmModuleBuilder();
183
184 builder.addImport("q", "func", makeSig_v_xx(type));
185 builder.addFunction("main", makeSig_r_xx(kWasmI32, type))
186 .addBody([
187 kExprLocalGet, 0, // --
188 kExprLocalGet, 1, // --
189 kExprCallFunction, 0, // --
190 kExprI32Const, 39, // --
191 ])
192 .exportFunc("main");
193
194 var main = builder.instantiate(ffi).exports.main;
195
196 print("testCallBinopVoid", type);
197
198 for (var i = 0; i < 100000; i += 10003.1) {
199 var a = 22.5 + i, b = 10.5 + i;
200 var r = main(a, b);
201 assertEquals(39, r);
202 assertEquals(2, passed_length);
203 var expected_a, expected_b;
204 switch (type) {
205 case kWasmI32: {
206 expected_a = a | 0;
207 expected_b = b | 0;
208 break;
209 }
210 case kWasmF32: {
211 expected_a = Math.fround(a);
212 expected_b = Math.fround(b);
213 break;
214 }
215 case kWasmF64: {
216 expected_a = a;
217 expected_b = b;
218 break;
219 }
220 }
221
222 assertEquals(expected_a, args_a);
223 assertEquals(expected_b, args_b);
224 assertEquals(expected_a, passed_a);

Callers 1

import-function.jsFile · 0.70

Calls 10

addImportMethod · 0.95
addFunctionMethod · 0.95
instantiateMethod · 0.95
makeSig_v_xxFunction · 0.70
makeSig_r_xxFunction · 0.70
mainFunction · 0.70
printFunction · 0.50
assertEqualsFunction · 0.50
exportFuncMethod · 0.45
addBodyMethod · 0.45

Tested by

no test coverage detected