Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index b82d0ce659af6dac23ea9997ae02cf99bd84e175..442031fb403bc1a658d018d2a6ad028ad4d06bb2 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -2058,7 +2058,8 @@ RUNTIME_FUNCTION(ElementsTransitionAndStoreIC_Miss) { |
} |
-BinaryOpIC::State::State(ExtraICState extra_ic_state) { |
+BinaryOpIC::State::State(Isolate* isolate, ExtraICState extra_ic_state) |
+ : isolate_(isolate) { |
// We don't deserialize the SSE2 Field, since this is only used to be able |
// to include SSE2 as well as non-SSE2 versions in the snapshot. For code |
// generation we always want it to reflect the current state. |
@@ -2109,7 +2110,7 @@ void BinaryOpIC::State::GenerateAheadOfTime( |
// Generated list of commonly used stubs |
#define GENERATE(op, left_kind, right_kind, result_kind, mode) \ |
do { \ |
- State state(op, mode); \ |
+ State state(isolate, op, mode); \ |
state.left_kind_ = left_kind; \ |
state.fixed_right_arg_.has_value = false; \ |
state.right_kind_ = right_kind; \ |
@@ -2304,7 +2305,7 @@ void BinaryOpIC::State::GenerateAheadOfTime( |
#undef GENERATE |
#define GENERATE(op, left_kind, fixed_right_arg_value, result_kind, mode) \ |
do { \ |
- State state(op, mode); \ |
+ State state(isolate, op, mode); \ |
state.left_kind_ = left_kind; \ |
state.fixed_right_arg_.has_value = true; \ |
state.fixed_right_arg_.value = fixed_right_arg_value; \ |
@@ -2482,7 +2483,7 @@ MaybeHandle<Object> BinaryOpIC::Transition( |
Handle<AllocationSite> allocation_site, |
Handle<Object> left, |
Handle<Object> right) { |
- State state(target()->extra_ic_state()); |
+ State state(isolate(), target()->extra_ic_state()); |
// Compute the actual result using the builtin for the binary operation. |
Object* builtin = isolate()->js_builtins_object()->javascript_builtin( |
@@ -2499,7 +2500,7 @@ MaybeHandle<Object> BinaryOpIC::Transition( |
// update the state of this very IC, so we must update the stored state. |
UpdateTarget(); |
// Compute the new state. |
- State old_state(target()->extra_ic_state()); |
+ State old_state(isolate(), target()->extra_ic_state()); |
state.Update(left, right, result); |
// Check if we have a string operation here. |