| 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 <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "src/accessors.h" | 9 #include "src/accessors.h" |
| 10 #include "src/ast/prettyprinter.h" | 10 #include "src/ast/prettyprinter.h" |
| (...skipping 3756 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3767 slot->value_ = object; | 3767 slot->value_ = object; |
| 3768 Handle<Object> properties = MaterializeAt(frame_index, value_index); | 3768 Handle<Object> properties = MaterializeAt(frame_index, value_index); |
| 3769 Handle<Object> elements = MaterializeAt(frame_index, value_index); | 3769 Handle<Object> elements = MaterializeAt(frame_index, value_index); |
| 3770 Handle<Object> length = MaterializeAt(frame_index, value_index); | 3770 Handle<Object> length = MaterializeAt(frame_index, value_index); |
| 3771 object->set_properties(FixedArray::cast(*properties)); | 3771 object->set_properties(FixedArray::cast(*properties)); |
| 3772 object->set_elements(FixedArrayBase::cast(*elements)); | 3772 object->set_elements(FixedArrayBase::cast(*elements)); |
| 3773 object->set_length(*length); | 3773 object->set_length(*length); |
| 3774 return object; | 3774 return object; |
| 3775 } | 3775 } |
| 3776 case JS_FUNCTION_TYPE: { | 3776 case JS_FUNCTION_TYPE: { |
| 3777 Handle<SharedFunctionInfo> temporary_shared = |
| 3778 isolate_->factory()->NewSharedFunctionInfo( |
| 3779 isolate_->factory()->empty_string(), MaybeHandle<Code>(), |
| 3780 false); |
| 3777 Handle<JSFunction> object = | 3781 Handle<JSFunction> object = |
| 3778 isolate_->factory()->NewFunctionFromSharedFunctionInfo( | 3782 isolate_->factory()->NewFunctionFromSharedFunctionInfo( |
| 3779 handle(isolate_->object_function()->shared()), | 3783 map, temporary_shared, isolate_->factory()->undefined_value(), |
| 3780 handle(isolate_->context())); | 3784 NOT_TENURED); |
| 3781 slot->value_ = object; | 3785 slot->value_ = object; |
| 3782 // We temporarily allocated a JSFunction for the {Object} function | |
| 3783 // within the current context, to break cycles in the object graph. | |
| 3784 // The correct function and context will be set below once available. | |
| 3785 Handle<Object> properties = MaterializeAt(frame_index, value_index); | 3786 Handle<Object> properties = MaterializeAt(frame_index, value_index); |
| 3786 Handle<Object> elements = MaterializeAt(frame_index, value_index); | 3787 Handle<Object> elements = MaterializeAt(frame_index, value_index); |
| 3787 Handle<Object> prototype = MaterializeAt(frame_index, value_index); | 3788 Handle<Object> prototype = MaterializeAt(frame_index, value_index); |
| 3788 Handle<Object> shared = MaterializeAt(frame_index, value_index); | 3789 Handle<Object> shared = MaterializeAt(frame_index, value_index); |
| 3789 Handle<Object> context = MaterializeAt(frame_index, value_index); | 3790 Handle<Object> context = MaterializeAt(frame_index, value_index); |
| 3790 Handle<Object> literals = MaterializeAt(frame_index, value_index); | 3791 Handle<Object> literals = MaterializeAt(frame_index, value_index); |
| 3791 Handle<Object> entry = MaterializeAt(frame_index, value_index); | 3792 Handle<Object> entry = MaterializeAt(frame_index, value_index); |
| 3792 Handle<Object> next_link = MaterializeAt(frame_index, value_index); | 3793 Handle<Object> next_link = MaterializeAt(frame_index, value_index); |
| 3793 object->ReplaceCode(*isolate_->builtins()->CompileLazy()); | 3794 object->ReplaceCode(*isolate_->builtins()->CompileLazy()); |
| 3794 object->set_map(*map); | 3795 object->set_map(*map); |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4036 CHECK(value_info->IsMaterializedObject()); | 4037 CHECK(value_info->IsMaterializedObject()); |
| 4037 | 4038 |
| 4038 value_info->value_ = | 4039 value_info->value_ = |
| 4039 Handle<Object>(previously_materialized_objects->get(i), isolate_); | 4040 Handle<Object>(previously_materialized_objects->get(i), isolate_); |
| 4040 } | 4041 } |
| 4041 } | 4042 } |
| 4042 } | 4043 } |
| 4043 | 4044 |
| 4044 } // namespace internal | 4045 } // namespace internal |
| 4045 } // namespace v8 | 4046 } // namespace v8 |
| OLD | NEW |