| Index: test/mjsunit/wasm/asm-wasm-stdlib.js
|
| diff --git a/test/mjsunit/wasm/asm-wasm-stdlib.js b/test/mjsunit/wasm/asm-wasm-stdlib.js
|
| index 55a244b58d7f999751b02b2fa9ccd48540be8521..82c27d4da99253b70330fa41688768d2326c52a4 100644
|
| --- a/test/mjsunit/wasm/asm-wasm-stdlib.js
|
| +++ b/test/mjsunit/wasm/asm-wasm-stdlib.js
|
| @@ -47,29 +47,91 @@ var stdlib = this;
|
| })();
|
|
|
|
|
| -(function TestBadNaNStdlib() {
|
| +var stdlib = this;
|
| +var stdlib_root_members = [
|
| + 'Infinity',
|
| + 'NaN',
|
| +];
|
| +var stdlib_math_members = [
|
| + 'E',
|
| + 'LN10',
|
| + 'LN2',
|
| + 'LOG2E',
|
| + 'LOG10E',
|
| + 'PI',
|
| + 'SQRT1_2',
|
| + 'SQRT2',
|
| + 'ceil',
|
| + 'clz32',
|
| + 'floor',
|
| + 'sqrt',
|
| + 'abs',
|
| + 'min',
|
| + 'max',
|
| + 'acos',
|
| + 'asin',
|
| + 'atan',
|
| + 'cos',
|
| + 'sin',
|
| + 'tan',
|
| + 'exp',
|
| + 'log',
|
| + 'atan2',
|
| + 'pow',
|
| + 'imul',
|
| + 'fround',
|
| +];
|
| +
|
| +
|
| +(function TestBadStdlib() {
|
| function Module(stdlib) {
|
| "use asm";
|
| - var StdlibNaN = stdlib.NaN;
|
| - function foo() { return +StdlibNaN; }
|
| + var foo = stdlib.NaN;
|
| return {};
|
| }
|
| - assertThrows(function() {
|
| - Wasm.instantiateModuleFromAsm(Module.toString(), { NaN: 0 });
|
| - });
|
| + for (var i = 0; i < stdlib_root_members.length; ++i) {
|
| + var member = stdlib_root_members[i];
|
| + var stdlib = {};
|
| + stdlib[member] = 0;
|
| + print(member);
|
| + var code = Module.toString().replace('NaN', member);
|
| + assertThrows(function() {
|
| + Wasm.instantiateModuleFromAsm(code, stdlib);
|
| + });
|
| + }
|
| + for (var i = 0; i < stdlib_math_members.length; ++i) {
|
| + var member = stdlib_math_members[i];
|
| + var stdlib = {Math:{}};
|
| + stdlib['Math'][member] = 0;
|
| + print(member);
|
| + var code = Module.toString().replace('NaN', 'Math.' + member);
|
| + assertThrows(function() {
|
| + Wasm.instantiateModuleFromAsm(code, stdlib);
|
| + });
|
| + }
|
| })();
|
|
|
|
|
| (function TestMissingNaNStdlib() {
|
| function Module(stdlib) {
|
| "use asm";
|
| - var StdlibNaN = stdlib.NaN;
|
| - function foo() { return +StdlibNaN; }
|
| + var foo = stdlib.NaN;
|
| return {};
|
| }
|
| - assertThrows(function() {
|
| - Wasm.instantiateModuleFromAsm(Module.toString(), {});
|
| - });
|
| + for (var i = 0; i < stdlib_root_members.length; ++i) {
|
| + var member = stdlib_root_members[i];
|
| + var code = Module.toString().replace('NaN', member);
|
| + assertThrows(function() {
|
| + Wasm.instantiateModuleFromAsm(code, {});
|
| + });
|
| + }
|
| + for (var i = 0; i < stdlib_math_members.length; ++i) {
|
| + var member = stdlib_math_members[i];
|
| + var code = Module.toString().replace('NaN', 'Math.' + member);
|
| + assertThrows(function() {
|
| + Wasm.instantiateModuleFromAsm(code, {});
|
| + });
|
| + }
|
| })();
|
|
|
|
|
|
|