Forráskód Böngészése

LibJS: Add sequence expression bytecode generation

Luke 4 éve
szülő
commit
1dc31842cb

+ 1 - 0
Userland/Libraries/LibJS/AST.h

@@ -604,6 +604,7 @@ public:
 
 
     virtual void dump(int indent) const override;
     virtual void dump(int indent) const override;
     virtual Value execute(Interpreter&, GlobalObject&) const override;
     virtual Value execute(Interpreter&, GlobalObject&) const override;
+    virtual Optional<Bytecode::Register> generate_bytecode(Bytecode::Generator&) const override;
 
 
 private:
 private:
     NonnullRefPtrVector<Expression> m_expressions;
     NonnullRefPtrVector<Expression> m_expressions;

+ 10 - 0
Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp

@@ -449,4 +449,14 @@ Optional<Bytecode::Register> ConditionalExpression::generate_bytecode(Bytecode::
     return result_reg;
     return result_reg;
 }
 }
 
 
+Optional<Bytecode::Register> SequenceExpression::generate_bytecode(Bytecode::Generator& generator) const
+{
+    Optional<Bytecode::Register> last_reg;
+
+    for (auto& expression : m_expressions)
+        last_reg = expression.generate_bytecode(generator);
+
+    return last_reg;
+}
+
 }
 }