| OLD | NEW | 
|---|
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/interpreter/bytecode-generator.h" | 5 #include "src/interpreter/bytecode-generator.h" | 
| 6 | 6 | 
| 7 #include "src/ast/scopes.h" | 7 #include "src/ast/scopes.h" | 
| 8 #include "src/compiler.h" | 8 #include "src/compiler.h" | 
| 9 #include "src/interpreter/bytecode-register-allocator.h" | 9 #include "src/interpreter/bytecode-register-allocator.h" | 
| 10 #include "src/interpreter/control-flow-builders.h" | 10 #include "src/interpreter/control-flow-builders.h" | 
| (...skipping 882 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 893 } | 893 } | 
| 894 | 894 | 
| 895 | 895 | 
| 896 void BytecodeGenerator::VisitForOfStatement(ForOfStatement* stmt) { | 896 void BytecodeGenerator::VisitForOfStatement(ForOfStatement* stmt) { | 
| 897   UNIMPLEMENTED(); | 897   UNIMPLEMENTED(); | 
| 898 } | 898 } | 
| 899 | 899 | 
| 900 | 900 | 
| 901 void BytecodeGenerator::VisitTryCatchStatement(TryCatchStatement* stmt) { | 901 void BytecodeGenerator::VisitTryCatchStatement(TryCatchStatement* stmt) { | 
| 902   TryCatchBuilder try_control_builder(builder()); | 902   TryCatchBuilder try_control_builder(builder()); | 
| 903   if (!FLAG_ignition_fake_try_catch) UNIMPLEMENTED(); |  | 
| 904 | 903 | 
| 905   // Preserve the context in a dedicated register, so that it can be restored | 904   // Preserve the context in a dedicated register, so that it can be restored | 
| 906   // when the handler is entered by the stack-unwinding machinery. | 905   // when the handler is entered by the stack-unwinding machinery. | 
| 907   // TODO(mstarzinger): Be smarter about register allocation. | 906   // TODO(mstarzinger): Be smarter about register allocation. | 
| 908   Register context = register_allocator()->NewRegister(); | 907   Register context = register_allocator()->NewRegister(); | 
| 909 | 908 | 
| 910   // Evaluate the try-block inside a control scope. This simulates a handler | 909   // Evaluate the try-block inside a control scope. This simulates a handler | 
| 911   // that is intercepting 'throw' control commands. | 910   // that is intercepting 'throw' control commands. | 
| 912   try_control_builder.BeginTry(context); | 911   try_control_builder.BeginTry(context); | 
| 913   // TODO(mstarzinger): Control scope is missing! | 912   // TODO(mstarzinger): Control scope is missing! | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
| 931       Runtime::kPushCatchContext, name, 3); | 930       Runtime::kPushCatchContext, name, 3); | 
| 932 | 931 | 
| 933   // Evaluate the catch-block. | 932   // Evaluate the catch-block. | 
| 934   Visit(stmt->catch_block()); | 933   Visit(stmt->catch_block()); | 
| 935   try_control_builder.EndCatch(); | 934   try_control_builder.EndCatch(); | 
| 936 } | 935 } | 
| 937 | 936 | 
| 938 | 937 | 
| 939 void BytecodeGenerator::VisitTryFinallyStatement(TryFinallyStatement* stmt) { | 938 void BytecodeGenerator::VisitTryFinallyStatement(TryFinallyStatement* stmt) { | 
| 940   TryFinallyBuilder try_control_builder(builder()); | 939   TryFinallyBuilder try_control_builder(builder()); | 
| 941   if (!FLAG_ignition_fake_try_catch) UNIMPLEMENTED(); |  | 
| 942 | 940 | 
| 943   // Preserve the context in a dedicated register, so that it can be restored | 941   // Preserve the context in a dedicated register, so that it can be restored | 
| 944   // when the handler is entered by the stack-unwinding machinery. | 942   // when the handler is entered by the stack-unwinding machinery. | 
| 945   // TODO(mstarzinger): Be smarter about register allocation. | 943   // TODO(mstarzinger): Be smarter about register allocation. | 
| 946   Register context = register_allocator()->NewRegister(); | 944   Register context = register_allocator()->NewRegister(); | 
| 947 | 945 | 
| 948   // Evaluate the try-block inside a control scope. This simulates a handler | 946   // Evaluate the try-block inside a control scope. This simulates a handler | 
| 949   // that is intercepting all control commands. | 947   // that is intercepting all control commands. | 
| 950   try_control_builder.BeginTry(context); | 948   try_control_builder.BeginTry(context); | 
| 951   // TODO(mstarzinger): Control scope is missing! | 949   // TODO(mstarzinger): Control scope is missing! | 
| (...skipping 1305 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2257 } | 2255 } | 
| 2258 | 2256 | 
| 2259 | 2257 | 
| 2260 int BytecodeGenerator::feedback_index(FeedbackVectorSlot slot) const { | 2258 int BytecodeGenerator::feedback_index(FeedbackVectorSlot slot) const { | 
| 2261   return info()->feedback_vector()->GetIndex(slot); | 2259   return info()->feedback_vector()->GetIndex(slot); | 
| 2262 } | 2260 } | 
| 2263 | 2261 | 
| 2264 }  // namespace interpreter | 2262 }  // namespace interpreter | 
| 2265 }  // namespace internal | 2263 }  // namespace internal | 
| 2266 }  // namespace v8 | 2264 }  // namespace v8 | 
| OLD | NEW | 
|---|