| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index 7b623b50877d80d371dd2d2dad35d9e9faa38fe9..5885ec14447fd1ad7b6f8c8fa1832a07fd631cf4 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -4005,7 +4005,9 @@ void HOptimizedGraphBuilder::VisitRegExpLiteral(RegExpLiteral* expr) {
|
|
|
|
|
| static bool CanInlinePropertyAccess(Map* type) {
|
| - return !type->is_dictionary_map() && !type->has_named_interceptor();
|
| + return type->is_jsobject_map() &&
|
| + !type->is_dictionary_map() &&
|
| + !type->has_named_interceptor();
|
| }
|
|
|
|
|
| @@ -5392,6 +5394,12 @@ HInstruction* HOptimizedGraphBuilder::BuildLoadNamedMonomorphic(
|
| return New<HConstant>(constant);
|
| }
|
|
|
| + if (lookup.IsFound()) {
|
| + // Cannot handle the property, do a generic load instead.
|
| + HValue* context = environment()->context();
|
| + return new(zone()) HLoadNamedGeneric(context, object, name);
|
| + }
|
| +
|
| // Handle a load from a known field somewhere in the prototype chain.
|
| LookupInPrototypes(map, name, &lookup);
|
| if (lookup.IsField()) {
|
|
|