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