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

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

Issue 2264913002: [wasm] asm.js - Remove Wasm.instantiateModuleFromAsm, use asm.js directly. (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-literals.js ('k') | test/mjsunit/wasm/asm-wasm-switch.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: --validate-asm --allow-natives-syntax
6 6
7 var stdlib = this; 7 var stdlib = this;
8 8
9 function assertValidAsm(func) {
10 assertTrue(%IsAsmWasmCode(func));
11 }
12
9 (function TestStdlibConstants() { 13 (function TestStdlibConstants() {
10 function Module(stdlib) { 14 function Module(stdlib) {
11 "use asm"; 15 "use asm";
12 16
13 var StdlibInfinity = stdlib.Infinity; 17 var StdlibInfinity = stdlib.Infinity;
14 var StdlibNaN = stdlib.NaN; 18 var StdlibNaN = stdlib.NaN;
15 var StdlibMathE = stdlib.Math.E; 19 var StdlibMathE = stdlib.Math.E;
16 var StdlibMathLN10 = stdlib.Math.LN10; 20 var StdlibMathLN10 = stdlib.Math.LN10;
17 var StdlibMathLN2 = stdlib.Math.LN2; 21 var StdlibMathLN2 = stdlib.Math.LN2;
18 var StdlibMathLOG2E = stdlib.Math.LOG2E; 22 var StdlibMathLOG2E = stdlib.Math.LOG2E;
(...skipping 15 matching lines...) Expand all
34 return 1; 38 return 1;
35 } 39 }
36 40
37 function nanCheck() { 41 function nanCheck() {
38 return +StdlibNaN; 42 return +StdlibNaN;
39 } 43 }
40 44
41 return {caller:caller, nanCheck:nanCheck}; 45 return {caller:caller, nanCheck:nanCheck};
42 } 46 }
43 47
44 var m = Wasm.instantiateModuleFromAsm(Module.toString(), stdlib); 48 var m = Module(stdlib);
49 assertValidAsm(Module);
45 assertEquals(1, m.caller()); 50 assertEquals(1, m.caller());
46 assertTrue(isNaN(m.nanCheck())); 51 assertTrue(isNaN(m.nanCheck()));
47 })(); 52 })();
48 53
49 54
50 var stdlib = this; 55 var stdlib = this;
51 var stdlib_root_members = [ 56 var stdlib_root_members = [
52 'Infinity', 57 'Infinity',
53 'NaN', 58 'NaN',
54 ]; 59 ];
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 "use asm"; 93 "use asm";
89 var foo = stdlib.NaN; 94 var foo = stdlib.NaN;
90 return {}; 95 return {};
91 } 96 }
92 for (var i = 0; i < stdlib_root_members.length; ++i) { 97 for (var i = 0; i < stdlib_root_members.length; ++i) {
93 var member = stdlib_root_members[i]; 98 var member = stdlib_root_members[i];
94 var stdlib = {}; 99 var stdlib = {};
95 stdlib[member] = 0; 100 stdlib[member] = 0;
96 print(member); 101 print(member);
97 var code = Module.toString().replace('NaN', member); 102 var code = Module.toString().replace('NaN', member);
98 assertThrows(function() { 103 var decl = eval('(' + code + ')');
99 Wasm.instantiateModuleFromAsm(code, stdlib); 104 decl(stdlib);
100 }); 105 assertTrue(%IsNotAsmWasmCode(decl));
101 } 106 }
102 for (var i = 0; i < stdlib_math_members.length; ++i) { 107 for (var i = 0; i < stdlib_math_members.length; ++i) {
103 var member = stdlib_math_members[i]; 108 var member = stdlib_math_members[i];
104 var stdlib = {Math:{}}; 109 var stdlib = {Math:{}};
105 stdlib['Math'][member] = 0; 110 stdlib['Math'][member] = 0;
106 print(member); 111 print(member);
107 var code = Module.toString().replace('NaN', 'Math.' + member); 112 var code = Module.toString().replace('NaN', 'Math.' + member);
108 assertThrows(function() { 113 var decl = eval('(' + code + ')');
109 Wasm.instantiateModuleFromAsm(code, stdlib); 114 decl(stdlib);
110 }); 115 assertTrue(%IsNotAsmWasmCode(decl));
111 } 116 }
112 })(); 117 })();
113 118
114 119
115 (function TestMissingNaNStdlib() { 120 (function TestMissingNaNStdlib() {
116 function Module(stdlib) { 121 function Module(stdlib) {
117 "use asm"; 122 "use asm";
118 var foo = stdlib.NaN; 123 var foo = stdlib.NaN;
119 return {}; 124 return {};
120 } 125 }
121 for (var i = 0; i < stdlib_root_members.length; ++i) { 126 for (var i = 0; i < stdlib_root_members.length; ++i) {
122 var member = stdlib_root_members[i]; 127 var member = stdlib_root_members[i];
123 var code = Module.toString().replace('NaN', member); 128 var code = Module.toString().replace('NaN', member);
124 assertThrows(function() { 129 var decl = eval('(' + code + ')');
125 Wasm.instantiateModuleFromAsm(code, {}); 130 decl({});
126 }); 131 assertTrue(%IsNotAsmWasmCode(decl));
127 } 132 }
128 for (var i = 0; i < stdlib_math_members.length; ++i) { 133 for (var i = 0; i < stdlib_math_members.length; ++i) {
129 var member = stdlib_math_members[i]; 134 var member = stdlib_math_members[i];
130 var code = Module.toString().replace('NaN', 'Math.' + member); 135 var code = Module.toString().replace('NaN', 'Math.' + member);
136 var decl = eval('(' + code + ')');
131 assertThrows(function() { 137 assertThrows(function() {
132 Wasm.instantiateModuleFromAsm(code, {}); 138 decl({});
139 assertTrue(%IsNotAsmWasmCode(decl));
133 }); 140 });
134 } 141 }
135 })(); 142 })();
136 143
137 144
138 (function TestStdlibFunctionsInside() { 145 (function TestStdlibFunctionsInside() {
139 function Module(stdlib) { 146 function Module(stdlib) {
140 "use asm"; 147 "use asm";
141 148
142 var StdlibMathCeil = stdlib.Math.ceil; 149 var StdlibMathCeil = stdlib.Math.ceil;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 if (!(deltaEqual(+StdlibMathAtan2(6.0, 7.0), 0.7086262721276703)|0)) 210 if (!(deltaEqual(+StdlibMathAtan2(6.0, 7.0), 0.7086262721276703)|0))
204 return 0; 211 return 0;
205 if (+StdlibMathPow(6.0, 7.0) != 279936.0) return 0; 212 if (+StdlibMathPow(6.0, 7.0) != 279936.0) return 0;
206 213
207 return 1; 214 return 1;
208 } 215 }
209 216
210 return {caller:caller}; 217 return {caller:caller};
211 } 218 }
212 219
213 var m = Wasm.instantiateModuleFromAsm(Module.toString(), stdlib); 220 var m = Module(stdlib);
221 assertValidAsm(Module);
214 assertEquals(1, m.caller()); 222 assertEquals(1, m.caller());
215 })(); 223 })();
216 224
217 225
218 (function TestStdlibFunctionOutside() { 226 (function TestStdlibFunctionOutside() {
219 function looseEqual(x, y, delta) { 227 function looseEqual(x, y, delta) {
220 if (delta === undefined) { 228 if (delta === undefined) {
221 delta = 1.0e-10; 229 delta = 1.0e-10;
222 } 230 }
223 if (isNaN(x) && isNaN(y)) { 231 if (isNaN(x) && isNaN(y)) {
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 fround2_f32: fround2_f32, 355 fround2_f32: fround2_f32,
348 fround2_f64: fround2_f64, 356 fround2_f64: fround2_f64,
349 min_i32: min_i32, 357 min_i32: min_i32,
350 min_f32: min_f32, 358 min_f32: min_f32,
351 min_f64: min_f64, 359 min_f64: min_f64,
352 max_i32: max_i32, 360 max_i32: max_i32,
353 max_f32: max_f32, 361 max_f32: max_f32,
354 max_f64: max_f64, 362 max_f64: max_f64,
355 }; 363 };
356 } 364 }
357 var m = Wasm.instantiateModuleFromAsm(Module.toString(), stdlib); 365 var m = Module(stdlib);
366 assertValidAsm(Module);
358 var values = { 367 var values = {
359 i32: [ 368 i32: [
360 0, 1, -1, 123, 456, -123, -456, 369 0, 1, -1, 123, 456, -123, -456,
361 0x40000000, 0x7FFFFFFF, -0x80000000, 370 0x40000000, 0x7FFFFFFF, -0x80000000,
362 ], 371 ],
363 u32: [ 372 u32: [
364 0, 1, 123, 456, 373 0, 1, 123, 456,
365 0x40000000, 0x7FFFFFFF, 0xFFFFFFFF, 0x80000000, 374 0x40000000, 0x7FFFFFFF, 0xFFFFFFFF, 0x80000000,
366 ], 375 ],
367 f32: [ 376 f32: [
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 if (!compare(expected, actual)) { 451 if (!compare(expected, actual)) {
443 print(expected + ' !== ' + actual + ' for ' + name + 452 print(expected + ' !== ' + actual + ' for ' + name +
444 ' with input ' + val0 + ' ' + val1); 453 ' with input ' + val0 + ' ' + val1);
445 assertTrue(false); 454 assertTrue(false);
446 } 455 }
447 } 456 }
448 } 457 }
449 } 458 }
450 } 459 }
451 })(); 460 })();
OLDNEW
« no previous file with comments | « test/mjsunit/wasm/asm-wasm-literals.js ('k') | test/mjsunit/wasm/asm-wasm-switch.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698