diff --git a/Userland/Libraries/LibJS/Runtime/ArrayIterator.h b/Userland/Libraries/LibJS/Runtime/ArrayIterator.h index 47575633e2..034d35e381 100644 --- a/Userland/Libraries/LibJS/Runtime/ArrayIterator.h +++ b/Userland/Libraries/LibJS/Runtime/ArrayIterator.h @@ -28,6 +28,7 @@ private: ArrayIterator(Value array, Object::PropertyKind iteration_kind, Object& prototype); + virtual bool is_array_iterator() const override { return true; } virtual void visit_edges(Cell::Visitor&) override; Value m_array; @@ -35,4 +36,7 @@ private: size_t m_index { 0 }; }; +template<> +inline bool Object::fast_is() const { return is_array_iterator(); } + } diff --git a/Userland/Libraries/LibJS/Runtime/Object.h b/Userland/Libraries/LibJS/Runtime/Object.h index d92ae61f4a..9b13dc1d2d 100644 --- a/Userland/Libraries/LibJS/Runtime/Object.h +++ b/Userland/Libraries/LibJS/Runtime/Object.h @@ -191,6 +191,7 @@ public: virtual bool is_native_function() const { return false; } virtual bool is_ecmascript_function_object() const { return false; } virtual bool is_iterator_record() const { return false; } + virtual bool is_array_iterator() const { return false; } // B.3.7 The [[IsHTMLDDA]] Internal Slot, https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot virtual bool is_htmldda() const { return false; }