Chromium Code Reviews| Index: runtime/vm/kernel.h |
| diff --git a/runtime/vm/kernel.h b/runtime/vm/kernel.h |
| index a7950be8d390a88bcda65c60bff3d8b0a9f762f0..6c18cc3d845524a6894efc716abaa169d4455718 100644 |
| --- a/runtime/vm/kernel.h |
| +++ b/runtime/vm/kernel.h |
| @@ -229,6 +229,13 @@ class List { |
| T** raw_array() { return array_; } |
| + bool cannot_stream() { |
|
Kevin Millikin (Google)
2017/05/11 10:38:35
This should be CanStream. Capitalized because of
jensj
2017/05/11 12:59:25
Done.
|
| + for (intptr_t i = 0; i < length_; ++i) { |
| + if (array_[i]->cannot_stream()) return true; |
| + } |
| + return false; |
| + } |
| + |
| private: |
| T** array_; |
| int length_; |
| @@ -386,14 +393,17 @@ class TreeNode : public Node { |
| virtual void AcceptVisitor(Visitor* visitor); |
| virtual void AcceptTreeVisitor(TreeVisitor* visitor) = 0; |
| intptr_t kernel_offset() const { return kernel_offset_; } |
| + bool cannot_stream() { return cannot_stream_; } |
| protected: |
| - TreeNode() : kernel_offset_(-1) {} |
| + TreeNode() : kernel_offset_(-1), cannot_stream_(false) {} |
| // Offset for this node in the kernel-binary. If this node has a tag the |
| // offset includes the tag. Can be -1 to indicate "unknown" or invalid offset. |
| intptr_t kernel_offset_; |
| + bool cannot_stream_; |
| + |
| private: |
| DISALLOW_COPY_AND_ASSIGN(TreeNode); |
| }; |
| @@ -1019,6 +1029,7 @@ class VariableGet : public Expression { |
| VariableGet() {} |
| Ref<VariableDeclaration> variable_; |
| + intptr_t variable_kernel_offset_; |
| DISALLOW_COPY_AND_ASSIGN(VariableGet); |
| }; |
| @@ -1043,6 +1054,7 @@ class VariableSet : public Expression { |
| VariableSet() {} |
| Ref<VariableDeclaration> variable_; |
| + intptr_t variable_kernel_offset_; |
| Child<Expression> expression_; |
| DISALLOW_COPY_AND_ASSIGN(VariableSet); |
| @@ -1153,7 +1165,10 @@ class DirectPropertySet : public Expression { |
| class StaticGet : public Expression { |
| public: |
| - explicit StaticGet(CanonicalName* target) : target_reference_(target) {} |
| + StaticGet(CanonicalName* target, bool cannot_stream) |
| + : target_reference_(target) { |
| + cannot_stream_ = cannot_stream; |
| + } |
| static StaticGet* ReadFrom(Reader* reader); |
| @@ -2173,12 +2188,12 @@ class BreakStatement : public Statement { |
| virtual void AcceptStatementVisitor(StatementVisitor* visitor); |
| virtual void VisitChildren(Visitor* visitor); |
| - LabeledStatement* target() { return target_; } |
| + intptr_t target_index() { return target_index_; } |
| private: |
| BreakStatement() {} |
| - Ref<LabeledStatement> target_; |
| + intptr_t target_index_; |
| DISALLOW_COPY_AND_ASSIGN(BreakStatement); |
| }; |
| @@ -2364,12 +2379,12 @@ class ContinueSwitchStatement : public Statement { |
| virtual void AcceptStatementVisitor(StatementVisitor* visitor); |
| virtual void VisitChildren(Visitor* visitor); |
| - SwitchCase* target() { return target_; } |
| + intptr_t target_index() { return target_index_; } |
| private: |
| ContinueSwitchStatement() {} |
| - Ref<SwitchCase> target_; |
| + intptr_t target_index_; |
| DISALLOW_COPY_AND_ASSIGN(ContinueSwitchStatement); |
| }; |
| @@ -2403,7 +2418,10 @@ class IfStatement : public Statement { |
| class ReturnStatement : public Statement { |
| public: |
| - explicit ReturnStatement(Expression* expression) : expression_(expression) {} |
| + explicit ReturnStatement(Expression* expression, bool cannot_stream) |
|
Kevin Millikin (Google)
2017/05/11 10:38:35
No need for explicit unless it takes only one argu
jensj
2017/05/11 12:59:25
Done.
|
| + : expression_(expression) { |
| + cannot_stream_ = cannot_stream; |
| + } |
| static ReturnStatement* ReadFrom(Reader* reader); |