diff options
Diffstat (limited to 'chromium/v8/src/ic/ic.cc')
-rw-r--r-- | chromium/v8/src/ic/ic.cc | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/chromium/v8/src/ic/ic.cc b/chromium/v8/src/ic/ic.cc index b0572bc23e4..1fdf72440a4 100644 --- a/chromium/v8/src/ic/ic.cc +++ b/chromium/v8/src/ic/ic.cc @@ -1849,19 +1849,10 @@ MaybeHandle<Object> StoreIC::Store(Handle<Object> object, Handle<Name> name, IsAnyDefineOwn() ? LookupIterator::OWN : LookupIterator::DEFAULT); if (name->IsPrivate()) { - bool exists = it.IsFound(); - if (name->IsPrivateName() && exists == IsDefineKeyedOwnIC()) { - Handle<String> name_string( - String::cast(Symbol::cast(*name).description()), isolate()); - if (exists) { - MessageTemplate message = - name->IsPrivateBrand() - ? MessageTemplate::kInvalidPrivateBrandReinitialization - : MessageTemplate::kInvalidPrivateFieldReinitialization; - return TypeError(message, object, name_string); - } else { - return TypeError(MessageTemplate::kInvalidPrivateMemberWrite, object, - name_string); + if (name->IsPrivateName()) { + DCHECK(!IsDefineNamedOwnIC()); + if (!JSReceiver::CheckPrivateNameStore(&it, IsDefineKeyedOwnIC())) { + return MaybeHandle<Object>(); } } |