| 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 EmptyTest() { | 7 function EmptyTest() { |
| 8 "use asm"; | 8 "use asm"; |
| 9 function caller() { | 9 function caller() { |
| 10 empty(); | 10 empty(); |
| 11 return 11; | 11 return 11; |
| 12 } | 12 } |
| 13 function empty() { | 13 function empty() { |
| 14 } | 14 } |
| 15 return {caller: caller}; | 15 return {caller: caller}; |
| 16 } | 16 } |
| 17 | 17 |
| 18 assertEquals(11, WASM.asmCompileRun(EmptyTest.toString())); | 18 assertEquals(11, _WASMEXP_.asmCompileRun(EmptyTest.toString())); |
| 19 | 19 |
| 20 function IntTest() { | 20 function IntTest() { |
| 21 "use asm"; | 21 "use asm"; |
| 22 function sum(a, b) { | 22 function sum(a, b) { |
| 23 a = a|0; | 23 a = a|0; |
| 24 b = b|0; | 24 b = b|0; |
| 25 var c = (b + 1)|0 | 25 var c = (b + 1)|0 |
| 26 var d = 3.0; | 26 var d = 3.0; |
| 27 var e = d | 0; // double conversion | 27 var e = d | 0; // double conversion |
| 28 return (a + c + 1)|0; | 28 return (a + c + 1)|0; |
| (...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 676 "use asm" | 676 "use asm" |
| 677 | 677 |
| 678 function caller() { | 678 function caller() { |
| 679 var x = 1; | 679 var x = 1; |
| 680 return ((x > 0) ? 41 : 71)|0; | 680 return ((x > 0) ? 41 : 71)|0; |
| 681 } | 681 } |
| 682 | 682 |
| 683 return {caller:caller}; | 683 return {caller:caller}; |
| 684 } | 684 } |
| 685 | 685 |
| 686 assertEquals(41, WASM.asmCompileRun(TestConditional.toString())); | 686 assertEquals(41, _WASMEXP_.asmCompileRun(TestConditional.toString())); |
| 687 | 687 |
| 688 function TestSwitch() { | 688 function TestSwitch() { |
| 689 "use asm" | 689 "use asm" |
| 690 | 690 |
| 691 function caller() { | 691 function caller() { |
| 692 var ret = 0; | 692 var ret = 0; |
| 693 var x = 7; | 693 var x = 7; |
| 694 switch (x) { | 694 switch (x) { |
| 695 case 1: return 0; | 695 case 1: return 0; |
| 696 case 7: { | 696 case 7: { |
| 697 ret = 12; | 697 ret = 12; |
| 698 break; | 698 break; |
| 699 } | 699 } |
| 700 default: return 0; | 700 default: return 0; |
| 701 } | 701 } |
| 702 switch (x) { | 702 switch (x) { |
| 703 case 1: return 0; | 703 case 1: return 0; |
| 704 case 8: return 0; | 704 case 8: return 0; |
| 705 default: ret = (ret + 11)|0; | 705 default: ret = (ret + 11)|0; |
| 706 } | 706 } |
| 707 return ret|0; | 707 return ret|0; |
| 708 } | 708 } |
| 709 | 709 |
| 710 return {caller:caller}; | 710 return {caller:caller}; |
| 711 } | 711 } |
| 712 | 712 |
| 713 assertEquals(23, WASM.asmCompileRun(TestSwitch.toString())); | 713 assertEquals(23, _WASMEXP_.asmCompileRun(TestSwitch.toString())); |
| 714 | 714 |
| 715 function TestSwitchFallthrough() { | 715 function TestSwitchFallthrough() { |
| 716 "use asm" | 716 "use asm" |
| 717 | 717 |
| 718 function caller() { | 718 function caller() { |
| 719 var x = 17; | 719 var x = 17; |
| 720 var ret = 0; | 720 var ret = 0; |
| 721 switch (x) { | 721 switch (x) { |
| 722 case 17: | 722 case 17: |
| 723 case 14: ret = 39; | 723 case 14: ret = 39; |
| 724 case 1: ret = (ret + 3)|0; | 724 case 1: ret = (ret + 3)|0; |
| 725 case 4: break; | 725 case 4: break; |
| 726 default: ret = (ret + 1)|0; | 726 default: ret = (ret + 1)|0; |
| 727 } | 727 } |
| 728 return ret|0; | 728 return ret|0; |
| 729 } | 729 } |
| 730 | 730 |
| 731 return {caller:caller}; | 731 return {caller:caller}; |
| 732 } | 732 } |
| 733 | 733 |
| 734 assertEquals(42, WASM.asmCompileRun(TestSwitchFallthrough.toString())); | 734 assertEquals(42, _WASMEXP_.asmCompileRun(TestSwitchFallthrough.toString())); |
| 735 | 735 |
| 736 function TestNestedSwitch() { | 736 function TestNestedSwitch() { |
| 737 "use asm" | 737 "use asm" |
| 738 | 738 |
| 739 function caller() { | 739 function caller() { |
| 740 var x = 3; | 740 var x = 3; |
| 741 var y = -13; | 741 var y = -13; |
| 742 switch (x) { | 742 switch (x) { |
| 743 case 1: return 0; | 743 case 1: return 0; |
| 744 case 3: { | 744 case 3: { |
| 745 switch (y) { | 745 switch (y) { |
| 746 case 2: return 0; | 746 case 2: return 0; |
| 747 case -13: return 43; | 747 case -13: return 43; |
| 748 default: return 0; | 748 default: return 0; |
| 749 } | 749 } |
| 750 } | 750 } |
| 751 default: return 0; | 751 default: return 0; |
| 752 } | 752 } |
| 753 return 0; | 753 return 0; |
| 754 } | 754 } |
| 755 | 755 |
| 756 return {caller:caller}; | 756 return {caller:caller}; |
| 757 } | 757 } |
| 758 | 758 |
| 759 assertEquals(43, WASM.asmCompileRun(TestNestedSwitch.toString())); | 759 assertEquals(43, _WASMEXP_.asmCompileRun(TestNestedSwitch.toString())); |
| OLD | NEW |