Chromium Code Reviews| Index: test/mjsunit/wasm/asm-wasm.js |
| diff --git a/test/mjsunit/wasm/asm-wasm.js b/test/mjsunit/wasm/asm-wasm.js |
| index 31a1dc5b84e70ee86e8ceb0b414e28ba2f829654..96804a69ee4baf094c33fdb8fbab87e076b07fb0 100644 |
| --- a/test/mjsunit/wasm/asm-wasm.js |
| +++ b/test/mjsunit/wasm/asm-wasm.js |
| @@ -1265,3 +1265,93 @@ TestForeignVariables(); |
| assertEquals(123, m.ifunc(456.7, 123)); |
| assertEquals(123.4, m.dfunc(456, 123.4)); |
| })(); |
| + |
| + |
| +(function TestStdlibConstants() { |
| + function Module(stdlib) { |
| + "use asm"; |
| + |
| + var StdlibInfinity = stdlib.Infinity; |
| + var StdlibNaN = stdlib.NaN; |
| + var StdlibMathE = stdlib.Math.E; |
| + var StdlibMathLN10 = stdlib.Math.LN10; |
| + var StdlibMathLN2 = stdlib.Math.LN2; |
| + var StdlibMathLOG2E = stdlib.Math.LOG2E; |
| + var StdlibMathLOG10E = stdlib.Math.LOG10E; |
| + var StdlibMathPI = stdlib.Math.PI; |
| + var StdlibMathSQRT1_2 = stdlib.Math.SQRT1_2; |
| + var StdlibMathSQRT2 = stdlib.Math.SQRT2; |
| + |
| + function caller() { |
| + if (StdlibInfinity != 1.0 / 0.0) return 0; |
| + // TODO(bradnelson): Figure out why this fails. |
|
aseemgarg
2016/02/22 22:15:53
Could this be some parser magic not implemented co
bradnelson
2016/02/23 09:48:55
Not thinking. All comparisons on NaN's fail.
Chang
|
| + //if (StdlibNaN != 0.0 / 0.0) return 0; |
| + if (StdlibMathE != 2.718281828459045) return 0; |
| + if (StdlibMathLN10 != 2.302585092994046) return 0; |
| + if (StdlibMathLN2 != 0.6931471805599453) return 0; |
| + if (StdlibMathLOG2E != 1.4426950408889634) return 0; |
| + if (StdlibMathLOG10E != 0.4342944819032518) return 0; |
| + if (StdlibMathPI != 3.141592653589793) return 0; |
| + if (StdlibMathSQRT1_2 != 0.7071067811865476) return 0; |
| + if (StdlibMathSQRT2 != 1.4142135623730951) return 0; |
| + return 1; |
| + } |
| + |
| + return {caller:caller}; |
| + } |
| + |
| + var m =_WASMEXP_.instantiateModuleFromAsm(Module.toString()); |
| + assertEquals(1, m.caller()); |
| +})(); |
| + |
| + |
| +(function TestStdlibFunctions() { |
| + function Module(stdlib) { |
| + "use asm"; |
| + |
| + var StdlibMathAcos = stdlib.Math.acos; |
| + var StdlibMathAsin = stdlib.Math.asin; |
| + var StdlibMathAtan = stdlib.Math.atan; |
| + var StdlibMathCos = stdlib.Math.cos; |
| + var StdlibMathSin = stdlib.Math.sin; |
| + var StdlibMathTan = stdlib.Math.tan; |
| + var StdlibMathExp = stdlib.Math.exp; |
| + var StdlibMathLog = stdlib.Math.log; |
| + var StdlibMathCeil = stdlib.Math.ceil; |
| + var StdlibMathFloor = stdlib.Math.floor; |
| + var StdlibMathSqrt = stdlib.Math.sqrt; |
| + var StdlibMathAbs = stdlib.Math.abs; |
| + var StdlibMathMin = stdlib.Math.min; |
| + var StdlibMathMax = stdlib.Math.max; |
| + var StdlibMathAtan2 = stdlib.Math.atan2; |
| + var StdlibMathPow = stdlib.Math.pow; |
| + var StdlibMathImul = stdlib.Math.imul; |
| + var fround = stdlib.Math.fround; |
| + |
| + function caller() { |
| + // TODO(bradnelson): Test transendentals when implemented. |
| + if (StdlibMathSqrt(123.0) != 11.090536506409418) return 0; |
|
aseemgarg
2016/02/22 22:15:53
Change it to a perfect square? That way reading th
bradnelson
2016/02/23 09:48:55
Done.
|
| + if (StdlibMathSqrt(fround(123.0)) |
| + != fround(11.090536506409418)) return 0; |
| + if (StdlibMathCeil(123.7) != 124.0) return 0; |
| + if (StdlibMathCeil(fround(123.7)) != fround(124.0)) return 0; |
| + if (StdlibMathFloor(123.7) != 123.0) return 0; |
| + if (StdlibMathFloor(fround(123.7)) != fround(123.0)) return 0; |
| + if (StdlibMathAbs(-123.0) != 123.0) return 0; |
| + if (StdlibMathAbs(fround(-123.0)) != fround(123.0)) return 0; |
| + if (StdlibMathMin(123.4, 1236.4) != 123.4) return 0; |
| + if (StdlibMathMin(fround(123.4), |
| + fround(1236.4)) != fround(123.4)) return 0; |
| + if (StdlibMathMax(123.4, 1236.4) != 1236.4) return 0; |
| + if (StdlibMathMax(fround(123.4), fround(1236.4)) |
| + != fround(1236.4)) return 0; |
| + if (StdlibMathImul(6, 7) != 42) return 0; |
| + return 1; |
| + } |
| + |
| + return {caller:caller}; |
| + } |
| + |
| + var m = _WASMEXP_.instantiateModuleFromAsm(Module.toString()); |
| + assertEquals(1, m.caller()); |
| +})(); |