Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Side by Side Diff: src/builtins/builtins-date.cc

Issue 2734323004: [cleanup] Refactor remaining builtins-*.cc to use TF_BUILTIN macro (Closed)
Patch Set: drop unused variable Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/builtins/builtins-conversion.cc ('k') | src/builtins/builtins-function.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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-utils.h" 5 #include "src/builtins/builtins-utils.h"
6 #include "src/builtins/builtins.h" 6 #include "src/builtins/builtins.h"
7 #include "src/code-factory.h" 7 #include "src/code-factory.h"
8 #include "src/code-stub-assembler.h" 8 #include "src/code-stub-assembler.h"
9 #include "src/conversions.h" 9 #include "src/conversions.h"
10 #include "src/counters.h" 10 #include "src/counters.h"
11 #include "src/dateparser-inl.h" 11 #include "src/dateparser-inl.h"
12 #include "src/objects-inl.h" 12 #include "src/objects-inl.h"
13 13
14 namespace v8 { 14 namespace v8 {
15 namespace internal { 15 namespace internal {
16 16
17 // ----------------------------------------------------------------------------- 17 // -----------------------------------------------------------------------------
18 // ES6 section 20.3 Date Objects 18 // ES6 section 20.3 Date Objects
19 19
20 class DateBuiltinsAssembler : public CodeStubAssembler {
21 public:
22 explicit DateBuiltinsAssembler(compiler::CodeAssemblerState* state)
23 : CodeStubAssembler(state) {}
24
25 protected:
26 void Generate_DatePrototype_GetField(int field_index);
27 };
28
20 namespace { 29 namespace {
21 30
22 // ES6 section 20.3.1.1 Time Values and Time Range 31 // ES6 section 20.3.1.1 Time Values and Time Range
23 const double kMinYear = -1000000.0; 32 const double kMinYear = -1000000.0;
24 const double kMaxYear = -kMinYear; 33 const double kMaxYear = -kMinYear;
25 const double kMinMonth = -10000000.0; 34 const double kMinMonth = -10000000.0;
26 const double kMaxMonth = -kMinMonth; 35 const double kMaxMonth = -kMinMonth;
27 36
28 // 20.3.1.2 Day Number and Time within Day 37 // 20.3.1.2 Day Number and Time within Day
29 const double kMsPerDay = 86400000.0; 38 const double kMsPerDay = 86400000.0;
(...skipping 858 matching lines...) Expand 10 before | Expand all | Expand 10 after
888 Object::GetProperty(receiver_obj, name)); 897 Object::GetProperty(receiver_obj, name));
889 if (!function->IsCallable()) { 898 if (!function->IsCallable()) {
890 THROW_NEW_ERROR_RETURN_FAILURE( 899 THROW_NEW_ERROR_RETURN_FAILURE(
891 isolate, NewTypeError(MessageTemplate::kCalledNonCallable, name)); 900 isolate, NewTypeError(MessageTemplate::kCalledNonCallable, name));
892 } 901 }
893 RETURN_RESULT_OR_FAILURE( 902 RETURN_RESULT_OR_FAILURE(
894 isolate, Execution::Call(isolate, function, receiver_obj, 0, NULL)); 903 isolate, Execution::Call(isolate, function, receiver_obj, 0, NULL));
895 } 904 }
896 } 905 }
897 906
898 namespace { 907 void DateBuiltinsAssembler::Generate_DatePrototype_GetField(int field_index) {
908 Node* receiver = Parameter(0);
909 Node* context = Parameter(3);
899 910
900 void Generate_DatePrototype_GetField(CodeStubAssembler* assembler, 911 Label receiver_not_date(this, Label::kDeferred);
901 int field_index) {
902 typedef CodeStubAssembler::Label Label;
903 typedef compiler::Node Node;
904 912
905 Node* receiver = assembler->Parameter(0); 913 GotoIf(TaggedIsSmi(receiver), &receiver_not_date);
906 Node* context = assembler->Parameter(3); 914 Node* receiver_instance_type = LoadInstanceType(receiver);
907 915 GotoIf(Word32NotEqual(receiver_instance_type, Int32Constant(JS_DATE_TYPE)),
908 Label receiver_not_date(assembler, Label::kDeferred); 916 &receiver_not_date);
909
910 assembler->GotoIf(assembler->TaggedIsSmi(receiver), &receiver_not_date);
911 Node* receiver_instance_type = assembler->LoadInstanceType(receiver);
912 assembler->GotoIf(
913 assembler->Word32NotEqual(receiver_instance_type,
914 assembler->Int32Constant(JS_DATE_TYPE)),
915 &receiver_not_date);
916 917
917 // Load the specified date field, falling back to the runtime as necessary. 918 // Load the specified date field, falling back to the runtime as necessary.
918 if (field_index == JSDate::kDateValue) { 919 if (field_index == JSDate::kDateValue) {
919 assembler->Return( 920 Return(LoadObjectField(receiver, JSDate::kValueOffset));
920 assembler->LoadObjectField(receiver, JSDate::kValueOffset));
921 } else { 921 } else {
922 if (field_index < JSDate::kFirstUncachedField) { 922 if (field_index < JSDate::kFirstUncachedField) {
923 Label stamp_mismatch(assembler, Label::kDeferred); 923 Label stamp_mismatch(this, Label::kDeferred);
924 Node* date_cache_stamp = assembler->Load( 924 Node* date_cache_stamp = Load(
925 MachineType::AnyTagged(), 925 MachineType::AnyTagged(),
926 assembler->ExternalConstant( 926 ExternalConstant(ExternalReference::date_cache_stamp(isolate())));
927 ExternalReference::date_cache_stamp(assembler->isolate())));
928 927
929 Node* cache_stamp = 928 Node* cache_stamp = LoadObjectField(receiver, JSDate::kCacheStampOffset);
930 assembler->LoadObjectField(receiver, JSDate::kCacheStampOffset); 929 GotoIf(WordNotEqual(date_cache_stamp, cache_stamp), &stamp_mismatch);
931 assembler->GotoIf(assembler->WordNotEqual(date_cache_stamp, cache_stamp), 930 Return(LoadObjectField(
932 &stamp_mismatch);
933 assembler->Return(assembler->LoadObjectField(
934 receiver, JSDate::kValueOffset + field_index * kPointerSize)); 931 receiver, JSDate::kValueOffset + field_index * kPointerSize));
935 932
936 assembler->Bind(&stamp_mismatch); 933 Bind(&stamp_mismatch);
937 } 934 }
938 935
939 Node* field_index_smi = assembler->SmiConstant(Smi::FromInt(field_index)); 936 Node* field_index_smi = SmiConstant(Smi::FromInt(field_index));
940 Node* function = assembler->ExternalConstant( 937 Node* function =
941 ExternalReference::get_date_field_function(assembler->isolate())); 938 ExternalConstant(ExternalReference::get_date_field_function(isolate()));
942 Node* result = assembler->CallCFunction2( 939 Node* result = CallCFunction2(
943 MachineType::AnyTagged(), MachineType::AnyTagged(), 940 MachineType::AnyTagged(), MachineType::AnyTagged(),
944 MachineType::AnyTagged(), function, receiver, field_index_smi); 941 MachineType::AnyTagged(), function, receiver, field_index_smi);
945 assembler->Return(result); 942 Return(result);
946 } 943 }
947 944
948 // Raise a TypeError if the receiver is not a date. 945 // Raise a TypeError if the receiver is not a date.
949 assembler->Bind(&receiver_not_date); 946 Bind(&receiver_not_date);
950 { 947 {
951 assembler->CallRuntime(Runtime::kThrowNotDateError, context); 948 CallRuntime(Runtime::kThrowNotDateError, context);
952 assembler->Unreachable(); 949 Unreachable();
953 } 950 }
954 } 951 }
955 952
956 } // namespace 953 TF_BUILTIN(DatePrototypeGetDate, DateBuiltinsAssembler) {
957 954 Generate_DatePrototype_GetField(JSDate::kDay);
958 // static
959 void Builtins::Generate_DatePrototypeGetDate(
960 compiler::CodeAssemblerState* state) {
961 CodeStubAssembler assembler(state);
962 Generate_DatePrototype_GetField(&assembler, JSDate::kDay);
963 } 955 }
964 956
965 // static 957 TF_BUILTIN(DatePrototypeGetDay, DateBuiltinsAssembler) {
966 void Builtins::Generate_DatePrototypeGetDay( 958 Generate_DatePrototype_GetField(JSDate::kWeekday);
967 compiler::CodeAssemblerState* state) {
968 CodeStubAssembler assembler(state);
969 Generate_DatePrototype_GetField(&assembler, JSDate::kWeekday);
970 } 959 }
971 960
972 // static 961 TF_BUILTIN(DatePrototypeGetFullYear, DateBuiltinsAssembler) {
973 void Builtins::Generate_DatePrototypeGetFullYear( 962 Generate_DatePrototype_GetField(JSDate::kYear);
974 compiler::CodeAssemblerState* state) {
975 CodeStubAssembler assembler(state);
976 Generate_DatePrototype_GetField(&assembler, JSDate::kYear);
977 } 963 }
978 964
979 // static 965 TF_BUILTIN(DatePrototypeGetHours, DateBuiltinsAssembler) {
980 void Builtins::Generate_DatePrototypeGetHours( 966 Generate_DatePrototype_GetField(JSDate::kHour);
981 compiler::CodeAssemblerState* state) {
982 CodeStubAssembler assembler(state);
983 Generate_DatePrototype_GetField(&assembler, JSDate::kHour);
984 } 967 }
985 968
986 // static 969 TF_BUILTIN(DatePrototypeGetMilliseconds, DateBuiltinsAssembler) {
987 void Builtins::Generate_DatePrototypeGetMilliseconds( 970 Generate_DatePrototype_GetField(JSDate::kMillisecond);
988 compiler::CodeAssemblerState* state) {
989 CodeStubAssembler assembler(state);
990 Generate_DatePrototype_GetField(&assembler, JSDate::kMillisecond);
991 } 971 }
992 972
993 // static 973 TF_BUILTIN(DatePrototypeGetMinutes, DateBuiltinsAssembler) {
994 void Builtins::Generate_DatePrototypeGetMinutes( 974 Generate_DatePrototype_GetField(JSDate::kMinute);
995 compiler::CodeAssemblerState* state) {
996 CodeStubAssembler assembler(state);
997 Generate_DatePrototype_GetField(&assembler, JSDate::kMinute);
998 } 975 }
999 976
1000 // static 977 TF_BUILTIN(DatePrototypeGetMonth, DateBuiltinsAssembler) {
1001 void Builtins::Generate_DatePrototypeGetMonth( 978 Generate_DatePrototype_GetField(JSDate::kMonth);
1002 compiler::CodeAssemblerState* state) {
1003 CodeStubAssembler assembler(state);
1004 Generate_DatePrototype_GetField(&assembler, JSDate::kMonth);
1005 } 979 }
1006 980
1007 // static 981 TF_BUILTIN(DatePrototypeGetSeconds, DateBuiltinsAssembler) {
1008 void Builtins::Generate_DatePrototypeGetSeconds( 982 Generate_DatePrototype_GetField(JSDate::kSecond);
1009 compiler::CodeAssemblerState* state) {
1010 CodeStubAssembler assembler(state);
1011 Generate_DatePrototype_GetField(&assembler, JSDate::kSecond);
1012 } 983 }
1013 984
1014 // static 985 TF_BUILTIN(DatePrototypeGetTime, DateBuiltinsAssembler) {
1015 void Builtins::Generate_DatePrototypeGetTime( 986 Generate_DatePrototype_GetField(JSDate::kDateValue);
1016 compiler::CodeAssemblerState* state) {
1017 CodeStubAssembler assembler(state);
1018 Generate_DatePrototype_GetField(&assembler, JSDate::kDateValue);
1019 } 987 }
1020 988
1021 // static 989 TF_BUILTIN(DatePrototypeGetTimezoneOffset, DateBuiltinsAssembler) {
1022 void Builtins::Generate_DatePrototypeGetTimezoneOffset( 990 Generate_DatePrototype_GetField(JSDate::kTimezoneOffset);
1023 compiler::CodeAssemblerState* state) {
1024 CodeStubAssembler assembler(state);
1025 Generate_DatePrototype_GetField(&assembler, JSDate::kTimezoneOffset);
1026 } 991 }
1027 992
1028 // static 993 TF_BUILTIN(DatePrototypeGetUTCDate, DateBuiltinsAssembler) {
1029 void Builtins::Generate_DatePrototypeGetUTCDate( 994 Generate_DatePrototype_GetField(JSDate::kDayUTC);
1030 compiler::CodeAssemblerState* state) {
1031 CodeStubAssembler assembler(state);
1032 Generate_DatePrototype_GetField(&assembler, JSDate::kDayUTC);
1033 } 995 }
1034 996
1035 // static 997 TF_BUILTIN(DatePrototypeGetUTCDay, DateBuiltinsAssembler) {
1036 void Builtins::Generate_DatePrototypeGetUTCDay( 998 Generate_DatePrototype_GetField(JSDate::kWeekdayUTC);
1037 compiler::CodeAssemblerState* state) {
1038 CodeStubAssembler assembler(state);
1039 Generate_DatePrototype_GetField(&assembler, JSDate::kWeekdayUTC);
1040 } 999 }
1041 1000
1042 // static 1001 TF_BUILTIN(DatePrototypeGetUTCFullYear, DateBuiltinsAssembler) {
1043 void Builtins::Generate_DatePrototypeGetUTCFullYear( 1002 Generate_DatePrototype_GetField(JSDate::kYearUTC);
1044 compiler::CodeAssemblerState* state) {
1045 CodeStubAssembler assembler(state);
1046 Generate_DatePrototype_GetField(&assembler, JSDate::kYearUTC);
1047 } 1003 }
1048 1004
1049 // static 1005 TF_BUILTIN(DatePrototypeGetUTCHours, DateBuiltinsAssembler) {
1050 void Builtins::Generate_DatePrototypeGetUTCHours( 1006 Generate_DatePrototype_GetField(JSDate::kHourUTC);
1051 compiler::CodeAssemblerState* state) {
1052 CodeStubAssembler assembler(state);
1053 Generate_DatePrototype_GetField(&assembler, JSDate::kHourUTC);
1054 } 1007 }
1055 1008
1056 // static 1009 TF_BUILTIN(DatePrototypeGetUTCMilliseconds, DateBuiltinsAssembler) {
1057 void Builtins::Generate_DatePrototypeGetUTCMilliseconds( 1010 Generate_DatePrototype_GetField(JSDate::kMillisecondUTC);
1058 compiler::CodeAssemblerState* state) {
1059 CodeStubAssembler assembler(state);
1060 Generate_DatePrototype_GetField(&assembler, JSDate::kMillisecondUTC);
1061 } 1011 }
1062 1012
1063 // static 1013 TF_BUILTIN(DatePrototypeGetUTCMinutes, DateBuiltinsAssembler) {
1064 void Builtins::Generate_DatePrototypeGetUTCMinutes( 1014 Generate_DatePrototype_GetField(JSDate::kMinuteUTC);
1065 compiler::CodeAssemblerState* state) {
1066 CodeStubAssembler assembler(state);
1067 Generate_DatePrototype_GetField(&assembler, JSDate::kMinuteUTC);
1068 } 1015 }
1069 1016
1070 // static 1017 TF_BUILTIN(DatePrototypeGetUTCMonth, DateBuiltinsAssembler) {
1071 void Builtins::Generate_DatePrototypeGetUTCMonth( 1018 Generate_DatePrototype_GetField(JSDate::kMonthUTC);
1072 compiler::CodeAssemblerState* state) {
1073 CodeStubAssembler assembler(state);
1074 Generate_DatePrototype_GetField(&assembler, JSDate::kMonthUTC);
1075 } 1019 }
1076 1020
1077 // static 1021 TF_BUILTIN(DatePrototypeGetUTCSeconds, DateBuiltinsAssembler) {
1078 void Builtins::Generate_DatePrototypeGetUTCSeconds( 1022 Generate_DatePrototype_GetField(JSDate::kSecondUTC);
1079 compiler::CodeAssemblerState* state) {
1080 CodeStubAssembler assembler(state);
1081 Generate_DatePrototype_GetField(&assembler, JSDate::kSecondUTC);
1082 } 1023 }
1083 1024
1084 // static 1025 TF_BUILTIN(DatePrototypeValueOf, DateBuiltinsAssembler) {
1085 void Builtins::Generate_DatePrototypeValueOf( 1026 Generate_DatePrototype_GetField(JSDate::kDateValue);
1086 compiler::CodeAssemblerState* state) {
1087 CodeStubAssembler assembler(state);
1088 Generate_DatePrototype_GetField(&assembler, JSDate::kDateValue);
1089 } 1027 }
1090 1028
1091 // static 1029 TF_BUILTIN(DatePrototypeToPrimitive, CodeStubAssembler) {
1092 void Builtins::Generate_DatePrototypeToPrimitive( 1030 Node* receiver = Parameter(0);
1093 compiler::CodeAssemblerState* state) { 1031 Node* hint = Parameter(1);
1094 CodeStubAssembler assembler(state); 1032 Node* context = Parameter(4);
1095 typedef CodeStubAssembler::Label Label;
1096 typedef compiler::Node Node;
1097
1098 Node* receiver = assembler.Parameter(0);
1099 Node* hint = assembler.Parameter(1);
1100 Node* context = assembler.Parameter(4);
1101 1033
1102 // Check if the {receiver} is actually a JSReceiver. 1034 // Check if the {receiver} is actually a JSReceiver.
1103 Label receiver_is_invalid(&assembler, Label::kDeferred); 1035 Label receiver_is_invalid(this, Label::kDeferred);
1104 assembler.GotoIf(assembler.TaggedIsSmi(receiver), &receiver_is_invalid); 1036 GotoIf(TaggedIsSmi(receiver), &receiver_is_invalid);
1105 assembler.GotoIfNot(assembler.IsJSReceiver(receiver), &receiver_is_invalid); 1037 GotoIfNot(IsJSReceiver(receiver), &receiver_is_invalid);
1106 1038
1107 // Dispatch to the appropriate OrdinaryToPrimitive builtin. 1039 // Dispatch to the appropriate OrdinaryToPrimitive builtin.
1108 Label hint_is_number(&assembler), hint_is_string(&assembler), 1040 Label hint_is_number(this), hint_is_string(this),
1109 hint_is_invalid(&assembler, Label::kDeferred); 1041 hint_is_invalid(this, Label::kDeferred);
1110 1042
1111 // Fast cases for internalized strings. 1043 // Fast cases for internalized strings.
1112 Node* number_string = assembler.LoadRoot(Heap::knumber_stringRootIndex); 1044 Node* number_string = LoadRoot(Heap::knumber_stringRootIndex);
1113 assembler.GotoIf(assembler.WordEqual(hint, number_string), &hint_is_number); 1045 GotoIf(WordEqual(hint, number_string), &hint_is_number);
1114 Node* default_string = assembler.LoadRoot(Heap::kdefault_stringRootIndex); 1046 Node* default_string = LoadRoot(Heap::kdefault_stringRootIndex);
1115 assembler.GotoIf(assembler.WordEqual(hint, default_string), &hint_is_string); 1047 GotoIf(WordEqual(hint, default_string), &hint_is_string);
1116 Node* string_string = assembler.LoadRoot(Heap::kstring_stringRootIndex); 1048 Node* string_string = LoadRoot(Heap::kstring_stringRootIndex);
1117 assembler.GotoIf(assembler.WordEqual(hint, string_string), &hint_is_string); 1049 GotoIf(WordEqual(hint, string_string), &hint_is_string);
1118 1050
1119 // Slow-case with actual string comparisons. 1051 // Slow-case with actual string comparisons.
1120 Callable string_equal = CodeFactory::StringEqual(assembler.isolate()); 1052 Callable string_equal = CodeFactory::StringEqual(isolate());
1121 assembler.GotoIf(assembler.TaggedIsSmi(hint), &hint_is_invalid); 1053 GotoIf(TaggedIsSmi(hint), &hint_is_invalid);
1122 assembler.GotoIfNot(assembler.IsString(hint), &hint_is_invalid); 1054 GotoIfNot(IsString(hint), &hint_is_invalid);
1123 assembler.GotoIf(assembler.WordEqual(assembler.CallStub(string_equal, context, 1055 GotoIf(WordEqual(CallStub(string_equal, context, hint, number_string),
1124 hint, number_string), 1056 TrueConstant()),
1125 assembler.TrueConstant()), 1057 &hint_is_number);
1126 &hint_is_number); 1058 GotoIf(WordEqual(CallStub(string_equal, context, hint, default_string),
1127 assembler.GotoIf(assembler.WordEqual(assembler.CallStub(string_equal, context, 1059 TrueConstant()),
1128 hint, default_string), 1060 &hint_is_string);
1129 assembler.TrueConstant()), 1061 GotoIf(WordEqual(CallStub(string_equal, context, hint, string_string),
1130 &hint_is_string); 1062 TrueConstant()),
1131 assembler.GotoIf(assembler.WordEqual(assembler.CallStub(string_equal, context, 1063 &hint_is_string);
1132 hint, string_string), 1064 Goto(&hint_is_invalid);
1133 assembler.TrueConstant()),
1134 &hint_is_string);
1135 assembler.Goto(&hint_is_invalid);
1136 1065
1137 // Use the OrdinaryToPrimitive builtin to convert to a Number. 1066 // Use the OrdinaryToPrimitive builtin to convert to a Number.
1138 assembler.Bind(&hint_is_number); 1067 Bind(&hint_is_number);
1139 { 1068 {
1140 Callable callable = CodeFactory::OrdinaryToPrimitive( 1069 Callable callable = CodeFactory::OrdinaryToPrimitive(
1141 assembler.isolate(), OrdinaryToPrimitiveHint::kNumber); 1070 isolate(), OrdinaryToPrimitiveHint::kNumber);
1142 Node* result = assembler.CallStub(callable, context, receiver); 1071 Node* result = CallStub(callable, context, receiver);
1143 assembler.Return(result); 1072 Return(result);
1144 } 1073 }
1145 1074
1146 // Use the OrdinaryToPrimitive builtin to convert to a String. 1075 // Use the OrdinaryToPrimitive builtin to convert to a String.
1147 assembler.Bind(&hint_is_string); 1076 Bind(&hint_is_string);
1148 { 1077 {
1149 Callable callable = CodeFactory::OrdinaryToPrimitive( 1078 Callable callable = CodeFactory::OrdinaryToPrimitive(
1150 assembler.isolate(), OrdinaryToPrimitiveHint::kString); 1079 isolate(), OrdinaryToPrimitiveHint::kString);
1151 Node* result = assembler.CallStub(callable, context, receiver); 1080 Node* result = CallStub(callable, context, receiver);
1152 assembler.Return(result); 1081 Return(result);
1153 } 1082 }
1154 1083
1155 // Raise a TypeError if the {hint} is invalid. 1084 // Raise a TypeError if the {hint} is invalid.
1156 assembler.Bind(&hint_is_invalid); 1085 Bind(&hint_is_invalid);
1157 { 1086 {
1158 assembler.CallRuntime(Runtime::kThrowInvalidHint, context, hint); 1087 CallRuntime(Runtime::kThrowInvalidHint, context, hint);
1159 assembler.Unreachable(); 1088 Unreachable();
1160 } 1089 }
1161 1090
1162 // Raise a TypeError if the {receiver} is not a JSReceiver instance. 1091 // Raise a TypeError if the {receiver} is not a JSReceiver instance.
1163 assembler.Bind(&receiver_is_invalid); 1092 Bind(&receiver_is_invalid);
1164 { 1093 {
1165 assembler.CallRuntime( 1094 CallRuntime(Runtime::kThrowIncompatibleMethodReceiver, context,
1166 Runtime::kThrowIncompatibleMethodReceiver, context, 1095 HeapConstant(factory()->NewStringFromAsciiChecked(
1167 assembler.HeapConstant(assembler.factory()->NewStringFromAsciiChecked( 1096 "Date.prototype [ @@toPrimitive ]", TENURED)),
1168 "Date.prototype [ @@toPrimitive ]", TENURED)), 1097 receiver);
1169 receiver); 1098 Unreachable();
1170 assembler.Unreachable();
1171 } 1099 }
1172 } 1100 }
1173 1101
1174 } // namespace internal 1102 } // namespace internal
1175 } // namespace v8 1103 } // namespace v8
OLDNEW
« no previous file with comments | « src/builtins/builtins-conversion.cc ('k') | src/builtins/builtins-function.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698