OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/ast.h" | 7 #include "src/ast.h" |
8 #include "src/ast-numbering.h" | 8 #include "src/ast-numbering.h" |
9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 } | 281 } |
282 } | 282 } |
283 | 283 |
284 | 284 |
285 void BreakableStatementChecker::VisitCompareOperation(CompareOperation* expr) { | 285 void BreakableStatementChecker::VisitCompareOperation(CompareOperation* expr) { |
286 Visit(expr->left()); | 286 Visit(expr->left()); |
287 Visit(expr->right()); | 287 Visit(expr->right()); |
288 } | 288 } |
289 | 289 |
290 | 290 |
| 291 void BreakableStatementChecker::VisitSpreadOperation(SpreadOperation* expr) { |
| 292 Visit(expr->expression()); |
| 293 } |
| 294 |
| 295 |
291 void BreakableStatementChecker::VisitThisFunction(ThisFunction* expr) { | 296 void BreakableStatementChecker::VisitThisFunction(ThisFunction* expr) { |
292 } | 297 } |
293 | 298 |
294 | 299 |
295 void BreakableStatementChecker::VisitSuperReference(SuperReference* expr) {} | 300 void BreakableStatementChecker::VisitSuperReference(SuperReference* expr) {} |
296 | 301 |
297 | 302 |
298 #define __ ACCESS_MASM(masm()) | 303 #define __ ACCESS_MASM(masm()) |
299 | 304 |
300 bool FullCodeGenerator::MakeCode(CompilationInfo* info) { | 305 bool FullCodeGenerator::MakeCode(CompilationInfo* info) { |
(...skipping 1314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1615 | 1620 |
1616 | 1621 |
1617 void FullCodeGenerator::VisitThrow(Throw* expr) { | 1622 void FullCodeGenerator::VisitThrow(Throw* expr) { |
1618 Comment cmnt(masm_, "[ Throw"); | 1623 Comment cmnt(masm_, "[ Throw"); |
1619 VisitForStackValue(expr->exception()); | 1624 VisitForStackValue(expr->exception()); |
1620 __ CallRuntime(Runtime::kThrow, 1); | 1625 __ CallRuntime(Runtime::kThrow, 1); |
1621 // Never returns here. | 1626 // Never returns here. |
1622 } | 1627 } |
1623 | 1628 |
1624 | 1629 |
| 1630 void FullCodeGenerator::VisitSpreadOperation(SpreadOperation* expr) { |
| 1631 Visit(expr->expression()); |
| 1632 } |
| 1633 |
| 1634 |
1625 FullCodeGenerator::NestedStatement* FullCodeGenerator::TryCatch::Exit( | 1635 FullCodeGenerator::NestedStatement* FullCodeGenerator::TryCatch::Exit( |
1626 int* stack_depth, | 1636 int* stack_depth, |
1627 int* context_length) { | 1637 int* context_length) { |
1628 // The macros used here must preserve the result register. | 1638 // The macros used here must preserve the result register. |
1629 __ Drop(*stack_depth); | 1639 __ Drop(*stack_depth); |
1630 __ PopTryHandler(); | 1640 __ PopTryHandler(); |
1631 *stack_depth = 0; | 1641 *stack_depth = 0; |
1632 return previous_; | 1642 return previous_; |
1633 } | 1643 } |
1634 | 1644 |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1784 } | 1794 } |
1785 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); | 1795 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); |
1786 codegen_->scope_ = saved_scope_; | 1796 codegen_->scope_ = saved_scope_; |
1787 } | 1797 } |
1788 | 1798 |
1789 | 1799 |
1790 #undef __ | 1800 #undef __ |
1791 | 1801 |
1792 | 1802 |
1793 } } // namespace v8::internal | 1803 } } // namespace v8::internal |
OLD | NEW |