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

Unified Diff: src/lookup.cc

Issue 527963002: Implement loads and calls from 'super' (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 3 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
Index: src/lookup.cc
diff --git a/src/lookup.cc b/src/lookup.cc
index 3b11ebce798c56fa04ffc11b568348f75f727412..1cbcd358f1eccd4e39fc64276b53e2d94200a0f3 100644
--- a/src/lookup.cc
+++ b/src/lookup.cc
@@ -270,6 +270,38 @@ bool LookupIterator::HolderIsReceiverOrHiddenPrototype() const {
}
+void LookupIterator::LookupForRead() {
+ for (; IsFound(); Next()) {
+ switch (state()) {
+ case LookupIterator::NOT_FOUND:
+ case LookupIterator::TRANSITION:
+ UNREACHABLE();
+ case LookupIterator::JSPROXY:
+ return;
+ case LookupIterator::INTERCEPTOR: {
+ // If there is a getter, return; otherwise loop to perform the lookup.
+ Handle<JSObject> holder = GetHolder<JSObject>();
+ if (!holder->GetNamedInterceptor()->getter()->IsUndefined()) {
+ return;
+ }
+ break;
+ }
+ case LookupIterator::ACCESS_CHECK:
+ // PropertyHandlerCompiler::CheckPrototypes() knows how to emit
+ // access checks for global proxies.
+ if (GetHolder<JSObject>()->IsJSGlobalProxy() &&
Toon Verwaest 2014/09/15 11:57:20 Wth? Why do you explicitly avoid access checks on
Dmitry Lomov (no reviews) 2014/09/15 12:31:12 As discussed offline, this returns otherwise, so d
+ HasAccess(v8::ACCESS_GET)) {
+ break;
+ }
+ return;
+ case LookupIterator::PROPERTY:
+ if (HasProperty()) return; // Yay!
+ break;
+ }
+ }
+}
+
+
Handle<Object> LookupIterator::FetchValue() const {
Object* result = NULL;
Handle<JSObject> holder = GetHolder<JSObject>();

Powered by Google App Engine
This is Rietveld 408576698