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 |