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 |