v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
factory.h
Go to the documentation of this file.
1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are
4 // met:
5 //
6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided
11 // with the distribution.
12 // * Neither the name of Google Inc. nor the names of its
13 // contributors may be used to endorse or promote products derived
14 // from this software without specific prior written permission.
15 //
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 
28 #ifndef V8_FACTORY_H_
29 #define V8_FACTORY_H_
30 
31 #include "globals.h"
32 #include "handles.h"
33 #include "heap.h"
34 
35 namespace v8 {
36 namespace internal {
37 
38 // Interface for handle based allocation.
39 
40 class Factory {
41  public:
42  // Allocate a new boxed value.
44  Handle<Object> value,
45  PretenureFlag pretenure = NOT_TENURED);
46 
47  // Allocates a fixed array initialized with undefined values.
49  int size,
50  PretenureFlag pretenure = NOT_TENURED);
51 
52  // Allocate a new fixed array with non-existing entries (the hole).
54  int size,
55  PretenureFlag pretenure = NOT_TENURED);
56 
57  // Allocates an uninitialized fixed array. It must be filled by the caller.
59 
60  // Allocate a new uninitialized fixed double array.
62  int size,
63  PretenureFlag pretenure = NOT_TENURED);
64 
66  int number_of_int64_entries,
67  int number_of_code_ptr_entries,
68  int number_of_heap_ptr_entries,
69  int number_of_int32_entries);
70 
72  int at_least_space_for);
73 
75  int at_least_space_for);
76 
77  Handle<NameDictionary> NewNameDictionary(int at_least_space_for);
78 
79  Handle<ObjectHashSet> NewObjectHashSet(int at_least_space_for);
80 
82  int at_least_space_for,
84 
85  Handle<WeakHashTable> NewWeakHashTable(int at_least_space_for);
86 
87  Handle<DescriptorArray> NewDescriptorArray(int number_of_descriptors,
88  int slack = 0);
90  int deopt_entry_count,
91  PretenureFlag pretenure);
93  int deopt_entry_count,
94  PretenureFlag pretenure);
95  // Allocates a pre-tenured empty AccessorPair.
97 
99 
102  return InternalizeUtf8String(CStrVector(str));
103  }
107  Handle<SeqOneByteString>, int from, int length);
108 
110 
111  template<class StringTableKey>
112  Handle<String> InternalizeStringWithKey(StringTableKey* key);
113 
114 
115  // String creation functions. Most of the string creation functions take
116  // a Heap::PretenureFlag argument to optionally request that they be
117  // allocated in the old generation. The pretenure flag defaults to
118  // DONT_TENURE.
119  //
120  // Creates a new String object. There are two String encodings: ASCII and
121  // two byte. One should choose between the three string factory functions
122  // based on the encoding of the string buffer that the string is
123  // initialized from.
124  // - ...FromAscii initializes the string from a buffer that is ASCII
125  // encoded (it does not check that the buffer is ASCII encoded) and
126  // the result will be ASCII encoded.
127  // - ...FromUtf8 initializes the string from a buffer that is UTF-8
128  // encoded. If the characters are all single-byte characters, the
129  // result will be ASCII encoded, otherwise it will converted to two
130  // byte.
131  // - ...FromTwoByte initializes the string from a buffer that is two
132  // byte encoded. If the characters are all single-byte characters,
133  // the result will be converted to ASCII, otherwise it will be left as
134  // two byte.
135  //
136  // ASCII strings are pretenured when used as keys in the SourceCodeCache.
139  PretenureFlag pretenure = NOT_TENURED);
140  // TODO(dcarney): remove this function.
142  Vector<const char> str,
143  PretenureFlag pretenure = NOT_TENURED) {
144  return NewStringFromOneByte(Vector<const uint8_t>::cast(str), pretenure);
145  }
146 
147  // UTF8 strings are pretenured when used for regexp literal patterns and
148  // flags in the parser.
150  Vector<const char> str,
151  PretenureFlag pretenure = NOT_TENURED);
152 
154  Vector<const uc16> str,
155  PretenureFlag pretenure = NOT_TENURED);
156 
157  // Allocates and partially initializes an ASCII or TwoByte String. The
158  // characters of the string are uninitialized. Currently used in regexp code
159  // only, where they are pretenured.
161  int length,
162  PretenureFlag pretenure = NOT_TENURED);
164  int length,
165  PretenureFlag pretenure = NOT_TENURED);
166 
167  // Create a new cons string object which consists of a pair of strings.
169  Handle<String> right);
170 
172 
173  // Create a new sequential string containing the concatenation of the inputs.
175  Handle<String> second);
176 
177  // Create a new string object which holds a proper substring of a string.
179  int begin,
180  int end);
181 
182  // Create a new string object which holds a substring of a string.
183  Handle<String> NewSubString(Handle<String> str, int begin, int end) {
184  if (begin == 0 && end == str->length()) return str;
185  return NewProperSubString(str, begin, end);
186  }
187 
189 
190  // Creates a new external String object. There are two String encodings
191  // in the system: ASCII and two byte. Unlike other String types, it does
192  // not make sense to have a UTF-8 factory function for external strings,
193  // because we cannot change the underlying buffer.
195  const ExternalAsciiString::Resource* resource);
197  const ExternalTwoByteString::Resource* resource);
198 
199  // Create a symbol.
202 
203  // Create a global (but otherwise uninitialized) context.
205 
206  // Create a global context.
208  Handle<ScopeInfo> scope_info);
209 
210  // Create a module context.
212 
213  // Create a function context.
215 
216  // Create a catch context.
218  Handle<Context> previous,
220  Handle<Object> thrown_object);
221 
222  // Create a 'with' context.
224  Handle<Context> previous,
225  Handle<JSObject> extension);
226 
227  // Create a block context.
229  Handle<Context> previous,
230  Handle<ScopeInfo> scope_info);
231 
232  // Allocate a new struct. The struct is pretenured (allocated directly in
233  // the old generation).
235 
237  int aliased_context_slot);
238 
240 
242 
244 
246 
247  // Foreign objects are pretenured when allocated by the bootstrapper.
249  PretenureFlag pretenure = NOT_TENURED);
250 
251  // Allocate a new foreign object. The foreign is pretenured (allocated
252  // directly in the old generation).
254 
255  Handle<ByteArray> NewByteArray(int length,
256  PretenureFlag pretenure = NOT_TENURED);
257 
259  int length,
260  ExternalArrayType array_type,
261  void* external_pointer,
262  PretenureFlag pretenure = NOT_TENURED);
263 
265  int length,
266  ExternalArrayType array_type,
267  PretenureFlag pretenure = NOT_TENURED);
268 
270 
272 
274 
276 
278  InstanceType type,
279  int instance_size,
280  ElementsKind elements_kind = TERMINAL_FAST_ELEMENTS_KIND);
281 
283 
285 
286  // Copy the map adding more inobject properties if possible without
287  // overflowing the instance size.
288  Handle<Map> CopyMap(Handle<Map> map, int extra_inobject_props);
290 
292 
293  // This method expects a COW array in new space, and creates a copy
294  // of it in old space.
296 
298  int new_length,
299  PretenureFlag pretenure = NOT_TENURED);
300 
303 
306 
307  // Numbers (e.g. literals) are pretenured by the parser.
308  Handle<Object> NewNumber(double value,
309  PretenureFlag pretenure = NOT_TENURED);
310 
312  PretenureFlag pretenure = NOT_TENURED);
313  Handle<Object> NewNumberFromUint(uint32_t value,
314  PretenureFlag pretenure = NOT_TENURED);
315  inline Handle<Object> NewNumberFromSize(size_t value,
316  PretenureFlag pretenure = NOT_TENURED);
317  Handle<HeapNumber> NewHeapNumber(double value,
318  PretenureFlag pretenure = NOT_TENURED);
319 
320 
321  // These objects are used by the api to create env-independent data
322  // structures in the heap.
324 
326 
327  // JS objects are pretenured when allocated by the bootstrapper and
328  // runtime.
330  PretenureFlag pretenure = NOT_TENURED);
331  // JSObject that should have a memento pointing to the allocation site.
334 
335  // Global objects are pretenured and initialized based on a constructor.
337 
338  // JS objects are pretenured when allocated by the bootstrapper and
339  // runtime.
342  PretenureFlag pretenure = NOT_TENURED,
343  bool allocate_properties = true,
345 
347  Handle<Map> map, PretenureFlag pretenure = NOT_TENURED);
348 
349  // JS modules are pretenured.
351  Handle<ScopeInfo> scope_info);
352 
353  // JS arrays are pretenured when allocated by the parser.
355  ElementsKind elements_kind,
356  int length,
357  int capacity,
359  PretenureFlag pretenure = NOT_TENURED);
360 
362  int capacity,
364  PretenureFlag pretenure = NOT_TENURED) {
365  return NewJSArray(elements_kind, 0, capacity,
367  }
368 
370  Handle<FixedArrayBase> elements,
371  ElementsKind elements_kind,
372  int length,
373  PretenureFlag pretenure = NOT_TENURED);
374 
376  Handle<FixedArrayBase> elements,
378  PretenureFlag pretenure = NOT_TENURED) {
379  return NewJSArrayWithElements(
380  elements, elements_kind, elements->length(), pretenure);
381  }
382 
383  void NewJSArrayStorage(
384  Handle<JSArray> array,
385  int length,
386  int capacity,
388 
390 
392 
394 
396 
398 
399  // Change the type of the argument into a JS object/function and reinitialize.
400  void BecomeJSObject(Handle<JSReceiver> object);
402 
404  Handle<Object> prototype);
405 
408  StrictMode strict_mode);
409 
410  Handle<JSFunction> NewFunction(Handle<Object> super, bool is_global);
411 
413  Handle<SharedFunctionInfo> function_info,
414  Handle<Map> function_map,
415  PretenureFlag pretenure);
416 
418  Handle<SharedFunctionInfo> function_info,
419  Handle<Context> context,
420  PretenureFlag pretenure = TENURED);
421 
422  Handle<ScopeInfo> NewScopeInfo(int length);
423 
424  Handle<JSObject> NewExternal(void* value);
425 
426  Handle<Code> NewCode(const CodeDesc& desc,
428  Handle<Object> self_reference,
429  bool immovable = false,
430  bool crankshafted = false,
431  int prologue_offset = Code::kPrologueOffsetNotSet);
432 
434 
436 
439  Handle<Context> native_context);
440 
441  // Interface for creating error objects.
442 
443  Handle<Object> NewError(const char* maker, const char* message,
444  Handle<JSArray> args);
446  Handle<Object> NewError(const char* maker, const char* message,
447  Vector< Handle<Object> > args);
448  Handle<Object> NewError(const char* message,
449  Vector< Handle<Object> > args);
451  Handle<Object> NewError(const char* constructor,
453 
454  Handle<Object> NewTypeError(const char* message,
455  Vector< Handle<Object> > args);
457 
459  Vector< Handle<Object> > args);
461 
464 
466  Vector< Handle<Object> > args);
469 
470  Handle<Object> NewEvalError(const char* message,
471  Vector< Handle<Object> > args);
472 
473 
475  InstanceType type,
476  int instance_size,
478  bool force_initial_map);
479 
481  Handle<SharedFunctionInfo> shared, Handle<Object> prototype);
482 
483 
485  InstanceType type,
486  int instance_size,
487  Handle<JSObject> prototype,
489  bool force_initial_map);
490 
493 
495  Handle<String> Uint32ToString(uint32_t value);
496 
501  };
502 
506 
508 
509  // Installs interceptors on the instance. 'desc' is a function template,
510  // and instance is an object instance created by the function of this
511  // function template.
513  Handle<JSObject> instance,
514  bool* pending_exception);
515 
516 #define ROOT_ACCESSOR(type, name, camel_name) \
517  inline Handle<type> name() { \
518  return Handle<type>(BitCast<type**>( \
519  &isolate()->heap()->roots_[Heap::k##camel_name##RootIndex])); \
520  }
522 #undef ROOT_ACCESSOR
523 
524 #define STRUCT_MAP_ACCESSOR(NAME, Name, name) \
525  inline Handle<Map> name##_map() { \
526  return Handle<Map>(BitCast<Map**>( \
527  &isolate()->heap()->roots_[Heap::k##Name##MapRootIndex])); \
528  }
530 #undef STRUCT_MAP_ACCESSOR
531 
532 #define STRING_ACCESSOR(name, str) \
533  inline Handle<String> name() { \
534  return Handle<String>(BitCast<String**>( \
535  &isolate()->heap()->roots_[Heap::k##name##RootIndex])); \
536  }
538 #undef STRING_ACCESSOR
539 
541  return Handle<String>(&isolate()->heap()->hidden_string_);
542  }
543 
546  int number_of_literals,
547  bool is_generator,
549  Handle<ScopeInfo> scope_info);
551 
553  Handle<String> type,
554  Handle<JSArray> arguments,
555  int start_position,
556  int end_position,
557  Handle<Object> script,
558  Handle<Object> stack_frames);
559 
562  uint32_t key,
563  Handle<Object> value);
564 
567  uint32_t key,
568  Handle<Object> value);
569 
570 #ifdef ENABLE_DEBUGGER_SUPPORT
571  Handle<DebugInfo> NewDebugInfo(Handle<SharedFunctionInfo> shared);
572 #endif
573 
574  // Return a map using the map cache in the native context.
575  // The key the an ordered set of property names.
578 
579  // Creates a new FixedArray that holds the data associated with the
580  // atom regexp and stores it in the regexp.
582  JSRegExp::Type type,
583  Handle<String> source,
585  Handle<Object> match_pattern);
586 
587  // Creates a new FixedArray that holds the data associated with the
588  // irregexp regexp and stores it in the regexp.
590  JSRegExp::Type type,
591  Handle<String> source,
593  int capture_count);
594 
595  // Returns the value for a known global constant (a property of the global
596  // object which is neither configurable nor writable) like 'undefined'.
597  // Returns a null handle when the given name is unknown.
599 
600  // Converts the given boolean condition to JavaScript boolean value.
601  Handle<Object> ToBoolean(bool value);
602 
603  private:
604  Isolate* isolate() { return reinterpret_cast<Isolate*>(this); }
605 
606  Handle<JSFunction> NewFunctionHelper(Handle<String> name,
607  Handle<Object> prototype);
608 
609  Handle<JSFunction> NewFunctionWithoutPrototypeHelper(
611  StrictMode strict_mode);
612 
613  // Create a new map cache.
614  Handle<MapCache> NewMapCache(int at_least_space_for);
615 
616  // Update the map cache in the native context with (keys, map)
617  Handle<MapCache> AddToMapCache(Handle<Context> context,
619  Handle<Map> map);
620 };
621 
622 
624  PretenureFlag pretenure) {
625  if (Smi::IsValid(static_cast<intptr_t>(value))) {
626  return Handle<Object>(Smi::FromIntptr(static_cast<intptr_t>(value)),
627  isolate());
628  } else {
629  return NewNumber(static_cast<double>(value), pretenure);
630  }
631 }
632 
633 
634 } } // namespace v8::internal
635 
636 #endif // V8_FACTORY_H_
byte * Address
Definition: globals.h:186
Handle< Object > NewEvalError(const char *message, Vector< Handle< Object > > args)
Definition: factory.cc:1104
Handle< ObjectHashTable > NewObjectHashTable(int at_least_space_for, MinimumCapacity capacity_option=USE_DEFAULT_MINIMUM_CAPACITY)
Definition: factory.cc:145
Handle< JSObject > NewFunctionPrototype(Handle< JSFunction > function)
Definition: factory.cc:819
Handle< FixedArray > CopyAndTenureFixedCOWArray(Handle< FixedArray > array)
Definition: factory.cc:891
Handle< JSObject > NewJSObject(Handle< JSFunction > constructor, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:1319
Handle< String > NewExternalStringFromAscii(const ExternalAsciiString::Resource *resource)
Definition: factory.cc:554
Handle< JSObject > NewJSObjectFromMapForDeoptimizer(Handle< Map > map, PretenureFlag pretenure=NOT_TENURED)
enable upcoming ES6 features enable harmony block scoping enable harmony enable harmony proxies enable harmony generators enable harmony numeric enable harmony string enable harmony math functions harmony_scoping harmony_symbols harmony_collections harmony_iteration harmony_strings harmony_scoping harmony_maths tracks arrays with only smi values Optimize object Array DOM strings and string pretenure call new trace pretenuring decisions of HAllocate instructions track fields with only smi values track fields with heap values track_fields track_fields Enables optimizations which favor memory size over execution speed use string slices optimization filter maximum number of GVN fix point iterations use function inlining use allocation folding eliminate write barriers targeting allocations in optimized code maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining crankshaft harvests type feedback from stub cache trace check elimination phase hydrogen tracing filter trace hydrogen to given file name trace inlining decisions trace store elimination trace all use positions trace global value numbering trace hydrogen escape analysis trace the tracking of allocation sites trace map generalization environment for every instruction deoptimize every n garbage collections put a break point before deoptimizing deoptimize uncommon cases use on stack replacement trace array bounds check elimination perform array index dehoisting use load elimination use store elimination use constant folding eliminate unreachable code number of stress runs when picking a function to watch for shared function not JSFunction itself flushes the cache of optimized code for closures on every GC functions with arguments object maximum number of escape analysis fix point iterations allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms concurrent on stack replacement do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes number of stack frames inspected by the profiler percentage of ICs that must have type info to allow optimization extra verbose compilation tracing generate extra emit comments in code disassembly enable use of SSE3 instructions if available enable use of CMOV instruction if available enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long expose natives in global object expose freeBuffer extension expose gc extension under the specified name expose externalize string extension number of stack frames to capture disable builtin natives files print name of functions for which code is generated use random jit cookie to mask large constants trace lazy optimization use adaptive optimizations always try to OSR functions trace optimize function deoptimization minimum length for automatic enable preparsing maximum number of optimization attempts before giving up cache prototype transitions trace debugging JSON request response trace out of bounds accesses to external arrays trace_js_array_abuse automatically set the debug break flag when debugger commands are in the queue abort by crashing maximum length of function source code printed in a stack trace max size of the new max size of the old max size of executable always perform global GCs print one trace line following each garbage collection do not print trace line after scavenger collection print statistics of the maximum memory committed for the heap in only print modified registers Don t break for ASM_UNIMPLEMENTED_BREAK macros print stack trace when an illegal exception is thrown randomize hashes to avoid predictable hash Fixed seed to use to hash property keys(0 means random)" "(with snapshots this option cannot override the baked-in seed)") DEFINE_bool(profile_deserialization
Handle< Context > NewModuleContext(Handle< ScopeInfo > scope_info)
Definition: factory.cc:605
Handle< JSArray > NewJSArray(int capacity, ElementsKind elements_kind=TERMINAL_FAST_ELEMENTS_KIND, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.h:361
Handle< JSFunction > NewFunctionFromSharedFunctionInfo(Handle< SharedFunctionInfo > function_info, Handle< Context > context, PretenureFlag pretenure=TENURED)
Definition: factory.cc:944
Handle< FixedTypedArrayBase > NewFixedTypedArray(int length, ExternalArrayType array_type, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:762
Handle< String > InternalizeString(Handle< String > str)
Definition: factory.cc:225
enable upcoming ES6 features enable harmony block scoping enable harmony enable harmony proxies enable harmony generators enable harmony numeric enable harmony string enable harmony math functions harmony_scoping harmony_symbols harmony_collections harmony_iteration harmony_strings harmony_scoping harmony_maths tracks arrays with only smi values Optimize object Array DOM strings and string pretenure call new trace pretenuring decisions of HAllocate instructions track fields with only smi values track fields with heap values track_fields track_fields Enables optimizations which favor memory size over execution speed use string slices optimization filter maximum number of GVN fix point iterations use function inlining use allocation folding eliminate write barriers targeting allocations in optimized code maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining crankshaft harvests type feedback from stub cache trace check elimination phase hydrogen tracing filter trace hydrogen to given file name trace inlining decisions trace store elimination trace all use positions trace global value numbering trace hydrogen escape analysis trace the tracking of allocation sites trace map generalization environment for every instruction deoptimize every n garbage collections put a break point before deoptimizing deoptimize uncommon cases use on stack replacement trace array bounds check elimination perform array index dehoisting use load elimination use store elimination use constant folding eliminate unreachable code number of stress runs when picking a function to watch for shared function not JSFunction itself flushes the cache of optimized code for closures on every GC functions with arguments object maximum number of escape analysis fix point iterations allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms concurrent on stack replacement do not emit check maps for constant values that have a leaf map
Definition: flags.cc:350
Handle< PropertyCell > NewPropertyCell(Handle< Object > value)
Definition: factory.cc:793
Handle< DescriptorArray > NewDescriptorArray(int number_of_descriptors, int slack=0)
Definition: factory.cc:169
void NewJSArrayStorage(Handle< JSArray > array, int length, int capacity, ArrayStorageAllocationMode mode=DONT_INITIALIZE_ARRAY_ELEMENTS)
Definition: factory.cc:1471
Handle< SlicedString > NewRawSlicedString(String::Encoding encoding)
Definition: factory.cc:466
Handle< FixedArray > NewFixedArrayWithHoles(int size, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:62
Handle< Script > NewScript(Handle< String > source)
Definition: factory.cc:699
Handle< JSFunction > BaseNewFunctionFromSharedFunctionInfo(Handle< SharedFunctionInfo > function_info, Handle< Map > function_map, PretenureFlag pretenure)
Definition: factory.cc:921
Handle< String > NewStringFromOneByte(Vector< const uint8_t > str, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:265
Handle< JSDataView > NewJSDataView()
Definition: factory.cc:1506
Handle< String > NewStringFromAscii(Vector< const char > str, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.h:141
Handle< String > hidden_string()
Definition: factory.h:540
Handle< Context > NewCatchContext(Handle< JSFunction > function, Handle< Context > previous, Handle< String > name, Handle< Object > thrown_object)
Definition: factory.cc:622
Handle< DeclaredAccessorDescriptor > NewDeclaredAccessorDescriptor()
Definition: factory.cc:675
Handle< Symbol > NewPrivateSymbol()
Definition: factory.cc:580
enable upcoming ES6 features enable harmony block scoping enable harmony enable harmony proxies enable harmony generators enable harmony numeric enable harmony string enable harmony math functions harmony_scoping harmony_symbols harmony_collections harmony_iteration harmony_strings harmony_scoping harmony_maths tracks arrays with only smi values Optimize object Array DOM strings and string pretenure call new trace pretenuring decisions of HAllocate instructions track fields with only smi values track fields with heap values track_fields track_fields Enables optimizations which favor memory size over execution speed use string slices optimization filter maximum number of GVN fix point iterations use function inlining use allocation folding eliminate write barriers targeting allocations in optimized code maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining crankshaft harvests type feedback from stub cache trace check elimination phase hydrogen tracing filter trace hydrogen to given file name trace inlining decisions trace store elimination trace all use positions trace global value numbering trace hydrogen escape analysis trace the tracking of allocation sites trace map generalization environment for every instruction deoptimize every n garbage collections put a break point before deoptimizing deoptimize uncommon cases use on stack replacement trace array bounds check elimination perform array index dehoisting use load elimination use store elimination use constant folding eliminate unreachable code number of stress runs when picking a function to watch for shared function not JSFunction itself flushes the cache of optimized code for closures on every GC functions with arguments object maximum number of escape analysis fix point iterations allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms concurrent on stack replacement do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes number of stack frames inspected by the profiler percentage of ICs that must have type info to allow optimization extra verbose compilation tracing generate extra emit comments in code disassembly enable use of SSE3 instructions if available enable use of CMOV instruction if available enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long expose natives in global object expose freeBuffer extension expose gc extension under the specified name expose externalize string extension number of stack frames to capture disable builtin natives files print name of functions for which code is generated use random jit cookie to mask large constants trace lazy optimization use adaptive optimizations always try to OSR functions trace optimize function deoptimization minimum length for automatic enable preparsing maximum number of optimization attempts before giving up cache prototype transitions trace debugging JSON request response trace out of bounds accesses to external arrays trace_js_array_abuse automatically set the debug break flag when debugger commands are in the queue abort by crashing maximum length of function source code printed in a stack trace max size of the new max size of the old max size of executable always perform global GCs print one trace line following each garbage collection do not print trace line after scavenger collection print statistics of the maximum memory committed for the heap in only print modified registers Don t break for ASM_UNIMPLEMENTED_BREAK macros print stack trace when an illegal exception is thrown randomize hashes to avoid predictable hash Fixed seed to use to hash property Print the time it takes to deserialize the snapshot testing_bool_flag testing_int_flag string flag tmp file in which to serialize heap Print the time it takes to lazily compile hydrogen code stubs concurrent_recompilation concurrent_sweeping Print usage message
Definition: flags.cc:665
Handle< String > EmergencyNewError(const char *message, Handle< JSArray > args)
Definition: factory.cc:1116
int int32_t
Definition: unicode.cc:47
Handle< JSArray > NewJSArrayWithElements(Handle< FixedArrayBase > elements, ElementsKind elements_kind, int length, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:1456
Handle< Context > NewFunctionContext(int length, Handle< JSFunction > function)
Definition: factory.cc:613
Handle< String > NewFlatConcatString(Handle< String > first, Handle< String > second)
Definition: factory.cc:453
uint32_t Flags
Definition: objects.h:5184
static Smi * FromIntptr(intptr_t value)
Definition: objects-inl.h:1215
Handle< JSArray > NewJSArrayWithElements(Handle< FixedArrayBase > elements, ElementsKind elements_kind=TERMINAL_FAST_ELEMENTS_KIND, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.h:375
Handle< JSFunction > NewFunctionWithPrototype(Handle< String > name, InstanceType type, int instance_size, Handle< JSObject > prototype, Handle< Code > code, bool force_initial_map)
Definition: factory.cc:1236
ExternalArrayType
Definition: v8.h:2113
Handle< Object > NewRangeError(const char *message, Vector< Handle< Object > > args)
Definition: factory.cc:1050
Handle< JSGeneratorObject > NewJSGeneratorObject(Handle< JSFunction > function)
Definition: factory.cc:1483
Handle< Object > NewNumber(double value, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:998
Handle< JSObject > NewArgumentsObject(Handle< Object > callee, int length)
Definition: factory.cc:1740
Handle< Code > CopyCode(Handle< Code > code)
Definition: factory.cc:1305
#define INTERNALIZED_STRING_LIST(V)
Definition: heap.h:276
Handle< String > NumberToString(Handle< Object > number)
Definition: factory.cc:1619
ArrayStorageAllocationMode
Definition: heap.h:554
Handle< SharedFunctionInfo > NewSharedFunctionInfo(Handle< String > name, int number_of_literals, bool is_generator, Handle< Code > code, Handle< ScopeInfo > scope_info)
Definition: factory.cc:1569
Handle< SeededNumberDictionary > DictionaryAtNumberPut(Handle< SeededNumberDictionary >, uint32_t key, Handle< Object > value)
Definition: factory.cc:1631
Handle< String > NewStringFromUtf8(Vector< const char > str, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:273
void ConfigureInstance(Handle< FunctionTemplateInfo > desc, Handle< JSObject > instance, bool *pending_exception)
Definition: factory.cc:1996
Handle< JSObject > NewJSObjectFromMap(Handle< Map > map, PretenureFlag pretenure=NOT_TENURED, bool allocate_properties=true, Handle< AllocationSite > allocation_site=Handle< AllocationSite >::null())
Definition: factory.cc:1421
Handle< Map > CopyWithPreallocatedFieldDescriptors(Handle< Map > map)
Definition: factory.cc:849
enable upcoming ES6 features enable harmony block scoping enable harmony enable harmony proxies enable harmony generators enable harmony numeric enable harmony string enable harmony math functions harmony_scoping harmony_symbols harmony_collections harmony_iteration harmony_strings harmony_scoping harmony_maths tracks arrays with only smi values Optimize object Array DOM strings and string pretenure call new trace pretenuring decisions of HAllocate instructions track fields with only smi values track fields with heap values track_fields track_fields Enables optimizations which favor memory size over execution speed use string slices optimization filter maximum number of GVN fix point iterations use function inlining use allocation folding eliminate write barriers targeting allocations in optimized code maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining crankshaft harvests type feedback from stub cache trace check elimination phase hydrogen tracing filter trace hydrogen to given file name trace inlining decisions trace store elimination trace all use positions trace global value numbering trace hydrogen escape analysis trace the tracking of allocation sites trace map generalization environment for every instruction deoptimize every n garbage collections put a break point before deoptimizing deoptimize uncommon cases use on stack replacement trace array bounds check elimination perform array index dehoisting use load elimination use store elimination use constant folding eliminate unreachable code number of stress runs when picking a function to watch for shared function not JSFunction itself flushes the cache of optimized code for closures on every GC functions with arguments object maximum number of escape analysis fix point iterations allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms concurrent on stack replacement do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes number of stack frames inspected by the profiler percentage of ICs that must have type info to allow optimization extra verbose compilation tracing generate extra emit comments in code disassembly enable use of SSE3 instructions if available enable use of CMOV instruction if available enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long mode(MIPS only)") DEFINE_string(expose_natives_as
Handle< Map > CopyMap(Handle< Map > map, int extra_inobject_props)
Definition: factory.cc:855
Handle< JSFunction > NewFunction(Handle< String > name, Handle< Object > prototype)
Definition: factory.cc:1663
enable upcoming ES6 features enable harmony block scoping enable harmony enable harmony proxies enable harmony generators enable harmony numeric enable harmony string enable harmony math functions harmony_scoping harmony_symbols harmony_collections harmony_iteration harmony_strings harmony_scoping harmony_maths tracks arrays with only smi values Optimize object size
Definition: flags.cc:211
Handle< Object > NewReferenceError(const char *message, Vector< Handle< Object > > args)
Definition: factory.cc:1072
Handle< SeqTwoByteString > NewRawTwoByteString(int length, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:300
Handle< JSFunction > NewFunctionWithoutPrototype(Handle< String > name, StrictMode strict_mode)
Definition: factory.cc:1687
Handle< PropertyCell > NewPropertyCellWithHole()
Definition: factory.cc:785
Handle< String > NewSubString(Handle< String > str, int begin, int end)
Definition: factory.h:183
Handle< JSObject > NewNeanderObject()
Definition: factory.cc:1030
enable upcoming ES6 features enable harmony block scoping enable harmony enable harmony proxies enable harmony generators enable harmony numeric enable harmony string enable harmony math functions harmony_scoping harmony_symbols harmony_collections harmony_iteration harmony_strings harmony_scoping harmony_maths tracks arrays with only smi values Optimize object Array DOM strings and string pretenure call new trace pretenuring decisions of HAllocate instructions track fields with only smi values track fields with heap values track_fields track_fields Enables optimizations which favor memory size over execution speed use string slices optimization filter maximum number of GVN fix point iterations use function inlining use allocation folding eliminate write barriers targeting allocations in optimized code maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining crankshaft harvests type feedback from stub cache trace check elimination phase hydrogen tracing filter trace hydrogen to given file name trace inlining decisions trace store elimination trace all use positions trace global value numbering trace hydrogen escape analysis trace the tracking of allocation sites trace map generalization environment for every instruction deoptimize every n garbage collections put a break point before deoptimizing deoptimize uncommon cases use on stack replacement trace array bounds check elimination perform array index dehoisting use load elimination use store elimination use constant folding eliminate unreachable code number of stress runs when picking a function to watch for shared function not JSFunction itself flushes the cache of optimized code for closures on every GC functions with arguments object maximum number of escape analysis fix point iterations allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms concurrent on stack replacement do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes number of stack frames inspected by the profiler percentage of ICs that must have type info to allow optimization extra verbose compilation tracing generate extra emit comments in code disassembly enable use of SSE3 instructions if available enable use of CMOV instruction if available enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long expose natives in global object expose freeBuffer extension expose gc extension under the specified name expose externalize string extension number of stack frames to capture disable builtin natives files print name of functions for which code is generated use random jit cookie to mask large constants trace lazy optimization use adaptive optimizations always try to OSR functions trace optimize function deoptimization minimum length for automatic enable preparsing maximum number of optimization attempts before giving up cache prototype transitions trace debugging JSON request response trace out of bounds accesses to external arrays trace_js_array_abuse automatically set the debug break flag when debugger commands are in the queue abort by crashing maximum length of function source code printed in a stack trace max size of the new max size of the old max size of executable always perform global GCs print one trace line following each garbage collection do not print trace line after scavenger collection print statistics of the maximum memory committed for the heap in only print modified registers Don t break for ASM_UNIMPLEMENTED_BREAK macros print stack trace when an illegal exception is thrown randomize hashes to avoid predictable hash Fixed seed to use to hash property Print the time it takes to deserialize the snapshot testing_bool_flag testing_int_flag string flag tmp file in which to serialize heap Print the time it takes to lazily compile hydrogen code stubs concurrent_recompilation concurrent_sweeping Print usage including flags
Definition: flags.cc:665
Handle< ScopeInfo > NewScopeInfo(int length)
Definition: factory.cc:1276
static bool IsValid(intptr_t value)
Definition: objects-inl.h:1278
void SetRegExpAtomData(Handle< JSRegExp > regexp, JSRegExp::Type type, Handle< String > source, JSRegExp::Flags flags, Handle< Object > match_pattern)
Definition: factory.cc:1960
#define ROOT_LIST(V)
Definition: heap.h:226
Handle< Object > NewTypeError(const char *message, Vector< Handle< Object > > args)
Definition: factory.cc:1039
Handle< String > InternalizeStringWithKey(StringTableKey *key)
Definition: factory.cc:252
Handle< WeakHashTable > NewWeakHashTable(int at_least_space_for)
Definition: factory.cc:157
Handle< Object > ToBoolean(bool value)
Definition: factory.cc:2022
Handle< ExecutableAccessorInfo > NewExecutableAccessorInfo()
Definition: factory.cc:690
Handle< JSArrayBuffer > NewJSArrayBuffer()
Definition: factory.cc:1496
Handle< Object > GlobalConstantFor(Handle< String > name)
Definition: factory.cc:2013
Handle< JSTypedArray > NewJSTypedArray(ExternalArrayType type)
Definition: factory.cc:1534
Handle< HeapNumber > NewHeapNumber(double value, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:1022
enable upcoming ES6 features enable harmony block scoping enable harmony enable harmony proxies enable harmony generators enable harmony numeric enable harmony string enable harmony math functions harmony_scoping harmony_symbols harmony_collections harmony_iteration harmony_strings harmony_scoping harmony_maths tracks arrays with only smi values Optimize object Array DOM strings and string pretenure call new trace pretenuring decisions of HAllocate instructions track fields with only smi values track fields with heap values track_fields track_fields Enables optimizations which favor memory size over execution speed use string slices optimization filter maximum number of GVN fix point iterations use function inlining use allocation folding eliminate write barriers targeting allocations in optimized code maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining crankshaft harvests type feedback from stub cache trace check elimination phase hydrogen tracing filter trace hydrogen to given file name trace inlining decisions trace store elimination trace all use positions trace global value numbering trace hydrogen escape analysis trace the tracking of allocation sites trace map generalization environment for every instruction deoptimize every n garbage collections put a break point before deoptimizing deoptimize uncommon cases use on stack replacement trace array bounds check elimination perform array index dehoisting use load elimination use store elimination use constant folding eliminate unreachable code number of stress runs when picking a function to watch for shared function not JSFunction itself flushes the cache of optimized code for closures on every GC functions with arguments object maximum number of escape analysis fix point iterations allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms concurrent on stack replacement do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes number of stack frames inspected by the profiler percentage of ICs that must have type info to allow optimization extra verbose compilation tracing generate extra code(assertions) for debugging") DEFINE_bool(code_comments
#define ROOT_ACCESSOR(type, name, camel_name)
Definition: factory.h:516
Handle< JSObject > NewExternal(void *value)
Definition: factory.cc:1284
Handle< String > NewStringFromTwoByte(Vector< const uc16 > str, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:282
Handle< ExternalArray > NewExternalArray(int length, ExternalArrayType array_type, void *external_pointer, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:747
Handle< ByteArray > NewByteArray(int length, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:738
Handle< FixedDoubleArray > NewFixedDoubleArray(int size, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:80
Handle< FixedArray > NewFixedArray(int size, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:53
Handle< AliasedArgumentsEntry > NewAliasedArgumentsEntry(int aliased_context_slot)
Definition: factory.cc:666
Handle< AllocationSite > NewAllocationSite()
Definition: factory.cc:801
Handle< GlobalObject > NewGlobalObject(Handle< JSFunction > constructor)
Definition: factory.cc:1366
Handle< Cell > NewCell(Handle< Object > value)
Definition: factory.cc:776
Handle< DeclaredAccessorInfo > NewDeclaredAccessorInfo()
Definition: factory.cc:681
Handle< Object > ToObject(Handle< Object > object)
Definition: factory.cc:1696
Handle< Context > NewBlockContext(Handle< JSFunction > function, Handle< Context > previous, Handle< ScopeInfo > scope_info)
Definition: factory.cc:646
Handle< FixedArray > CopyFixedArray(Handle< FixedArray > array)
Definition: factory.cc:886
Vector< const char > CStrVector(const char *data)
Definition: utils.h:574
Handle< Object > NewNumberFromInt(int32_t value, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:1006
Handle< String > NewProperSubString(Handle< String > str, int begin, int end)
Definition: factory.cc:475
Handle< DeoptimizationInputData > NewDeoptimizationInputData(int deopt_entry_count, PretenureFlag pretenure)
Definition: factory.cc:179
Handle< Box > NewBox(Handle< Object > value, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:45
Handle< JSProxy > NewJSProxy(Handle< Object > handler, Handle< Object > prototype)
Definition: factory.cc:1544
Handle< DeoptimizationOutputData > NewDeoptimizationOutputData(int deopt_entry_count, PretenureFlag pretenure)
Definition: factory.cc:191
Handle< Object > NewSyntaxError(const char *message, Handle< JSArray > args)
Definition: factory.cc:1061
Handle< String > InternalizeTwoByteString(Vector< const uc16 > str)
Definition: factory.cc:245
Handle< String > NewExternalStringFromTwoByte(const ExternalTwoByteString::Resource *resource)
Definition: factory.cc:563
Handle< String > InternalizeOneByteString(Vector< const uint8_t > str)
Definition: factory.cc:232
#define STRING_ACCESSOR(name, str)
Definition: factory.h:532
Handle< TypeFeedbackInfo > NewTypeFeedbackInfo()
Definition: factory.cc:210
#define STRUCT_LIST(V)
Definition: objects.h:590
Handle< JSFunction > CreateApiFunction(Handle< FunctionTemplateInfo > data, ApiInstanceType type=JavaScriptObject)
Definition: factory.cc:1748
Handle< ConstantPoolArray > NewConstantPoolArray(int number_of_int64_entries, int number_of_code_ptr_entries, int number_of_heap_ptr_entries, int number_of_int32_entries)
Definition: factory.cc:90
void BecomeJSObject(Handle< JSReceiver > object)
Definition: factory.cc:1553
Handle< Symbol > NewSymbol()
Definition: factory.cc:572
static const int kPrologueOffsetNotSet
Definition: objects.h:5227
Handle< NameDictionary > NewNameDictionary(int at_least_space_for)
Definition: factory.cc:107
Handle< String > InternalizeUtf8String(Vector< const char > str)
Definition: factory.cc:218
Handle< JSModule > NewJSModule(Handle< Context > context, Handle< ScopeInfo > scope_info)
Definition: factory.cc:1339
Handle< Code > NewCode(const CodeDesc &desc, Code::Flags flags, Handle< Object > self_reference, bool immovable=false, bool crankshafted=false, int prologue_offset=Code::kPrologueOffsetNotSet)
Definition: factory.cc:1291
Handle< SeqOneByteString > NewRawOneByteString(int length, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:291
Handle< Context > NewGlobalContext(Handle< JSFunction > function, Handle< ScopeInfo > scope_info)
Definition: factory.cc:596
Handle< String > InternalizeUtf8String(const char *str)
Definition: factory.h:101
Handle< Map > ObjectLiteralMapFromCache(Handle< Context > context, Handle< FixedArray > keys)
Definition: factory.cc:1939
Handle< Foreign > NewForeign(Address addr, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:726
Handle< String > Uint32ToString(uint32_t value)
Definition: factory.cc:1625
Handle< ConstantPoolArray > CopyConstantPoolArray(Handle< ConstantPoolArray > array)
Definition: factory.cc:915
Handle< ConsString > NewRawConsString(String::Encoding encoding)
Definition: factory.cc:361
Handle< FixedDoubleArray > CopyFixedDoubleArray(Handle< FixedDoubleArray > array)
Definition: factory.cc:909
Handle< JSFunction > InstallMembers(Handle< JSFunction > function)
Handle< Context > NewWithContext(Handle< JSFunction > function, Handle< Context > previous, Handle< JSObject > extension)
Definition: factory.cc:636
Handle< Struct > NewStruct(InstanceType type)
Definition: factory.cc:658
Handle< JSMessageObject > NewJSMessageObject(Handle< String > type, Handle< JSArray > arguments, int start_position, int end_position, Handle< Object > script, Handle< Object > stack_frames)
Definition: factory.cc:1594
Handle< String > NewConsString(Handle< String > left, Handle< String > right)
Definition: factory.cc:370
Handle< Object > NewNumberFromSize(size_t value, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.h:623
Handle< Object > NewError(const char *maker, const char *message, Handle< JSArray > args)
Definition: factory.cc:1153
void SetRegExpIrregexpData(Handle< JSRegExp > regexp, JSRegExp::Type type, Handle< String > source, JSRegExp::Flags flags, int capture_count)
Definition: factory.cc:1974
Handle< AccessorPair > NewAccessorPair()
Definition: factory.cc:203
Handle< Context > NewNativeContext()
Definition: factory.cc:588
Handle< JSObject > NewJSObjectWithMemento(Handle< JSFunction > constructor, Handle< AllocationSite > site)
Definition: factory.cc:1328
Handle< FixedArray > NewUninitializedFixedArray(int size)
Definition: factory.cc:72
Handle< FixedArray > CopySizeFixedArray(Handle< FixedArray > array, int new_length, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:900
Handle< Map > NewMap(InstanceType type, int instance_size, ElementsKind elements_kind=TERMINAL_FAST_ELEMENTS_KIND)
Definition: factory.cc:809
enable upcoming ES6 features enable harmony block scoping enable harmony enable harmony proxies enable harmony generators enable harmony numeric enable harmony string enable harmony math functions harmony_scoping harmony_symbols harmony_collections harmony_iteration harmony_strings harmony_scoping harmony_maths tracks arrays with only smi values Optimize object Array DOM strings and string pretenure call new trace pretenuring decisions of HAllocate instructions track fields with only smi values track fields with heap values track_fields track_fields Enables optimizations which favor memory size over execution speed use string slices optimization filter maximum number of GVN fix point iterations use function inlining use allocation folding eliminate write barriers targeting allocations in optimized code maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining crankshaft harvests type feedback from stub cache trace check elimination phase hydrogen tracing filter trace hydrogen to given file name trace inlining decisions trace store elimination trace all use positions trace global value numbering trace hydrogen escape analysis trace the tracking of allocation sites trace map generalization environment for every instruction deoptimize every n garbage collections put a break point before deoptimizing deoptimize uncommon cases use on stack replacement trace array bounds check elimination perform array index dehoisting use load elimination use store elimination use constant folding eliminate unreachable code number of stress runs when picking a function to watch for shared function not JSFunction itself flushes the cache of optimized code for closures on every GC functions with arguments object maximum number of escape analysis fix point iterations allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms concurrent on stack replacement do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes number of stack frames inspected by the profiler percentage of ICs that must have type info to allow optimization extra verbose compilation tracing generate extra emit comments in code disassembly enable use of SSE3 instructions if available enable use of CMOV instruction if available enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long expose natives in global object expose freeBuffer extension expose gc extension under the specified name expose externalize string extension number of stack frames to capture disable builtin natives files print name of functions for which code is generated use random jit cookie to mask large constants trace lazy optimization use adaptive optimizations always try to OSR functions trace optimize function deoptimization minimum length for automatic enable preparsing maximum number of optimization attempts before giving up cache prototype transitions trace debugging JSON request response trace out of bounds accesses to external arrays trace_js_array_abuse automatically set the debug break flag when debugger commands are in the queue abort by crashing maximum length of function source code printed in a stack trace max size of the new max size of the old max size of executable always perform global GCs print one trace line following each garbage collection do not print trace line after scavenger collection print statistics of the maximum memory committed for the heap in name
Definition: flags.cc:505
Handle< Object > NewNumberFromUint(uint32_t value, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:1014
Handle< ObjectHashSet > NewObjectHashSet(int at_least_space_for)
Definition: factory.cc:136
Handle< UnseededNumberDictionary > NewUnseededNumberDictionary(int at_least_space_for)
Definition: factory.cc:126
Handle< JSArray > NewJSArray(ElementsKind elements_kind, int length, int capacity, ArrayStorageAllocationMode mode=INITIALIZE_ARRAY_ELEMENTS_WITH_HOLE, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:1437
void BecomeJSFunction(Handle< JSReceiver > object)
Definition: factory.cc:1561
#define STRUCT_MAP_ACCESSOR(NAME, Name, name)
Definition: factory.h:524
Handle< SeededNumberDictionary > NewSeededNumberDictionary(int at_least_space_for)
Definition: factory.cc:116