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/code-stubs.h" | 8 #include "src/code-stubs.h" |
9 #include "src/compiler.h" | 9 #include "src/compiler.h" |
10 #include "src/interpreter/bytecode-register-allocator.h" | 10 #include "src/interpreter/bytecode-register-allocator.h" |
(...skipping 2320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2331 Register done = register_allocator()->NextConsecutiveRegister(); | 2331 Register done = register_allocator()->NextConsecutiveRegister(); |
2332 builder() | 2332 builder() |
2333 ->MoveRegister(input, value) | 2333 ->MoveRegister(input, value) |
2334 .LoadTrue() | 2334 .LoadTrue() |
2335 .StoreAccumulatorInRegister(done) | 2335 .StoreAccumulatorInRegister(done) |
2336 .CallRuntime(Runtime::kInlineCreateIterResultObject, value, 2); | 2336 .CallRuntime(Runtime::kInlineCreateIterResultObject, value, 2); |
2337 execution_control()->ReturnAccumulator(); | 2337 execution_control()->ReturnAccumulator(); |
2338 } | 2338 } |
2339 | 2339 |
2340 builder()->Bind(&resume_with_throw); | 2340 builder()->Bind(&resume_with_throw); |
2341 builder() | 2341 builder()->LoadAccumulatorWithRegister(input).Throw(); |
2342 ->LoadAccumulatorWithRegister(input) | |
2343 .Throw(); | |
2344 | 2342 |
2345 builder()->Bind(&resume_with_next); | 2343 builder()->Bind(&resume_with_next); |
2346 builder()->LoadAccumulatorWithRegister(input); | 2344 builder()->LoadAccumulatorWithRegister(input); |
2347 } | 2345 } |
2348 execution_result()->SetResultInAccumulator(); | 2346 execution_result()->SetResultInAccumulator(); |
2349 } | 2347 } |
2350 | 2348 |
2351 void BytecodeGenerator::VisitThrow(Throw* expr) { | 2349 void BytecodeGenerator::VisitThrow(Throw* expr) { |
2352 VisitForAccumulatorValue(expr->exception()); | 2350 VisitForAccumulatorValue(expr->exception()); |
2353 builder()->SetExpressionPosition(expr); | 2351 builder()->SetExpressionPosition(expr); |
(...skipping 918 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3272 Visit(stmt); | 3270 Visit(stmt); |
3273 } | 3271 } |
3274 | 3272 |
3275 | 3273 |
3276 LanguageMode BytecodeGenerator::language_mode() const { | 3274 LanguageMode BytecodeGenerator::language_mode() const { |
3277 return execution_context()->scope()->language_mode(); | 3275 return execution_context()->scope()->language_mode(); |
3278 } | 3276 } |
3279 | 3277 |
3280 | 3278 |
3281 int BytecodeGenerator::feedback_index(FeedbackVectorSlot slot) const { | 3279 int BytecodeGenerator::feedback_index(FeedbackVectorSlot slot) const { |
3282 return info()->shared_info()->feedback_vector()->GetIndex(slot); | 3280 return TypeFeedbackVector::GetIndex(slot); |
3283 } | 3281 } |
3284 | 3282 |
3285 } // namespace interpreter | 3283 } // namespace interpreter |
3286 } // namespace internal | 3284 } // namespace internal |
3287 } // namespace v8 | 3285 } // namespace v8 |
OLD | NEW |