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 |