forked from kozorizki/binaryen
We previously supported a non-standard `(func "name" ...` syntax for declaring functions exported with the quoted name. Since that is not part of the standard text format, drop support for it, replacing it with the standard `(func $name (export "name") ...` syntax instead. Also replace our other usage of the quoted form in our text output, which was where we quoted names containing characters that are not allowed to appear in standard names. To handle that case, adjust our output from `"$name"` to `$"name"`, which is the standards-track way of supporting such names. Also fix how we detect non-standard name characters to match the spec. Update the lit test output generation script to account for these changes, including by making the `$` prefix on names mandatory. This causes the script to stop interpreting declarative element segments with the `(elem declare ...` syntax as being named "declare", so prevent our generated output from regressing by counting "declare" as a name in the script.
37 lines
787 B
JavaScript
37 lines
787 B
JavaScript
import * as env from 'env';
|
|
|
|
function asmFunc(imports) {
|
|
var env = imports.env;
|
|
var FUNCTION_TABLE = env.table;
|
|
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 foo_true(x) {
|
|
x = x | 0;
|
|
return FUNCTION_TABLE[(x ? 1 : 0) | 0]() | 0 | 0;
|
|
}
|
|
|
|
function foo_false(x) {
|
|
x = x | 0;
|
|
return FUNCTION_TABLE[(x ? 0 : 1) | 0]() | 0 | 0;
|
|
}
|
|
|
|
return {
|
|
"foo_true": foo_true,
|
|
"foo_false": foo_false
|
|
};
|
|
}
|
|
|
|
var retasmFunc = asmFunc({
|
|
"env": env,
|
|
});
|
|
export var foo_true = retasmFunc.foo_true;
|
|
export var foo_false = retasmFunc.foo_false;
|