OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_AST_H_ | 5 #ifndef VM_AST_H_ |
6 #define VM_AST_H_ | 6 #define VM_AST_H_ |
7 | 7 |
8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
9 #include "vm/allocation.h" | 9 #include "vm/allocation.h" |
10 #include "vm/growable_array.h" | 10 #include "vm/growable_array.h" |
(...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 | 609 |
610 DECLARE_COMMON_NODE_FUNCTIONS(PrimaryNode); | 610 DECLARE_COMMON_NODE_FUNCTIONS(PrimaryNode); |
611 | 611 |
612 private: | 612 private: |
613 const Object& primary_; | 613 const Object& primary_; |
614 bool is_deferred_reference_; | 614 bool is_deferred_reference_; |
615 | 615 |
616 DISALLOW_IMPLICIT_CONSTRUCTORS(PrimaryNode); | 616 DISALLOW_IMPLICIT_CONSTRUCTORS(PrimaryNode); |
617 }; | 617 }; |
618 | 618 |
619 // In asynchronous code that gets suspeded and resumed, return nodes | 619 // In asynchronous code that gets suspended and resumed, return nodes |
620 // can be of different types: | 620 // can be of different types: |
621 // * A regular return node that in the case of async functions | 621 // * A regular return node that in the case of async functions |
622 // gets replaced with appropriate completer calls. (kRegular) | 622 // gets replaced with appropriate completer calls. (kRegular) |
623 // * A continuation return that just returns from a function, without | 623 // * A continuation return that just returns from a function, without |
624 // completing the Future. (kContinuation) | 624 // completing the Future. (kContinuation) |
625 // * A continuation return followed by a continuation target, i.e. the | 625 // * A continuation return followed by a continuation target, i.e. the |
626 // location at which the closure resumes the next time it gets invoked. | 626 // location at which the closure resumes the next time it gets invoked. |
627 // (kContinuationTarget). | 627 // (kContinuationTarget). |
628 // In synchronous functions, return nodes are always of type'kRegular' | 628 // In synchronous functions, return nodes are always of type'kRegular' |
629 class ReturnNode : public AstNode { | 629 class ReturnNode : public AstNode { |
(...skipping 1384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2014 const intptr_t try_index_; | 2014 const intptr_t try_index_; |
2015 | 2015 |
2016 DISALLOW_IMPLICIT_CONSTRUCTORS(InlinedFinallyNode); | 2016 DISALLOW_IMPLICIT_CONSTRUCTORS(InlinedFinallyNode); |
2017 }; | 2017 }; |
2018 | 2018 |
2019 } // namespace dart | 2019 } // namespace dart |
2020 | 2020 |
2021 #undef DECLARE_COMMON_NODE_FUNCTIONS | 2021 #undef DECLARE_COMMON_NODE_FUNCTIONS |
2022 | 2022 |
2023 #endif // VM_AST_H_ | 2023 #endif // VM_AST_H_ |
OLD | NEW |