| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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/crankshaft/hydrogen.h" | 5 #include "src/crankshaft/hydrogen.h" |
| 6 | 6 |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 | 8 |
| 9 #include "src/allocation-site-scopes.h" | 9 #include "src/allocation-site-scopes.h" |
| 10 #include "src/ast/ast-numbering.h" | 10 #include "src/ast/ast-numbering.h" |
| (...skipping 5878 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5889 instr = New<HLoadNamedField>(cell_constant, nullptr, access); | 5889 instr = New<HLoadNamedField>(cell_constant, nullptr, access); |
| 5890 } else { | 5890 } else { |
| 5891 instr = New<HLoadNamedField>(cell_constant, nullptr, access, | 5891 instr = New<HLoadNamedField>(cell_constant, nullptr, access, |
| 5892 field_maps, HType::HeapObject()); | 5892 field_maps, HType::HeapObject()); |
| 5893 } | 5893 } |
| 5894 instr->ClearDependsOnFlag(kInobjectFields); | 5894 instr->ClearDependsOnFlag(kInobjectFields); |
| 5895 instr->SetDependsOnFlag(kGlobalVars); | 5895 instr->SetDependsOnFlag(kGlobalVars); |
| 5896 return ast_context()->ReturnInstruction(instr, expr->id()); | 5896 return ast_context()->ReturnInstruction(instr, expr->id()); |
| 5897 } | 5897 } |
| 5898 } else { | 5898 } else { |
| 5899 HValue* global_object = Add<HLoadNamedField>( | |
| 5900 BuildGetNativeContext(), nullptr, | |
| 5901 HObjectAccess::ForContextSlot(Context::EXTENSION_INDEX)); | |
| 5902 Handle<TypeFeedbackVector> vector(current_feedback_vector(), isolate()); | 5899 Handle<TypeFeedbackVector> vector(current_feedback_vector(), isolate()); |
| 5903 HLoadGlobalGeneric* instr = New<HLoadGlobalGeneric>( | 5900 HLoadGlobalGeneric* instr = New<HLoadGlobalGeneric>( |
| 5904 global_object, variable->name(), ast_context()->typeof_mode(), | 5901 variable->name(), ast_context()->typeof_mode(), vector, |
| 5905 vector, expr->VariableFeedbackSlot()); | 5902 expr->VariableFeedbackSlot()); |
| 5906 return ast_context()->ReturnInstruction(instr, expr->id()); | 5903 return ast_context()->ReturnInstruction(instr, expr->id()); |
| 5907 } | 5904 } |
| 5908 } | 5905 } |
| 5909 | 5906 |
| 5910 case VariableLocation::PARAMETER: | 5907 case VariableLocation::PARAMETER: |
| 5911 case VariableLocation::LOCAL: { | 5908 case VariableLocation::LOCAL: { |
| 5912 HValue* value = LookupAndMakeLive(variable); | 5909 HValue* value = LookupAndMakeLive(variable); |
| 5913 if (value == graph()->GetConstantHole()) { | 5910 if (value == graph()->GetConstantHole()) { |
| 5914 DCHECK(IsDeclaredVariableMode(variable->mode()) && | 5911 DCHECK(IsDeclaredVariableMode(variable->mode()) && |
| 5915 variable->mode() != VAR); | 5912 variable->mode() != VAR); |
| (...skipping 7775 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13691 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13688 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 13692 } | 13689 } |
| 13693 | 13690 |
| 13694 #ifdef DEBUG | 13691 #ifdef DEBUG |
| 13695 graph_->Verify(false); // No full verify. | 13692 graph_->Verify(false); // No full verify. |
| 13696 #endif | 13693 #endif |
| 13697 } | 13694 } |
| 13698 | 13695 |
| 13699 } // namespace internal | 13696 } // namespace internal |
| 13700 } // namespace v8 | 13697 } // namespace v8 |
| OLD | NEW |