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 1353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1654 | 1659 |
1655 | 1660 |
1656 void FullCodeGenerator::VisitThrow(Throw* expr) { | 1661 void FullCodeGenerator::VisitThrow(Throw* expr) { |
1657 Comment cmnt(masm_, "[ Throw"); | 1662 Comment cmnt(masm_, "[ Throw"); |
1658 VisitForStackValue(expr->exception()); | 1663 VisitForStackValue(expr->exception()); |
1659 __ CallRuntime(Runtime::kThrow, 1); | 1664 __ CallRuntime(Runtime::kThrow, 1); |
1660 // Never returns here. | 1665 // Never returns here. |
1661 } | 1666 } |
1662 | 1667 |
1663 | 1668 |
| 1669 void FullCodeGenerator::VisitSpreadOperation(SpreadOperation* expr) { |
| 1670 Visit(expr->expression()); |
| 1671 } |
| 1672 |
| 1673 |
1664 FullCodeGenerator::NestedStatement* FullCodeGenerator::TryCatch::Exit( | 1674 FullCodeGenerator::NestedStatement* FullCodeGenerator::TryCatch::Exit( |
1665 int* stack_depth, | 1675 int* stack_depth, |
1666 int* context_length) { | 1676 int* context_length) { |
1667 // The macros used here must preserve the result register. | 1677 // The macros used here must preserve the result register. |
1668 __ Drop(*stack_depth); | 1678 __ Drop(*stack_depth); |
1669 __ PopTryHandler(); | 1679 __ PopTryHandler(); |
1670 *stack_depth = 0; | 1680 *stack_depth = 0; |
1671 return previous_; | 1681 return previous_; |
1672 } | 1682 } |
1673 | 1683 |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1823 } | 1833 } |
1824 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); | 1834 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); |
1825 codegen_->scope_ = saved_scope_; | 1835 codegen_->scope_ = saved_scope_; |
1826 } | 1836 } |
1827 | 1837 |
1828 | 1838 |
1829 #undef __ | 1839 #undef __ |
1830 | 1840 |
1831 | 1841 |
1832 } } // namespace v8::internal | 1842 } } // namespace v8::internal |
OLD | NEW |