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 #include "src/compiler/ast-graph-builder.h" | 5 #include "src/compiler/ast-graph-builder.h" |
6 | 6 |
7 #include "src/ast/compile-time-value.h" | 7 #include "src/ast/compile-time-value.h" |
8 #include "src/ast/scopes.h" | 8 #include "src/ast/scopes.h" |
9 #include "src/compilation-info.h" | 9 #include "src/compilation-info.h" |
10 #include "src/compiler.h" | 10 #include "src/compiler.h" |
(...skipping 1247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1258 environment()->Poke(0, index); | 1258 environment()->Poke(0, index); |
1259 } | 1259 } |
1260 for_loop.EndLoop(); | 1260 for_loop.EndLoop(); |
1261 environment()->Drop(5); | 1261 environment()->Drop(5); |
1262 } | 1262 } |
1263 for_block.EndBlock(); | 1263 for_block.EndBlock(); |
1264 } | 1264 } |
1265 | 1265 |
1266 | 1266 |
1267 void AstGraphBuilder::VisitForOfStatement(ForOfStatement* stmt) { | 1267 void AstGraphBuilder::VisitForOfStatement(ForOfStatement* stmt) { |
1268 LoopBuilder for_loop(this); | 1268 // Iterator looping is supported only by going through Ignition first. |
1269 VisitForEffect(stmt->assign_iterator()); | 1269 UNREACHABLE(); |
1270 for_loop.BeginLoop(GetVariablesAssignedInLoop(stmt), CheckOsrEntry(stmt)); | |
1271 VisitForEffect(stmt->next_result()); | |
1272 VisitForTest(stmt->result_done()); | |
1273 Node* condition = environment()->Pop(); | |
1274 for_loop.BreakWhen(condition); | |
1275 VisitForEffect(stmt->assign_each()); | |
1276 VisitIterationBody(stmt, &for_loop, stmt->StackCheckId()); | |
1277 for_loop.EndBody(); | |
1278 for_loop.EndLoop(); | |
1279 } | 1270 } |
1280 | 1271 |
1281 | 1272 |
1282 void AstGraphBuilder::VisitTryCatchStatement(TryCatchStatement* stmt) { | 1273 void AstGraphBuilder::VisitTryCatchStatement(TryCatchStatement* stmt) { |
1283 // Exception handling is supported only by going through Ignition first. | 1274 // Exception handling is supported only by going through Ignition first. |
1284 UNREACHABLE(); | 1275 UNREACHABLE(); |
1285 } | 1276 } |
1286 | 1277 |
1287 | 1278 |
1288 void AstGraphBuilder::VisitTryFinallyStatement(TryFinallyStatement* stmt) { | 1279 void AstGraphBuilder::VisitTryFinallyStatement(TryFinallyStatement* stmt) { |
(...skipping 2353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3642 float invocation_frequency, LoopAssignmentAnalysis* loop_assignment, | 3633 float invocation_frequency, LoopAssignmentAnalysis* loop_assignment, |
3643 SourcePositionTable* source_positions, int inlining_id) | 3634 SourcePositionTable* source_positions, int inlining_id) |
3644 : AstGraphBuilder(local_zone, info, jsgraph, invocation_frequency, | 3635 : AstGraphBuilder(local_zone, info, jsgraph, invocation_frequency, |
3645 loop_assignment), | 3636 loop_assignment), |
3646 source_positions_(source_positions), | 3637 source_positions_(source_positions), |
3647 start_position_(info->shared_info()->start_position(), inlining_id) {} | 3638 start_position_(info->shared_info()->start_position(), inlining_id) {} |
3648 | 3639 |
3649 } // namespace compiler | 3640 } // namespace compiler |
3650 } // namespace internal | 3641 } // namespace internal |
3651 } // namespace v8 | 3642 } // namespace v8 |
OLD | NEW |