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 1540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1551 | 1551 |
1552 execution_result()->SetResultInAccumulator(); | 1552 execution_result()->SetResultInAccumulator(); |
1553 } | 1553 } |
1554 | 1554 |
1555 | 1555 |
1556 void BytecodeGenerator::VisitLiteral(Literal* expr) { | 1556 void BytecodeGenerator::VisitLiteral(Literal* expr) { |
1557 if (!execution_result()->IsEffect()) { | 1557 if (!execution_result()->IsEffect()) { |
1558 Handle<Object> value = expr->value(); | 1558 Handle<Object> value = expr->value(); |
1559 if (value->IsSmi()) { | 1559 if (value->IsSmi()) { |
1560 builder()->LoadLiteral(Smi::cast(*value)); | 1560 builder()->LoadLiteral(Smi::cast(*value)); |
1561 } else if (value->IsUndefined()) { | 1561 } else if (value->IsUndefined(isolate())) { |
1562 builder()->LoadUndefined(); | 1562 builder()->LoadUndefined(); |
1563 } else if (value->IsTrue()) { | 1563 } else if (value->IsTrue()) { |
1564 builder()->LoadTrue(); | 1564 builder()->LoadTrue(); |
1565 } else if (value->IsFalse()) { | 1565 } else if (value->IsFalse()) { |
1566 builder()->LoadFalse(); | 1566 builder()->LoadFalse(); |
1567 } else if (value->IsNull()) { | 1567 } else if (value->IsNull()) { |
1568 builder()->LoadNull(); | 1568 builder()->LoadNull(); |
1569 } else if (value->IsTheHole()) { | 1569 } else if (value->IsTheHole(isolate())) { |
1570 builder()->LoadTheHole(); | 1570 builder()->LoadTheHole(); |
1571 } else { | 1571 } else { |
1572 builder()->LoadLiteral(value); | 1572 builder()->LoadLiteral(value); |
1573 } | 1573 } |
1574 execution_result()->SetResultInAccumulator(); | 1574 execution_result()->SetResultInAccumulator(); |
1575 } | 1575 } |
1576 } | 1576 } |
1577 | 1577 |
1578 | 1578 |
1579 void BytecodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) { | 1579 void BytecodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) { |
(...skipping 1696 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3276 } | 3276 } |
3277 | 3277 |
3278 | 3278 |
3279 int BytecodeGenerator::feedback_index(FeedbackVectorSlot slot) const { | 3279 int BytecodeGenerator::feedback_index(FeedbackVectorSlot slot) const { |
3280 return TypeFeedbackVector::GetIndex(slot); | 3280 return TypeFeedbackVector::GetIndex(slot); |
3281 } | 3281 } |
3282 | 3282 |
3283 } // namespace interpreter | 3283 } // namespace interpreter |
3284 } // namespace internal | 3284 } // namespace internal |
3285 } // namespace v8 | 3285 } // namespace v8 |
OLD | NEW |