LibJS: Devirtualize Object::is_typed_array()

This commit is contained in:
Andreas Kling 2023-11-26 15:10:34 +01:00
parent d154a758fa
commit 4cce181ece
Notes: sideshowbarker 2024-07-17 06:51:10 +09:00
2 changed files with 6 additions and 4 deletions

View file

@ -184,7 +184,6 @@ public:
virtual bool is_dom_node() const { return false; }
virtual bool is_function() const { return false; }
virtual bool is_typed_array() const { return false; }
virtual bool is_string_object() const { return false; }
virtual bool is_global_object() const { return false; }
virtual bool is_proxy_object() const { return false; }
@ -225,6 +224,9 @@ public:
static FlatPtr has_magical_length_property_offset() { return OFFSET_OF(Object, m_has_magical_length_property); }
[[nodiscard]] bool is_typed_array() const { return m_is_typed_array; }
void set_is_typed_array() { m_is_typed_array = true; }
protected:
enum class GlobalObjectTag { Tag };
enum class ConstructWithoutPrototypeTag { Tag };
@ -244,6 +246,8 @@ protected:
bool m_has_magical_length_property { false };
bool m_is_typed_array { false };
private:
void set_shape(Shape& shape) { m_shape = &shape; }

View file

@ -75,6 +75,7 @@ protected:
, m_kind(kind)
, m_intrinsic_constructor(intrinsic_constructor)
{
set_is_typed_array();
}
u32 m_array_length { 0 };
@ -463,9 +464,6 @@ protected:
m_array_length = array_length;
m_byte_length = m_viewed_array_buffer->byte_length();
}
private:
virtual bool is_typed_array() const final { return true; }
};
ThrowCompletionOr<TypedArrayBase*> typed_array_create(VM&, FunctionObject& constructor, MarkedVector<Value> arguments);