| OLD | NEW | 
|---|
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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 function assertWasm(expected, func, ffi) { | 7 function assertWasm(expected, func, ffi) { | 
| 8   print("Testing " + func.name + "..."); | 8   print("Testing " + func.name + "..."); | 
| 9   assertEquals(expected, Wasm.instantiateModuleFromAsm( | 9   assertEquals(expected, Wasm.instantiateModuleFromAsm( | 
| 10       func.toString(), ffi).caller()); | 10       func.toString(), ffi).caller()); | 
| (...skipping 664 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 675       return 28; | 675       return 28; | 
| 676     } | 676     } | 
| 677     return 0; | 677     return 0; | 
| 678   } | 678   } | 
| 679 | 679 | 
| 680   return {caller:caller}; | 680   return {caller:caller}; | 
| 681 } | 681 } | 
| 682 | 682 | 
| 683 assertWasm(28, TestModDoubleNegative); | 683 assertWasm(28, TestModDoubleNegative); | 
| 684 | 684 | 
|  | 685 | 
| 685 (function () { | 686 (function () { | 
| 686 function TestNamedFunctions() { | 687 function TestNamedFunctions() { | 
| 687   "use asm"; | 688   "use asm"; | 
| 688 | 689 | 
| 689   var a = 0.0; | 690   var a = 0.0; | 
| 690   var b = 0.0; | 691   var b = 0.0; | 
| 691 | 692 | 
| 692   function add() { | 693   function add() { | 
| 693     return +(a + b); | 694     return +(a + b); | 
| 694   } | 695   } | 
| 695 | 696 | 
| 696   function init() { | 697   function init() { | 
| 697     a = 43.25; | 698     a = 43.25; | 
| 698     b = 34.25; | 699     b = 34.25; | 
| 699   } | 700   } | 
| 700 | 701 | 
| 701   return {init:init, | 702   return {init:init, | 
| 702           add:add}; | 703           add:add}; | 
| 703 } | 704 } | 
| 704 | 705 | 
| 705 var module = Wasm.instantiateModuleFromAsm(TestNamedFunctions.toString()); | 706 var module = Wasm.instantiateModuleFromAsm(TestNamedFunctions.toString()); | 
| 706 module.init(); | 707 module.init(); | 
| 707 assertEquals(77.5, module.add()); | 708 assertEquals(77.5, module.add()); | 
| 708 })(); | 709 })(); | 
| 709 | 710 | 
|  | 711 | 
| 710 (function () { | 712 (function () { | 
| 711 function TestGlobalsWithInit() { | 713 function TestGlobalsWithInit() { | 
| 712   "use asm"; | 714   "use asm"; | 
| 713 | 715 | 
| 714   var a = 43.25; | 716   var a = 43.25; | 
| 715   var b = 34.25; | 717   var b = 34.25; | 
| 716 | 718 | 
| 717   function add() { | 719   function add() { | 
| 718     return +(a + b); | 720     return +(a + b); | 
| 719   } | 721   } | 
| (...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1351       return ((a * 3) + (4 * a)) | 0; | 1353       return ((a * 3) + (4 * a)) | 0; | 
| 1352     } | 1354     } | 
| 1353     return {func: func}; | 1355     return {func: func}; | 
| 1354   } | 1356   } | 
| 1355 | 1357 | 
| 1356   var m = Wasm.instantiateModuleFromAsm(Module.toString()); | 1358   var m = Wasm.instantiateModuleFromAsm(Module.toString()); | 
| 1357   assertEquals(7, m.func()); | 1359   assertEquals(7, m.func()); | 
| 1358 })(); | 1360 })(); | 
| 1359 | 1361 | 
| 1360 | 1362 | 
|  | 1363 (function TestBadAssignDoubleFromIntish() { | 
|  | 1364   function Module(stdlib, foreign, heap) { | 
|  | 1365     "use asm"; | 
|  | 1366     function func() { | 
|  | 1367       var a = 1; | 
|  | 1368       var b = 3.0; | 
|  | 1369       b = a; | 
|  | 1370     } | 
|  | 1371     return {func: func}; | 
|  | 1372   } | 
|  | 1373   assertThrows(function() { | 
|  | 1374     Wasm.instantiateModuleFromAsm(Module.toString()); | 
|  | 1375   }); | 
|  | 1376 })(); | 
|  | 1377 | 
|  | 1378 | 
|  | 1379 (function TestBadAssignIntFromDouble() { | 
|  | 1380   function Module(stdlib, foreign, heap) { | 
|  | 1381     "use asm"; | 
|  | 1382     function func() { | 
|  | 1383       var a = 1; | 
|  | 1384       var b = 3.0; | 
|  | 1385       a = b; | 
|  | 1386     } | 
|  | 1387     return {func: func}; | 
|  | 1388   } | 
|  | 1389   assertThrows(function() { | 
|  | 1390     Wasm.instantiateModuleFromAsm(Module.toString()); | 
|  | 1391   }); | 
|  | 1392 })(); | 
|  | 1393 | 
|  | 1394 | 
| 1361 (function TestBadMultiplyIntish() { | 1395 (function TestBadMultiplyIntish() { | 
| 1362   function Module(stdlib, foreign, heap) { | 1396   function Module(stdlib, foreign, heap) { | 
| 1363     "use asm"; | 1397     "use asm"; | 
| 1364     function func() { | 1398     function func() { | 
| 1365       var a = 1; | 1399       var a = 1; | 
| 1366       return ((a + a) * 4) | 0; | 1400       return ((a + a) * 4) | 0; | 
| 1367     } | 1401     } | 
| 1368     return {func: func}; | 1402     return {func: func}; | 
| 1369   } | 1403   } | 
| 1370   assertThrows(function() { | 1404   assertThrows(function() { | 
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1489       u0xffffffff: u0xffffffff, | 1523       u0xffffffff: u0xffffffff, | 
| 1490       u0x80000000: u0x80000000, | 1524       u0x80000000: u0x80000000, | 
| 1491       u0x87654321: u0x87654321, | 1525       u0x87654321: u0x87654321, | 
| 1492     }; | 1526     }; | 
| 1493   } | 1527   } | 
| 1494   var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString()); | 1528   var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString()); | 
| 1495   assertEquals(0xffffffff, wasm.u0xffffffff()); | 1529   assertEquals(0xffffffff, wasm.u0xffffffff()); | 
| 1496   assertEquals(0x80000000, wasm.u0x80000000()); | 1530   assertEquals(0x80000000, wasm.u0x80000000()); | 
| 1497   assertEquals(0x87654321, wasm.u0x87654321()); | 1531   assertEquals(0x87654321, wasm.u0x87654321()); | 
| 1498 })(); | 1532 })(); | 
| OLD | NEW | 
|---|