Index: src/ic/ic.cc |
diff --git a/src/ic/ic.cc b/src/ic/ic.cc |
index 19f469982153a2268cb773fb953656b4b2d00a8c..0231f3debdca6032c206a01311b18368c977d09b 100644 |
--- a/src/ic/ic.cc |
+++ b/src/ic/ic.cc |
@@ -140,8 +140,7 @@ void IC::TraceIC(const char* type, Handle<Object> name, State old_state, |
#define TRACE_IC(type, name) TraceIC(type, name) |
-IC::IC(FrameDepth depth, Isolate* isolate, FeedbackNexus* nexus, |
- bool for_queries_only) |
+IC::IC(FrameDepth depth, Isolate* isolate, FeedbackNexus* nexus) |
: isolate_(isolate), |
target_set_(false), |
vector_set_(false), |
@@ -184,8 +183,7 @@ IC::IC(FrameDepth depth, Isolate* isolate, FeedbackNexus* nexus, |
pc_address_ = StackFrame::ResolveReturnAddressLocation(pc_address); |
target_ = handle(raw_target(), isolate); |
kind_ = target_->kind(); |
- state_ = (!for_queries_only && UseVector()) ? nexus->StateFromFeedback() |
- : target_->ic_state(); |
+ state_ = UseVector() ? nexus->StateFromFeedback() : target_->ic_state(); |
old_state_ = state_; |
extra_ic_state_ = target_->extra_ic_state(); |
} |
@@ -3002,7 +3000,8 @@ RUNTIME_FUNCTION(Runtime_LoadPropertyWithInterceptor) { |
// Return the undefined result if the reference error should not be thrown. |
// Note that both keyed and non-keyed loads may end up here. |
- LoadIC ic(IC::NO_EXTRA_FRAME, isolate, true); |
+ LoadICNexus nexus(isolate); |
+ LoadIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus); |
if (!ic.ShouldThrowReferenceError(it.GetReceiver())) { |
return isolate->heap()->undefined_value(); |
} |
@@ -3016,7 +3015,8 @@ RUNTIME_FUNCTION(Runtime_LoadPropertyWithInterceptor) { |
RUNTIME_FUNCTION(Runtime_StorePropertyWithInterceptor) { |
HandleScope scope(isolate); |
DCHECK(args.length() == 3); |
- StoreIC ic(IC::NO_EXTRA_FRAME, isolate); |
+ StoreICNexus nexus(isolate); |
+ StoreIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus); |
Handle<JSObject> receiver = args.at<JSObject>(0); |
Handle<Name> name = args.at<Name>(1); |
Handle<Object> value = args.at<Object>(2); |