Commit 4d6ddf1b authored by Stephen Roettger's avatar Stephen Roettger Committed by V8 LUCI CQ

Remove deprecated AccessorSignatures

Bug: chromium:1310790
Change-Id: I739161f47fc1fc32d832f106d5ef6b7df4aed213
Fixed: chromium:1310790
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3654096Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
Commit-Queue: Stephen Röttger <sroettger@google.com>
Cr-Commit-Position: refs/heads/main@{#80639}
parent 3904606c
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
namespace v8 { namespace v8 {
class AccessorSignature;
class CFunction; class CFunction;
class FunctionTemplate; class FunctionTemplate;
class ObjectTemplate; class ObjectTemplate;
...@@ -83,28 +82,7 @@ class V8_EXPORT Template : public Data { ...@@ -83,28 +82,7 @@ class V8_EXPORT Template : public Data {
* cross-context access. * cross-context access.
* \param attribute The attributes of the property for which an accessor * \param attribute The attributes of the property for which an accessor
* is added. * is added.
* \param signature The signature describes valid receivers for the accessor
* and is used to perform implicit instance checks against them. If the
* receiver is incompatible (i.e. is not an instance of the constructor as
* defined by FunctionTemplate::HasInstance()), an implicit TypeError is
* thrown and no callback is invoked.
*/ */
V8_DEPRECATED("Do signature check in accessor")
void SetNativeDataProperty(
Local<String> name, AccessorGetterCallback getter,
AccessorSetterCallback setter, Local<Value> data,
PropertyAttribute attribute, Local<AccessorSignature> signature,
AccessControl settings = DEFAULT,
SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
V8_DEPRECATED("Do signature check in accessor")
void SetNativeDataProperty(
Local<Name> name, AccessorNameGetterCallback getter,
AccessorNameSetterCallback setter, Local<Value> data,
PropertyAttribute attribute, Local<AccessorSignature> signature,
AccessControl settings = DEFAULT,
SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
void SetNativeDataProperty( void SetNativeDataProperty(
Local<String> name, AccessorGetterCallback getter, Local<String> name, AccessorGetterCallback getter,
AccessorSetterCallback setter = nullptr, AccessorSetterCallback setter = nullptr,
...@@ -821,27 +799,7 @@ class V8_EXPORT ObjectTemplate : public Template { ...@@ -821,27 +799,7 @@ class V8_EXPORT ObjectTemplate : public Template {
* cross-context access. * cross-context access.
* \param attribute The attributes of the property for which an accessor * \param attribute The attributes of the property for which an accessor
* is added. * is added.
* \param signature The signature describes valid receivers for the accessor
* and is used to perform implicit instance checks against them. If the
* receiver is incompatible (i.e. is not an instance of the constructor as
* defined by FunctionTemplate::HasInstance()), an implicit TypeError is
* thrown and no callback is invoked.
*/ */
V8_DEPRECATED("Do signature check in accessor")
void SetAccessor(
Local<String> name, AccessorGetterCallback getter,
AccessorSetterCallback setter, Local<Value> data, AccessControl settings,
PropertyAttribute attribute, Local<AccessorSignature> signature,
SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
V8_DEPRECATED("Do signature check in accessor")
void SetAccessor(
Local<Name> name, AccessorNameGetterCallback getter,
AccessorNameSetterCallback setter, Local<Value> data,
AccessControl settings, PropertyAttribute attribute,
Local<AccessorSignature> signature,
SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
void SetAccessor( void SetAccessor(
Local<String> name, AccessorGetterCallback getter, Local<String> name, AccessorGetterCallback getter,
AccessorSetterCallback setter = nullptr, AccessorSetterCallback setter = nullptr,
...@@ -1019,24 +977,6 @@ class V8_EXPORT Signature : public Data { ...@@ -1019,24 +977,6 @@ class V8_EXPORT Signature : public Data {
static void CheckCast(Data* that); static void CheckCast(Data* that);
}; };
/**
* An AccessorSignature specifies which receivers are valid parameters
* to an accessor callback.
*/
class V8_EXPORT AccessorSignature : public Data {
public:
static Local<AccessorSignature> New(
Isolate* isolate,
Local<FunctionTemplate> receiver = Local<FunctionTemplate>());
V8_INLINE static AccessorSignature* Cast(Data* data);
private:
AccessorSignature();
static void CheckCast(Data* that);
};
// --- Implementation --- // --- Implementation ---
void Template::Set(Isolate* isolate, const char* name, Local<Data> value, void Template::Set(Isolate* isolate, const char* name, Local<Data> value,
...@@ -1067,13 +1007,6 @@ Signature* Signature::Cast(Data* data) { ...@@ -1067,13 +1007,6 @@ Signature* Signature::Cast(Data* data) {
return reinterpret_cast<Signature*>(data); return reinterpret_cast<Signature*>(data);
} }
AccessorSignature* AccessorSignature::Cast(Data* data) {
#ifdef V8_ENABLE_CHECKS
CheckCast(data);
#endif
return reinterpret_cast<AccessorSignature*>(data);
}
} // namespace v8 } // namespace v8
#endif // INCLUDE_V8_TEMPLATE_H_ #endif // INCLUDE_V8_TEMPLATE_H_
...@@ -96,7 +96,6 @@ TYPED_ARRAYS(MAKE_TO_LOCAL_TYPED_ARRAY) ...@@ -96,7 +96,6 @@ TYPED_ARRAYS(MAKE_TO_LOCAL_TYPED_ARRAY)
MAKE_TO_LOCAL(ToLocal, FunctionTemplateInfo, FunctionTemplate) MAKE_TO_LOCAL(ToLocal, FunctionTemplateInfo, FunctionTemplate)
MAKE_TO_LOCAL(ToLocal, ObjectTemplateInfo, ObjectTemplate) MAKE_TO_LOCAL(ToLocal, ObjectTemplateInfo, ObjectTemplate)
MAKE_TO_LOCAL(SignatureToLocal, FunctionTemplateInfo, Signature) MAKE_TO_LOCAL(SignatureToLocal, FunctionTemplateInfo, Signature)
MAKE_TO_LOCAL(AccessorSignatureToLocal, FunctionTemplateInfo, AccessorSignature)
MAKE_TO_LOCAL(MessageToLocal, Object, Message) MAKE_TO_LOCAL(MessageToLocal, Object, Message)
MAKE_TO_LOCAL(PromiseToLocal, JSObject, Promise) MAKE_TO_LOCAL(PromiseToLocal, JSObject, Promise)
MAKE_TO_LOCAL(StackTraceToLocal, FixedArray, StackTrace) MAKE_TO_LOCAL(StackTraceToLocal, FixedArray, StackTrace)
......
...@@ -1435,11 +1435,6 @@ Local<Signature> Signature::New(Isolate* v8_isolate, ...@@ -1435,11 +1435,6 @@ Local<Signature> Signature::New(Isolate* v8_isolate,
return Utils::SignatureToLocal(Utils::OpenHandle(*receiver)); return Utils::SignatureToLocal(Utils::OpenHandle(*receiver));
} }
Local<AccessorSignature> AccessorSignature::New(
Isolate* v8_isolate, Local<FunctionTemplate> receiver) {
return Utils::AccessorSignatureToLocal(Utils::OpenHandle(*receiver));
}
#define SET_FIELD_WRAPPED(i_isolate, obj, setter, cdata) \ #define SET_FIELD_WRAPPED(i_isolate, obj, setter, cdata) \
do { \ do { \
i::Handle<i::Object> foreign = FromCData(i_isolate, cdata); \ i::Handle<i::Object> foreign = FromCData(i_isolate, cdata); \
...@@ -1496,8 +1491,7 @@ template <typename Getter, typename Setter> ...@@ -1496,8 +1491,7 @@ template <typename Getter, typename Setter>
i::Handle<i::AccessorInfo> MakeAccessorInfo( i::Handle<i::AccessorInfo> MakeAccessorInfo(
i::Isolate* i_isolate, v8::Local<Name> name, Getter getter, Setter setter, i::Isolate* i_isolate, v8::Local<Name> name, Getter getter, Setter setter,
v8::Local<Value> data, v8::AccessControl settings, v8::Local<Value> data, v8::AccessControl settings,
v8::Local<AccessorSignature> signature, bool is_special_data_property, bool is_special_data_property, bool replace_on_access) {
bool replace_on_access) {
i::Handle<i::AccessorInfo> obj = i_isolate->factory()->NewAccessorInfo(); i::Handle<i::AccessorInfo> obj = i_isolate->factory()->NewAccessorInfo();
SET_FIELD_WRAPPED(i_isolate, obj, set_getter, getter); SET_FIELD_WRAPPED(i_isolate, obj, set_getter, getter);
DCHECK_IMPLIES(replace_on_access, DCHECK_IMPLIES(replace_on_access,
...@@ -1529,9 +1523,6 @@ i::Handle<i::AccessorInfo> MakeAccessorInfo( ...@@ -1529,9 +1523,6 @@ i::Handle<i::AccessorInfo> MakeAccessorInfo(
if (settings & ALL_CAN_READ) raw_obj.set_all_can_read(true); if (settings & ALL_CAN_READ) raw_obj.set_all_can_read(true);
if (settings & ALL_CAN_WRITE) raw_obj.set_all_can_write(true); if (settings & ALL_CAN_WRITE) raw_obj.set_all_can_write(true);
raw_obj.set_initial_property_attributes(i::NONE); raw_obj.set_initial_property_attributes(i::NONE);
if (!signature.IsEmpty()) {
raw_obj.set_expected_receiver_type(*Utils::OpenHandle(*signature));
}
return obj; return obj;
} }
...@@ -1632,7 +1623,6 @@ template <typename Getter, typename Setter, typename Data, typename Template> ...@@ -1632,7 +1623,6 @@ template <typename Getter, typename Setter, typename Data, typename Template>
void TemplateSetAccessor(Template* template_obj, v8::Local<Name> name, void TemplateSetAccessor(Template* template_obj, v8::Local<Name> name,
Getter getter, Setter setter, Data data, Getter getter, Setter setter, Data data,
AccessControl settings, PropertyAttribute attribute, AccessControl settings, PropertyAttribute attribute,
v8::Local<AccessorSignature> signature,
bool is_special_data_property, bool replace_on_access, bool is_special_data_property, bool replace_on_access,
SideEffectType getter_side_effect_type, SideEffectType getter_side_effect_type,
SideEffectType setter_side_effect_type) { SideEffectType setter_side_effect_type) {
...@@ -1642,7 +1632,7 @@ void TemplateSetAccessor(Template* template_obj, v8::Local<Name> name, ...@@ -1642,7 +1632,7 @@ void TemplateSetAccessor(Template* template_obj, v8::Local<Name> name,
i::HandleScope scope(i_isolate); i::HandleScope scope(i_isolate);
i::Handle<i::AccessorInfo> accessor_info = i::Handle<i::AccessorInfo> accessor_info =
MakeAccessorInfo(i_isolate, name, getter, setter, data, settings, MakeAccessorInfo(i_isolate, name, getter, setter, data, settings,
signature, is_special_data_property, replace_on_access); is_special_data_property, replace_on_access);
{ {
i::DisallowGarbageCollection no_gc; i::DisallowGarbageCollection no_gc;
i::AccessorInfo raw = *accessor_info; i::AccessorInfo raw = *accessor_info;
...@@ -1664,18 +1654,7 @@ void Template::SetNativeDataProperty(v8::Local<String> name, ...@@ -1664,18 +1654,7 @@ void Template::SetNativeDataProperty(v8::Local<String> name,
SideEffectType getter_side_effect_type, SideEffectType getter_side_effect_type,
SideEffectType setter_side_effect_type) { SideEffectType setter_side_effect_type) {
TemplateSetAccessor(this, name, getter, setter, data, settings, attribute, TemplateSetAccessor(this, name, getter, setter, data, settings, attribute,
Local<AccessorSignature>(), true, false, true, false, getter_side_effect_type,
getter_side_effect_type, setter_side_effect_type);
}
void Template::SetNativeDataProperty(
v8::Local<String> name, AccessorGetterCallback getter,
AccessorSetterCallback setter, v8::Local<Value> data,
PropertyAttribute attribute, v8::Local<AccessorSignature> signature,
AccessControl settings, SideEffectType getter_side_effect_type,
SideEffectType setter_side_effect_type) {
TemplateSetAccessor(this, name, getter, setter, data, settings, attribute,
signature, true, false, getter_side_effect_type,
setter_side_effect_type); setter_side_effect_type);
} }
...@@ -1688,18 +1667,7 @@ void Template::SetNativeDataProperty(v8::Local<Name> name, ...@@ -1688,18 +1667,7 @@ void Template::SetNativeDataProperty(v8::Local<Name> name,
SideEffectType getter_side_effect_type, SideEffectType getter_side_effect_type,
SideEffectType setter_side_effect_type) { SideEffectType setter_side_effect_type) {
TemplateSetAccessor(this, name, getter, setter, data, settings, attribute, TemplateSetAccessor(this, name, getter, setter, data, settings, attribute,
Local<AccessorSignature>(), true, false, true, false, getter_side_effect_type,
getter_side_effect_type, setter_side_effect_type);
}
void Template::SetNativeDataProperty(
v8::Local<Name> name, AccessorNameGetterCallback getter,
AccessorNameSetterCallback setter, v8::Local<Value> data,
PropertyAttribute attribute, v8::Local<AccessorSignature> signature,
AccessControl settings, SideEffectType getter_side_effect_type,
SideEffectType setter_side_effect_type) {
TemplateSetAccessor(this, name, getter, setter, data, settings, attribute,
signature, true, false, getter_side_effect_type,
setter_side_effect_type); setter_side_effect_type);
} }
...@@ -1711,8 +1679,8 @@ void Template::SetLazyDataProperty(v8::Local<Name> name, ...@@ -1711,8 +1679,8 @@ void Template::SetLazyDataProperty(v8::Local<Name> name,
SideEffectType setter_side_effect_type) { SideEffectType setter_side_effect_type) {
TemplateSetAccessor(this, name, getter, TemplateSetAccessor(this, name, getter,
static_cast<AccessorNameSetterCallback>(nullptr), data, static_cast<AccessorNameSetterCallback>(nullptr), data,
DEFAULT, attribute, Local<AccessorSignature>(), true, DEFAULT, attribute, true, true, getter_side_effect_type,
true, getter_side_effect_type, setter_side_effect_type); setter_side_effect_type);
} }
void Template::SetIntrinsicDataProperty(Local<Name> name, Intrinsic intrinsic, void Template::SetIntrinsicDataProperty(Local<Name> name, Intrinsic intrinsic,
...@@ -1734,7 +1702,6 @@ void ObjectTemplate::SetAccessor(v8::Local<String> name, ...@@ -1734,7 +1702,6 @@ void ObjectTemplate::SetAccessor(v8::Local<String> name,
SideEffectType getter_side_effect_type, SideEffectType getter_side_effect_type,
SideEffectType setter_side_effect_type) { SideEffectType setter_side_effect_type) {
TemplateSetAccessor(this, name, getter, setter, data, settings, attribute, TemplateSetAccessor(this, name, getter, setter, data, settings, attribute,
Local<AccessorSignature>(),
i::FLAG_disable_old_api_accessors, false, i::FLAG_disable_old_api_accessors, false,
getter_side_effect_type, setter_side_effect_type); getter_side_effect_type, setter_side_effect_type);
} }
...@@ -1747,37 +1714,10 @@ void ObjectTemplate::SetAccessor(v8::Local<Name> name, ...@@ -1747,37 +1714,10 @@ void ObjectTemplate::SetAccessor(v8::Local<Name> name,
SideEffectType getter_side_effect_type, SideEffectType getter_side_effect_type,
SideEffectType setter_side_effect_type) { SideEffectType setter_side_effect_type) {
TemplateSetAccessor(this, name, getter, setter, data, settings, attribute, TemplateSetAccessor(this, name, getter, setter, data, settings, attribute,
Local<AccessorSignature>(),
i::FLAG_disable_old_api_accessors, false, i::FLAG_disable_old_api_accessors, false,
getter_side_effect_type, setter_side_effect_type); getter_side_effect_type, setter_side_effect_type);
} }
void ObjectTemplate::SetAccessor(v8::Local<String> name,
AccessorGetterCallback getter,
AccessorSetterCallback setter,
v8::Local<Value> data, AccessControl settings,
PropertyAttribute attribute,
v8::Local<AccessorSignature> signature,
SideEffectType getter_side_effect_type,
SideEffectType setter_side_effect_type) {
TemplateSetAccessor(this, name, getter, setter, data, settings, attribute,
signature, i::FLAG_disable_old_api_accessors, false,
getter_side_effect_type, setter_side_effect_type);
}
void ObjectTemplate::SetAccessor(v8::Local<Name> name,
AccessorNameGetterCallback getter,
AccessorNameSetterCallback setter,
v8::Local<Value> data, AccessControl settings,
PropertyAttribute attribute,
v8::Local<AccessorSignature> signature,
SideEffectType getter_side_effect_type,
SideEffectType setter_side_effect_type) {
TemplateSetAccessor(this, name, getter, setter, data, settings, attribute,
signature, i::FLAG_disable_old_api_accessors, false,
getter_side_effect_type, setter_side_effect_type);
}
namespace { namespace {
template <typename Getter, typename Setter, typename Query, typename Descriptor, template <typename Getter, typename Setter, typename Query, typename Descriptor,
typename Deleter, typename Enumerator, typename Definer> typename Deleter, typename Enumerator, typename Definer>
...@@ -4870,10 +4810,9 @@ static Maybe<bool> ObjectSetAccessor( ...@@ -4870,10 +4810,9 @@ static Maybe<bool> ObjectSetAccessor(
if (!Utils::OpenHandle(self)->IsJSObject()) return Just(false); if (!Utils::OpenHandle(self)->IsJSObject()) return Just(false);
i::Handle<i::JSObject> obj = i::Handle<i::JSObject> obj =
i::Handle<i::JSObject>::cast(Utils::OpenHandle(self)); i::Handle<i::JSObject>::cast(Utils::OpenHandle(self));
v8::Local<AccessorSignature> signature;
i::Handle<i::AccessorInfo> info = i::Handle<i::AccessorInfo> info =
MakeAccessorInfo(i_isolate, name, getter, setter, data, settings, MakeAccessorInfo(i_isolate, name, getter, setter, data, settings,
signature, is_special_data_property, replace_on_access); is_special_data_property, replace_on_access);
info->set_getter_side_effect_type(getter_side_effect_type); info->set_getter_side_effect_type(getter_side_effect_type);
info->set_setter_side_effect_type(setter_side_effect_type); info->set_setter_side_effect_type(setter_side_effect_type);
if (info.is_null()) return Nothing<bool>(); if (info.is_null()) return Nothing<bool>();
...@@ -6719,12 +6658,6 @@ void v8::Signature::CheckCast(Data* that) { ...@@ -6719,12 +6658,6 @@ void v8::Signature::CheckCast(Data* that) {
"Value is not a Signature"); "Value is not a Signature");
} }
void v8::AccessorSignature::CheckCast(Data* that) {
i::Handle<i::Object> obj = Utils::OpenHandle(that);
Utils::ApiCheck(obj->IsFunctionTemplateInfo(), "v8::AccessorSignature::Cast",
"Value is not an AccessorSignature");
}
MaybeLocal<v8::Function> FunctionTemplate::GetFunction(Local<Context> context) { MaybeLocal<v8::Function> FunctionTemplate::GetFunction(Local<Context> context) {
PREPARE_FOR_EXECUTION(context, FunctionTemplate, GetFunction, Function); PREPARE_FOR_EXECUTION(context, FunctionTemplate, GetFunction, Function);
auto self = Utils::OpenHandle(this); auto self = Utils::OpenHandle(this);
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
namespace v8 { namespace v8 {
class AccessorSignature;
class Extension; class Extension;
class Signature; class Signature;
class Template; class Template;
...@@ -99,7 +98,6 @@ class RegisteredExtension { ...@@ -99,7 +98,6 @@ class RegisteredExtension {
V(FunctionTemplate, FunctionTemplateInfo) \ V(FunctionTemplate, FunctionTemplateInfo) \
V(ObjectTemplate, ObjectTemplateInfo) \ V(ObjectTemplate, ObjectTemplateInfo) \
V(Signature, FunctionTemplateInfo) \ V(Signature, FunctionTemplateInfo) \
V(AccessorSignature, FunctionTemplateInfo) \
V(Data, Object) \ V(Data, Object) \
V(RegExp, JSRegExp) \ V(RegExp, JSRegExp) \
V(Object, JSReceiver) \ V(Object, JSReceiver) \
...@@ -244,8 +242,6 @@ class Utils { ...@@ -244,8 +242,6 @@ class Utils {
v8::internal::Handle<v8::internal::ObjectTemplateInfo> obj); v8::internal::Handle<v8::internal::ObjectTemplateInfo> obj);
static inline Local<Signature> SignatureToLocal( static inline Local<Signature> SignatureToLocal(
v8::internal::Handle<v8::internal::FunctionTemplateInfo> obj); v8::internal::Handle<v8::internal::FunctionTemplateInfo> obj);
static inline Local<AccessorSignature> AccessorSignatureToLocal(
v8::internal::Handle<v8::internal::FunctionTemplateInfo> obj);
static inline Local<External> ExternalToLocal( static inline Local<External> ExternalToLocal(
v8::internal::Handle<v8::internal::JSObject> obj); v8::internal::Handle<v8::internal::JSObject> obj);
static inline Local<Function> CallableToLocal( static inline Local<Function> CallableToLocal(
......
...@@ -1108,7 +1108,6 @@ Handle<Object> LoadIC::ComputeHandler(LookupIterator* lookup) { ...@@ -1108,7 +1108,6 @@ Handle<Object> LoadIC::ComputeHandler(LookupIterator* lookup) {
} }
if (v8::ToCData<Address>(info->getter()) == kNullAddress || if (v8::ToCData<Address>(info->getter()) == kNullAddress ||
!AccessorInfo::IsCompatibleReceiverMap(info, map) ||
!holder->HasFastProperties() || !holder->HasFastProperties() ||
(info->is_sloppy() && !receiver->IsJSReceiver())) { (info->is_sloppy() && !receiver->IsJSReceiver())) {
TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub); TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
...@@ -2042,12 +2041,6 @@ MaybeObjectHandle StoreIC::ComputeHandler(LookupIterator* lookup) { ...@@ -2042,12 +2041,6 @@ MaybeObjectHandle StoreIC::ComputeHandler(LookupIterator* lookup) {
TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub); TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
return MaybeObjectHandle(StoreHandler::StoreSlow(isolate())); return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
} }
if (!AccessorInfo::IsCompatibleReceiverMap(info,
lookup_start_object_map())) {
set_slow_stub_reason("incompatible receiver type");
TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
return MaybeObjectHandle(StoreHandler::StoreSlow(isolate()));
}
Handle<Smi> smi_handler = StoreHandler::StoreNativeDataProperty( Handle<Smi> smi_handler = StoreHandler::StoreNativeDataProperty(
isolate(), lookup->GetAccessorIndex()); isolate(), lookup->GetAccessorIndex());
...@@ -3307,8 +3300,6 @@ RUNTIME_FUNCTION(Runtime_StoreCallbackProperty) { ...@@ -3307,8 +3300,6 @@ RUNTIME_FUNCTION(Runtime_StoreCallbackProperty) {
} }
#endif #endif
DCHECK(info->IsCompatibleReceiver(*receiver));
PropertyCallbackArguments arguments(isolate, info->data(), *receiver, *holder, PropertyCallbackArguments arguments(isolate, info->data(), *receiver, *holder,
Nothing<ShouldThrow>()); Nothing<ShouldThrow>());
arguments.CallAccessorSetter(info, name, value); arguments.CallAccessorSetter(info, name, value);
......
...@@ -77,17 +77,6 @@ void AccessorInfo::set_setter_side_effect_type(SideEffectType value) { ...@@ -77,17 +77,6 @@ void AccessorInfo::set_setter_side_effect_type(SideEffectType value) {
BIT_FIELD_ACCESSORS(AccessorInfo, flags, initial_property_attributes, BIT_FIELD_ACCESSORS(AccessorInfo, flags, initial_property_attributes,
AccessorInfo::InitialAttributesBits) AccessorInfo::InitialAttributesBits)
bool AccessorInfo::IsCompatibleReceiver(Object receiver) {
if (!HasExpectedReceiverType()) return true;
if (!receiver.IsJSObject()) return false;
return FunctionTemplateInfo::cast(expected_receiver_type())
.IsTemplateFor(JSObject::cast(receiver).map());
}
bool AccessorInfo::HasExpectedReceiverType() {
return expected_receiver_type().IsFunctionTemplateInfo();
}
BOOL_ACCESSORS(InterceptorInfo, flags, can_intercept_symbols, BOOL_ACCESSORS(InterceptorInfo, flags, can_intercept_symbols,
CanInterceptSymbolsBit::kShift) CanInterceptSymbolsBit::kShift)
BOOL_ACCESSORS(InterceptorInfo, flags, all_can_read, AllCanReadBit::kShift) BOOL_ACCESSORS(InterceptorInfo, flags, all_can_read, AllCanReadBit::kShift)
......
...@@ -71,8 +71,6 @@ class AccessorInfo : public TorqueGeneratedAccessorInfo<AccessorInfo, Struct> { ...@@ -71,8 +71,6 @@ class AccessorInfo : public TorqueGeneratedAccessorInfo<AccessorInfo, Struct> {
using BodyDescriptor = StructBodyDescriptor; using BodyDescriptor = StructBodyDescriptor;
private: private:
inline bool HasExpectedReceiverType();
// Bit positions in |flags|. // Bit positions in |flags|.
DEFINE_TORQUE_GENERATED_ACCESSOR_INFO_FLAGS() DEFINE_TORQUE_GENERATED_ACCESSOR_INFO_FLAGS()
......
...@@ -51,7 +51,6 @@ bitfield struct AccessorInfoFlags extends uint31 { ...@@ -51,7 +51,6 @@ bitfield struct AccessorInfoFlags extends uint31 {
extern class AccessorInfo extends Struct { extern class AccessorInfo extends Struct {
name: Name; name: Name;
flags: SmiTagged<AccessorInfoFlags>; flags: SmiTagged<AccessorInfoFlags>;
expected_receiver_type: Object;
setter: NonNullForeign|Zero; setter: NonNullForeign|Zero;
getter: NonNullForeign|Zero; getter: NonNullForeign|Zero;
// This either points at the same as above, or a trampoline in case we are // This either points at the same as above, or a trampoline in case we are
......
...@@ -1418,12 +1418,6 @@ MaybeHandle<Object> Object::GetPropertyWithAccessor(LookupIterator* it) { ...@@ -1418,12 +1418,6 @@ MaybeHandle<Object> Object::GetPropertyWithAccessor(LookupIterator* it) {
if (structure->IsAccessorInfo()) { if (structure->IsAccessorInfo()) {
Handle<Name> name = it->GetName(); Handle<Name> name = it->GetName();
Handle<AccessorInfo> info = Handle<AccessorInfo>::cast(structure); Handle<AccessorInfo> info = Handle<AccessorInfo>::cast(structure);
if (!info->IsCompatibleReceiver(*receiver)) {
THROW_NEW_ERROR(isolate,
NewTypeError(MessageTemplate::kIncompatibleMethodReceiver,
name, receiver),
Object);
}
if (!info->has_getter()) return isolate->factory()->undefined_value(); if (!info->has_getter()) return isolate->factory()->undefined_value();
...@@ -1492,14 +1486,6 @@ Address CallHandlerInfo::redirected_callback() const { ...@@ -1492,14 +1486,6 @@ Address CallHandlerInfo::redirected_callback() const {
return ExternalReference::Create(&fun, type).address(); return ExternalReference::Create(&fun, type).address();
} }
bool AccessorInfo::IsCompatibleReceiverMap(Handle<AccessorInfo> info,
Handle<Map> map) {
if (!info->HasExpectedReceiverType()) return true;
if (!map->IsJSObjectMap()) return false;
return FunctionTemplateInfo::cast(info->expected_receiver_type())
.IsTemplateFor(*map);
}
Maybe<bool> Object::SetPropertyWithAccessor( Maybe<bool> Object::SetPropertyWithAccessor(
LookupIterator* it, Handle<Object> value, LookupIterator* it, Handle<Object> value,
Maybe<ShouldThrow> maybe_should_throw) { Maybe<ShouldThrow> maybe_should_throw) {
...@@ -1521,11 +1507,6 @@ Maybe<bool> Object::SetPropertyWithAccessor( ...@@ -1521,11 +1507,6 @@ Maybe<bool> Object::SetPropertyWithAccessor(
if (structure->IsAccessorInfo()) { if (structure->IsAccessorInfo()) {
Handle<Name> name = it->GetName(); Handle<Name> name = it->GetName();
Handle<AccessorInfo> info = Handle<AccessorInfo>::cast(structure); Handle<AccessorInfo> info = Handle<AccessorInfo>::cast(structure);
if (!info->IsCompatibleReceiver(*receiver)) {
isolate->Throw(*isolate->factory()->NewTypeError(
MessageTemplate::kIncompatibleMethodReceiver, name, receiver));
return Nothing<bool>();
}
if (!info->has_setter()) { if (!info->has_setter()) {
// TODO(verwaest): We should not get here anymore once all AccessorInfos // TODO(verwaest): We should not get here anymore once all AccessorInfos
......
...@@ -1484,9 +1484,6 @@ void V8HeapExplorer::ExtractAccessorInfoReferences(HeapEntry* entry, ...@@ -1484,9 +1484,6 @@ void V8HeapExplorer::ExtractAccessorInfoReferences(HeapEntry* entry,
AccessorInfo accessor_info) { AccessorInfo accessor_info) {
SetInternalReference(entry, "name", accessor_info.name(), SetInternalReference(entry, "name", accessor_info.name(),
AccessorInfo::kNameOffset); AccessorInfo::kNameOffset);
SetInternalReference(entry, "expected_receiver_type",
accessor_info.expected_receiver_type(),
AccessorInfo::kExpectedReceiverTypeOffset);
SetInternalReference(entry, "getter", accessor_info.getter(), SetInternalReference(entry, "getter", accessor_info.getter(),
AccessorInfo::kGetterOffset); AccessorInfo::kGetterOffset);
SetInternalReference(entry, "setter", accessor_info.setter(), SetInternalReference(entry, "setter", accessor_info.setter(),
......
...@@ -3596,10 +3596,6 @@ UNINITIALIZED_TEST(SnapshotCreatorAddData) { ...@@ -3596,10 +3596,6 @@ UNINITIALIZED_TEST(SnapshotCreatorAddData) {
v8::Local<v8::Signature> signature = v8::Local<v8::Signature> signature =
v8::Signature::New(isolate, v8::FunctionTemplate::New(isolate)); v8::Signature::New(isolate, v8::FunctionTemplate::New(isolate));
v8::Local<v8::AccessorSignature> accessor_signature =
v8::AccessorSignature::New(isolate,
v8::FunctionTemplate::New(isolate));
v8::ScriptOrigin origin(isolate, v8_str(""), {}, {}, {}, {}, {}, {}, {}, v8::ScriptOrigin origin(isolate, v8_str(""), {}, {}, {}, {}, {}, {}, {},
true); true);
v8::ScriptCompiler::Source source( v8::ScriptCompiler::Source source(
...@@ -3625,7 +3621,6 @@ UNINITIALIZED_TEST(SnapshotCreatorAddData) { ...@@ -3625,7 +3621,6 @@ UNINITIALIZED_TEST(SnapshotCreatorAddData) {
CHECK_EQ(3u, creator.AddData(v8::FunctionTemplate::New(isolate))); CHECK_EQ(3u, creator.AddData(v8::FunctionTemplate::New(isolate)));
CHECK_EQ(4u, creator.AddData(private_symbol)); CHECK_EQ(4u, creator.AddData(private_symbol));
CHECK_EQ(5u, creator.AddData(signature)); CHECK_EQ(5u, creator.AddData(signature));
CHECK_EQ(6u, creator.AddData(accessor_signature));
} }
blob = blob =
...@@ -3714,11 +3709,6 @@ UNINITIALIZED_TEST(SnapshotCreatorAddData) { ...@@ -3714,11 +3709,6 @@ UNINITIALIZED_TEST(SnapshotCreatorAddData) {
isolate->GetDataFromSnapshotOnce<v8::Signature>(5).ToLocalChecked(); isolate->GetDataFromSnapshotOnce<v8::Signature>(5).ToLocalChecked();
CHECK(isolate->GetDataFromSnapshotOnce<v8::Signature>(5).IsEmpty()); CHECK(isolate->GetDataFromSnapshotOnce<v8::Signature>(5).IsEmpty());
isolate->GetDataFromSnapshotOnce<v8::AccessorSignature>(6)
.ToLocalChecked();
CHECK(
isolate->GetDataFromSnapshotOnce<v8::AccessorSignature>(6).IsEmpty());
CHECK(isolate->GetDataFromSnapshotOnce<v8::Value>(7).IsEmpty()); CHECK(isolate->GetDataFromSnapshotOnce<v8::Value>(7).IsEmpty());
} }
isolate->Dispose(); isolate->Dispose();
......
...@@ -500,66 +500,66 @@ KNOWN_OBJECTS = { ...@@ -500,66 +500,66 @@ KNOWN_OBJECTS = {
("read_only_space", 0x03661): "NativeScopeInfo", ("read_only_space", 0x03661): "NativeScopeInfo",
("read_only_space", 0x03679): "HashSeed", ("read_only_space", 0x03679): "HashSeed",
("old_space", 0x04241): "ArgumentsIteratorAccessor", ("old_space", 0x04241): "ArgumentsIteratorAccessor",
("old_space", 0x04285): "ArrayLengthAccessor", ("old_space", 0x04281): "ArrayLengthAccessor",
("old_space", 0x042c9): "BoundFunctionLengthAccessor", ("old_space", 0x042c1): "BoundFunctionLengthAccessor",
("old_space", 0x0430d): "BoundFunctionNameAccessor", ("old_space", 0x04301): "BoundFunctionNameAccessor",
("old_space", 0x04351): "ErrorStackAccessor", ("old_space", 0x04341): "ErrorStackAccessor",
("old_space", 0x04395): "FunctionArgumentsAccessor", ("old_space", 0x04381): "FunctionArgumentsAccessor",
("old_space", 0x043d9): "FunctionCallerAccessor", ("old_space", 0x043c1): "FunctionCallerAccessor",
("old_space", 0x0441d): "FunctionNameAccessor", ("old_space", 0x04401): "FunctionNameAccessor",
("old_space", 0x04461): "FunctionLengthAccessor", ("old_space", 0x04441): "FunctionLengthAccessor",
("old_space", 0x044a5): "FunctionPrototypeAccessor", ("old_space", 0x04481): "FunctionPrototypeAccessor",
("old_space", 0x044e9): "StringLengthAccessor", ("old_space", 0x044c1): "StringLengthAccessor",
("old_space", 0x0452d): "WrappedFunctionLengthAccessor", ("old_space", 0x04501): "WrappedFunctionLengthAccessor",
("old_space", 0x04571): "WrappedFunctionNameAccessor", ("old_space", 0x04541): "WrappedFunctionNameAccessor",
("old_space", 0x045b5): "InvalidPrototypeValidityCell", ("old_space", 0x04581): "InvalidPrototypeValidityCell",
("old_space", 0x045bd): "EmptyScript", ("old_space", 0x04589): "EmptyScript",
("old_space", 0x04601): "ManyClosuresCell", ("old_space", 0x045cd): "ManyClosuresCell",
("old_space", 0x0460d): "ArrayConstructorProtector", ("old_space", 0x045d9): "ArrayConstructorProtector",
("old_space", 0x04621): "NoElementsProtector", ("old_space", 0x045ed): "NoElementsProtector",
("old_space", 0x04635): "MegaDOMProtector", ("old_space", 0x04601): "MegaDOMProtector",
("old_space", 0x04649): "IsConcatSpreadableProtector", ("old_space", 0x04615): "IsConcatSpreadableProtector",
("old_space", 0x0465d): "ArraySpeciesProtector", ("old_space", 0x04629): "ArraySpeciesProtector",
("old_space", 0x04671): "TypedArraySpeciesProtector", ("old_space", 0x0463d): "TypedArraySpeciesProtector",
("old_space", 0x04685): "PromiseSpeciesProtector", ("old_space", 0x04651): "PromiseSpeciesProtector",
("old_space", 0x04699): "RegExpSpeciesProtector", ("old_space", 0x04665): "RegExpSpeciesProtector",
("old_space", 0x046ad): "StringLengthProtector", ("old_space", 0x04679): "StringLengthProtector",
("old_space", 0x046c1): "ArrayIteratorProtector", ("old_space", 0x0468d): "ArrayIteratorProtector",
("old_space", 0x046d5): "ArrayBufferDetachingProtector", ("old_space", 0x046a1): "ArrayBufferDetachingProtector",
("old_space", 0x046e9): "PromiseHookProtector", ("old_space", 0x046b5): "PromiseHookProtector",
("old_space", 0x046fd): "PromiseResolveProtector", ("old_space", 0x046c9): "PromiseResolveProtector",
("old_space", 0x04711): "MapIteratorProtector", ("old_space", 0x046dd): "MapIteratorProtector",
("old_space", 0x04725): "PromiseThenProtector", ("old_space", 0x046f1): "PromiseThenProtector",
("old_space", 0x04739): "SetIteratorProtector", ("old_space", 0x04705): "SetIteratorProtector",
("old_space", 0x0474d): "StringIteratorProtector", ("old_space", 0x04719): "StringIteratorProtector",
("old_space", 0x04761): "SingleCharacterStringCache", ("old_space", 0x0472d): "SingleCharacterStringCache",
("old_space", 0x04b69): "StringSplitCache", ("old_space", 0x04b35): "StringSplitCache",
("old_space", 0x04f71): "RegExpMultipleCache", ("old_space", 0x04f3d): "RegExpMultipleCache",
("old_space", 0x05379): "BuiltinsConstantsTable", ("old_space", 0x05345): "BuiltinsConstantsTable",
("old_space", 0x057ad): "AsyncFunctionAwaitRejectSharedFun", ("old_space", 0x05779): "AsyncFunctionAwaitRejectSharedFun",
("old_space", 0x057d1): "AsyncFunctionAwaitResolveSharedFun", ("old_space", 0x0579d): "AsyncFunctionAwaitResolveSharedFun",
("old_space", 0x057f5): "AsyncGeneratorAwaitRejectSharedFun", ("old_space", 0x057c1): "AsyncGeneratorAwaitRejectSharedFun",
("old_space", 0x05819): "AsyncGeneratorAwaitResolveSharedFun", ("old_space", 0x057e5): "AsyncGeneratorAwaitResolveSharedFun",
("old_space", 0x0583d): "AsyncGeneratorYieldResolveSharedFun", ("old_space", 0x05809): "AsyncGeneratorYieldResolveSharedFun",
("old_space", 0x05861): "AsyncGeneratorReturnResolveSharedFun", ("old_space", 0x0582d): "AsyncGeneratorReturnResolveSharedFun",
("old_space", 0x05885): "AsyncGeneratorReturnClosedRejectSharedFun", ("old_space", 0x05851): "AsyncGeneratorReturnClosedRejectSharedFun",
("old_space", 0x058a9): "AsyncGeneratorReturnClosedResolveSharedFun", ("old_space", 0x05875): "AsyncGeneratorReturnClosedResolveSharedFun",
("old_space", 0x058cd): "AsyncIteratorValueUnwrapSharedFun", ("old_space", 0x05899): "AsyncIteratorValueUnwrapSharedFun",
("old_space", 0x058f1): "PromiseAllResolveElementSharedFun", ("old_space", 0x058bd): "PromiseAllResolveElementSharedFun",
("old_space", 0x05915): "PromiseAllSettledResolveElementSharedFun", ("old_space", 0x058e1): "PromiseAllSettledResolveElementSharedFun",
("old_space", 0x05939): "PromiseAllSettledRejectElementSharedFun", ("old_space", 0x05905): "PromiseAllSettledRejectElementSharedFun",
("old_space", 0x0595d): "PromiseAnyRejectElementSharedFun", ("old_space", 0x05929): "PromiseAnyRejectElementSharedFun",
("old_space", 0x05981): "PromiseCapabilityDefaultRejectSharedFun", ("old_space", 0x0594d): "PromiseCapabilityDefaultRejectSharedFun",
("old_space", 0x059a5): "PromiseCapabilityDefaultResolveSharedFun", ("old_space", 0x05971): "PromiseCapabilityDefaultResolveSharedFun",
("old_space", 0x059c9): "PromiseCatchFinallySharedFun", ("old_space", 0x05995): "PromiseCatchFinallySharedFun",
("old_space", 0x059ed): "PromiseGetCapabilitiesExecutorSharedFun", ("old_space", 0x059b9): "PromiseGetCapabilitiesExecutorSharedFun",
("old_space", 0x05a11): "PromiseThenFinallySharedFun", ("old_space", 0x059dd): "PromiseThenFinallySharedFun",
("old_space", 0x05a35): "PromiseThrowerFinallySharedFun", ("old_space", 0x05a01): "PromiseThrowerFinallySharedFun",
("old_space", 0x05a59): "PromiseValueThunkFinallySharedFun", ("old_space", 0x05a25): "PromiseValueThunkFinallySharedFun",
("old_space", 0x05a7d): "ProxyRevokeSharedFun", ("old_space", 0x05a49): "ProxyRevokeSharedFun",
("old_space", 0x05aa1): "ShadowRealmImportValueFulfilledSFI", ("old_space", 0x05a6d): "ShadowRealmImportValueFulfilledSFI",
("old_space", 0x05ac5): "SourceTextModuleExecuteAsyncModuleFulfilledSFI", ("old_space", 0x05a91): "SourceTextModuleExecuteAsyncModuleFulfilledSFI",
("old_space", 0x05ae9): "SourceTextModuleExecuteAsyncModuleRejectedSFI", ("old_space", 0x05ab5): "SourceTextModuleExecuteAsyncModuleRejectedSFI",
} }
# Lower 32 bits of first page addresses for various heap spaces. # Lower 32 bits of first page addresses for various heap spaces.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment