| 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 #include <tuple> | 5 #include <tuple> |
| 6 | 6 |
| 7 #include "src/v8.h" | 7 #include "src/v8.h" |
| 8 | 8 |
| 9 #include "src/execution.h" | 9 #include "src/execution.h" |
| 10 #include "src/handles.h" | 10 #include "src/handles.h" |
| (...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 585 isolate->factory()->NewStringFromAsciiChecked("foobar"), | 585 isolate->factory()->NewStringFromAsciiChecked("foobar"), |
| 586 BinaryOperationFeedback::kString}, | 586 BinaryOperationFeedback::kString}, |
| 587 {Token::Value::ADD, ast_factory.NewSmi(2), | 587 {Token::Value::ADD, ast_factory.NewSmi(2), |
| 588 ast_factory.NewString(ast_factory.GetOneByteString("2")), | 588 ast_factory.NewString(ast_factory.GetOneByteString("2")), |
| 589 isolate->factory()->NewStringFromAsciiChecked("22"), | 589 isolate->factory()->NewStringFromAsciiChecked("22"), |
| 590 BinaryOperationFeedback::kAny}, | 590 BinaryOperationFeedback::kAny}, |
| 591 // SUB | 591 // SUB |
| 592 {Token::Value::SUB, ast_factory.NewSmi(2), ast_factory.NewSmi(3), | 592 {Token::Value::SUB, ast_factory.NewSmi(2), ast_factory.NewSmi(3), |
| 593 Handle<Smi>(Smi::FromInt(-1), isolate), | 593 Handle<Smi>(Smi::FromInt(-1), isolate), |
| 594 BinaryOperationFeedback::kSignedSmall}, | 594 BinaryOperationFeedback::kSignedSmall}, |
| 595 {Token::Value::SUB, ast_factory.NewSmi(Smi::kMinValue), | 595 {Token::Value::SUB, |
| 596 ast_factory.NewSmi(static_cast<uint32_t>(Smi::kMinValue)), |
| 596 ast_factory.NewSmi(1), | 597 ast_factory.NewSmi(1), |
| 597 isolate->factory()->NewHeapNumber(Smi::kMinValue - 1.0), | 598 isolate->factory()->NewHeapNumber(Smi::kMinValue - 1.0), |
| 598 BinaryOperationFeedback::kNumber}, | 599 BinaryOperationFeedback::kNumber}, |
| 599 {Token::Value::SUB, ast_factory.NewNumber(3.1415), ast_factory.NewSmi(3), | 600 {Token::Value::SUB, ast_factory.NewNumber(3.1415), ast_factory.NewSmi(3), |
| 600 isolate->factory()->NewHeapNumber(3.1415 - 3), | 601 isolate->factory()->NewHeapNumber(3.1415 - 3), |
| 601 BinaryOperationFeedback::kNumber}, | 602 BinaryOperationFeedback::kNumber}, |
| 602 {Token::Value::SUB, ast_factory.NewNumber(3.1415), | 603 {Token::Value::SUB, ast_factory.NewNumber(3.1415), |
| 603 ast_factory.NewNumber(1.4142), | 604 ast_factory.NewNumber(1.4142), |
| 604 isolate->factory()->NewHeapNumber(3.1415 - 1.4142), | 605 isolate->factory()->NewHeapNumber(3.1415 - 1.4142), |
| 605 BinaryOperationFeedback::kNumber}, | 606 BinaryOperationFeedback::kNumber}, |
| 606 {Token::Value::SUB, ast_factory.NewSmi(2), | 607 {Token::Value::SUB, ast_factory.NewSmi(2), |
| 607 ast_factory.NewString(ast_factory.GetOneByteString("1")), | 608 ast_factory.NewString(ast_factory.GetOneByteString("1")), |
| 608 Handle<Smi>(Smi::FromInt(1), isolate), BinaryOperationFeedback::kAny}, | 609 Handle<Smi>(Smi::FromInt(1), isolate), BinaryOperationFeedback::kAny}, |
| 609 // MUL | 610 // MUL |
| 610 {Token::Value::MUL, ast_factory.NewSmi(2), ast_factory.NewSmi(3), | 611 {Token::Value::MUL, ast_factory.NewSmi(2), ast_factory.NewSmi(3), |
| 611 Handle<Smi>(Smi::FromInt(6), isolate), | 612 Handle<Smi>(Smi::FromInt(6), isolate), |
| 612 BinaryOperationFeedback::kSignedSmall}, | 613 BinaryOperationFeedback::kSignedSmall}, |
| 613 {Token::Value::MUL, ast_factory.NewSmi(Smi::kMinValue), | 614 {Token::Value::MUL, |
| 615 ast_factory.NewSmi(static_cast<uint32_t>(Smi::kMinValue)), |
| 614 ast_factory.NewSmi(2), | 616 ast_factory.NewSmi(2), |
| 615 isolate->factory()->NewHeapNumber(Smi::kMinValue * 2.0), | 617 isolate->factory()->NewHeapNumber(Smi::kMinValue * 2.0), |
| 616 BinaryOperationFeedback::kNumber}, | 618 BinaryOperationFeedback::kNumber}, |
| 617 {Token::Value::MUL, ast_factory.NewNumber(3.1415), ast_factory.NewSmi(3), | 619 {Token::Value::MUL, ast_factory.NewNumber(3.1415), ast_factory.NewSmi(3), |
| 618 isolate->factory()->NewHeapNumber(3 * 3.1415), | 620 isolate->factory()->NewHeapNumber(3 * 3.1415), |
| 619 BinaryOperationFeedback::kNumber}, | 621 BinaryOperationFeedback::kNumber}, |
| 620 {Token::Value::MUL, ast_factory.NewNumber(3.1415), | 622 {Token::Value::MUL, ast_factory.NewNumber(3.1415), |
| 621 ast_factory.NewNumber(1.4142), | 623 ast_factory.NewNumber(1.4142), |
| 622 isolate->factory()->NewHeapNumber(3.1415 * 1.4142), | 624 isolate->factory()->NewHeapNumber(3.1415 * 1.4142), |
| 623 BinaryOperationFeedback::kNumber}, | 625 BinaryOperationFeedback::kNumber}, |
| (...skipping 14 matching lines...) Expand all Loading... |
| 638 ast_factory.NewNumber(-std::numeric_limits<double>::infinity()), | 640 ast_factory.NewNumber(-std::numeric_limits<double>::infinity()), |
| 639 isolate->factory()->NewHeapNumber(-0.0), | 641 isolate->factory()->NewHeapNumber(-0.0), |
| 640 BinaryOperationFeedback::kNumber}, | 642 BinaryOperationFeedback::kNumber}, |
| 641 {Token::Value::DIV, ast_factory.NewSmi(2), | 643 {Token::Value::DIV, ast_factory.NewSmi(2), |
| 642 ast_factory.NewString(ast_factory.GetOneByteString("1")), | 644 ast_factory.NewString(ast_factory.GetOneByteString("1")), |
| 643 Handle<Smi>(Smi::FromInt(2), isolate), BinaryOperationFeedback::kAny}, | 645 Handle<Smi>(Smi::FromInt(2), isolate), BinaryOperationFeedback::kAny}, |
| 644 // MOD | 646 // MOD |
| 645 {Token::Value::MOD, ast_factory.NewSmi(5), ast_factory.NewSmi(3), | 647 {Token::Value::MOD, ast_factory.NewSmi(5), ast_factory.NewSmi(3), |
| 646 Handle<Smi>(Smi::FromInt(2), isolate), | 648 Handle<Smi>(Smi::FromInt(2), isolate), |
| 647 BinaryOperationFeedback::kSignedSmall}, | 649 BinaryOperationFeedback::kSignedSmall}, |
| 648 {Token::Value::MOD, ast_factory.NewSmi(-4), ast_factory.NewSmi(2), | 650 {Token::Value::MOD, ast_factory.NewSmi(static_cast<uint32_t>(-4)), |
| 649 isolate->factory()->NewHeapNumber(-0.0), | 651 ast_factory.NewSmi(2), isolate->factory()->NewHeapNumber(-0.0), |
| 650 BinaryOperationFeedback::kNumber}, | 652 BinaryOperationFeedback::kNumber}, |
| 651 {Token::Value::MOD, ast_factory.NewNumber(3.1415), ast_factory.NewSmi(3), | 653 {Token::Value::MOD, ast_factory.NewNumber(3.1415), ast_factory.NewSmi(3), |
| 652 isolate->factory()->NewHeapNumber(fmod(3.1415, 3.0)), | 654 isolate->factory()->NewHeapNumber(fmod(3.1415, 3.0)), |
| 653 BinaryOperationFeedback::kNumber}, | 655 BinaryOperationFeedback::kNumber}, |
| 654 {Token::Value::MOD, ast_factory.NewNumber(-3.1415), | 656 {Token::Value::MOD, ast_factory.NewNumber(-3.1415), |
| 655 ast_factory.NewNumber(-1.4142), | 657 ast_factory.NewNumber(-1.4142), |
| 656 isolate->factory()->NewHeapNumber(fmod(-3.1415, -1.4142)), | 658 isolate->factory()->NewHeapNumber(fmod(-3.1415, -1.4142)), |
| 657 BinaryOperationFeedback::kNumber}, | 659 BinaryOperationFeedback::kNumber}, |
| 658 {Token::Value::MOD, ast_factory.NewSmi(3), | 660 {Token::Value::MOD, ast_factory.NewSmi(3), |
| 659 ast_factory.NewString(ast_factory.GetOneByteString("-2")), | 661 ast_factory.NewString(ast_factory.GetOneByteString("-2")), |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 716 isolate->factory()->NewHeapNumber(3.1415 + 2.0), | 718 isolate->factory()->NewHeapNumber(3.1415 + 2.0), |
| 717 BinaryOperationFeedback::kNumber}, | 719 BinaryOperationFeedback::kNumber}, |
| 718 {Token::Value::ADD, | 720 {Token::Value::ADD, |
| 719 ast_factory.NewString(ast_factory.GetOneByteString("2")), 2, | 721 ast_factory.NewString(ast_factory.GetOneByteString("2")), 2, |
| 720 isolate->factory()->NewStringFromAsciiChecked("22"), | 722 isolate->factory()->NewStringFromAsciiChecked("22"), |
| 721 BinaryOperationFeedback::kAny}, | 723 BinaryOperationFeedback::kAny}, |
| 722 // SUB | 724 // SUB |
| 723 {Token::Value::SUB, ast_factory.NewSmi(2), 42, | 725 {Token::Value::SUB, ast_factory.NewSmi(2), 42, |
| 724 Handle<Smi>(Smi::FromInt(-40), isolate), | 726 Handle<Smi>(Smi::FromInt(-40), isolate), |
| 725 BinaryOperationFeedback::kSignedSmall}, | 727 BinaryOperationFeedback::kSignedSmall}, |
| 726 {Token::Value::SUB, ast_factory.NewSmi(Smi::kMinValue), 1, | 728 {Token::Value::SUB, |
| 729 ast_factory.NewSmi(static_cast<uint32_t>(Smi::kMinValue)), 1, |
| 727 isolate->factory()->NewHeapNumber(Smi::kMinValue - 1.0), | 730 isolate->factory()->NewHeapNumber(Smi::kMinValue - 1.0), |
| 728 BinaryOperationFeedback::kNumber}, | 731 BinaryOperationFeedback::kNumber}, |
| 729 {Token::Value::SUB, ast_factory.NewNumber(3.1415), 2, | 732 {Token::Value::SUB, ast_factory.NewNumber(3.1415), 2, |
| 730 isolate->factory()->NewHeapNumber(3.1415 - 2.0), | 733 isolate->factory()->NewHeapNumber(3.1415 - 2.0), |
| 731 BinaryOperationFeedback::kNumber}, | 734 BinaryOperationFeedback::kNumber}, |
| 732 {Token::Value::SUB, | 735 {Token::Value::SUB, |
| 733 ast_factory.NewString(ast_factory.GetOneByteString("2")), 2, | 736 ast_factory.NewString(ast_factory.GetOneByteString("2")), 2, |
| 734 Handle<Smi>(Smi::kZero, isolate), BinaryOperationFeedback::kAny}, | 737 Handle<Smi>(Smi::kZero, isolate), BinaryOperationFeedback::kAny}, |
| 735 // BIT_OR | 738 // BIT_OR |
| 736 {Token::Value::BIT_OR, ast_factory.NewSmi(4), 1, | 739 {Token::Value::BIT_OR, ast_factory.NewSmi(4), 1, |
| (...skipping 4248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4985 auto callable = tester.GetCallable<>(); | 4988 auto callable = tester.GetCallable<>(); |
| 4986 | 4989 |
| 4987 Handle<i::Object> return_value = callable().ToHandleChecked(); | 4990 Handle<i::Object> return_value = callable().ToHandleChecked(); |
| 4988 CHECK(return_value->SameValue(*tests[i].second)); | 4991 CHECK(return_value->SameValue(*tests[i].second)); |
| 4989 } | 4992 } |
| 4990 } | 4993 } |
| 4991 | 4994 |
| 4992 } // namespace interpreter | 4995 } // namespace interpreter |
| 4993 } // namespace internal | 4996 } // namespace internal |
| 4994 } // namespace v8 | 4997 } // namespace v8 |
| OLD | NEW |