From fd0a0e963a737b254de9c7c3be8b1d9b531b966e Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 1 Apr 2025 15:18:22 +0200 Subject: [PATCH] LibJS: Make IteratorRecord slightly smaller By reordering the members, we take this from 40 bytes to 32 bytes. --- Libraries/LibJS/Runtime/Iterator.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Libraries/LibJS/Runtime/Iterator.h b/Libraries/LibJS/Runtime/Iterator.h index a972f9d884d..cbad51bdd75 100644 --- a/Libraries/LibJS/Runtime/Iterator.h +++ b/Libraries/LibJS/Runtime/Iterator.h @@ -23,20 +23,22 @@ class IteratorRecord final : public Cell { public: IteratorRecord(GC::Ptr iterator, Value next_method, bool done) - : iterator(iterator) + : done(done) + , iterator(iterator) , next_method(next_method) - , done(done) { } + bool done { false }; // [[Done]] GC::Ptr iterator; // [[Iterator]] Value next_method; // [[NextMethod]] - bool done { false }; // [[Done]] private: virtual void visit_edges(Cell::Visitor&) override; }; +static_assert(sizeof(IteratorRecord) == 32); + class Iterator : public Object { JS_OBJECT(Iterator, Object); GC_DECLARE_ALLOCATOR(Iterator);