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

Side by Side Diff: src/factory.h

Issue 227623002: Handlify ten allocator functions from the Heap. (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 | « no previous file | src/factory.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 #ifndef V8_FACTORY_H_ 5 #ifndef V8_FACTORY_H_
6 #define V8_FACTORY_H_ 6 #define V8_FACTORY_H_
7 7
8 #include "isolate.h" 8 #include "isolate.h"
9 9
10 namespace v8 { 10 namespace v8 {
11 namespace internal { 11 namespace internal {
12 12
13 // Interface for handle based allocation. 13 // Interface for handle based allocation.
14 14
15 class Factory V8_FINAL { 15 class Factory V8_FINAL {
16 public: 16 public:
17 // Allocate a new boxed value.
18 Handle<Box> NewBox(
19 Handle<Object> value,
20 PretenureFlag pretenure = NOT_TENURED);
21
22 // Allocates a fixed array initialized with undefined values. 17 // Allocates a fixed array initialized with undefined values.
23 Handle<FixedArray> NewFixedArray( 18 Handle<FixedArray> NewFixedArray(
24 int size, 19 int size,
25 PretenureFlag pretenure = NOT_TENURED); 20 PretenureFlag pretenure = NOT_TENURED);
26 21
27 // Allocate a new fixed array with non-existing entries (the hole). 22 // Allocate a new fixed array with non-existing entries (the hole).
28 Handle<FixedArray> NewFixedArrayWithHoles( 23 Handle<FixedArray> NewFixedArrayWithHoles(
29 int size, 24 int size,
30 PretenureFlag pretenure = NOT_TENURED); 25 PretenureFlag pretenure = NOT_TENURED);
31 26
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 59
65 Handle<DescriptorArray> NewDescriptorArray(int number_of_descriptors, 60 Handle<DescriptorArray> NewDescriptorArray(int number_of_descriptors,
66 int slack = 0); 61 int slack = 0);
67 Handle<DeoptimizationInputData> NewDeoptimizationInputData( 62 Handle<DeoptimizationInputData> NewDeoptimizationInputData(
68 int deopt_entry_count, 63 int deopt_entry_count,
69 PretenureFlag pretenure); 64 PretenureFlag pretenure);
70 Handle<DeoptimizationOutputData> NewDeoptimizationOutputData( 65 Handle<DeoptimizationOutputData> NewDeoptimizationOutputData(
71 int deopt_entry_count, 66 int deopt_entry_count,
72 PretenureFlag pretenure); 67 PretenureFlag pretenure);
73 68
69 // Create a new boxed value.
70 Handle<Box> NewBox(Handle<Object> value);
71
74 // Create a pre-tenured empty AccessorPair. 72 // Create a pre-tenured empty AccessorPair.
75 Handle<AccessorPair> NewAccessorPair(); 73 Handle<AccessorPair> NewAccessorPair();
76 74
77 // Create an empty TypeFeedbackInfo. 75 // Create an empty TypeFeedbackInfo.
78 Handle<TypeFeedbackInfo> NewTypeFeedbackInfo(); 76 Handle<TypeFeedbackInfo> NewTypeFeedbackInfo();
79 77
80 Handle<String> InternalizeUtf8String(Vector<const char> str); 78 Handle<String> InternalizeUtf8String(Vector<const char> str);
81 Handle<String> InternalizeUtf8String(const char* str) { 79 Handle<String> InternalizeUtf8String(const char* str) {
82 return InternalizeUtf8String(CStrVector(str)); 80 return InternalizeUtf8String(CStrVector(str));
83 } 81 }
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 322
325 Handle<JSObject> NewJSObjectFromMapForDeoptimizer( 323 Handle<JSObject> NewJSObjectFromMapForDeoptimizer(
326 Handle<Map> map, PretenureFlag pretenure = NOT_TENURED); 324 Handle<Map> map, PretenureFlag pretenure = NOT_TENURED);
327 325
328 // JS modules are pretenured. 326 // JS modules are pretenured.
329 Handle<JSModule> NewJSModule(Handle<Context> context, 327 Handle<JSModule> NewJSModule(Handle<Context> context,
330 Handle<ScopeInfo> scope_info); 328 Handle<ScopeInfo> scope_info);
331 329
332 // JS arrays are pretenured when allocated by the parser. 330 // JS arrays are pretenured when allocated by the parser.
333 331
332 // Create a JSArray with no elements.
334 Handle<JSArray> NewJSArray( 333 Handle<JSArray> NewJSArray(
335 ElementsKind elements_kind, 334 ElementsKind elements_kind,
336 PretenureFlag pretenure = NOT_TENURED); 335 PretenureFlag pretenure = NOT_TENURED);
337 336
337 // Create a JSArray with a specified length and elements initialized
338 // according to the specified mode.
338 Handle<JSArray> NewJSArray( 339 Handle<JSArray> NewJSArray(
339 ElementsKind elements_kind, 340 ElementsKind elements_kind,
340 int length, 341 int length,
341 int capacity, 342 int capacity,
342 ArrayStorageAllocationMode mode = INITIALIZE_ARRAY_ELEMENTS_WITH_HOLE, 343 ArrayStorageAllocationMode mode = INITIALIZE_ARRAY_ELEMENTS_WITH_HOLE,
343 PretenureFlag pretenure = NOT_TENURED); 344 PretenureFlag pretenure = NOT_TENURED);
344 345
345 Handle<JSArray> NewJSArray( 346 Handle<JSArray> NewJSArray(
346 int capacity, 347 int capacity,
347 ElementsKind elements_kind = TERMINAL_FAST_ELEMENTS_KIND, 348 ElementsKind elements_kind = TERMINAL_FAST_ELEMENTS_KIND,
348 PretenureFlag pretenure = NOT_TENURED) { 349 PretenureFlag pretenure = NOT_TENURED) {
349 if (capacity != 0) { 350 if (capacity != 0) {
350 elements_kind = GetHoleyElementsKind(elements_kind); 351 elements_kind = GetHoleyElementsKind(elements_kind);
351 } 352 }
352 return NewJSArray(elements_kind, 0, capacity, 353 return NewJSArray(elements_kind, 0, capacity,
353 INITIALIZE_ARRAY_ELEMENTS_WITH_HOLE, pretenure); 354 INITIALIZE_ARRAY_ELEMENTS_WITH_HOLE, pretenure);
354 } 355 }
355 356
356 // Allocate a JSArray with no elements 357 // Create a JSArray with the given elements.
357 Handle<JSArray> NewJSArrayWithElements( 358 Handle<JSArray> NewJSArrayWithElements(
358 Handle<FixedArrayBase> elements, 359 Handle<FixedArrayBase> elements,
359 ElementsKind elements_kind, 360 ElementsKind elements_kind,
360 int length, 361 int length,
361 PretenureFlag pretenure = NOT_TENURED); 362 PretenureFlag pretenure = NOT_TENURED);
362 363
363 Handle<JSArray> NewJSArrayWithElements( 364 Handle<JSArray> NewJSArrayWithElements(
364 Handle<FixedArrayBase> elements, 365 Handle<FixedArrayBase> elements,
365 ElementsKind elements_kind = TERMINAL_FAST_ELEMENTS_KIND, 366 ElementsKind elements_kind = TERMINAL_FAST_ELEMENTS_KIND,
366 PretenureFlag pretenure = NOT_TENURED) { 367 PretenureFlag pretenure = NOT_TENURED) {
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
610 611
611 // Update the map cache in the native context with (keys, map) 612 // Update the map cache in the native context with (keys, map)
612 Handle<MapCache> AddToMapCache(Handle<Context> context, 613 Handle<MapCache> AddToMapCache(Handle<Context> context,
613 Handle<FixedArray> keys, 614 Handle<FixedArray> keys,
614 Handle<Map> map); 615 Handle<Map> map);
615 }; 616 };
616 617
617 } } // namespace v8::internal 618 } } // namespace v8::internal
618 619
619 #endif // V8_FACTORY_H_ 620 #endif // V8_FACTORY_H_
OLDNEW
« no previous file with comments | « no previous file | src/factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698