Upgrade V8 to 5.1.281.57 DO NOT MERGE
FPIIM-449
Change-Id: Id981b686b4d587ac31697662eb98bb34be42ad90
(cherry picked from commit 3b9bc31999c9787eb726ecdbfd5796bfdec32a18)
diff --git a/src/ic/ic-state.cc b/src/ic/ic-state.cc
index 933803c..bf1e45f 100644
--- a/src/ic/ic-state.cc
+++ b/src/ic/ic-state.cc
@@ -404,7 +404,9 @@
if (value->IsInternalizedString()) return INTERNALIZED_STRING;
if (value->IsString()) return STRING;
if (value->IsSymbol()) return UNIQUE_NAME;
- if (value->IsJSReceiver()) return RECEIVER;
+ if (value->IsJSReceiver() && !value->IsUndetectable()) {
+ return RECEIVER;
+ }
break;
case BOOLEAN:
if (value->IsBoolean()) return BOOLEAN;
@@ -428,7 +430,9 @@
if (value->IsUniqueName()) return UNIQUE_NAME;
break;
case RECEIVER:
- if (value->IsJSReceiver()) return RECEIVER;
+ if (value->IsJSReceiver() && !value->IsUndetectable()) {
+ return RECEIVER;
+ }
break;
case GENERIC:
break;
@@ -464,6 +468,9 @@
}
if (x->IsString() && y->IsString()) return STRING;
if (x->IsJSReceiver() && y->IsJSReceiver()) {
+ if (x->IsUndetectable() || y->IsUndetectable()) {
+ return GENERIC;
+ }
if (Handle<JSReceiver>::cast(x)->map() ==
Handle<JSReceiver>::cast(y)->map()) {
return KNOWN_RECEIVER;