| 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 3720 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3731 Handle<Object> iterated_object = materializer.FieldAt(value_index); | 3731 Handle<Object> iterated_object = materializer.FieldAt(value_index); |
| 3732 Handle<Object> next_index = materializer.FieldAt(value_index); | 3732 Handle<Object> next_index = materializer.FieldAt(value_index); |
| 3733 Handle<Object> iterated_object_map = materializer.FieldAt(value_index); | 3733 Handle<Object> iterated_object_map = materializer.FieldAt(value_index); |
| 3734 object->set_properties(FixedArray::cast(*properties)); | 3734 object->set_properties(FixedArray::cast(*properties)); |
| 3735 object->set_elements(FixedArrayBase::cast(*elements)); | 3735 object->set_elements(FixedArrayBase::cast(*elements)); |
| 3736 object->set_object(*iterated_object); | 3736 object->set_object(*iterated_object); |
| 3737 object->set_index(*next_index); | 3737 object->set_index(*next_index); |
| 3738 object->set_object_map(*iterated_object_map); | 3738 object->set_object_map(*iterated_object_map); |
| 3739 return object; | 3739 return object; |
| 3740 } | 3740 } |
| 3741 case JS_STRING_ITERATOR_TYPE: { |
| 3742 Handle<JSStringIterator> object = Handle<JSStringIterator>::cast( |
| 3743 isolate_->factory()->NewJSObjectFromMap(map, NOT_TENURED)); |
| 3744 slot->value_ = object; |
| 3745 // Initialize the index to zero to make the heap verifier happy. |
| 3746 object->set_index(0); |
| 3747 Handle<Object> properties = materializer.FieldAt(value_index); |
| 3748 Handle<Object> elements = materializer.FieldAt(value_index); |
| 3749 Handle<Object> iterated_string = materializer.FieldAt(value_index); |
| 3750 Handle<Object> next_index = materializer.FieldAt(value_index); |
| 3751 object->set_properties(FixedArray::cast(*properties)); |
| 3752 object->set_elements(FixedArrayBase::cast(*elements)); |
| 3753 CHECK(iterated_string->IsString()); |
| 3754 object->set_string(String::cast(*iterated_string)); |
| 3755 CHECK(next_index->IsSmi()); |
| 3756 object->set_index(Smi::cast(*next_index)->value()); |
| 3757 return object; |
| 3758 } |
| 3741 case JS_ARRAY_TYPE: { | 3759 case JS_ARRAY_TYPE: { |
| 3742 Handle<JSArray> object = Handle<JSArray>::cast( | 3760 Handle<JSArray> object = Handle<JSArray>::cast( |
| 3743 isolate_->factory()->NewJSObjectFromMap(map, NOT_TENURED)); | 3761 isolate_->factory()->NewJSObjectFromMap(map, NOT_TENURED)); |
| 3744 slot->value_ = object; | 3762 slot->value_ = object; |
| 3745 Handle<Object> properties = materializer.FieldAt(value_index); | 3763 Handle<Object> properties = materializer.FieldAt(value_index); |
| 3746 Handle<Object> elements = materializer.FieldAt(value_index); | 3764 Handle<Object> elements = materializer.FieldAt(value_index); |
| 3747 Handle<Object> length = materializer.FieldAt(value_index); | 3765 Handle<Object> length = materializer.FieldAt(value_index); |
| 3748 object->set_properties(FixedArray::cast(*properties)); | 3766 object->set_properties(FixedArray::cast(*properties)); |
| 3749 object->set_elements(FixedArrayBase::cast(*elements)); | 3767 object->set_elements(FixedArrayBase::cast(*elements)); |
| 3750 object->set_length(*length); | 3768 object->set_length(*length); |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3879 case JS_GENERATOR_OBJECT_TYPE: | 3897 case JS_GENERATOR_OBJECT_TYPE: |
| 3880 case JS_MODULE_NAMESPACE_TYPE: | 3898 case JS_MODULE_NAMESPACE_TYPE: |
| 3881 case JS_ARRAY_BUFFER_TYPE: | 3899 case JS_ARRAY_BUFFER_TYPE: |
| 3882 case JS_REGEXP_TYPE: | 3900 case JS_REGEXP_TYPE: |
| 3883 case JS_TYPED_ARRAY_TYPE: | 3901 case JS_TYPED_ARRAY_TYPE: |
| 3884 case JS_DATA_VIEW_TYPE: | 3902 case JS_DATA_VIEW_TYPE: |
| 3885 case JS_SET_TYPE: | 3903 case JS_SET_TYPE: |
| 3886 case JS_MAP_TYPE: | 3904 case JS_MAP_TYPE: |
| 3887 case JS_SET_ITERATOR_TYPE: | 3905 case JS_SET_ITERATOR_TYPE: |
| 3888 case JS_MAP_ITERATOR_TYPE: | 3906 case JS_MAP_ITERATOR_TYPE: |
| 3889 case JS_STRING_ITERATOR_TYPE: | |
| 3890 case JS_WEAK_MAP_TYPE: | 3907 case JS_WEAK_MAP_TYPE: |
| 3891 case JS_WEAK_SET_TYPE: | 3908 case JS_WEAK_SET_TYPE: |
| 3892 case JS_PROMISE_CAPABILITY_TYPE: | 3909 case JS_PROMISE_CAPABILITY_TYPE: |
| 3893 case JS_PROMISE_TYPE: | 3910 case JS_PROMISE_TYPE: |
| 3894 case JS_BOUND_FUNCTION_TYPE: | 3911 case JS_BOUND_FUNCTION_TYPE: |
| 3895 case JS_PROXY_TYPE: | 3912 case JS_PROXY_TYPE: |
| 3896 case MAP_TYPE: | 3913 case MAP_TYPE: |
| 3897 case ALLOCATION_SITE_TYPE: | 3914 case ALLOCATION_SITE_TYPE: |
| 3898 case ACCESSOR_INFO_TYPE: | 3915 case ACCESSOR_INFO_TYPE: |
| 3899 case SHARED_FUNCTION_INFO_TYPE: | 3916 case SHARED_FUNCTION_INFO_TYPE: |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4168 CHECK(value_info->IsMaterializedObject()); | 4185 CHECK(value_info->IsMaterializedObject()); |
| 4169 | 4186 |
| 4170 value_info->value_ = | 4187 value_info->value_ = |
| 4171 Handle<Object>(previously_materialized_objects->get(i), isolate_); | 4188 Handle<Object>(previously_materialized_objects->get(i), isolate_); |
| 4172 } | 4189 } |
| 4173 } | 4190 } |
| 4174 } | 4191 } |
| 4175 | 4192 |
| 4176 } // namespace internal | 4193 } // namespace internal |
| 4177 } // namespace v8 | 4194 } // namespace v8 |
| OLD | NEW |