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 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
285 } | 285 } |
286 } | 286 } |
287 | 287 |
288 | 288 |
289 void BreakableStatementChecker::VisitCompareOperation(CompareOperation* expr) { | 289 void BreakableStatementChecker::VisitCompareOperation(CompareOperation* expr) { |
290 Visit(expr->left()); | 290 Visit(expr->left()); |
291 Visit(expr->right()); | 291 Visit(expr->right()); |
292 } | 292 } |
293 | 293 |
294 | 294 |
| 295 void BreakableStatementChecker::VisitSpreadOperation(SpreadOperation* expr) { |
| 296 Visit(expr->expression()); |
| 297 } |
| 298 |
| 299 |
295 void BreakableStatementChecker::VisitThisFunction(ThisFunction* expr) { | 300 void BreakableStatementChecker::VisitThisFunction(ThisFunction* expr) { |
296 } | 301 } |
297 | 302 |
298 | 303 |
299 void BreakableStatementChecker::VisitSuperReference(SuperReference* expr) {} | 304 void BreakableStatementChecker::VisitSuperReference(SuperReference* expr) {} |
300 | 305 |
301 | 306 |
302 #define __ ACCESS_MASM(masm()) | 307 #define __ ACCESS_MASM(masm()) |
303 | 308 |
304 bool FullCodeGenerator::MakeCode(CompilationInfo* info) { | 309 bool FullCodeGenerator::MakeCode(CompilationInfo* info) { |
(...skipping 1371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1676 | 1681 |
1677 | 1682 |
1678 void FullCodeGenerator::VisitThrow(Throw* expr) { | 1683 void FullCodeGenerator::VisitThrow(Throw* expr) { |
1679 Comment cmnt(masm_, "[ Throw"); | 1684 Comment cmnt(masm_, "[ Throw"); |
1680 VisitForStackValue(expr->exception()); | 1685 VisitForStackValue(expr->exception()); |
1681 __ CallRuntime(Runtime::kThrow, 1); | 1686 __ CallRuntime(Runtime::kThrow, 1); |
1682 // Never returns here. | 1687 // Never returns here. |
1683 } | 1688 } |
1684 | 1689 |
1685 | 1690 |
| 1691 void FullCodeGenerator::VisitSpreadOperation(SpreadOperation* expr) { |
| 1692 Visit(expr->expression()); |
| 1693 } |
| 1694 |
| 1695 |
1686 FullCodeGenerator::NestedStatement* FullCodeGenerator::TryCatch::Exit( | 1696 FullCodeGenerator::NestedStatement* FullCodeGenerator::TryCatch::Exit( |
1687 int* stack_depth, | 1697 int* stack_depth, |
1688 int* context_length) { | 1698 int* context_length) { |
1689 // The macros used here must preserve the result register. | 1699 // The macros used here must preserve the result register. |
1690 __ Drop(*stack_depth); | 1700 __ Drop(*stack_depth); |
1691 __ PopTryHandler(); | 1701 __ PopTryHandler(); |
1692 *stack_depth = 0; | 1702 *stack_depth = 0; |
1693 return previous_; | 1703 return previous_; |
1694 } | 1704 } |
1695 | 1705 |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1845 } | 1855 } |
1846 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); | 1856 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); |
1847 codegen_->scope_ = saved_scope_; | 1857 codegen_->scope_ = saved_scope_; |
1848 } | 1858 } |
1849 | 1859 |
1850 | 1860 |
1851 #undef __ | 1861 #undef __ |
1852 | 1862 |
1853 | 1863 |
1854 } } // namespace v8::internal | 1864 } } // namespace v8::internal |
OLD | NEW |