OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "test/cctest/compiler/function-tester.h" | 7 #include "test/cctest/compiler/function-tester.h" |
8 | 8 |
9 using namespace v8::internal; | 9 using namespace v8::internal; |
10 using namespace v8::internal::compiler; | 10 using namespace v8::internal::compiler; |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 T.CheckCall(3, 8, 5); | 74 T.CheckCall(3, 8, 5); |
75 T.CheckCall(T.Val(3), T.Val("8"), T.Val(5)); | 75 T.CheckCall(T.Val(3), T.Val("8"), T.Val(5)); |
76 T.CheckCall(T.Val(3), T.Val(8), T.Val("5")); | 76 T.CheckCall(T.Val(3), T.Val(8), T.Val("5")); |
77 T.CheckCall(T.Val(1), T.Val("3"), T.Val("2")); | 77 T.CheckCall(T.Val(1), T.Val("3"), T.Val("2")); |
78 T.CheckCall(T.nan(), T.Val("3"), T.Val("B")); | 78 T.CheckCall(T.nan(), T.Val("3"), T.Val("B")); |
79 T.CheckCall(T.Val(1), T.Val("3"), T.NewObject("([2])")); | 79 T.CheckCall(T.Val(1), T.Val("3"), T.NewObject("([2])")); |
80 T.CheckCall(T.nan(), T.Val("3"), T.NewObject("({})")); | 80 T.CheckCall(T.nan(), T.Val("3"), T.NewObject("({})")); |
81 } | 81 } |
82 | 82 |
83 | 83 |
| 84 TEST(BinopExponentiate) { |
| 85 FLAG_harmony_exponentiation = true; |
| 86 FunctionTester T("(function(a,b) { return a ** b; })"); |
| 87 |
| 88 T.CheckCall(256, 2, 8); |
| 89 T.CheckCall(T.Val(256), T.Val("2"), T.Val(8)); |
| 90 T.CheckCall(T.Val(256), T.Val(2), T.Val("8")); |
| 91 T.CheckCall(T.Val(1), T.Val("256"), T.Val("0")); |
| 92 T.CheckCall(T.nan(), T.Val("3"), T.Val("B")); |
| 93 T.CheckCall(T.Val(0.25), T.Val("2"), T.NewObject("([-2])")); |
| 94 T.CheckCall(T.nan(), T.Val("3"), T.NewObject("({})")); |
| 95 } |
| 96 |
| 97 |
84 TEST(BinopShiftLeft) { | 98 TEST(BinopShiftLeft) { |
85 FunctionTester T("(function(a,b) { return a << b; })"); | 99 FunctionTester T("(function(a,b) { return a << b; })"); |
86 | 100 |
87 T.CheckCall(4, 2, 1); | 101 T.CheckCall(4, 2, 1); |
88 T.CheckCall(T.Val(4), T.Val("2"), T.Val(1)); | 102 T.CheckCall(T.Val(4), T.Val("2"), T.Val(1)); |
89 T.CheckCall(T.Val(4), T.Val(2), T.Val("1")); | 103 T.CheckCall(T.Val(4), T.Val(2), T.Val("1")); |
90 } | 104 } |
91 | 105 |
92 | 106 |
93 TEST(BinopShiftRight) { | 107 TEST(BinopShiftRight) { |
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
536 " get z() { return 0; }" | 550 " get z() { return 0; }" |
537 " constructor() {}" | 551 " constructor() {}" |
538 " }" | 552 " }" |
539 " return new C().x() + C.y();" | 553 " return new C().x() + C.y();" |
540 "})"; | 554 "})"; |
541 FunctionTester T(src); | 555 FunctionTester T(src); |
542 | 556 |
543 T.CheckCall(T.Val(65), T.Val(23), T.Val(42)); | 557 T.CheckCall(T.Val(65), T.Val(23), T.Val(42)); |
544 T.CheckCall(T.Val("ab"), T.Val("a"), T.Val("b")); | 558 T.CheckCall(T.Val("ab"), T.Val("a"), T.Val("b")); |
545 } | 559 } |
OLD | NEW |