| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_COMPILER_AST_GRAPH_BUILDER_H_ | 5 #ifndef V8_COMPILER_AST_GRAPH_BUILDER_H_ |
| 6 #define V8_COMPILER_AST_GRAPH_BUILDER_H_ | 6 #define V8_COMPILER_AST_GRAPH_BUILDER_H_ |
| 7 | 7 |
| 8 #include "src/v8.h" | 8 #include "src/v8.h" |
| 9 | 9 |
| 10 #include "src/ast.h" | 10 #include "src/ast.h" |
| (...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 310 #endif | 310 #endif |
| 311 | 311 |
| 312 private: | 312 private: |
| 313 Expression::Context kind_; | 313 Expression::Context kind_; |
| 314 AstGraphBuilder* owner_; | 314 AstGraphBuilder* owner_; |
| 315 AstContext* outer_; | 315 AstContext* outer_; |
| 316 }; | 316 }; |
| 317 | 317 |
| 318 | 318 |
| 319 // Context to evaluate expression for its side effects only. | 319 // Context to evaluate expression for its side effects only. |
| 320 class AstGraphBuilder::AstEffectContext V8_FINAL : public AstContext { | 320 class AstGraphBuilder::AstEffectContext FINAL : public AstContext { |
| 321 public: | 321 public: |
| 322 explicit AstEffectContext(AstGraphBuilder* owner) | 322 explicit AstEffectContext(AstGraphBuilder* owner) |
| 323 : AstContext(owner, Expression::kEffect) {} | 323 : AstContext(owner, Expression::kEffect) {} |
| 324 virtual ~AstEffectContext(); | 324 virtual ~AstEffectContext(); |
| 325 virtual void ProduceValue(Node* value) V8_OVERRIDE; | 325 virtual void ProduceValue(Node* value) OVERRIDE; |
| 326 virtual Node* ConsumeValue() V8_OVERRIDE; | 326 virtual Node* ConsumeValue() OVERRIDE; |
| 327 }; | 327 }; |
| 328 | 328 |
| 329 | 329 |
| 330 // Context to evaluate expression for its value (and side effects). | 330 // Context to evaluate expression for its value (and side effects). |
| 331 class AstGraphBuilder::AstValueContext V8_FINAL : public AstContext { | 331 class AstGraphBuilder::AstValueContext FINAL : public AstContext { |
| 332 public: | 332 public: |
| 333 explicit AstValueContext(AstGraphBuilder* owner) | 333 explicit AstValueContext(AstGraphBuilder* owner) |
| 334 : AstContext(owner, Expression::kValue) {} | 334 : AstContext(owner, Expression::kValue) {} |
| 335 virtual ~AstValueContext(); | 335 virtual ~AstValueContext(); |
| 336 virtual void ProduceValue(Node* value) V8_OVERRIDE; | 336 virtual void ProduceValue(Node* value) OVERRIDE; |
| 337 virtual Node* ConsumeValue() V8_OVERRIDE; | 337 virtual Node* ConsumeValue() OVERRIDE; |
| 338 }; | 338 }; |
| 339 | 339 |
| 340 | 340 |
| 341 // Context to evaluate expression for a condition value (and side effects). | 341 // Context to evaluate expression for a condition value (and side effects). |
| 342 class AstGraphBuilder::AstTestContext V8_FINAL : public AstContext { | 342 class AstGraphBuilder::AstTestContext FINAL : public AstContext { |
| 343 public: | 343 public: |
| 344 explicit AstTestContext(AstGraphBuilder* owner) | 344 explicit AstTestContext(AstGraphBuilder* owner) |
| 345 : AstContext(owner, Expression::kTest) {} | 345 : AstContext(owner, Expression::kTest) {} |
| 346 virtual ~AstTestContext(); | 346 virtual ~AstTestContext(); |
| 347 virtual void ProduceValue(Node* value) V8_OVERRIDE; | 347 virtual void ProduceValue(Node* value) OVERRIDE; |
| 348 virtual Node* ConsumeValue() V8_OVERRIDE; | 348 virtual Node* ConsumeValue() OVERRIDE; |
| 349 }; | 349 }; |
| 350 | 350 |
| 351 | 351 |
| 352 // Scoped class tracking breakable statements entered by the visitor. Allows to | 352 // Scoped class tracking breakable statements entered by the visitor. Allows to |
| 353 // properly 'break' and 'continue' iteration statements as well as to 'break' | 353 // properly 'break' and 'continue' iteration statements as well as to 'break' |
| 354 // from blocks within switch statements. | 354 // from blocks within switch statements. |
| 355 class AstGraphBuilder::BreakableScope BASE_EMBEDDED { | 355 class AstGraphBuilder::BreakableScope BASE_EMBEDDED { |
| 356 public: | 356 public: |
| 357 BreakableScope(AstGraphBuilder* owner, BreakableStatement* target, | 357 BreakableScope(AstGraphBuilder* owner, BreakableStatement* target, |
| 358 ControlBuilder* control, int drop_extra) | 358 ControlBuilder* control, int drop_extra) |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 415 }; | 415 }; |
| 416 | 416 |
| 417 Scope* AstGraphBuilder::current_scope() const { | 417 Scope* AstGraphBuilder::current_scope() const { |
| 418 return execution_context_->scope(); | 418 return execution_context_->scope(); |
| 419 } | 419 } |
| 420 } | 420 } |
| 421 } | 421 } |
| 422 } // namespace v8::internal::compiler | 422 } // namespace v8::internal::compiler |
| 423 | 423 |
| 424 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ | 424 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ |
| OLD | NEW |