forked from kozorizki/binaryen
When generating assertions, traverse the `WASTScript` data structure rather than interleaving assertion parsing with emitting.
137 lines
2.3 KiB
JavaScript
137 lines
2.3 KiB
JavaScript
import * as spectest from 'spectest';
|
|
|
|
function asmFunc(imports) {
|
|
var Math_imul = Math.imul;
|
|
var Math_fround = Math.fround;
|
|
var Math_abs = Math.abs;
|
|
var Math_clz32 = Math.clz32;
|
|
var Math_min = Math.min;
|
|
var Math_max = Math.max;
|
|
var Math_floor = Math.floor;
|
|
var Math_ceil = Math.ceil;
|
|
var Math_trunc = Math.trunc;
|
|
var Math_sqrt = Math.sqrt;
|
|
var spectest = imports.spectest;
|
|
var print = spectest.print_i32;
|
|
function $2() {
|
|
return 13 | 0;
|
|
}
|
|
|
|
function $3($0) {
|
|
$0 = $0 | 0;
|
|
return $0 + 1 | 0 | 0;
|
|
}
|
|
|
|
function $4(a) {
|
|
a = a | 0;
|
|
return a - 2 | 0 | 0;
|
|
}
|
|
|
|
function $5($0) {
|
|
$0 = $0 | 0;
|
|
print($0 | 0);
|
|
}
|
|
|
|
return {
|
|
"one": $2,
|
|
"two": $3,
|
|
"three": $4,
|
|
"four": $5
|
|
};
|
|
}
|
|
|
|
var retasmFunc = asmFunc({
|
|
"spectest": spectest,
|
|
});
|
|
export var one = retasmFunc.one;
|
|
export var two = retasmFunc.two;
|
|
export var three = retasmFunc.three;
|
|
export var four = retasmFunc.four;
|
|
|
|
function asmFunc(imports) {
|
|
var Math_imul = Math.imul;
|
|
var Math_fround = Math.fround;
|
|
var Math_abs = Math.abs;
|
|
var Math_clz32 = Math.clz32;
|
|
var Math_min = Math.min;
|
|
var Math_max = Math.max;
|
|
var Math_floor = Math.floor;
|
|
var Math_ceil = Math.ceil;
|
|
var Math_trunc = Math.trunc;
|
|
var Math_sqrt = Math.sqrt;
|
|
function t1() {
|
|
return 1 | 0;
|
|
}
|
|
|
|
function t2() {
|
|
return 2 | 0;
|
|
}
|
|
|
|
function t3() {
|
|
return 3 | 0;
|
|
}
|
|
|
|
function u1() {
|
|
return 4 | 0;
|
|
}
|
|
|
|
function u2() {
|
|
return 5 | 0;
|
|
}
|
|
|
|
function $0(i) {
|
|
i = i | 0;
|
|
return FUNCTION_TABLE[i | 0]() | 0 | 0;
|
|
}
|
|
|
|
function $1(i) {
|
|
i = i | 0;
|
|
return FUNCTION_TABLE[i | 0]() | 0 | 0;
|
|
}
|
|
|
|
var FUNCTION_TABLE = [t1, t2, t3, u1, u2, t1, t3];
|
|
return {
|
|
"callt": $0,
|
|
"callu": $1
|
|
};
|
|
}
|
|
|
|
var retasmFunc = asmFunc({
|
|
});
|
|
export var callt = retasmFunc.callt;
|
|
export var callu = retasmFunc.callu;
|
|
|
|
function asmFunc(imports) {
|
|
var Math_imul = Math.imul;
|
|
var Math_fround = Math.fround;
|
|
var Math_abs = Math.abs;
|
|
var Math_clz32 = Math.clz32;
|
|
var Math_min = Math.min;
|
|
var Math_max = Math.max;
|
|
var Math_floor = Math.floor;
|
|
var Math_ceil = Math.ceil;
|
|
var Math_trunc = Math.trunc;
|
|
var Math_sqrt = Math.sqrt;
|
|
function t1() {
|
|
return 1 | 0;
|
|
}
|
|
|
|
function t2() {
|
|
return 2 | 0;
|
|
}
|
|
|
|
function $0(i) {
|
|
i = i | 0;
|
|
return FUNCTION_TABLE[i | 0]() | 0 | 0;
|
|
}
|
|
|
|
var FUNCTION_TABLE = [t1, t2];
|
|
return {
|
|
"callt": $0
|
|
};
|
|
}
|
|
|
|
var retasmFunc = asmFunc({
|
|
});
|
|
export var callt = retasmFunc.callt;
|