Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Side by Side Diff: src/factory.cc

Issue 246743003: Dictionary::New() handlified. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/factory.h ('k') | src/heap.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "factory.h" 5 #include "factory.h"
6 6
7 #include "macro-assembler.h" 7 #include "macro-assembler.h"
8 #include "isolate-inl.h" 8 #include "isolate-inl.h"
9 #include "v8conversions.h" 9 #include "v8conversions.h"
10 10
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 CALL_HEAP_FUNCTION( 120 CALL_HEAP_FUNCTION(
121 isolate(), 121 isolate(),
122 isolate()->heap()->AllocateConstantPoolArray(number_of_int64_entries, 122 isolate()->heap()->AllocateConstantPoolArray(number_of_int64_entries,
123 number_of_code_ptr_entries, 123 number_of_code_ptr_entries,
124 number_of_heap_ptr_entries, 124 number_of_heap_ptr_entries,
125 number_of_int32_entries), 125 number_of_int32_entries),
126 ConstantPoolArray); 126 ConstantPoolArray);
127 } 127 }
128 128
129 129
130 Handle<NameDictionary> Factory::NewNameDictionary(int at_least_space_for) {
131 ASSERT(0 <= at_least_space_for);
132 CALL_HEAP_FUNCTION(isolate(),
133 NameDictionary::Allocate(isolate()->heap(),
134 at_least_space_for),
135 NameDictionary);
136 }
137
138
139 Handle<SeededNumberDictionary> Factory::NewSeededNumberDictionary(
140 int at_least_space_for) {
141 ASSERT(0 <= at_least_space_for);
142 CALL_HEAP_FUNCTION(isolate(),
143 SeededNumberDictionary::Allocate(isolate()->heap(),
144 at_least_space_for),
145 SeededNumberDictionary);
146 }
147
148
149 Handle<UnseededNumberDictionary> Factory::NewUnseededNumberDictionary(
150 int at_least_space_for) {
151 ASSERT(0 <= at_least_space_for);
152 CALL_HEAP_FUNCTION(isolate(),
153 UnseededNumberDictionary::Allocate(isolate()->heap(),
154 at_least_space_for),
155 UnseededNumberDictionary);
156 }
157
158
159 Handle<OrderedHashSet> Factory::NewOrderedHashSet() { 130 Handle<OrderedHashSet> Factory::NewOrderedHashSet() {
160 return OrderedHashSet::Allocate(isolate(), 4); 131 return OrderedHashSet::Allocate(isolate(), 4);
161 } 132 }
162 133
163 134
164 Handle<OrderedHashMap> Factory::NewOrderedHashMap() { 135 Handle<OrderedHashMap> Factory::NewOrderedHashMap() {
165 return OrderedHashMap::Allocate(isolate(), 4); 136 return OrderedHashMap::Allocate(isolate(), 4);
166 } 137 }
167 138
168 139
(...skipping 1308 matching lines...) Expand 10 before | Expand all | Expand 10 after
1477 ASSERT(map->unused_property_fields() == 0); 1448 ASSERT(map->unused_property_fields() == 0);
1478 ASSERT(map->inobject_properties() == 0); 1449 ASSERT(map->inobject_properties() == 0);
1479 1450
1480 // Initial size of the backing store to avoid resize of the storage during 1451 // Initial size of the backing store to avoid resize of the storage during
1481 // bootstrapping. The size differs between the JS global object ad the 1452 // bootstrapping. The size differs between the JS global object ad the
1482 // builtins object. 1453 // builtins object.
1483 int initial_size = map->instance_type() == JS_GLOBAL_OBJECT_TYPE ? 64 : 512; 1454 int initial_size = map->instance_type() == JS_GLOBAL_OBJECT_TYPE ? 64 : 512;
1484 1455
1485 // Allocate a dictionary object for backing storage. 1456 // Allocate a dictionary object for backing storage.
1486 int at_least_space_for = map->NumberOfOwnDescriptors() * 2 + initial_size; 1457 int at_least_space_for = map->NumberOfOwnDescriptors() * 2 + initial_size;
1487 Handle<NameDictionary> dictionary = NewNameDictionary(at_least_space_for); 1458 Handle<NameDictionary> dictionary =
1459 NameDictionary::New(isolate(), at_least_space_for);
1488 1460
1489 // The global object might be created from an object template with accessors. 1461 // The global object might be created from an object template with accessors.
1490 // Fill these accessors into the dictionary. 1462 // Fill these accessors into the dictionary.
1491 Handle<DescriptorArray> descs(map->instance_descriptors()); 1463 Handle<DescriptorArray> descs(map->instance_descriptors());
1492 for (int i = 0; i < map->NumberOfOwnDescriptors(); i++) { 1464 for (int i = 0; i < map->NumberOfOwnDescriptors(); i++) {
1493 PropertyDetails details = descs->GetDetails(i); 1465 PropertyDetails details = descs->GetDetails(i);
1494 ASSERT(details.type() == CALLBACKS); // Only accessors are expected. 1466 ASSERT(details.type() == CALLBACKS); // Only accessors are expected.
1495 PropertyDetails d = PropertyDetails(details.attributes(), CALLBACKS, i + 1); 1467 PropertyDetails d = PropertyDetails(details.attributes(), CALLBACKS, i + 1);
1496 Handle<Name> name(descs->GetKey(i)); 1468 Handle<Name> name(descs->GetKey(i));
1497 Handle<Object> value(descs->GetCallbacksObject(i), isolate()); 1469 Handle<Object> value(descs->GetCallbacksObject(i), isolate());
(...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after
2321 return Handle<Object>::null(); 2293 return Handle<Object>::null();
2322 } 2294 }
2323 2295
2324 2296
2325 Handle<Object> Factory::ToBoolean(bool value) { 2297 Handle<Object> Factory::ToBoolean(bool value) {
2326 return value ? true_value() : false_value(); 2298 return value ? true_value() : false_value();
2327 } 2299 }
2328 2300
2329 2301
2330 } } // namespace v8::internal 2302 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/factory.h ('k') | src/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698