فهرست منبع

LibJS: Shrink ObjectProperty AST nodes by rearranging members

By putting smaller members in the padding hole after the ASTNode base
class, we shrink ObjectProperty by 8 bytes.
Andreas Kling 2 سال پیش
والد
کامیت
dd1720f2cb
1فایلهای تغییر یافته به همراه5 افزوده شده و 5 حذف شده
  1. 5 5
      Userland/Libraries/LibJS/AST.h

+ 5 - 5
Userland/Libraries/LibJS/AST.h

@@ -1713,7 +1713,7 @@ private:
 
 
 class ObjectProperty final : public ASTNode {
 class ObjectProperty final : public ASTNode {
 public:
 public:
-    enum class Type {
+    enum class Type : u8 {
         KeyValue,
         KeyValue,
         Getter,
         Getter,
         Setter,
         Setter,
@@ -1723,10 +1723,10 @@ public:
 
 
     ObjectProperty(SourceRange source_range, NonnullRefPtr<Expression> key, RefPtr<Expression> value, Type property_type, bool is_method)
     ObjectProperty(SourceRange source_range, NonnullRefPtr<Expression> key, RefPtr<Expression> value, Type property_type, bool is_method)
         : ASTNode(source_range)
         : ASTNode(source_range)
-        , m_key(move(key))
-        , m_value(move(value))
         , m_property_type(property_type)
         , m_property_type(property_type)
         , m_is_method(is_method)
         , m_is_method(is_method)
+        , m_key(move(key))
+        , m_value(move(value))
     {
     {
     }
     }
 
 
@@ -1744,10 +1744,10 @@ public:
     virtual Completion execute(Interpreter&) const override;
     virtual Completion execute(Interpreter&) const override;
 
 
 private:
 private:
-    NonnullRefPtr<Expression> m_key;
-    RefPtr<Expression> m_value;
     Type m_property_type;
     Type m_property_type;
     bool m_is_method { false };
     bool m_is_method { false };
+    NonnullRefPtr<Expression> m_key;
+    RefPtr<Expression> m_value;
 };
 };
 
 
 class ObjectExpression final : public Expression {
 class ObjectExpression final : public Expression {