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

Unified Diff: src/objects.cc

Issue 1230793002: [es6] silence access-check failure for well-known symbol properties (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Make well-known symbols behave magically Created 5 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
« src/objects.h ('K') | « src/objects.h ('k') | src/objects-inl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/objects.cc
diff --git a/src/objects.cc b/src/objects.cc
index 2e60cf0982ed3ce6947af92d8c973a289f0e80e4..56d2ec1c41522439eb87da255bb7a8d3db51b12b 100644
--- a/src/objects.cc
+++ b/src/objects.cc
@@ -994,6 +994,14 @@ MaybeHandle<Object> JSObject::GetPropertyWithFailedAccessCheck(
GetPropertyWithInterceptor(it, &done), Object);
if (done) return result;
}
+ if (!it->IsElement()) {
Toon Verwaest 2015/10/02 08:05:27 Rather than if (!it->IsElement()) etc, you can jus
caitp (gmail) 2015/10/02 10:01:15 GetName() converts elements to strings, which isn'
Toon Verwaest 2015/10/02 10:07:01 That is possibly true. It could already have been
caitp (gmail) 2015/10/02 10:41:56 Done.
+ Handle<Name> name = it->name();
+ if (name->IsSymbol() &&
+ Handle<Symbol>::cast(name)->is_well_known_symbol()) {
+ RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(it->isolate(), Object);
Toon Verwaest 2015/10/02 08:05:27 I don't see why this statement (RETURN_EX..) is ne
caitp (gmail) 2015/10/02 10:01:15 I guess it isn't really needed, will remove
caitp (gmail) 2015/10/02 10:41:56 Done.
+ return it->factory()->undefined_value();
+ }
+ }
it->isolate()->ReportFailedAccessCheck(checked);
RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(it->isolate(), Object);
return it->factory()->undefined_value();
« src/objects.h ('K') | « src/objects.h ('k') | src/objects-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698