| 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 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2116 | 2116 |
| 2117 | 2117 |
| 2118 void SetupArrayBufferView(i::Isolate* isolate, | 2118 void SetupArrayBufferView(i::Isolate* isolate, |
| 2119 i::Handle<i::JSArrayBufferView> obj, | 2119 i::Handle<i::JSArrayBufferView> obj, |
| 2120 i::Handle<i::JSArrayBuffer> buffer, | 2120 i::Handle<i::JSArrayBuffer> buffer, |
| 2121 size_t byte_offset, size_t byte_length, | 2121 size_t byte_offset, size_t byte_length, |
| 2122 PretenureFlag pretenure = NOT_TENURED) { | 2122 PretenureFlag pretenure = NOT_TENURED) { |
| 2123 DCHECK(byte_offset + byte_length <= | 2123 DCHECK(byte_offset + byte_length <= |
| 2124 static_cast<size_t>(buffer->byte_length()->Number())); | 2124 static_cast<size_t>(buffer->byte_length()->Number())); |
| 2125 | 2125 |
| 2126 DCHECK_EQ(obj->GetInternalFieldCount(), | 2126 DCHECK_EQ(obj->GetEmbedderFieldCount(), |
| 2127 v8::ArrayBufferView::kInternalFieldCount); | 2127 v8::ArrayBufferView::kEmbedderFieldCount); |
| 2128 for (int i = 0; i < v8::ArrayBufferView::kInternalFieldCount; i++) { | 2128 for (int i = 0; i < v8::ArrayBufferView::kEmbedderFieldCount; i++) { |
| 2129 obj->SetInternalField(i, Smi::kZero); | 2129 obj->SetEmbedderField(i, Smi::kZero); |
| 2130 } | 2130 } |
| 2131 | 2131 |
| 2132 obj->set_buffer(*buffer); | 2132 obj->set_buffer(*buffer); |
| 2133 | 2133 |
| 2134 i::Handle<i::Object> byte_offset_object = | 2134 i::Handle<i::Object> byte_offset_object = |
| 2135 isolate->factory()->NewNumberFromSize(byte_offset, pretenure); | 2135 isolate->factory()->NewNumberFromSize(byte_offset, pretenure); |
| 2136 obj->set_byte_offset(*byte_offset_object); | 2136 obj->set_byte_offset(*byte_offset_object); |
| 2137 | 2137 |
| 2138 i::Handle<i::Object> byte_length_object = | 2138 i::Handle<i::Object> byte_length_object = |
| 2139 isolate->factory()->NewNumberFromSize(byte_length, pretenure); | 2139 isolate->factory()->NewNumberFromSize(byte_length, pretenure); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2191 Handle<Map> map = JSObject::GetElementsTransitionMap(obj, elements_kind); | 2191 Handle<Map> map = JSObject::GetElementsTransitionMap(obj, elements_kind); |
| 2192 JSObject::SetMapAndElements(obj, map, elements); | 2192 JSObject::SetMapAndElements(obj, map, elements); |
| 2193 return obj; | 2193 return obj; |
| 2194 } | 2194 } |
| 2195 | 2195 |
| 2196 | 2196 |
| 2197 Handle<JSTypedArray> Factory::NewJSTypedArray(ElementsKind elements_kind, | 2197 Handle<JSTypedArray> Factory::NewJSTypedArray(ElementsKind elements_kind, |
| 2198 size_t number_of_elements, | 2198 size_t number_of_elements, |
| 2199 PretenureFlag pretenure) { | 2199 PretenureFlag pretenure) { |
| 2200 Handle<JSTypedArray> obj = NewJSTypedArray(elements_kind, pretenure); | 2200 Handle<JSTypedArray> obj = NewJSTypedArray(elements_kind, pretenure); |
| 2201 DCHECK_EQ(obj->GetInternalFieldCount(), | 2201 DCHECK_EQ(obj->GetEmbedderFieldCount(), |
| 2202 v8::ArrayBufferView::kInternalFieldCount); | 2202 v8::ArrayBufferView::kEmbedderFieldCount); |
| 2203 for (int i = 0; i < v8::ArrayBufferView::kInternalFieldCount; i++) { | 2203 for (int i = 0; i < v8::ArrayBufferView::kEmbedderFieldCount; i++) { |
| 2204 obj->SetInternalField(i, Smi::kZero); | 2204 obj->SetEmbedderField(i, Smi::kZero); |
| 2205 } | 2205 } |
| 2206 | 2206 |
| 2207 size_t element_size = GetFixedTypedArraysElementSize(elements_kind); | 2207 size_t element_size = GetFixedTypedArraysElementSize(elements_kind); |
| 2208 ExternalArrayType array_type = GetArrayTypeFromElementsKind(elements_kind); | 2208 ExternalArrayType array_type = GetArrayTypeFromElementsKind(elements_kind); |
| 2209 | 2209 |
| 2210 CHECK(number_of_elements <= | 2210 CHECK(number_of_elements <= |
| 2211 (std::numeric_limits<size_t>::max() / element_size)); | 2211 (std::numeric_limits<size_t>::max() / element_size)); |
| 2212 CHECK(number_of_elements <= static_cast<size_t>(Smi::kMaxValue)); | 2212 CHECK(number_of_elements <= static_cast<size_t>(Smi::kMaxValue)); |
| 2213 size_t byte_length = number_of_elements * element_size; | 2213 size_t byte_length = number_of_elements * element_size; |
| 2214 | 2214 |
| (...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2874 Handle<AccessorInfo> prototype = | 2874 Handle<AccessorInfo> prototype = |
| 2875 Accessors::FunctionPrototypeInfo(isolate(), rw_attribs); | 2875 Accessors::FunctionPrototypeInfo(isolate(), rw_attribs); |
| 2876 Descriptor d = Descriptor::AccessorConstant( | 2876 Descriptor d = Descriptor::AccessorConstant( |
| 2877 Handle<Name>(Name::cast(prototype->name())), prototype, rw_attribs); | 2877 Handle<Name>(Name::cast(prototype->name())), prototype, rw_attribs); |
| 2878 map->AppendDescriptor(&d); | 2878 map->AppendDescriptor(&d); |
| 2879 } | 2879 } |
| 2880 } | 2880 } |
| 2881 | 2881 |
| 2882 } // namespace internal | 2882 } // namespace internal |
| 2883 } // namespace v8 | 2883 } // namespace v8 |
| OLD | NEW |