diff options
author | isaacs <i@izs.me> | 2012-02-27 13:43:31 -0800 |
---|---|---|
committer | isaacs <i@izs.me> | 2012-02-27 13:43:31 -0800 |
commit | 2e24ded6d23c58c97d3559bbfb37872b3981bc55 (patch) | |
tree | 94734cc8855253dda8314a09ddd24f8c6473ec5a /deps/v8/src/ic.cc | |
parent | fde26002f176b4da87cc60bdb1b59b1d45c6a901 (diff) | |
download | node-new-2e24ded6d23c58c97d3559bbfb37872b3981bc55.tar.gz |
Upgrade v8 to 3.9.11
Diffstat (limited to 'deps/v8/src/ic.cc')
-rw-r--r-- | deps/v8/src/ic.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/deps/v8/src/ic.cc b/deps/v8/src/ic.cc index 642a9e2731..9bea13b948 100644 --- a/deps/v8/src/ic.cc +++ b/deps/v8/src/ic.cc @@ -315,10 +315,13 @@ void IC::PostPatching(Address address, Code* target, Code* old_target) { if (delta != 0) { Code* host = target->GetHeap()->isolate()-> inner_pointer_to_code_cache()->GetCacheEntry(address)->code; - TypeFeedbackInfo* info = - TypeFeedbackInfo::cast(host->type_feedback_info()); - info->set_ic_with_typeinfo_count( - info->ic_with_typeinfo_count() + delta); + // Not all Code objects have TypeFeedbackInfo. + if (host->type_feedback_info()->IsTypeFeedbackInfo()) { + TypeFeedbackInfo* info = + TypeFeedbackInfo::cast(host->type_feedback_info()); + info->set_ic_with_typeinfo_count( + info->ic_with_typeinfo_count() + delta); + } } } } @@ -1329,7 +1332,7 @@ MaybeObject* StoreIC::Store(State state, uint32_t index; if (name->AsArrayIndex(&index)) { Handle<Object> result = - JSObject::SetElement(receiver, index, value, strict_mode); + JSObject::SetElement(receiver, index, value, NONE, strict_mode); RETURN_IF_EMPTY_HANDLE(isolate(), result); return *value; } @@ -1786,7 +1789,7 @@ MaybeObject* KeyedStoreIC::Store(State state, uint32_t index; if (name->AsArrayIndex(&index)) { Handle<Object> result = - JSObject::SetElement(receiver, index, value, strict_mode); + JSObject::SetElement(receiver, index, value, NONE, strict_mode); RETURN_IF_EMPTY_HANDLE(isolate(), result); return *value; } |