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

Side by Side Diff: src/objects.h

Issue 1333843002: [runtime] Move binary operator fallbacks into the runtime. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: No need for frame states in bytecode handlers. Add test case. Created 5 years, 3 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
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 #ifndef V8_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 1084 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 1095
1096 // ES6 section 7.1.14 ToPropertyKey 1096 // ES6 section 7.1.14 ToPropertyKey
1097 MUST_USE_RESULT static inline MaybeHandle<Name> ToName(Isolate* isolate, 1097 MUST_USE_RESULT static inline MaybeHandle<Name> ToName(Isolate* isolate,
1098 Handle<Object> input); 1098 Handle<Object> input);
1099 1099
1100 // ES6 section 7.1.1 ToPrimitive 1100 // ES6 section 7.1.1 ToPrimitive
1101 MUST_USE_RESULT static inline MaybeHandle<Object> ToPrimitive( 1101 MUST_USE_RESULT static inline MaybeHandle<Object> ToPrimitive(
1102 Handle<Object> input, ToPrimitiveHint hint = ToPrimitiveHint::kDefault); 1102 Handle<Object> input, ToPrimitiveHint hint = ToPrimitiveHint::kDefault);
1103 1103
1104 // ES6 section 7.1.3 ToNumber 1104 // ES6 section 7.1.3 ToNumber
1105 MUST_USE_RESULT static MaybeHandle<Object> ToNumber(Isolate* isolate, 1105 MUST_USE_RESULT static MaybeHandle<Object> ToNumber(Handle<Object> input);
1106 Handle<Object> input);
1107 1106
1108 // ES6 section 7.1.12 ToString 1107 // ES6 section 7.1.12 ToString
1109 MUST_USE_RESULT static MaybeHandle<String> ToString(Isolate* isolate, 1108 MUST_USE_RESULT static MaybeHandle<String> ToString(Isolate* isolate,
1110 Handle<Object> input); 1109 Handle<Object> input);
1111 1110
1112 // ES6 section 7.3.9 GetMethod 1111 // ES6 section 7.3.9 GetMethod
1113 MUST_USE_RESULT static MaybeHandle<Object> GetMethod( 1112 MUST_USE_RESULT static MaybeHandle<Object> GetMethod(
1114 Handle<JSReceiver> receiver, Handle<Name> name); 1113 Handle<JSReceiver> receiver, Handle<Name> name);
1115 1114
1116 // ES6 section 12.5.6 The typeof Operator 1115 // ES6 section 12.5.6 The typeof Operator
1117 static Handle<String> TypeOf(Isolate* isolate, Handle<Object> object); 1116 static Handle<String> TypeOf(Isolate* isolate, Handle<Object> object);
1118 1117
1118 // ES6 section 12.6 Multiplicative Operators
1119 MUST_USE_RESULT static MaybeHandle<Object> Multiply(
1120 Isolate* isolate, Handle<Object> lhs, Handle<Object> rhs,
1121 Strength strength = Strength::WEAK);
1122 MUST_USE_RESULT static MaybeHandle<Object> Divide(
1123 Isolate* isolate, Handle<Object> lhs, Handle<Object> rhs,
1124 Strength strength = Strength::WEAK);
1125 MUST_USE_RESULT static MaybeHandle<Object> Modulus(
1126 Isolate* isolate, Handle<Object> lhs, Handle<Object> rhs,
1127 Strength strength = Strength::WEAK);
1128
1129 // ES6 section 12.7 Additive Operators
1130 MUST_USE_RESULT static MaybeHandle<Object> Add(
1131 Isolate* isolate, Handle<Object> lhs, Handle<Object> rhs,
1132 Strength strength = Strength::WEAK);
1133 MUST_USE_RESULT static MaybeHandle<Object> Subtract(
1134 Isolate* isolate, Handle<Object> lhs, Handle<Object> rhs,
1135 Strength strength = Strength::WEAK);
1136
1137 // ES6 section 12.8 Bitwise Shift Operators
1138 MUST_USE_RESULT static MaybeHandle<Object> ShiftLeft(
1139 Isolate* isolate, Handle<Object> lhs, Handle<Object> rhs,
1140 Strength strength = Strength::WEAK);
1141 MUST_USE_RESULT static MaybeHandle<Object> ShiftRight(
1142 Isolate* isolate, Handle<Object> lhs, Handle<Object> rhs,
1143 Strength strength = Strength::WEAK);
1144 MUST_USE_RESULT static MaybeHandle<Object> ShiftRightLogical(
1145 Isolate* isolate, Handle<Object> lhs, Handle<Object> rhs,
1146 Strength strength = Strength::WEAK);
1147
1148 // ES6 section 12.11 Binary Bitwise Operators
1149 MUST_USE_RESULT static MaybeHandle<Object> BitwiseAnd(
1150 Isolate* isolate, Handle<Object> lhs, Handle<Object> rhs,
1151 Strength strength = Strength::WEAK);
1152 MUST_USE_RESULT static MaybeHandle<Object> BitwiseOr(
1153 Isolate* isolate, Handle<Object> lhs, Handle<Object> rhs,
1154 Strength strength = Strength::WEAK);
1155 MUST_USE_RESULT static MaybeHandle<Object> BitwiseXor(
1156 Isolate* isolate, Handle<Object> lhs, Handle<Object> rhs,
1157 Strength strength = Strength::WEAK);
1158
1119 MUST_USE_RESULT static MaybeHandle<Object> GetProperty( 1159 MUST_USE_RESULT static MaybeHandle<Object> GetProperty(
1120 LookupIterator* it, LanguageMode language_mode = SLOPPY); 1160 LookupIterator* it, LanguageMode language_mode = SLOPPY);
1121 1161
1122 // Implementation of [[Put]], ECMA-262 5th edition, section 8.12.5. 1162 // Implementation of [[Put]], ECMA-262 5th edition, section 8.12.5.
1123 MUST_USE_RESULT static MaybeHandle<Object> SetProperty( 1163 MUST_USE_RESULT static MaybeHandle<Object> SetProperty(
1124 Handle<Object> object, Handle<Name> name, Handle<Object> value, 1164 Handle<Object> object, Handle<Name> name, Handle<Object> value,
1125 LanguageMode language_mode, 1165 LanguageMode language_mode,
1126 StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED); 1166 StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED);
1127 1167
1128 MUST_USE_RESULT static MaybeHandle<Object> SetProperty( 1168 MUST_USE_RESULT static MaybeHandle<Object> SetProperty(
(...skipping 9285 matching lines...) Expand 10 before | Expand all | Expand 10 after
10414 } else { 10454 } else {
10415 value &= ~(1 << bit_position); 10455 value &= ~(1 << bit_position);
10416 } 10456 }
10417 return value; 10457 return value;
10418 } 10458 }
10419 }; 10459 };
10420 10460
10421 } } // namespace v8::internal 10461 } } // namespace v8::internal
10422 10462
10423 #endif // V8_OBJECTS_H_ 10463 #endif // V8_OBJECTS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698