| 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/compiler/js-native-context-specialization.h" | 5 #include "src/compiler/js-native-context-specialization.h" |
| 6 | 6 |
| 7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
| 8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
| 9 #include "src/compilation-dependencies.h" | 9 #include "src/compilation-dependencies.h" |
| 10 #include "src/compiler/access-builder.h" | 10 #include "src/compiler/access-builder.h" |
| (...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 619 transition_target->elements_kind())) { | 619 transition_target->elements_kind())) { |
| 620 // In-place migration, just store the {transition_target} map. | 620 // In-place migration, just store the {transition_target} map. |
| 621 transition_effect = graph()->NewNode( | 621 transition_effect = graph()->NewNode( |
| 622 simplified()->StoreField(AccessBuilder::ForMap()), receiver, | 622 simplified()->StoreField(AccessBuilder::ForMap()), receiver, |
| 623 jsgraph()->HeapConstant(transition_target), transition_effect, | 623 jsgraph()->HeapConstant(transition_target), transition_effect, |
| 624 transition_control); | 624 transition_control); |
| 625 } else { | 625 } else { |
| 626 // Instance migration, let the stub deal with the {receiver}. | 626 // Instance migration, let the stub deal with the {receiver}. |
| 627 TransitionElementsKindStub stub(isolate(), | 627 TransitionElementsKindStub stub(isolate(), |
| 628 transition_source->elements_kind(), | 628 transition_source->elements_kind(), |
| 629 transition_target->elements_kind(), | 629 transition_target->elements_kind()); |
| 630 transition_source->IsJSArrayMap()); | |
| 631 CallDescriptor const* const desc = Linkage::GetStubCallDescriptor( | 630 CallDescriptor const* const desc = Linkage::GetStubCallDescriptor( |
| 632 isolate(), graph()->zone(), stub.GetCallInterfaceDescriptor(), 0, | 631 isolate(), graph()->zone(), stub.GetCallInterfaceDescriptor(), 0, |
| 633 CallDescriptor::kNeedsFrameState, node->op()->properties()); | 632 CallDescriptor::kNeedsFrameState, node->op()->properties()); |
| 634 transition_effect = graph()->NewNode( | 633 transition_effect = graph()->NewNode( |
| 635 common()->Call(desc), jsgraph()->HeapConstant(stub.GetCode()), | 634 common()->Call(desc), jsgraph()->HeapConstant(stub.GetCode()), |
| 636 receiver, jsgraph()->HeapConstant(transition_target), context, | 635 receiver, jsgraph()->HeapConstant(transition_target), context, |
| 637 frame_state, transition_effect, transition_control); | 636 frame_state, transition_effect, transition_control); |
| 638 } | 637 } |
| 639 this_controls.push_back(transition_control); | 638 this_controls.push_back(transition_control); |
| 640 this_effects.push_back(transition_effect); | 639 this_effects.push_back(transition_effect); |
| (...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1129 } | 1128 } |
| 1130 | 1129 |
| 1131 | 1130 |
| 1132 SimplifiedOperatorBuilder* JSNativeContextSpecialization::simplified() const { | 1131 SimplifiedOperatorBuilder* JSNativeContextSpecialization::simplified() const { |
| 1133 return jsgraph()->simplified(); | 1132 return jsgraph()->simplified(); |
| 1134 } | 1133 } |
| 1135 | 1134 |
| 1136 } // namespace compiler | 1135 } // namespace compiler |
| 1137 } // namespace internal | 1136 } // namespace internal |
| 1138 } // namespace v8 | 1137 } // namespace v8 |
| OLD | NEW |