Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(454)

Unified Diff: src/ic/ic.cc

Issue 2405213002: V8 support for cached accessors. (Closed)
Patch Set: Centralized lookup in LookupIterator::TryLookupCacheProperty. Also rebase. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/crankshaft/hydrogen.cc ('k') | src/lookup.h » ('j') | src/lookup.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ic/ic.cc
diff --git a/src/ic/ic.cc b/src/ic/ic.cc
index 313d8eb6ec200d5bf541201040764d388b462c80..3e6c1c070dc09823b3179ddc48942f08d6b8f757 100644
--- a/src/ic/ic.cc
+++ b/src/ic/ic.cc
@@ -1279,6 +1279,10 @@ Handle<Code> LoadIC::CompileHandler(LookupIterator* lookup,
#endif
DCHECK(IsCompatibleReceiver(lookup, map));
+ if (lookup->TryLookupCacheProperty()) {
Toon Verwaest 2016/10/21 08:22:14 Shouldn't this be moved in the IsAccessorPair case
vogelheim 2016/11/03 16:12:23 Done.
+ DCHECK_EQ(LookupIterator::DATA, lookup->state());
+ return CompileHandler(lookup, unused, cache_holder);
Toon Verwaest 2016/10/21 08:22:14 Don't we have to go through ComputeHandler again?
vogelheim 2016/11/03 16:12:23 Done.
+ }
Handle<Object> accessors = lookup->GetAccessors();
if (accessors->IsAccessorPair()) {
DCHECK(holder->HasFastProperties());
@@ -1332,7 +1336,6 @@ Handle<Code> LoadIC::CompileHandler(LookupIterator* lookup,
// -------------- Fields --------------
if (lookup->property_details().type() == DATA) {
FieldIndex field = lookup->GetFieldIndex();
- DCHECK(!receiver_is_holder);
Toon Verwaest 2016/10/21 08:22:14 Why is this removed? I'm pretty sure we need this.
vogelheim 2016/11/03 16:12:23 Done. (I guess this was an artefact of the Comp[i
TRACE_HANDLER_STATS(isolate(), LoadIC_LoadField);
NamedLoadHandlerCompiler compiler(isolate(), map, holder, cache_holder);
return compiler.CompileLoadField(lookup->name(), field);
« no previous file with comments | « src/crankshaft/hydrogen.cc ('k') | src/lookup.h » ('j') | src/lookup.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698