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

Unified Diff: src/isolate.cc

Issue 1142493002: Use a private own symbol instead of a hidden property for hash codes (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 7 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/isolate.cc
diff --git a/src/isolate.cc b/src/isolate.cc
index a90f9c9e46849c56ae8efcd1102c20c1e333d61a..06e62d6f10b2c1b0241b174d89e80410a4492c1d 100644
--- a/src/isolate.cc
+++ b/src/isolate.cc
@@ -779,6 +779,10 @@ void Isolate::ReportFailedAccessCheck(Handle<JSObject> receiver) {
bool Isolate::IsInternallyUsedPropertyName(Handle<Object> name) {
+ if (name->IsSymbol()) {
+ return (Handle<Symbol>::cast(name)->is_private()) &&
+ Handle<Symbol>::cast(name)->is_own();
+ }
return name.is_identical_to(factory()->hidden_string());
}
@@ -2528,6 +2532,9 @@ Handle<JSObject> Isolate::GetSymbolRegistry() {
Handle<JSObject> obj = factory()->NewJSObjectFromMap(map);
JSObject::NormalizeProperties(obj, KEEP_INOBJECT_PROPERTIES, 8,
"SetupSymbolRegistry");
+ if (strcmp(nested[i], "private_intern") == 0) {
+ heap()->AddPrivateGlobalSymbols(obj);
+ }
JSObject::SetProperty(registry, name, obj, STRICT).Assert();
}
}

Powered by Google App Engine
This is Rietveld 408576698