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 |