diff --git a/Libraries/LibJS/AST.cpp b/Libraries/LibJS/AST.cpp index db80f0e569..4748b69290 100644 --- a/Libraries/LibJS/AST.cpp +++ b/Libraries/LibJS/AST.cpp @@ -458,4 +458,14 @@ void VariableDeclaration::dump(int indent) const m_initializer->dump(indent + 1); } +void ObjectExpression::dump(int indent) const +{ + ASTNode::dump(indent); +} + +Value ObjectExpression::execute(Interpreter& interpreter) const +{ + return Value(interpreter.heap().allocate()); +} + } diff --git a/Libraries/LibJS/AST.h b/Libraries/LibJS/AST.h index 9e51124a30..70f388944c 100644 --- a/Libraries/LibJS/AST.h +++ b/Libraries/LibJS/AST.h @@ -352,4 +352,15 @@ private: OwnPtr m_initializer; }; +class ObjectExpression : public Expression { +public: + ObjectExpression() {} + + virtual Value execute(Interpreter&) const override; + virtual void dump(int indent) const override; + +private: + virtual const char* class_name() const override { return "ObjectExpression"; } +}; + }