| 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 1475 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1486       u0xffffffff: u0xffffffff, | 1486       u0xffffffff: u0xffffffff, | 
| 1487       u0x80000000: u0x80000000, | 1487       u0x80000000: u0x80000000, | 
| 1488       u0x87654321: u0x87654321, | 1488       u0x87654321: u0x87654321, | 
| 1489     }; | 1489     }; | 
| 1490   } | 1490   } | 
| 1491   var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString()); | 1491   var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString()); | 
| 1492   assertEquals(0xffffffff, wasm.u0xffffffff()); | 1492   assertEquals(0xffffffff, wasm.u0xffffffff()); | 
| 1493   assertEquals(0x80000000, wasm.u0x80000000()); | 1493   assertEquals(0x80000000, wasm.u0x80000000()); | 
| 1494   assertEquals(0x87654321, wasm.u0x87654321()); | 1494   assertEquals(0x87654321, wasm.u0x87654321()); | 
| 1495 })(); | 1495 })(); | 
|  | 1496 | 
|  | 1497 (function TestSwitchWithBrTable() { | 
|  | 1498   function asmModule() { | 
|  | 1499     "use asm"; | 
|  | 1500     function main(x) { | 
|  | 1501       x = x|0; | 
|  | 1502       switch(x|0) { | 
|  | 1503         case 14: return 14; | 
|  | 1504         case 12: return 12; | 
|  | 1505         case 15: return 15; | 
|  | 1506         case 19: return 19; | 
|  | 1507         case 18: return 18; | 
|  | 1508         case 16: return 16; | 
|  | 1509         default: return -1; | 
|  | 1510       } | 
|  | 1511       return 0; | 
|  | 1512     } | 
|  | 1513     return { | 
|  | 1514       main: main, | 
|  | 1515     }; | 
|  | 1516   } | 
|  | 1517   var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString()); | 
|  | 1518   assertEquals(12, wasm.main(12)); | 
|  | 1519   assertEquals(14, wasm.main(14)); | 
|  | 1520   assertEquals(15, wasm.main(15)); | 
|  | 1521   assertEquals(16, wasm.main(16)); | 
|  | 1522   assertEquals(18, wasm.main(18)); | 
|  | 1523   assertEquals(19, wasm.main(19)); | 
|  | 1524   assertEquals(-1, wasm.main(21)); | 
|  | 1525 })(); | 
|  | 1526 | 
|  | 1527 (function TestSwitchWithBalancedTree() { | 
|  | 1528   function asmModule() { | 
|  | 1529     "use asm"; | 
|  | 1530     function main(x) { | 
|  | 1531       x = x|0; | 
|  | 1532       switch(x|0) { | 
|  | 1533         case 5: return 5; | 
|  | 1534         case 1: return 1; | 
|  | 1535         case 6: return 6; | 
|  | 1536         case 9: return 9; | 
|  | 1537         case -4: return -4; | 
|  | 1538       } | 
|  | 1539       return 0; | 
|  | 1540     } | 
|  | 1541     return { | 
|  | 1542       main: main, | 
|  | 1543     }; | 
|  | 1544   } | 
|  | 1545   var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString()); | 
|  | 1546   assertEquals(-4, wasm.main(-4)); | 
|  | 1547   assertEquals(1, wasm.main(1)); | 
|  | 1548   assertEquals(5, wasm.main(5)); | 
|  | 1549   assertEquals(6, wasm.main(6)); | 
|  | 1550   assertEquals(9, wasm.main(9)); | 
|  | 1551   assertEquals(0, wasm.main(11)); | 
|  | 1552 })(); | 
|  | 1553 | 
|  | 1554 (function TestSwitchHybrid() { | 
|  | 1555   function asmModule() { | 
|  | 1556     "use asm"; | 
|  | 1557     function main(x) { | 
|  | 1558       x = x|0; | 
|  | 1559       switch(x|0) { | 
|  | 1560         case 1: return 1; | 
|  | 1561         case 2: return 2; | 
|  | 1562         case 3: return 3; | 
|  | 1563         case 4: return 4; | 
|  | 1564         case 7: return 7; | 
|  | 1565         case 10: return 10; | 
|  | 1566         case 11: return 11; | 
|  | 1567         case 12: return 12; | 
|  | 1568         case 13: return 13; | 
|  | 1569         case 16: return 16; | 
|  | 1570         default: return -1; | 
|  | 1571       } | 
|  | 1572       return 0; | 
|  | 1573     } | 
|  | 1574     return { | 
|  | 1575       main: main, | 
|  | 1576     }; | 
|  | 1577   } | 
|  | 1578   var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString()); | 
|  | 1579   assertEquals(1, wasm.main(1)); | 
|  | 1580   assertEquals(2, wasm.main(2)); | 
|  | 1581   assertEquals(3, wasm.main(3)); | 
|  | 1582   assertEquals(4, wasm.main(4)); | 
|  | 1583   assertEquals(7, wasm.main(7)); | 
|  | 1584   assertEquals(10, wasm.main(10)); | 
|  | 1585   assertEquals(11, wasm.main(11)); | 
|  | 1586   assertEquals(12, wasm.main(12)); | 
|  | 1587   assertEquals(13, wasm.main(13)); | 
|  | 1588   assertEquals(16, wasm.main(16)); | 
|  | 1589   assertEquals(-1, wasm.main(20)); | 
|  | 1590 })(); | 
|  | 1591 | 
|  | 1592 (function TestSwitchWithDefaultOnly() { | 
|  | 1593   function asmModule() { | 
|  | 1594     "use asm"; | 
|  | 1595     function main(x) { | 
|  | 1596       x = x|0; | 
|  | 1597       switch(x|0) { | 
|  | 1598         default: return -10; | 
|  | 1599       } | 
|  | 1600       return 0; | 
|  | 1601     } | 
|  | 1602     return { | 
|  | 1603       main: main, | 
|  | 1604     }; | 
|  | 1605   } | 
|  | 1606   var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString()); | 
|  | 1607   assertEquals(-10, wasm.main(2)); | 
|  | 1608   assertEquals(-10, wasm.main(54)); | 
|  | 1609 })(); | 
|  | 1610 | 
|  | 1611 (function TestEmptySwitch() { | 
|  | 1612   function asmModule() { | 
|  | 1613     "use asm"; | 
|  | 1614     function main(x) { | 
|  | 1615       x = x|0; | 
|  | 1616       switch(x|0) { | 
|  | 1617       } | 
|  | 1618       return 73; | 
|  | 1619     } | 
|  | 1620     return { | 
|  | 1621       main: main, | 
|  | 1622     }; | 
|  | 1623   } | 
|  | 1624   var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString()); | 
|  | 1625   assertEquals(73, wasm.main(7)); | 
|  | 1626 })(); | 
| OLD | NEW | 
|---|