Index: src/crankshaft/hydrogen-types.cc |
diff --git a/src/crankshaft/hydrogen-types.cc b/src/crankshaft/hydrogen-types.cc |
index 8c8562581a1d1cc5d38241764e86e9ff1a25b4bc..ab27f01257ede2d20e39f6191295119acfc2244d 100644 |
--- a/src/crankshaft/hydrogen-types.cc |
+++ b/src/crankshaft/hydrogen-types.cc |
@@ -22,7 +22,7 @@ HType HType::FromType(Type* type) { |
if (type->Is(Type::Boolean())) return HType::Boolean(); |
if (type->Is(Type::Undefined())) return HType::Undefined(); |
if (type->Is(Type::Object())) return HType::JSObject(); |
- if (type->Is(Type::Receiver())) return HType::JSReceiver(); |
+ if (type->Is(Type::DetectableReceiver())) return HType::JSReceiver(); |
return HType::Tagged(); |
} |
@@ -43,8 +43,12 @@ HType HType::FromValue(Handle<Object> value) { |
if (value->IsString()) return HType::String(); |
if (value->IsBoolean()) return HType::Boolean(); |
if (value->IsUndefined()) return HType::Undefined(); |
- if (value->IsJSArray()) return HType::JSArray(); |
- if (value->IsJSObject()) return HType::JSObject(); |
+ if (value->IsJSArray() && !value->IsUndetectableObject()) { |
Toon Verwaest
2016/02/23 20:03:19
JSArrays cannot be undetectable I think. It's only
Benedikt Meurer
2016/02/24 05:39:18
Done.
|
+ return HType::JSArray(); |
+ } |
+ if (value->IsJSObject() && !value->IsUndetectableObject()) { |
+ return HType::JSObject(); |
+ } |
DCHECK(value->IsHeapObject()); |
return HType::HeapObject(); |
} |