Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: test/mjsunit/wasm/asm-wasm-stdlib.js

Issue 2251433002: [wasm] asm.js - Check stdlib.NaN is valid, prepare for the rest. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/mjsunit/wasm/asm-wasm-heap.js ('k') | test/mjsunit/wasm/embenchen/box2d.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Flags: --expose-wasm 5 // Flags: --expose-wasm
6 6
7 var stdlib = this;
8
7 (function TestStdlibConstants() { 9 (function TestStdlibConstants() {
8 function Module(stdlib) { 10 function Module(stdlib) {
9 "use asm"; 11 "use asm";
10 12
11 var StdlibInfinity = stdlib.Infinity; 13 var StdlibInfinity = stdlib.Infinity;
12 var StdlibNaN = stdlib.NaN; 14 var StdlibNaN = stdlib.NaN;
13 var StdlibMathE = stdlib.Math.E; 15 var StdlibMathE = stdlib.Math.E;
14 var StdlibMathLN10 = stdlib.Math.LN10; 16 var StdlibMathLN10 = stdlib.Math.LN10;
15 var StdlibMathLN2 = stdlib.Math.LN2; 17 var StdlibMathLN2 = stdlib.Math.LN2;
16 var StdlibMathLOG2E = stdlib.Math.LOG2E; 18 var StdlibMathLOG2E = stdlib.Math.LOG2E;
(...skipping 15 matching lines...) Expand all
32 return 1; 34 return 1;
33 } 35 }
34 36
35 function nanCheck() { 37 function nanCheck() {
36 return +StdlibNaN; 38 return +StdlibNaN;
37 } 39 }
38 40
39 return {caller:caller, nanCheck:nanCheck}; 41 return {caller:caller, nanCheck:nanCheck};
40 } 42 }
41 43
42 var m =Wasm.instantiateModuleFromAsm(Module.toString()); 44 var m = Wasm.instantiateModuleFromAsm(Module.toString(), stdlib);
43 assertEquals(1, m.caller()); 45 assertEquals(1, m.caller());
44 assertTrue(isNaN(m.nanCheck())); 46 assertTrue(isNaN(m.nanCheck()));
45 })(); 47 })();
46 48
47 49
50 (function TestBadNaNStdlib() {
51 function Module(stdlib) {
52 "use asm";
53 var StdlibNaN = stdlib.NaN;
54 function foo() { return +StdlibNaN; }
55 return {};
56 }
57 assertThrows(function() {
58 Wasm.instantiateModuleFromAsm(Module.toString(), { NaN: 0 });
59 });
60 })();
61
62
63 (function TestMissingNaNStdlib() {
64 function Module(stdlib) {
65 "use asm";
66 var StdlibNaN = stdlib.NaN;
67 function foo() { return +StdlibNaN; }
68 return {};
69 }
70 assertThrows(function() {
71 Wasm.instantiateModuleFromAsm(Module.toString(), {});
72 });
73 })();
74
75
48 (function TestStdlibFunctionsInside() { 76 (function TestStdlibFunctionsInside() {
49 function Module(stdlib) { 77 function Module(stdlib) {
50 "use asm"; 78 "use asm";
51 79
52 var StdlibMathCeil = stdlib.Math.ceil; 80 var StdlibMathCeil = stdlib.Math.ceil;
53 var StdlibMathClz32 = stdlib.Math.clz32; 81 var StdlibMathClz32 = stdlib.Math.clz32;
54 var StdlibMathFloor = stdlib.Math.floor; 82 var StdlibMathFloor = stdlib.Math.floor;
55 var StdlibMathSqrt = stdlib.Math.sqrt; 83 var StdlibMathSqrt = stdlib.Math.sqrt;
56 var StdlibMathAbs = stdlib.Math.abs; 84 var StdlibMathAbs = stdlib.Math.abs;
57 var StdlibMathMin = stdlib.Math.min; 85 var StdlibMathMin = stdlib.Math.min;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 if (!(deltaEqual(+StdlibMathAtan2(6.0, 7.0), 0.7086262721276703)|0)) 141 if (!(deltaEqual(+StdlibMathAtan2(6.0, 7.0), 0.7086262721276703)|0))
114 return 0; 142 return 0;
115 if (+StdlibMathPow(6.0, 7.0) != 279936.0) return 0; 143 if (+StdlibMathPow(6.0, 7.0) != 279936.0) return 0;
116 144
117 return 1; 145 return 1;
118 } 146 }
119 147
120 return {caller:caller}; 148 return {caller:caller};
121 } 149 }
122 150
123 var m = Wasm.instantiateModuleFromAsm(Module.toString()); 151 var m = Wasm.instantiateModuleFromAsm(Module.toString(), stdlib);
124 assertEquals(1, m.caller()); 152 assertEquals(1, m.caller());
125 })(); 153 })();
126 154
127 155
128 (function TestStdlibFunctionOutside() { 156 (function TestStdlibFunctionOutside() {
129 function looseEqual(x, y, delta) { 157 function looseEqual(x, y, delta) {
130 if (delta === undefined) { 158 if (delta === undefined) {
131 delta = 1.0e-10; 159 delta = 1.0e-10;
132 } 160 }
133 if (isNaN(x) && isNaN(y)) { 161 if (isNaN(x) && isNaN(y)) {
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 fround2_f32: fround2_f32, 285 fround2_f32: fround2_f32,
258 fround2_f64: fround2_f64, 286 fround2_f64: fround2_f64,
259 min_i32: min_i32, 287 min_i32: min_i32,
260 min_f32: min_f32, 288 min_f32: min_f32,
261 min_f64: min_f64, 289 min_f64: min_f64,
262 max_i32: max_i32, 290 max_i32: max_i32,
263 max_f32: max_f32, 291 max_f32: max_f32,
264 max_f64: max_f64, 292 max_f64: max_f64,
265 }; 293 };
266 } 294 }
267 var m = Wasm.instantiateModuleFromAsm(Module.toString()); 295 var m = Wasm.instantiateModuleFromAsm(Module.toString(), stdlib);
268 var values = { 296 var values = {
269 i32: [ 297 i32: [
270 0, 1, -1, 123, 456, -123, -456, 298 0, 1, -1, 123, 456, -123, -456,
271 0x40000000, 0x7FFFFFFF, -0x80000000, 299 0x40000000, 0x7FFFFFFF, -0x80000000,
272 ], 300 ],
273 u32: [ 301 u32: [
274 0, 1, 123, 456, 302 0, 1, 123, 456,
275 0x40000000, 0x7FFFFFFF, 0xFFFFFFFF, 0x80000000, 303 0x40000000, 0x7FFFFFFF, 0xFFFFFFFF, 0x80000000,
276 ], 304 ],
277 f32: [ 305 f32: [
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 if (!compare(expected, actual)) { 380 if (!compare(expected, actual)) {
353 print(expected + ' !== ' + actual + ' for ' + name + 381 print(expected + ' !== ' + actual + ' for ' + name +
354 ' with input ' + val0 + ' ' + val1); 382 ' with input ' + val0 + ' ' + val1);
355 assertTrue(false); 383 assertTrue(false);
356 } 384 }
357 } 385 }
358 } 386 }
359 } 387 }
360 } 388 }
361 })(); 389 })();
OLDNEW
« no previous file with comments | « test/mjsunit/wasm/asm-wasm-heap.js ('k') | test/mjsunit/wasm/embenchen/box2d.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698