OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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/builtins/builtins.h" | 5 #include "src/builtins/builtins.h" |
6 #include "src/builtins/builtins-utils.h" | 6 #include "src/builtins/builtins-utils.h" |
7 | 7 |
8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
9 #include "src/code-stub-assembler.h" | 9 #include "src/code-stub-assembler.h" |
10 #include "src/contexts.h" | 10 #include "src/contexts.h" |
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
645 Bind(&after_loop); | 645 Bind(&after_loop); |
646 Return(UndefinedConstant()); | 646 Return(UndefinedConstant()); |
647 } | 647 } |
648 | 648 |
649 Bind(&throw_null_undefined_exception); | 649 Bind(&throw_null_undefined_exception); |
650 { | 650 { |
651 CallRuntime(Runtime::kThrowTypeError, context, | 651 CallRuntime(Runtime::kThrowTypeError, context, |
652 SmiConstant(MessageTemplate::kCalledOnNullOrUndefined), | 652 SmiConstant(MessageTemplate::kCalledOnNullOrUndefined), |
653 HeapConstant(isolate()->factory()->NewStringFromAsciiChecked( | 653 HeapConstant(isolate()->factory()->NewStringFromAsciiChecked( |
654 "Array.prototype.forEach"))); | 654 "Array.prototype.forEach"))); |
655 Return(UndefinedConstant()); | 655 Unreachable(); |
656 } | 656 } |
657 | 657 |
658 Bind(&type_exception); | 658 Bind(&type_exception); |
659 { | 659 { |
660 CallRuntime(Runtime::kThrowTypeError, context, | 660 CallRuntime(Runtime::kThrowTypeError, context, |
661 SmiConstant(MessageTemplate::kCalledNonCallable), callbackfn); | 661 SmiConstant(MessageTemplate::kCalledNonCallable), callbackfn); |
662 Return(UndefinedConstant()); | 662 Unreachable(); |
663 } | 663 } |
664 } | 664 } |
665 | 665 |
666 BUILTIN(ArraySlice) { | 666 BUILTIN(ArraySlice) { |
667 HandleScope scope(isolate); | 667 HandleScope scope(isolate); |
668 Handle<Object> receiver = args.receiver(); | 668 Handle<Object> receiver = args.receiver(); |
669 int len = -1; | 669 int len = -1; |
670 int relative_start = 0; | 670 int relative_start = 0; |
671 int relative_end = 0; | 671 int relative_end = 0; |
672 | 672 |
(...skipping 2156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2829 assembler.StoreObjectFieldNoWriteBarrier( | 2829 assembler.StoreObjectFieldNoWriteBarrier( |
2830 result, JSIteratorResult::kValueOffset, var_value.value()); | 2830 result, JSIteratorResult::kValueOffset, var_value.value()); |
2831 assembler.StoreObjectFieldNoWriteBarrier( | 2831 assembler.StoreObjectFieldNoWriteBarrier( |
2832 result, JSIteratorResult::kDoneOffset, var_done.value()); | 2832 result, JSIteratorResult::kDoneOffset, var_done.value()); |
2833 assembler.Return(result); | 2833 assembler.Return(result); |
2834 } | 2834 } |
2835 | 2835 |
2836 assembler.Bind(&throw_bad_receiver); | 2836 assembler.Bind(&throw_bad_receiver); |
2837 { | 2837 { |
2838 // The {receiver} is not a valid JSArrayIterator. | 2838 // The {receiver} is not a valid JSArrayIterator. |
2839 Node* result = assembler.CallRuntime( | 2839 assembler.CallRuntime(Runtime::kThrowIncompatibleMethodReceiver, context, |
2840 Runtime::kThrowIncompatibleMethodReceiver, context, | 2840 assembler.HeapConstant(operation), iterator); |
2841 assembler.HeapConstant(operation), iterator); | 2841 assembler.Unreachable(); |
2842 assembler.Return(result); | |
2843 } | 2842 } |
2844 | 2843 |
2845 assembler.Bind(&if_isdetached); | 2844 assembler.Bind(&if_isdetached); |
2846 { | 2845 { |
2847 Node* message = assembler.SmiConstant(MessageTemplate::kDetachedOperation); | 2846 Node* message = assembler.SmiConstant(MessageTemplate::kDetachedOperation); |
2848 Node* result = | 2847 assembler.CallRuntime(Runtime::kThrowTypeError, context, message, |
2849 assembler.CallRuntime(Runtime::kThrowTypeError, context, message, | 2848 assembler.HeapConstant(operation)); |
2850 assembler.HeapConstant(operation)); | 2849 assembler.Unreachable(); |
2851 assembler.Return(result); | |
2852 } | 2850 } |
2853 } | 2851 } |
2854 | 2852 |
2855 } // namespace internal | 2853 } // namespace internal |
2856 } // namespace v8 | 2854 } // namespace v8 |
OLD | NEW |