Chromium Code Reviews| Index: src/crankshaft/hydrogen.cc |
| diff --git a/src/crankshaft/hydrogen.cc b/src/crankshaft/hydrogen.cc |
| index d97461b1a9582d103736bd6902b6d6f9d82d7c0b..93cbcfe37e3b6e40da0a1093b6c554202e9c458c 100644 |
| --- a/src/crankshaft/hydrogen.cc |
| +++ b/src/crankshaft/hydrogen.cc |
| @@ -5340,6 +5340,7 @@ void HOptimizedGraphBuilder::VisitVariableProxy(VariableProxy* expr) { |
| } |
| LookupIterator it(global, variable->name(), LookupIterator::OWN); |
| + it.TryLookupCachedProperty(); |
| if (CanInlineGlobalPropertyAccess(variable, &it, LOAD)) { |
| InlineGlobalPropertyLoad(&it, expr->id()); |
| return; |
| @@ -6151,6 +6152,17 @@ HValue* HOptimizedGraphBuilder::BuildMonomorphicAccess( |
| } |
| if (info->IsAccessorConstant()) { |
| + MaybeHandle<Name> maybe_name = |
| + FunctionTemplateInfo::TryGetCachedPropertyName(isolate(), |
| + info->accessor()); |
| + if (!maybe_name.is_null()) { |
| + Handle<Name> name = maybe_name.ToHandleChecked(); |
| + PropertyAccessInfo cache_info(this, LOAD, info->map(), name); |
| + // Load new target. |
| + if (cache_info.CanAccessMonomorphic()) |
|
Toon Verwaest
2016/11/04 10:19:52
Use {} if multi-line
vogelheim
2016/11/04 12:34:42
Done.
|
| + return BuildLoadNamedField(&cache_info, checked_object); |
| + } |
| + |
| Push(checked_object); |
| int argument_count = 1; |
| if (!info->IsLoad()) { |