| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/factory.h" | 5 #include "src/factory.h" |
| 6 | 6 |
| 7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
| 8 #include "src/allocation-site-scopes.h" | 8 #include "src/allocation-site-scopes.h" |
| 9 #include "src/ast/ast.h" | 9 #include "src/ast/ast.h" |
| 10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
| (...skipping 1622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1633 | 1633 |
| 1634 Handle<ModuleInfo> Factory::NewModuleInfo() { | 1634 Handle<ModuleInfo> Factory::NewModuleInfo() { |
| 1635 Handle<FixedArray> array = NewFixedArray(ModuleInfo::kLength, TENURED); | 1635 Handle<FixedArray> array = NewFixedArray(ModuleInfo::kLength, TENURED); |
| 1636 array->set_map_no_write_barrier(*module_info_map()); | 1636 array->set_map_no_write_barrier(*module_info_map()); |
| 1637 return Handle<ModuleInfo>::cast(array); | 1637 return Handle<ModuleInfo>::cast(array); |
| 1638 } | 1638 } |
| 1639 | 1639 |
| 1640 Handle<JSObject> Factory::NewExternal(void* value) { | 1640 Handle<JSObject> Factory::NewExternal(void* value) { |
| 1641 Handle<Foreign> foreign = NewForeign(static_cast<Address>(value)); | 1641 Handle<Foreign> foreign = NewForeign(static_cast<Address>(value)); |
| 1642 Handle<JSObject> external = NewJSObjectFromMap(external_map()); | 1642 Handle<JSObject> external = NewJSObjectFromMap(external_map()); |
| 1643 external->SetInternalField(0, *foreign); | 1643 external->SetEmbedderField(0, *foreign); |
| 1644 return external; | 1644 return external; |
| 1645 } | 1645 } |
| 1646 | 1646 |
| 1647 | 1647 |
| 1648 Handle<Code> Factory::NewCodeRaw(int object_size, bool immovable) { | 1648 Handle<Code> Factory::NewCodeRaw(int object_size, bool immovable) { |
| 1649 CALL_HEAP_FUNCTION(isolate(), | 1649 CALL_HEAP_FUNCTION(isolate(), |
| 1650 isolate()->heap()->AllocateCode(object_size, immovable), | 1650 isolate()->heap()->AllocateCode(object_size, immovable), |
| 1651 Code); | 1651 Code); |
| 1652 } | 1652 } |
| 1653 | 1653 |
| (...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2117 | 2117 |
| 2118 | 2118 |
| 2119 void SetupArrayBufferView(i::Isolate* isolate, | 2119 void SetupArrayBufferView(i::Isolate* isolate, |
| 2120 i::Handle<i::JSArrayBufferView> obj, | 2120 i::Handle<i::JSArrayBufferView> obj, |
| 2121 i::Handle<i::JSArrayBuffer> buffer, | 2121 i::Handle<i::JSArrayBuffer> buffer, |
| 2122 size_t byte_offset, size_t byte_length, | 2122 size_t byte_offset, size_t byte_length, |
| 2123 PretenureFlag pretenure = NOT_TENURED) { | 2123 PretenureFlag pretenure = NOT_TENURED) { |
| 2124 DCHECK(byte_offset + byte_length <= | 2124 DCHECK(byte_offset + byte_length <= |
| 2125 static_cast<size_t>(buffer->byte_length()->Number())); | 2125 static_cast<size_t>(buffer->byte_length()->Number())); |
| 2126 | 2126 |
| 2127 DCHECK_EQ(obj->GetInternalFieldCount(), | 2127 DCHECK_EQ(obj->GetEmbedderFieldCount(), |
| 2128 v8::ArrayBufferView::kInternalFieldCount); | 2128 v8::ArrayBufferView::kEmbedderFieldCount); |
| 2129 for (int i = 0; i < v8::ArrayBufferView::kInternalFieldCount; i++) { | 2129 for (int i = 0; i < v8::ArrayBufferView::kEmbedderFieldCount; i++) { |
| 2130 obj->SetInternalField(i, Smi::kZero); | 2130 obj->SetEmbedderField(i, Smi::kZero); |
| 2131 } | 2131 } |
| 2132 | 2132 |
| 2133 obj->set_buffer(*buffer); | 2133 obj->set_buffer(*buffer); |
| 2134 | 2134 |
| 2135 i::Handle<i::Object> byte_offset_object = | 2135 i::Handle<i::Object> byte_offset_object = |
| 2136 isolate->factory()->NewNumberFromSize(byte_offset, pretenure); | 2136 isolate->factory()->NewNumberFromSize(byte_offset, pretenure); |
| 2137 obj->set_byte_offset(*byte_offset_object); | 2137 obj->set_byte_offset(*byte_offset_object); |
| 2138 | 2138 |
| 2139 i::Handle<i::Object> byte_length_object = | 2139 i::Handle<i::Object> byte_length_object = |
| 2140 isolate->factory()->NewNumberFromSize(byte_length, pretenure); | 2140 isolate->factory()->NewNumberFromSize(byte_length, pretenure); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2192 Handle<Map> map = JSObject::GetElementsTransitionMap(obj, elements_kind); | 2192 Handle<Map> map = JSObject::GetElementsTransitionMap(obj, elements_kind); |
| 2193 JSObject::SetMapAndElements(obj, map, elements); | 2193 JSObject::SetMapAndElements(obj, map, elements); |
| 2194 return obj; | 2194 return obj; |
| 2195 } | 2195 } |
| 2196 | 2196 |
| 2197 | 2197 |
| 2198 Handle<JSTypedArray> Factory::NewJSTypedArray(ElementsKind elements_kind, | 2198 Handle<JSTypedArray> Factory::NewJSTypedArray(ElementsKind elements_kind, |
| 2199 size_t number_of_elements, | 2199 size_t number_of_elements, |
| 2200 PretenureFlag pretenure) { | 2200 PretenureFlag pretenure) { |
| 2201 Handle<JSTypedArray> obj = NewJSTypedArray(elements_kind, pretenure); | 2201 Handle<JSTypedArray> obj = NewJSTypedArray(elements_kind, pretenure); |
| 2202 DCHECK_EQ(obj->GetInternalFieldCount(), | 2202 DCHECK_EQ(obj->GetEmbedderFieldCount(), |
| 2203 v8::ArrayBufferView::kInternalFieldCount); | 2203 v8::ArrayBufferView::kEmbedderFieldCount); |
| 2204 for (int i = 0; i < v8::ArrayBufferView::kInternalFieldCount; i++) { | 2204 for (int i = 0; i < v8::ArrayBufferView::kEmbedderFieldCount; i++) { |
| 2205 obj->SetInternalField(i, Smi::kZero); | 2205 obj->SetEmbedderField(i, Smi::kZero); |
| 2206 } | 2206 } |
| 2207 | 2207 |
| 2208 size_t element_size = GetFixedTypedArraysElementSize(elements_kind); | 2208 size_t element_size = GetFixedTypedArraysElementSize(elements_kind); |
| 2209 ExternalArrayType array_type = GetArrayTypeFromElementsKind(elements_kind); | 2209 ExternalArrayType array_type = GetArrayTypeFromElementsKind(elements_kind); |
| 2210 | 2210 |
| 2211 CHECK(number_of_elements <= | 2211 CHECK(number_of_elements <= |
| 2212 (std::numeric_limits<size_t>::max() / element_size)); | 2212 (std::numeric_limits<size_t>::max() / element_size)); |
| 2213 CHECK(number_of_elements <= static_cast<size_t>(Smi::kMaxValue)); | 2213 CHECK(number_of_elements <= static_cast<size_t>(Smi::kMaxValue)); |
| 2214 size_t byte_length = number_of_elements * element_size; | 2214 size_t byte_length = number_of_elements * element_size; |
| 2215 | 2215 |
| (...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2875 Handle<AccessorInfo> prototype = | 2875 Handle<AccessorInfo> prototype = |
| 2876 Accessors::FunctionPrototypeInfo(isolate(), rw_attribs); | 2876 Accessors::FunctionPrototypeInfo(isolate(), rw_attribs); |
| 2877 Descriptor d = Descriptor::AccessorConstant( | 2877 Descriptor d = Descriptor::AccessorConstant( |
| 2878 Handle<Name>(Name::cast(prototype->name())), prototype, rw_attribs); | 2878 Handle<Name>(Name::cast(prototype->name())), prototype, rw_attribs); |
| 2879 map->AppendDescriptor(&d); | 2879 map->AppendDescriptor(&d); |
| 2880 } | 2880 } |
| 2881 } | 2881 } |
| 2882 | 2882 |
| 2883 } // namespace internal | 2883 } // namespace internal |
| 2884 } // namespace v8 | 2884 } // namespace v8 |
| OLD | NEW |