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/deoptimizer.h" | 5 #include "src/deoptimizer.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/ast/prettyprinter.h" | 8 #include "src/ast/prettyprinter.h" |
9 #include "src/codegen.h" | 9 #include "src/codegen.h" |
10 #include "src/disasm.h" | 10 #include "src/disasm.h" |
(...skipping 3764 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3775 value_changed = true; | 3775 value_changed = true; |
3776 } else { | 3776 } else { |
3777 CHECK(previously_materialized_objects->get(i) == *value); | 3777 CHECK(previously_materialized_objects->get(i) == *value); |
3778 } | 3778 } |
3779 } | 3779 } |
3780 } | 3780 } |
3781 if (new_store && value_changed) { | 3781 if (new_store && value_changed) { |
3782 materialized_store->Set(stack_frame_pointer_, | 3782 materialized_store->Set(stack_frame_pointer_, |
3783 previously_materialized_objects); | 3783 previously_materialized_objects); |
3784 CHECK(frames_[0].kind() == TranslatedFrame::kFunction || | 3784 CHECK(frames_[0].kind() == TranslatedFrame::kFunction || |
3785 frames_[0].kind() == TranslatedFrame::kInterpretedFunction); | 3785 frames_[0].kind() == TranslatedFrame::kInterpretedFunction || |
| 3786 frames_[0].kind() == TranslatedFrame::kTailCallerFunction); |
3786 Object* const function = frames_[0].front().GetRawValue(); | 3787 Object* const function = frames_[0].front().GetRawValue(); |
3787 Deoptimizer::DeoptimizeFunction(JSFunction::cast(function)); | 3788 Deoptimizer::DeoptimizeFunction(JSFunction::cast(function)); |
3788 } | 3789 } |
3789 } | 3790 } |
3790 | 3791 |
3791 | 3792 |
3792 void TranslatedState::UpdateFromPreviouslyMaterializedObjects() { | 3793 void TranslatedState::UpdateFromPreviouslyMaterializedObjects() { |
3793 MaterializedObjectStore* materialized_store = | 3794 MaterializedObjectStore* materialized_store = |
3794 isolate_->materialized_object_store(); | 3795 isolate_->materialized_object_store(); |
3795 Handle<FixedArray> previously_materialized_objects = | 3796 Handle<FixedArray> previously_materialized_objects = |
(...skipping 17 matching lines...) Expand all Loading... |
3813 CHECK(value_info->IsMaterializedObject()); | 3814 CHECK(value_info->IsMaterializedObject()); |
3814 | 3815 |
3815 value_info->value_ = | 3816 value_info->value_ = |
3816 Handle<Object>(previously_materialized_objects->get(i), isolate_); | 3817 Handle<Object>(previously_materialized_objects->get(i), isolate_); |
3817 } | 3818 } |
3818 } | 3819 } |
3819 } | 3820 } |
3820 | 3821 |
3821 } // namespace internal | 3822 } // namespace internal |
3822 } // namespace v8 | 3823 } // namespace v8 |
OLD | NEW |