Index: src/ic.h |
diff --git a/src/ic.h b/src/ic.h |
index e6b78e50e0c3a35675b92ade56c4360789b3232f..8ad49cb5c545a606bb22269243bfc00c1e39a846 100644 |
--- a/src/ic.h |
+++ b/src/ic.h |
@@ -57,8 +57,8 @@ namespace internal { |
ICU(LoadPropertyWithInterceptorForCall) \ |
ICU(KeyedLoadPropertyWithInterceptor) \ |
ICU(StoreInterceptorProperty) \ |
+ ICU(BinaryOp_Patch) \ |
ICU(CompareIC_Miss) \ |
- ICU(BinaryOpIC_Miss) \ |
ICU(CompareNilIC_Miss) \ |
ICU(Unreachable) \ |
ICU(ToBooleanIC_Miss) |
@@ -735,14 +735,22 @@ class BinaryOpIC: public IC { |
GENERIC |
}; |
- explicit BinaryOpIC(Isolate* isolate) : IC(EXTRA_CALL_FRAME, isolate) { } |
+ static void StubInfoToType(int minor_key, |
+ Handle<Type>* left, |
+ Handle<Type>* right, |
+ Handle<Type>* result, |
+ Isolate* isolate); |
+ |
+ explicit BinaryOpIC(Isolate* isolate) : IC(NO_EXTRA_FRAME, isolate) { } |
- static Builtins::JavaScript TokenToJSBuiltin(Token::Value op); |
+ void patch(Code* code); |
static const char* GetName(TypeInfo type_info); |
- MUST_USE_RESULT MaybeObject* Transition(Handle<Object> left, |
- Handle<Object> right); |
+ static State ToState(TypeInfo type_info); |
+ |
+ private: |
+ static Handle<Type> TypeInfoToType(TypeInfo binary_type, Isolate* isolate); |
}; |
@@ -849,7 +857,6 @@ DECLARE_RUNTIME_FUNCTION(MaybeObject*, KeyedStoreIC_MissFromStubFailure); |
DECLARE_RUNTIME_FUNCTION(MaybeObject*, UnaryOpIC_Miss); |
DECLARE_RUNTIME_FUNCTION(MaybeObject*, StoreIC_MissFromStubFailure); |
DECLARE_RUNTIME_FUNCTION(MaybeObject*, ElementsTransitionAndStoreIC_Miss); |
-DECLARE_RUNTIME_FUNCTION(MaybeObject*, BinaryOpIC_Miss); |
DECLARE_RUNTIME_FUNCTION(MaybeObject*, CompareNilIC_Miss); |
DECLARE_RUNTIME_FUNCTION(MaybeObject*, ToBooleanIC_Miss); |