Lines Matching defs:ExpressionNode

144     class ExpressionNode : public Node {
146 ExpressionNode(JSGlobalData*, ResultType = ResultType::unknownType());
166 virtual ExpressionNode* stripUnaryPlus() { return this; }
193 class NullNode : public ExpressionNode {
203 class BooleanNode : public ExpressionNode {
215 class NumberNode : public ExpressionNode {
231 class StringNode : public ExpressionNode {
341 class RegExpNode : public ExpressionNode, public ThrowableExpressionData {
352 class ThisNode : public ExpressionNode {
360 class ResolveNode : public ExpressionNode {
379 ElementNode(JSGlobalData*, int elision, ExpressionNode*);
380 ElementNode(JSGlobalData*, ElementNode*, int elision, ExpressionNode*);
383 ExpressionNode* value() { return m_node; }
389 ExpressionNode* m_node;
392 class ArrayNode : public ExpressionNode {
414 PropertyNode(JSGlobalData*, const Identifier& name, ExpressionNode* value, Type);
415 PropertyNode(JSGlobalData*, double name, ExpressionNode* value, Type);
423 ExpressionNode* m_assign;
439 class ObjectLiteralNode : public ExpressionNode {
450 class BracketAccessorNode : public ExpressionNode, public ThrowableExpressionData {
452 BracketAccessorNode(JSGlobalData*, ExpressionNode* base, ExpressionNode* subscript, bool subscriptHasAssignments);
454 ExpressionNode* base() const { return m_base; }
455 ExpressionNode* subscript() const { return m_subscript; }
463 ExpressionNode* m_base;
464 ExpressionNode* m_subscript;
468 class DotAccessorNode : public ExpressionNode, public ThrowableExpressionData {
470 DotAccessorNode(JSGlobalData*, ExpressionNode* base, const Identifier&);
472 ExpressionNode* base() const { return m_base; }
481 ExpressionNode* m_base;
487 ArgumentListNode(JSGlobalData*, ExpressionNode*);
488 ArgumentListNode(JSGlobalData*, ArgumentListNode*, ExpressionNode*);
491 ExpressionNode* m_expr;
505 class NewExprNode : public ExpressionNode, public ThrowableExpressionData {
507 NewExprNode(JSGlobalData*, ExpressionNode*);
508 NewExprNode(JSGlobalData*, ExpressionNode*, ArgumentsNode*);
513 ExpressionNode* m_expr;
517 class EvalFunctionCallNode : public ExpressionNode, public ThrowableExpressionData {
527 class FunctionCallValueNode : public ExpressionNode, public ThrowableExpressionData {
529 FunctionCallValueNode(JSGlobalData*, ExpressionNode*, ArgumentsNode*, unsigned divot, unsigned startOffset, unsigned endOffset);
534 ExpressionNode* m_expr;
538 class FunctionCallResolveNode : public ExpressionNode, public ThrowableExpressionData {
551 class FunctionCallBracketNode : public ExpressionNode, public ThrowableSubExpressionData {
553 FunctionCallBracketNode(JSGlobalData*, ExpressionNode* base, ExpressionNode* subscript, ArgumentsNode*, unsigned divot, unsigned startOffset, unsigned endOffset);
558 ExpressionNode* m_base;
559 ExpressionNode* m_subscript;
563 class FunctionCallDotNode : public ExpressionNode, public ThrowableSubExpressionData {
565 FunctionCallDotNode(JSGlobalData*, ExpressionNode* base, const Identifier&, ArgumentsNode*, unsigned divot, unsigned startOffset, unsigned endOffset);
571 ExpressionNode* m_base;
578 CallFunctionCallDotNode(JSGlobalData*, ExpressionNode* base, const Identifier&, ArgumentsNode*, unsigned divot, unsigned startOffset, unsigned endOffset);
586 ApplyFunctionCallDotNode(JSGlobalData*, ExpressionNode* base, const Identifier&, ArgumentsNode*, unsigned divot, unsigned startOffset, unsigned endOffset);
592 class PrePostResolveNode : public ExpressionNode, public ThrowableExpressionData {
610 class PostfixBracketNode : public ExpressionNode, public ThrowableSubExpressionData {
612 PostfixBracketNode(JSGlobalData*, ExpressionNode* base, ExpressionNode* subscript, Operator, unsigned divot, unsigned startOffset, unsigned endOffset);
617 ExpressionNode* m_base;
618 ExpressionNode* m_subscript;
622 class PostfixDotNode : public ExpressionNode, public ThrowableSubExpressionData {
624 PostfixDotNode(JSGlobalData*, ExpressionNode* base, const Identifier&, Operator, unsigned divot, unsigned startOffset, unsigned endOffset);
629 ExpressionNode* m_base;
634 class PostfixErrorNode : public ExpressionNode, public ThrowableSubExpressionData {
636 PostfixErrorNode(JSGlobalData*, ExpressionNode*, Operator, unsigned divot, unsigned startOffset, unsigned endOffset);
641 ExpressionNode* m_expr;
645 class DeleteResolveNode : public ExpressionNode, public ThrowableExpressionData {
655 class DeleteBracketNode : public ExpressionNode, public ThrowableExpressionData {
657 DeleteBracketNode(JSGlobalData*, ExpressionNode* base, ExpressionNode* subscript, unsigned divot, unsigned startOffset, unsigned endOffset);
662 ExpressionNode* m_base;
663 ExpressionNode* m_subscript;
666 class DeleteDotNode : public ExpressionNode, public ThrowableExpressionData {
668 DeleteDotNode(JSGlobalData*, ExpressionNode* base, const Identifier&, unsigned divot, unsigned startOffset, unsigned endOffset);
673 ExpressionNode* m_base;
677 class DeleteValueNode : public ExpressionNode {
679 DeleteValueNode(JSGlobalData*, ExpressionNode*);
684 ExpressionNode* m_expr;
687 class VoidNode : public ExpressionNode {
689 VoidNode(JSGlobalData*, ExpressionNode*);
694 ExpressionNode* m_expr;
697 class TypeOfResolveNode : public ExpressionNode {
709 class TypeOfValueNode : public ExpressionNode {
711 TypeOfValueNode(JSGlobalData*, ExpressionNode*);
716 ExpressionNode* m_expr;
729 class PrefixBracketNode : public ExpressionNode, public ThrowablePrefixedSubExpressionData {
731 PrefixBracketNode(JSGlobalData*, ExpressionNode* base, ExpressionNode* subscript, Operator, unsigned divot, unsigned startOffset, unsigned endOffset);
736 ExpressionNode* m_base;
737 ExpressionNode* m_subscript;
741 class PrefixDotNode : public ExpressionNode, public ThrowablePrefixedSubExpressionData {
743 PrefixDotNode(JSGlobalData*, ExpressionNode* base, const Identifier&, Operator, unsigned divot, unsigned startOffset, unsigned endOffset);
748 ExpressionNode* m_base;
753 class PrefixErrorNode : public ExpressionNode, public ThrowableExpressionData {
755 PrefixErrorNode(JSGlobalData*, ExpressionNode*, Operator, unsigned divot, unsigned startOffset, unsigned endOffset);
760 ExpressionNode* m_expr;
764 class UnaryOpNode : public ExpressionNode {
766 UnaryOpNode(JSGlobalData*, ResultType, ExpressionNode*, OpcodeID);
769 ExpressionNode* expr() { return m_expr; }
770 const ExpressionNode* expr() const { return m_expr; }
777 ExpressionNode* m_expr;
783 UnaryPlusNode(JSGlobalData*, ExpressionNode*);
786 virtual ExpressionNode* stripUnaryPlus() { return expr(); }
791 NegateNode(JSGlobalData*, ExpressionNode*);
796 BitwiseNotNode(JSGlobalData*, ExpressionNode*);
801 LogicalNotNode(JSGlobalData*, ExpressionNode*);
807 class BinaryOpNode : public ExpressionNode {
809 BinaryOpNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, OpcodeID, bool rightHasAssignments);
810 BinaryOpNode(JSGlobalData*, ResultType, ExpressionNode* expr1, ExpressionNode* expr2, OpcodeID, bool rightHasAssignments);
814 ExpressionNode* lhs() { return m_expr1; };
815 ExpressionNode* rhs() { return m_expr2; };
824 ExpressionNode* m_expr1;
825 ExpressionNode* m_expr2;
834 ReverseBinaryOpNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, OpcodeID, bool rightHasAssignments);
835 ReverseBinaryOpNode(JSGlobalData*, ResultType, ExpressionNode* expr1, ExpressionNode* expr2, OpcodeID, bool rightHasAssignments);
842 MultNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
847 DivNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
852 ModNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
857 AddNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
864 SubNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
871 LeftShiftNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
876 RightShiftNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
881 UnsignedRightShiftNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
886 LessNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
891 GreaterNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
896 LessEqNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
901 GreaterEqNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
906 ThrowableBinaryOpNode(JSGlobalData*, ResultType, ExpressionNode* expr1, ExpressionNode* expr2, OpcodeID, bool rightHasAssignments);
907 ThrowableBinaryOpNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, OpcodeID, bool rightHasAssignments);
915 InstanceOfNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
923 InNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
928 EqualNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
936 NotEqualNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
941 StrictEqualNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
949 NotStrictEqualNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
954 BitAndNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
959 BitOrNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
964 BitXOrNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
968 class LogicalOpNode : public ExpressionNode {
970 LogicalOpNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, LogicalOperator);
977 ExpressionNode* m_expr1;
978 ExpressionNode* m_expr2;
983 class ConditionalNode : public ExpressionNode {
985 ConditionalNode(JSGlobalData*, ExpressionNode* logical, ExpressionNode* expr1, ExpressionNode* expr2);
990 ExpressionNode* m_logical;
991 ExpressionNode* m_expr1;
992 ExpressionNode* m_expr2;
995 class ReadModifyResolveNode : public ExpressionNode, public ThrowableExpressionData {
997 ReadModifyResolveNode(JSGlobalData*, const Identifier&, Operator, ExpressionNode* right, bool rightHasAssignments, unsigned divot, unsigned startOffset, unsigned endOffset);
1003 ExpressionNode* m_right;
1009 class AssignResolveNode : public ExpressionNode, public ThrowableExpressionData {
1011 AssignResolveNode(JSGlobalData*, const Identifier&, ExpressionNode* right, bool rightHasAssignments);
1017 ExpressionNode* m_right;
1022 class ReadModifyBracketNode : public ExpressionNode, public ThrowableSubExpressionData {
1024 ReadModifyBracketNode(JSGlobalData*, ExpressionNode* base, ExpressionNode* subscript, Operator, ExpressionNode* right, bool subscriptHasAssignments, bool rightHasAssignments, unsigned divot, unsigned startOffset, unsigned endOffset);
1029 ExpressionNode* m_base;
1030 ExpressionNode* m_subscript;
1031 ExpressionNode* m_right;
1037 class AssignBracketNode : public ExpressionNode, public ThrowableExpressionData {
1039 AssignBracketNode(JSGlobalData*, ExpressionNode* base, ExpressionNode* subscript, ExpressionNode* right, bool subscriptHasAssignments, bool rightHasAssignments, unsigned divot, unsigned startOffset, unsigned endOffset);
1044 ExpressionNode* m_base;
1045 ExpressionNode* m_subscript;
1046 ExpressionNode* m_right;
1051 class AssignDotNode : public ExpressionNode, public ThrowableExpressionData {
1053 AssignDotNode(JSGlobalData*, ExpressionNode* base, const Identifier&, ExpressionNode* right, bool rightHasAssignments, unsigned divot, unsigned startOffset, unsigned endOffset);
1058 ExpressionNode* m_base;
1060 ExpressionNode* m_right;
1064 class ReadModifyDotNode : public ExpressionNode, public ThrowableSubExpressionData {
1066 ReadModifyDotNode(JSGlobalData*, ExpressionNode* base, const Identifier&, Operator, ExpressionNode* right, bool rightHasAssignments, unsigned divot, unsigned startOffset, unsigned endOffset);
1071 ExpressionNode* m_base;
1073 ExpressionNode* m_right;
1078 class AssignErrorNode : public ExpressionNode, public ThrowableExpressionData {
1080 AssignErrorNode(JSGlobalData*, ExpressionNode* left, Operator, ExpressionNode* right, unsigned divot, unsigned startOffset, unsigned endOffset);
1085 ExpressionNode* m_left;
1087 ExpressionNode* m_right;
1090 typedef Vector<ExpressionNode*, 8> ExpressionVector;
1092 class CommaNode : public ExpressionNode, public ParserArenaDeletable {
1094 CommaNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2);
1098 void append(ExpressionNode* expr) { m_expressions.append(expr); }
1107 class ConstDeclNode : public ExpressionNode {
1109 ConstDeclNode(JSGlobalData*, const Identifier&, ExpressionNode*);
1124 ExpressionNode* m_init;
1187 ExprStatementNode(JSGlobalData*, ExpressionNode*);
1189 ExpressionNode* expr() const { return m_expr; }
1196 ExpressionNode* m_expr;
1201 VarStatementNode(JSGlobalData*, ExpressionNode*);
1206 ExpressionNode* m_expr;
1211 IfNode(JSGlobalData*, ExpressionNode* condition, StatementNode* ifBlock);
1216 ExpressionNode* m_condition;
1222 IfElseNode(JSGlobalData*, ExpressionNode* condition, StatementNode* ifBlock, StatementNode* elseBlock);
1232 DoWhileNode(JSGlobalData*, StatementNode* statement, ExpressionNode*);
1238 ExpressionNode* m_expr;
1243 WhileNode(JSGlobalData*, ExpressionNode*, StatementNode* statement);
1248 ExpressionNode* m_expr;
1254 ForNode(JSGlobalData*, ExpressionNode* expr1, ExpressionNode* expr2, ExpressionNode* expr3, StatementNode* statement, bool expr1WasVarDecl);
1259 ExpressionNode* m_expr1;
1260 ExpressionNode* m_expr2;
1261 ExpressionNode* m_expr3;
1268 ForInNode(JSGlobalData*, ExpressionNode*, ExpressionNode*, StatementNode*);
1269 ForInNode(JSGlobalData*, const Identifier&, ExpressionNode*, ExpressionNode*, StatementNode*, int divot, int startOffset, int endOffset);
1275 ExpressionNode* m_init;
1276 ExpressionNode* m_lexpr;
1277 ExpressionNode* m_expr;
1306 ReturnNode(JSGlobalData*, ExpressionNode* value);
1308 ExpressionNode* value() { return m_value; }
1315 ExpressionNode* m_value;
1320 WithNode(JSGlobalData*, ExpressionNode*, StatementNode*, uint32_t divot, uint32_t expressionLength);
1325 ExpressionNode* m_expr;
1344 ThrowNode(JSGlobalData*, ExpressionNode*);
1349 ExpressionNode* m_expr;
1511 class FuncExprNode : public ExpressionNode {
1539 CaseClauseNode(JSGlobalData*, ExpressionNode*, SourceElements* = 0);
1541 ExpressionNode* expr() const { return m_expr; }
1546 ExpressionNode* m_expr;
1570 SwitchInfo::SwitchType tryOptimizedSwitch(Vector<ExpressionNode*, 8>& literalVector, int32_t& min_num, int32_t& max_num);
1578 SwitchNode(JSGlobalData*, ExpressionNode*, CaseBlockNode*);
1583 ExpressionNode* m_expr;