Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index c5a63112cd67b0a181f1945701f4554cf0fa8011..2ef23cda032395db984cf6b8d1da0c6ae4369e2e 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -4421,8 +4421,7 @@ Maybe<bool> Object::SetDataProperty(LookupIterator* it, Handle<Object> value) { |
// Fetch before transforming the object since the encoding may become |
// incompatible with what's cached in |it|. |
bool is_observed = receiver->map()->is_observed() && |
- (it->IsElement() || |
- !it->isolate()->IsInternallyUsedPropertyName(it->name())); |
+ (it->IsElement() || !it->name()->IsPrivate()); |
MaybeHandle<Object> maybe_old; |
if (is_observed) maybe_old = it->GetDataValue(); |
@@ -4577,8 +4576,7 @@ Maybe<bool> Object::AddDataProperty(LookupIterator* it, Handle<Object> value, |
} |
// Send the change record if there are observers. |
- if (receiver->map()->is_observed() && |
- !isolate->IsInternallyUsedPropertyName(it->name())) { |
+ if (receiver->map()->is_observed() && !it->name()->IsPrivate()) { |
RETURN_ON_EXCEPTION_VALUE(isolate, JSObject::EnqueueChangeRecord( |
receiver, "add", it->name(), |
it->factory()->the_hole_value()), |
@@ -5279,8 +5277,7 @@ void JSObject::AddProperty(Handle<JSObject> object, Handle<Name> name, |
Maybe<PropertyAttributes> maybe = GetPropertyAttributes(&it); |
DCHECK(maybe.IsJust()); |
DCHECK(!it.IsFound()); |
- DCHECK(object->map()->is_extensible() || |
- it.isolate()->IsInternallyUsedPropertyName(name)); |
+ DCHECK(object->map()->is_extensible() || name->IsPrivate()); |
#endif |
CHECK(AddDataProperty(&it, value, attributes, THROW_ON_ERROR, |
CERTAINLY_NOT_STORE_FROM_KEYED) |
@@ -5306,8 +5303,7 @@ Maybe<bool> JSObject::DefineOwnPropertyIgnoreAttributes( |
ShouldThrow should_throw, AccessorInfoHandling handling) { |
Handle<JSObject> object = Handle<JSObject>::cast(it->GetReceiver()); |
bool is_observed = object->map()->is_observed() && |
- (it->IsElement() || |
- !it->isolate()->IsInternallyUsedPropertyName(it->name())); |
+ (it->IsElement() || !it->name()->IsPrivate()); |
for (; it->IsFound(); it->Next()) { |
switch (it->state()) { |
@@ -6034,10 +6030,12 @@ void JSObject::DeleteHiddenProperty(Handle<JSObject> object, Handle<Name> key) { |
bool JSObject::HasHiddenProperties(Handle<JSObject> object) { |
- Handle<Name> hidden = object->GetIsolate()->factory()->hidden_string(); |
- LookupIterator it(object, hidden, LookupIterator::OWN_SKIP_INTERCEPTOR); |
+ Isolate* isolate = object->GetIsolate(); |
+ Handle<Symbol> hidden = isolate->factory()->hidden_properties_symbol(); |
+ LookupIterator it(object, hidden); |
Maybe<PropertyAttributes> maybe = GetPropertyAttributes(&it); |
- // Cannot get an exception since the hidden_string isn't accessible to JS. |
+ // Cannot get an exception since the hidden_properties_symbol isn't exposed to |
+ // JS. |
DCHECK(maybe.IsJust()); |
return maybe.FromJust() != ABSENT; |
} |
@@ -6053,7 +6051,8 @@ Object* JSObject::GetHiddenPropertiesHashTable() { |
DescriptorArray* descriptors = this->map()->instance_descriptors(); |
if (descriptors->number_of_descriptors() > 0) { |
int sorted_index = descriptors->GetSortedKeyIndex(0); |
- if (descriptors->GetKey(sorted_index) == GetHeap()->hidden_string() && |
+ if (descriptors->GetKey(sorted_index) == |
+ GetHeap()->hidden_properties_symbol() && |
sorted_index < map()->NumberOfOwnDescriptors()) { |
DCHECK(descriptors->GetType(sorted_index) == DATA); |
DCHECK(descriptors->GetDetails(sorted_index).representation(). |
@@ -6068,9 +6067,8 @@ Object* JSObject::GetHiddenPropertiesHashTable() { |
return GetHeap()->undefined_value(); |
} |
} else { |
- Isolate* isolate = GetIsolate(); |
- LookupIterator it(handle(this), isolate->factory()->hidden_string(), |
- LookupIterator::OWN_SKIP_INTERCEPTOR); |
+ Handle<Symbol> hidden = GetIsolate()->factory()->hidden_properties_symbol(); |
+ LookupIterator it(handle(this), hidden); |
// Access check is always skipped for the hidden string anyways. |
return *GetDataProperty(&it); |
} |
@@ -6099,7 +6097,7 @@ Handle<Object> JSObject::SetHiddenPropertiesHashTable(Handle<JSObject> object, |
Handle<Object> value) { |
DCHECK(!object->IsJSGlobalProxy()); |
Isolate* isolate = object->GetIsolate(); |
- Handle<Name> name = isolate->factory()->hidden_string(); |
+ Handle<Symbol> name = isolate->factory()->hidden_properties_symbol(); |
SetOwnPropertyIgnoreAttributes(object, name, value, DONT_ENUM).Assert(); |
return object; |
} |
@@ -6199,9 +6197,8 @@ Maybe<bool> JSReceiver::DeleteProperty(LookupIterator* it, |
} |
Handle<JSObject> receiver = Handle<JSObject>::cast(it->GetReceiver()); |
- bool is_observed = |
- receiver->map()->is_observed() && |
- (it->IsElement() || !isolate->IsInternallyUsedPropertyName(it->name())); |
+ bool is_observed = receiver->map()->is_observed() && |
+ (it->IsElement() || !it->name()->IsPrivate()); |
Handle<Object> old_value = it->factory()->the_hole_value(); |
@@ -9059,7 +9056,7 @@ MaybeHandle<Object> JSObject::DefineAccessor(LookupIterator* it, |
Handle<Object> old_value = isolate->factory()->the_hole_value(); |
bool is_observed = object->map()->is_observed() && |
- !isolate->IsInternallyUsedPropertyName(it->GetName()); |
+ (it->IsElement() || !it->name()->IsPrivate()); |
bool preexists = false; |
if (is_observed) { |
CHECK(GetPropertyAttributes(it).IsJust()); |