Index: runtime/vm/ast.h |
=================================================================== |
--- runtime/vm/ast.h (revision 11663) |
+++ runtime/vm/ast.h (working copy) |
@@ -32,6 +32,7 @@ |
V(ForNode, "for") \ |
V(JumpNode, "jump") \ |
V(ArgumentListNode, "args") \ |
+ V(ArgumentDefinitionTestNode, "defined") \ |
V(ArrayNode, "array") \ |
V(ClosureNode, "closure") \ |
V(InstanceCallNode, "instance call") \ |
@@ -244,6 +245,41 @@ |
}; |
+class ArgumentDefinitionTestNode : public AstNode { |
+ public: |
+ ArgumentDefinitionTestNode(intptr_t token_pos, |
+ intptr_t formal_parameter_index, |
+ const String& formal_parameter_name, |
+ LocalVariable* saved_arguments_descriptor) |
+ : AstNode(token_pos), |
+ formal_parameter_index_(formal_parameter_index), |
+ formal_parameter_name_(formal_parameter_name), |
+ saved_arguments_descriptor_(*saved_arguments_descriptor) { |
+ ASSERT(formal_parameter_index_ >= 0); |
+ ASSERT(formal_parameter_name_.IsZoneHandle()); |
+ ASSERT(formal_parameter_name_.IsSymbol()); |
+ ASSERT(saved_arguments_descriptor != NULL); |
+ } |
+ |
+ virtual void VisitChildren(AstNodeVisitor* visitor) const { } |
+ |
+ intptr_t formal_parameter_index() const { return formal_parameter_index_; } |
+ const String& formal_parameter_name() const { return formal_parameter_name_; } |
+ const LocalVariable& saved_arguments_descriptor() const { |
+ return saved_arguments_descriptor_; |
+ } |
+ |
+ DECLARE_COMMON_NODE_FUNCTIONS(ArgumentDefinitionTestNode); |
+ |
+ private: |
+ const intptr_t formal_parameter_index_; |
+ const String& formal_parameter_name_; |
+ const LocalVariable& saved_arguments_descriptor_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ArgumentDefinitionTestNode); |
+}; |
+ |
+ |
class ArrayNode : public AstNode { |
public: |
ArrayNode(intptr_t token_pos, const AbstractType& type) |