v8  3.11.10(node0.8.26)
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 uninitialized fixed array.
44  int size,
45  PretenureFlag pretenure = NOT_TENURED);
46 
47  // Allocate a new fixed array with non-existing entries (the hole).
49  int size,
50  PretenureFlag pretenure = NOT_TENURED);
51 
52  // Allocate a new uninitialized fixed double array.
54  int size,
55  PretenureFlag pretenure = NOT_TENURED);
56 
58  int at_least_space_for);
59 
61  int at_least_space_for);
62 
63  Handle<StringDictionary> NewStringDictionary(int at_least_space_for);
64 
65  Handle<ObjectHashSet> NewObjectHashSet(int at_least_space_for);
66 
67  Handle<ObjectHashTable> NewObjectHashTable(int at_least_space_for);
68 
69  Handle<DescriptorArray> NewDescriptorArray(int number_of_descriptors);
71  int deopt_entry_count,
72  PretenureFlag pretenure);
74  int deopt_entry_count,
75  PretenureFlag pretenure);
76  // Allocates a pre-tenured empty AccessorPair.
78 
80 
85  int from,
86  int length);
88  Handle<String> LookupAsciiSymbol(const char* str) {
89  return LookupSymbol(CStrVector(str));
90  }
91 
92 
93  // String creation functions. Most of the string creation functions take
94  // a Heap::PretenureFlag argument to optionally request that they be
95  // allocated in the old generation. The pretenure flag defaults to
96  // DONT_TENURE.
97  //
98  // Creates a new String object. There are two String encodings: ASCII and
99  // two byte. One should choose between the three string factory functions
100  // based on the encoding of the string buffer that the string is
101  // initialized from.
102  // - ...FromAscii initializes the string from a buffer that is ASCII
103  // encoded (it does not check that the buffer is ASCII encoded) and
104  // the result will be ASCII encoded.
105  // - ...FromUtf8 initializes the string from a buffer that is UTF-8
106  // encoded. If the characters are all single-byte characters, the
107  // result will be ASCII encoded, otherwise it will converted to two
108  // byte.
109  // - ...FromTwoByte initializes the string from a buffer that is two
110  // byte encoded. If the characters are all single-byte characters,
111  // the result will be converted to ASCII, otherwise it will be left as
112  // two byte.
113  //
114  // ASCII strings are pretenured when used as keys in the SourceCodeCache.
116  Vector<const char> str,
117  PretenureFlag pretenure = NOT_TENURED);
118 
119  // UTF8 strings are pretenured when used for regexp literal patterns and
120  // flags in the parser.
122  Vector<const char> str,
123  PretenureFlag pretenure = NOT_TENURED);
124 
126  Vector<const uc16> str,
127  PretenureFlag pretenure = NOT_TENURED);
128 
129  // Allocates and partially initializes an ASCII or TwoByte String. The
130  // characters of the string are uninitialized. Currently used in regexp code
131  // only, where they are pretenured.
133  int length,
134  PretenureFlag pretenure = NOT_TENURED);
136  int length,
137  PretenureFlag pretenure = NOT_TENURED);
138 
139  // Create a new cons string object which consists of a pair of strings.
141  Handle<String> second);
142 
143  // Create a new string object which holds a substring of a string.
145  int begin,
146  int end);
147 
148  // Create a new string object which holds a proper substring of a string.
150  int begin,
151  int end);
152 
153  // Creates a new external String object. There are two String encodings
154  // in the system: ASCII and two byte. Unlike other String types, it does
155  // not make sense to have a UTF-8 factory function for external strings,
156  // because we cannot change the underlying buffer.
158  const ExternalAsciiString::Resource* resource);
160  const ExternalTwoByteString::Resource* resource);
161 
162  // Create a global (but otherwise uninitialized) context.
164 
165  // Create a module context.
167  Handle<ScopeInfo> scope_info);
168 
169  // Create a function context.
171 
172  // Create a catch context.
174  Handle<Context> previous,
176  Handle<Object> thrown_object);
177 
178  // Create a 'with' context.
180  Handle<Context> previous,
181  Handle<JSObject> extension);
182 
183  // Create a block context.
185  Handle<Context> previous,
186  Handle<ScopeInfo> scope_info);
187 
188  // Return the Symbol matching the passed in string.
190 
191  // Allocate a new struct. The struct is pretenured (allocated directly in
192  // the old generation).
194 
196 
198 
199  // Foreign objects are pretenured when allocated by the bootstrapper.
201  PretenureFlag pretenure = NOT_TENURED);
202 
203  // Allocate a new foreign object. The foreign is pretenured (allocated
204  // directly in the old generation).
206 
207  Handle<ByteArray> NewByteArray(int length,
208  PretenureFlag pretenure = NOT_TENURED);
209 
211  int length,
212  ExternalArrayType array_type,
213  void* external_pointer,
214  PretenureFlag pretenure = NOT_TENURED);
215 
217  Handle<Object> value);
218 
221  int instance_size,
222  ElementsKind elements_kind = TERMINAL_FAST_ELEMENTS_KIND);
223 
225 
227 
228  // Copy the map adding more inobject properties if possible without
229  // overflowing the instance size.
230  Handle<Map> CopyMap(Handle<Map> map, int extra_inobject_props);
231 
233 
235  ElementsKind elements_kind);
236 
238 
241 
242  // Numbers (e.g. literals) are pretenured by the parser.
243  Handle<Object> NewNumber(double value,
244  PretenureFlag pretenure = NOT_TENURED);
245 
247  PretenureFlag pretenure = NOT_TENURED);
248  Handle<Object> NewNumberFromUint(uint32_t value,
249  PretenureFlag pretenure = NOT_TENURED);
250 
251  // These objects are used by the api to create env-independent data
252  // structures in the heap.
254 
256 
257  // JS objects are pretenured when allocated by the bootstrapper and
258  // runtime.
260  PretenureFlag pretenure = NOT_TENURED);
261 
262  // Global objects are pretenured.
264 
265  // JS objects are pretenured when allocated by the bootstrapper and
266  // runtime.
268 
269  // JS modules are pretenured.
271 
272  // JS arrays are pretenured when allocated by the parser.
274  int capacity,
276  PretenureFlag pretenure = NOT_TENURED);
277 
279  Handle<FixedArrayBase> elements,
281  PretenureFlag pretenure = NOT_TENURED);
282 
284  int capacity,
285  int length);
286 
287  void SetContent(Handle<JSArray> array, Handle<FixedArrayBase> elements);
288 
291  Handle<FixedArrayBase> elements,
292  uint32_t length,
293  EnsureElementsMode mode);
294 
296 
297  // Change the type of the argument into a JS object/function and reinitialize.
298  void BecomeJSObject(Handle<JSReceiver> object);
300 
301  void SetIdentityHash(Handle<JSObject> object, Object* hash);
302 
304  Handle<Object> prototype);
305 
308  LanguageMode language_mode);
309 
310  Handle<JSFunction> NewFunction(Handle<Object> super, bool is_global);
311 
313  Handle<SharedFunctionInfo> function_info,
314  Handle<Map> function_map,
315  PretenureFlag pretenure);
316 
318  Handle<SharedFunctionInfo> function_info,
319  Handle<Context> context,
320  PretenureFlag pretenure = TENURED);
321 
322  Handle<ScopeInfo> NewScopeInfo(int length);
323 
324  Handle<Code> NewCode(const CodeDesc& desc,
326  Handle<Object> self_reference,
327  bool immovable = false);
328 
330 
332 
335  Handle<Context> global_context);
336 
337  // Interface for creating error objects.
338 
339  Handle<Object> NewError(const char* maker, const char* type,
340  Handle<JSArray> args);
342  Handle<Object> NewError(const char* maker, const char* type,
343  Vector< Handle<Object> > args);
344  Handle<Object> NewError(const char* type,
345  Vector< Handle<Object> > args);
347  Handle<Object> NewError(const char* constructor,
348  Handle<String> message);
349 
350  Handle<Object> NewTypeError(const char* type,
351  Vector< Handle<Object> > args);
353 
354  Handle<Object> NewRangeError(const char* type,
355  Vector< Handle<Object> > args);
357 
360 
362  Vector< Handle<Object> > args);
364 
365  Handle<Object> NewEvalError(const char* type,
366  Vector< Handle<Object> > args);
367 
368 
371  int instance_size,
372  Handle<Code> code,
373  bool force_initial_map);
374 
376  Handle<SharedFunctionInfo> shared, Handle<Object> prototype);
377 
378 
381  int instance_size,
382  Handle<JSObject> prototype,
383  Handle<Code> code,
384  bool force_initial_map);
385 
387  Handle<Code> code);
388 
391  Handle<String> key,
392  Handle<Object> value,
393  PropertyAttributes attributes);
394 
396  Handle<String> Uint32ToString(uint32_t value);
397 
402  };
403 
407 
409 
410  // Installs interceptors on the instance. 'desc' is a function template,
411  // and instance is an object instance created by the function of this
412  // function template.
414  Handle<JSObject> instance,
415  bool* pending_exception);
416 
417 #define ROOT_ACCESSOR(type, name, camel_name) \
418  inline Handle<type> name() { \
419  return Handle<type>(BitCast<type**>( \
420  &isolate()->heap()->roots_[Heap::k##camel_name##RootIndex])); \
421  }
423 #undef ROOT_ACCESSOR_ACCESSOR
424 
425 #define SYMBOL_ACCESSOR(name, str) \
426  inline Handle<String> name() { \
427  return Handle<String>(BitCast<String**>( \
428  &isolate()->heap()->roots_[Heap::k##name##RootIndex])); \
429  }
431 #undef SYMBOL_ACCESSOR
432 
434  return Handle<String>(&isolate()->heap()->hidden_symbol_);
435  }
436 
439  int number_of_literals,
440  Handle<Code> code,
441  Handle<ScopeInfo> scope_info);
443 
446  Handle<JSArray> arguments,
447  int start_position,
448  int end_position,
449  Handle<Object> script,
450  Handle<Object> stack_trace,
451  Handle<Object> stack_frames);
452 
455  uint32_t key,
456  Handle<Object> value);
457 
460  uint32_t key,
461  Handle<Object> value);
462 
463 #ifdef ENABLE_DEBUGGER_SUPPORT
464  Handle<DebugInfo> NewDebugInfo(Handle<SharedFunctionInfo> shared);
465 #endif
466 
467  // Return a map using the map cache in the global context.
468  // The key the an ordered set of property names.
470  Handle<FixedArray> keys);
471 
472  // Creates a new FixedArray that holds the data associated with the
473  // atom regexp and stores it in the regexp.
476  Handle<String> source,
478  Handle<Object> match_pattern);
479 
480  // Creates a new FixedArray that holds the data associated with the
481  // irregexp regexp and stores it in the regexp.
484  Handle<String> source,
486  int capture_count);
487 
488  // Returns the value for a known global constant (a property of the global
489  // object which is neither configurable nor writable) like 'undefined'.
490  // Returns a null handle when the given name is unknown.
492 
493  // Converts the given boolean condition to JavaScript boolean value.
494  Handle<Object> ToBoolean(bool value);
495 
496  private:
497  Isolate* isolate() { return reinterpret_cast<Isolate*>(this); }
498 
499  Handle<JSFunction> NewFunctionHelper(Handle<String> name,
500  Handle<Object> prototype);
501 
502  Handle<JSFunction> NewFunctionWithoutPrototypeHelper(
504  LanguageMode language_mode);
505 
506  Handle<DescriptorArray> CopyAppendCallbackDescriptors(
508  Handle<Object> descriptors);
509 
510  // Create a new map cache.
511  Handle<MapCache> NewMapCache(int at_least_space_for);
512 
513  // Update the map cache in the global context with (keys, map)
514  Handle<MapCache> AddToMapCache(Handle<Context> context,
515  Handle<FixedArray> keys,
516  Handle<Map> map);
517 };
518 
519 
520 } } // namespace v8::internal
521 
522 #endif // V8_FACTORY_H_
byte * Address
Definition: globals.h:172
Handle< JSObject > NewFunctionPrototype(Handle< JSFunction > function)
Definition: factory.cc:461
Handle< JSObject > NewJSObject(Handle< JSFunction > constructor, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:973
Handle< String > NewExternalStringFromAscii(const ExternalAsciiString::Resource *resource)
Definition: factory.cc:270
Handle< JSFunction > NewFunctionFromSharedFunctionInfo(Handle< SharedFunctionInfo > function_info, Handle< Context > context, PretenureFlag pretenure=TENURED)
Definition: factory.cc:541
Handle< String > SymbolFromString(Handle< String > value)
Definition: factory.cc:905
Handle< FixedArray > NewFixedArrayWithHoles(int size, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:53
Handle< String > NewSubString(Handle< String > str, int begin, int end)
Definition: factory.cc:251
Handle< Script > NewScript(Handle< String > source)
Definition: factory.cc:366
Handle< SeqAsciiString > NewRawAsciiString(int length, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:225
Handle< ObjectHashTable > NewObjectHashTable(int at_least_space_for)
Definition: factory.cc:107
Handle< JSFunction > BaseNewFunctionFromSharedFunctionInfo(Handle< SharedFunctionInfo > function_info, Handle< Map > function_map, PretenureFlag pretenure)
Definition: factory.cc:527
Handle< JSArray > NewJSArray(int capacity, ElementsKind elements_kind=TERMINAL_FAST_ELEMENTS_KIND, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:1005
value format" "after each garbage collection") DEFINE_bool(print_cumulative_gc_stat, false, "print cumulative GC statistics in name=value format on exit") DEFINE_bool(trace_gc_verbose, false, "print more details following each garbage collection") DEFINE_bool(trace_fragmentation, false, "report fragmentation for old pointer and data pages") DEFINE_bool(collect_maps, true, "garbage collect maps from which no objects can be reached") DEFINE_bool(flush_code, true, "flush code that we expect not to use again before full gc") DEFINE_bool(incremental_marking, true, "use incremental marking") DEFINE_bool(incremental_marking_steps, true, "do incremental marking steps") DEFINE_bool(trace_incremental_marking, false, "trace progress of the incremental marking") DEFINE_bool(use_idle_notification, true, "Use idle notification to reduce memory footprint.") DEFINE_bool(send_idle_notification, false, "Send idle notifcation between stress runs.") DEFINE_bool(use_ic, true, "use inline caching") DEFINE_bool(native_code_counters, false, "generate extra code for manipulating stats counters") DEFINE_bool(always_compact, false, "Perform compaction on every full GC") DEFINE_bool(lazy_sweeping, true, "Use lazy sweeping for old pointer and data spaces") DEFINE_bool(never_compact, false, "Never perform compaction on full GC-testing only") DEFINE_bool(compact_code_space, true, "Compact code space on full non-incremental collections") DEFINE_bool(cleanup_code_caches_at_gc, true, "Flush inline caches prior to mark compact collection and" "flush code caches in maps during mark compact cycle.") DEFINE_int(random_seed, 0, "Default seed for initializing random generator" "(0, the default, means to use system random).") DEFINE_bool(use_verbose_printer, true, "allows verbose printing") DEFINE_bool(allow_natives_syntax, false, "allow natives syntax") DEFINE_bool(trace_sim, false, "Trace simulator execution") DEFINE_bool(check_icache, false, "Check icache flushes in ARM and MIPS simulator") DEFINE_int(stop_sim_at, 0, "Simulator stop after x number of instructions") DEFINE_int(sim_stack_alignment, 8, "Stack alingment in bytes in simulator(4 or 8, 8 is default)") DEFINE_bool(trace_exception, false, "print stack trace when throwing exceptions") DEFINE_bool(preallocate_message_memory, false, "preallocate some memory to build stack traces.") DEFINE_bool(randomize_hashes, true, "randomize hashes to avoid predictable hash collisions" "(with snapshots this option cannot override the baked-in seed)") DEFINE_int(hash_seed, 0, "Fixed seed to use to hash property keys(0 means random)" "(with snapshots this option cannot override the baked-in seed)") DEFINE_bool(preemption, false, "activate a 100ms timer that switches between V8 threads") DEFINE_bool(regexp_optimization, true, "generate optimized regexp code") DEFINE_bool(testing_bool_flag, true, "testing_bool_flag") DEFINE_int(testing_int_flag, 13, "testing_int_flag") DEFINE_float(testing_float_flag, 2.5, "float-flag") DEFINE_string(testing_string_flag, "Hello, world!", "string-flag") DEFINE_int(testing_prng_seed, 42, "Seed used for threading test randomness") DEFINE_string(testing_serialization_file, "/tmp/serdes", "file in which to serialize heap") DEFINE_bool(help, false, "Print usage message, including flags, on console") DEFINE_bool(dump_counters, false, "Dump counters on exit") DEFINE_string(map_counters, "", "Map counters to a file") DEFINE_args(js_arguments, JSARGUMENTS_INIT, "Pass all remaining arguments to the script.Alias for\"--\".") DEFINE_bool(debug_compile_events, true,"Enable debugger compile events") DEFINE_bool(debug_script_collected_events, true,"Enable debugger script collected events") DEFINE_bool(gdbjit, false,"enable GDBJIT interface (disables compacting GC)") DEFINE_bool(gdbjit_full, false,"enable GDBJIT interface for all code objects") DEFINE_bool(gdbjit_dump, false,"dump elf objects with debug info to disk") DEFINE_string(gdbjit_dump_filter,"","dump only objects containing this substring") DEFINE_bool(force_marking_deque_overflows, false,"force overflows of marking deque by reducing it's size ""to 64 words") DEFINE_bool(stress_compaction, false,"stress the GC compactor to flush out bugs (implies ""--force_marking_deque_overflows)")#define FLAG DEFINE_bool(enable_slow_asserts, false,"enable asserts that are slow to execute") DEFINE_bool(trace_codegen, false,"print name of functions for which code is generated") DEFINE_bool(print_source, false,"pretty print source code") DEFINE_bool(print_builtin_source, false,"pretty print source code for builtins") DEFINE_bool(print_ast, false,"print source AST") DEFINE_bool(print_builtin_ast, false,"print source AST for builtins") DEFINE_string(stop_at,"","function name where to insert a breakpoint") DEFINE_bool(print_builtin_scopes, false,"print scopes for builtins") DEFINE_bool(print_scopes, false,"print scopes") DEFINE_bool(trace_contexts, false,"trace contexts operations") DEFINE_bool(gc_greedy, false,"perform GC prior to some allocations") DEFINE_bool(gc_verbose, false,"print stuff during garbage collection") DEFINE_bool(heap_stats, false,"report heap statistics before and after GC") DEFINE_bool(code_stats, false,"report code statistics after GC") DEFINE_bool(verify_heap, false,"verify heap pointers before and after GC") DEFINE_bool(print_handles, false,"report handles after GC") DEFINE_bool(print_global_handles, false,"report global handles after GC") DEFINE_bool(trace_ic, false,"trace inline cache state transitions") DEFINE_bool(print_interfaces, false,"print interfaces") DEFINE_bool(print_interface_details, false,"print interface inference details") DEFINE_int(print_interface_depth, 5,"depth for printing interfaces") DEFINE_bool(trace_normalization, false,"prints when objects are turned into dictionaries.") DEFINE_bool(trace_lazy, false,"trace lazy compilation") DEFINE_bool(collect_heap_spill_statistics, false,"report heap spill statistics along with heap_stats ""(requires heap_stats)") DEFINE_bool(trace_isolates, false,"trace isolate state changes") DEFINE_bool(log_state_changes, false,"Log state changes.") DEFINE_bool(regexp_possessive_quantifier, false,"enable possessive quantifier syntax for testing") DEFINE_bool(trace_regexp_bytecodes, false,"trace regexp bytecode execution") DEFINE_bool(trace_regexp_assembler, false,"trace regexp macro assembler calls.")#define FLAG DEFINE_bool(log, false,"Minimal logging (no API, code, GC, suspect, or handles samples).") DEFINE_bool(log_all, false,"Log all events to the log file.") DEFINE_bool(log_runtime, false,"Activate runtime system %Log call.") DEFINE_bool(log_api, false,"Log API events to the log file.") DEFINE_bool(log_code, false,"Log code events to the log file without profiling.") DEFINE_bool(log_gc, false,"Log heap samples on garbage collection for the hp2ps tool.") DEFINE_bool(log_handles, false,"Log global handle events.") DEFINE_bool(log_snapshot_positions, false,"log positions of (de)serialized objects in the snapshot.") DEFINE_bool(log_suspect, false,"Log suspect operations.") DEFINE_bool(prof, false,"Log statistical profiling information (implies --log-code).") DEFINE_bool(prof_auto, true,"Used with --prof, starts profiling automatically") DEFINE_bool(prof_lazy, false,"Used with --prof, only does sampling and logging"" when profiler is active (implies --noprof_auto).") DEFINE_bool(prof_browser_mode, true,"Used with --prof, turns on browser-compatible mode for profiling.") DEFINE_bool(log_regexp, false,"Log regular expression execution.") DEFINE_bool(sliding_state_window, false,"Update sliding state window counters.") DEFINE_string(logfile,"v8.log","Specify the name of the log file.") DEFINE_bool(ll_prof, false,"Enable low-level linux profiler.")#define FLAG DEFINE_bool(trace_elements_transitions, false,"trace elements transitions") DEFINE_bool(print_code_stubs, false,"print code stubs") DEFINE_bool(test_secondary_stub_cache, false,"test secondary stub cache by disabling the primary one") DEFINE_bool(test_primary_stub_cache, false,"test primary stub cache by disabling the secondary one") DEFINE_bool(print_code, false,"print generated code") DEFINE_bool(print_opt_code, false,"print optimized code") DEFINE_bool(print_unopt_code, false,"print unoptimized code before ""printing optimized code based on it") DEFINE_bool(print_code_verbose, false,"print more information for code") DEFINE_bool(print_builtin_code, false,"print generated code for builtins")#43"/Users/thlorenz/dev/dx/v8-perf/build/v8/src/flags.cc"2#define FLAG_MODE_DEFINE_DEFAULTS#1"/Users/thlorenz/dev/dx/v8-perf/build/v8/src/flag-definitions.h"1#define FLAG_FULL(ftype, ctype, nam, def, cmt)#define FLAG_READONLY(ftype, ctype, nam, def, cmt)#define DEFINE_implication(whenflag, thenflag)#define DEFINE_bool(nam, def, cmt)#define DEFINE_int(nam, def, cmt)#define DEFINE_float(nam, def, cmt)#define DEFINE_string(nam, def, cmt)#define DEFINE_args(nam, def, cmt)#define FLAG DEFINE_bool(use_strict, false,"enforce strict mode") DEFINE_bool(es5_readonly, false,"activate correct semantics for inheriting readonliness") DEFINE_bool(es52_globals, false,"activate new semantics for global var declarations") DEFINE_bool(harmony_typeof, false,"enable harmony semantics for typeof") DEFINE_bool(harmony_scoping, false,"enable harmony block scoping") DEFINE_bool(harmony_modules, false,"enable harmony modules (implies block scoping)") DEFINE_bool(harmony_proxies, false,"enable harmony proxies") DEFINE_bool(harmony_collections, false,"enable harmony collections (sets, maps, and weak maps)") DEFINE_bool(harmony, false,"enable all harmony features (except typeof)") DEFINE_implication(harmony, harmony_scoping) DEFINE_implication(harmony, harmony_modules) DEFINE_implication(harmony, harmony_proxies) DEFINE_implication(harmony, harmony_collections) DEFINE_implication(harmony_modules, harmony_scoping) DEFINE_bool(packed_arrays, false,"optimizes arrays that have no holes") DEFINE_bool(smi_only_arrays, true,"tracks arrays with only smi values") DEFINE_bool(clever_optimizations, true,"Optimize object size, Array shift, DOM strings and string +") DEFINE_bool(unbox_double_arrays, true,"automatically unbox arrays of doubles") DEFINE_bool(string_slices, true,"use string slices") DEFINE_bool(crankshaft, true,"use crankshaft") DEFINE_string(hydrogen_filter,"","optimization filter") DEFINE_bool(use_range, true,"use hydrogen range analysis") DEFINE_bool(eliminate_dead_phis, true,"eliminate dead phis") DEFINE_bool(use_gvn, true,"use hydrogen global value numbering") DEFINE_bool(use_canonicalizing, true,"use hydrogen instruction canonicalizing") DEFINE_bool(use_inlining, true,"use function inlining") DEFINE_int(max_inlined_source_size, 600,"maximum source size in bytes considered for a single inlining") DEFINE_int(max_inlined_nodes, 196,"maximum number of AST nodes considered for a single inlining") DEFINE_int(max_inlined_nodes_cumulative, 196,"maximum cumulative number of AST nodes considered for inlining") DEFINE_bool(loop_invariant_code_motion, true,"loop invariant code motion") DEFINE_bool(collect_megamorphic_maps_from_stub_cache, true,"crankshaft harvests type feedback from stub cache") DEFINE_bool(hydrogen_stats, false,"print statistics for hydrogen") DEFINE_bool(trace_hydrogen, false,"trace generated hydrogen to file") DEFINE_string(trace_phase,"Z","trace generated IR for specified phases") DEFINE_bool(trace_inlining, false,"trace inlining decisions") DEFINE_bool(trace_alloc, false,"trace register allocator") DEFINE_bool(trace_all_uses, false,"trace all use positions") DEFINE_bool(trace_range, false,"trace range analysis") DEFINE_bool(trace_gvn, false,"trace global value numbering") DEFINE_bool(trace_representation, false,"trace representation types") DEFINE_bool(stress_pointer_maps, false,"pointer map for every instruction") DEFINE_bool(stress_environments, false,"environment for every instruction") DEFINE_int(deopt_every_n_times, 0,"deoptimize every n times a deopt point is passed") DEFINE_bool(trap_on_deopt, false,"put a break point before deoptimizing") DEFINE_bool(deoptimize_uncommon_cases, true,"deoptimize uncommon cases") DEFINE_bool(polymorphic_inlining, true,"polymorphic inlining") DEFINE_bool(use_osr, true,"use on-stack replacement") DEFINE_bool(array_bounds_checks_elimination, false,"perform array bounds checks elimination") DEFINE_bool(array_index_dehoisting, false,"perform array index dehoisting") DEFINE_bool(trace_osr, false,"trace on-stack replacement") DEFINE_int(stress_runs, 0,"number of stress runs") DEFINE_bool(optimize_closures, true,"optimize closures") DEFINE_bool(inline_construct, true,"inline constructor calls") DEFINE_bool(inline_arguments, true,"inline functions with arguments object") DEFINE_int(loop_weight, 1,"loop weight for representation inference") DEFINE_bool(optimize_for_in, true,"optimize functions containing for-in loops") DEFINE_bool(experimental_profiler, true,"enable all profiler experiments") DEFINE_bool(watch_ic_patching, false,"profiler considers IC stability") DEFINE_int(frame_count, 1,"number of stack frames inspected by the profiler") DEFINE_bool(self_optimization, false,"primitive functions trigger their own optimization") DEFINE_bool(direct_self_opt, false,"call recompile stub directly when self-optimizing") DEFINE_bool(retry_self_opt, false,"re-try self-optimization if it failed") DEFINE_bool(count_based_interrupts, false,"trigger profiler ticks based on counting instead of timing") DEFINE_bool(interrupt_at_exit, false,"insert an interrupt check at function exit") DEFINE_bool(weighted_back_edges, false,"weight back edges by jump distance for interrupt triggering") DEFINE_int(interrupt_budget, 5900,"execution budget before interrupt is triggered") DEFINE_int(type_info_threshold, 15,"percentage of ICs that must have type info to allow optimization") DEFINE_int(self_opt_count, 130,"call count before self-optimization") DEFINE_implication(experimental_profiler, watch_ic_patching) DEFINE_implication(experimental_profiler, self_optimization) DEFINE_implication(experimental_profiler, retry_self_opt) DEFINE_implication(experimental_profiler, count_based_interrupts) DEFINE_implication(experimental_profiler, interrupt_at_exit) DEFINE_implication(experimental_profiler, weighted_back_edges) DEFINE_bool(trace_opt_verbose, false,"extra verbose compilation tracing") DEFINE_implication(trace_opt_verbose, trace_opt) DEFINE_bool(debug_code, false,"generate extra code (assertions) for debugging") DEFINE_bool(code_comments, false,"emit comments in code disassembly") DEFINE_bool(enable_sse2, true,"enable use of SSE2 instructions if available") DEFINE_bool(enable_sse3, true,"enable use of SSE3 instructions if available") DEFINE_bool(enable_sse4_1, true,"enable use of SSE4.1 instructions if available") DEFINE_bool(enable_cmov, true,"enable use of CMOV instruction if available") DEFINE_bool(enable_rdtsc, true,"enable use of RDTSC instruction if available") DEFINE_bool(enable_sahf, true,"enable use of SAHF instruction if available (X64 only)") DEFINE_bool(enable_vfp3, true,"enable use of VFP3 instructions if available - this implies ""enabling ARMv7 instructions (ARM only)") DEFINE_bool(enable_armv7, true,"enable use of ARMv7 instructions if available (ARM only)") DEFINE_bool(enable_fpu, true,"enable use of MIPS FPU instructions if available (MIPS only)") DEFINE_string(expose_natives_as, NULL,"expose natives in global object") DEFINE_string(expose_debug_as, NULL,"expose debug in global object") DEFINE_bool(expose_gc, false,"expose gc extension") DEFINE_bool(expose_externalize_string, false,"expose externalize string extension") DEFINE_int(stack_trace_limit, 10,"number of stack frames to capture") DEFINE_bool(builtins_in_stack_traces, false,"show built-in functions in stack traces") DEFINE_bool(disable_native_files, false,"disable builtin natives files") DEFINE_bool(inline_new, true,"use fast inline allocation") DEFINE_bool(stack_trace_on_abort, true,"print a stack trace if an assertion failure occurs") DEFINE_bool(trace, false,"trace function calls") DEFINE_bool(mask_constants_with_cookie, true,"use random jit cookie to mask large constants") DEFINE_bool(lazy, true,"use lazy compilation") DEFINE_bool(trace_opt, false,"trace lazy optimization") DEFINE_bool(trace_opt_stats, false,"trace lazy optimization statistics") DEFINE_bool(opt, true,"use adaptive optimizations") DEFINE_bool(always_opt, false,"always try to optimize functions") DEFINE_bool(prepare_always_opt, false,"prepare for turning on always opt") DEFINE_bool(trace_deopt, false,"trace deoptimization") DEFINE_int(min_preparse_length, 1024,"minimum length for automatic enable preparsing") DEFINE_bool(always_full_compiler, false,"try to use the dedicated run-once backend for all code") DEFINE_bool(trace_bailout, false,"print reasons for falling back to using the classic V8 backend") DEFINE_bool(compilation_cache, true,"enable compilation cache") DEFINE_bool(cache_prototype_transitions, true,"cache prototype transitions") DEFINE_bool(trace_debug_json, false,"trace debugging JSON request/response") DEFINE_bool(debugger_auto_break, true,"automatically set the debug break flag when debugger commands are ""in the queue") DEFINE_bool(enable_liveedit, true,"enable liveedit experimental feature") DEFINE_bool(break_on_abort, true,"always cause a debug break before aborting") DEFINE_int(stack_size, kPointerSize *123,"default size of stack region v8 is allowed to use (in kBytes)") DEFINE_int(max_stack_trace_source_length, 300,"maximum length of function source code printed in a stack trace.") DEFINE_bool(always_inline_smi_code, false,"always inline smi code in non-opt code") DEFINE_int(max_new_space_size, 0,"max size of the new generation (in kBytes)") DEFINE_int(max_old_space_size, 0,"max size of the old generation (in Mbytes)") DEFINE_int(max_executable_size, 0,"max size of executable memory (in Mbytes)") DEFINE_bool(gc_global, false,"always perform global GCs") DEFINE_int(gc_interval,-1,"garbage collect after <n> allocations") DEFINE_bool(trace_gc, false,"print one trace line following each garbage collection") DEFINE_bool(trace_gc_nvp, false,"print one detailed trace line in name=value format ""after each garbage collection") DEFINE_bool(print_cumulative_gc_stat, false,"print cumulative GC statistics in name=value format on exit") DEFINE_bool(trace_gc_verbose, false,"print more details following each garbage collection") DEFINE_bool(trace_fragmentation, false,"report fragmentation for old pointer and data pages") DEFINE_bool(collect_maps, true,"garbage collect maps from which no objects can be reached") DEFINE_bool(flush_code, true,"flush code that we expect not to use again before full gc") DEFINE_bool(incremental_marking, true,"use incremental marking") DEFINE_bool(incremental_marking_steps, true,"do incremental marking steps") DEFINE_bool(trace_incremental_marking, false,"trace progress of the incremental marking") DEFINE_bool(use_idle_notification, true,"Use idle notification to reduce memory footprint.") DEFINE_bool(send_idle_notification, false,"Send idle notifcation between stress runs.") DEFINE_bool(use_ic, true,"use inline caching") DEFINE_bool(native_code_counters, false,"generate extra code for manipulating stats counters") DEFINE_bool(always_compact, false,"Perform compaction on every full GC") DEFINE_bool(lazy_sweeping, true,"Use lazy sweeping for old pointer and data spaces") DEFINE_bool(never_compact, false,"Never perform compaction on full GC - testing only") DEFINE_bool(compact_code_space, true,"Compact code space on full non-incremental collections") DEFINE_bool(cleanup_code_caches_at_gc, true,"Flush inline caches prior to mark compact collection and ""flush code caches in maps during mark compact cycle.") DEFINE_int(random_seed, 0,"Default seed for initializing random generator ""(0, the default, means to use system random).") DEFINE_bool(use_verbose_printer, true,"allows verbose printing") DEFINE_bool(allow_natives_syntax, false,"allow natives syntax") DEFINE_bool(trace_sim, false,"Trace simulator execution") DEFINE_bool(check_icache, false,"Check icache flushes in ARM and MIPS simulator") DEFINE_int(stop_sim_at, 0,"Simulator stop after x number of instructions") DEFINE_int(sim_stack_alignment, 8,"Stack alingment in bytes in simulator (4 or 8, 8 is default)") DEFINE_bool(trace_exception, false,"print stack trace when throwing exceptions") DEFINE_bool(preallocate_message_memory, false,"preallocate some memory to build stack traces.") DEFINE_bool(randomize_hashes, true,"randomize hashes to avoid predictable hash collisions ""(with snapshots this option cannot override the baked-in seed)") DEFINE_int(hash_seed, 0,"Fixed seed to use to hash property keys (0 means random)""(with snapshots this option cannot override the baked-in seed)") DEFINE_bool(preemption, false,"activate a 100ms timer that switches between V8 threads") DEFINE_bool(regexp_optimization, true,"generate optimized regexp code") DEFINE_bool(testing_bool_flag, true,"testing_bool_flag") DEFINE_int(testing_int_flag, 13,"testing_int_flag") DEFINE_float(testing_float_flag, 2.5,"float-flag") DEFINE_string(testing_string_flag,"Hello, world!","string-flag") DEFINE_int(testing_prng_seed, 42,"Seed used for threading test randomness") DEFINE_string(testing_serialization_file,"/tmp/serdes","file in which to serialize heap") DEFINE_bool(help, false,"Print usage message, including flags, on console") DEFINE_bool(dump_counters, false,"Dump counters on exit") DEFINE_string(map_counters,"","Map counters to a file") DEFINE_args(js_arguments, JSARGUMENTS_INIT,"Pass all remaining arguments to the script. Alias for \"--\".") DEFINE_bool(debug_compile_events, true,"Enable debugger compile events") DEFINE_bool(debug_script_collected_events, true,"Enable debugger script collected events") DEFINE_bool(gdbjit, false,"enable GDBJIT interface (disables compacting GC)") DEFINE_bool(gdbjit_full, false,"enable GDBJIT interface for all code objects") DEFINE_bool(gdbjit_dump, false,"dump elf objects with debug info to disk") DEFINE_string(gdbjit_dump_filter,"","dump only objects containing this substring") DEFINE_bool(force_marking_deque_overflows, false,"force overflows of marking deque by reducing it's size ""to 64 words") DEFINE_bool(stress_compaction, false,"stress the GC compactor to flush out bugs (implies ""--force_marking_deque_overflows)")#define FLAG DEFINE_bool(enable_slow_asserts, false,"enable asserts that are slow to execute") DEFINE_bool(trace_codegen, false,"print name of functions for which code is generated") DEFINE_bool(print_source, false,"pretty print source code") DEFINE_bool(print_builtin_source, false,"pretty print source code for builtins") DEFINE_bool(print_ast, false,"print source AST") DEFINE_bool(print_builtin_ast, false,"print source AST for builtins") DEFINE_string(stop_at,"","function name where to insert a breakpoint") DEFINE_bool(print_builtin_scopes, false,"print scopes for builtins") DEFINE_bool(print_scopes, false,"print scopes") DEFINE_bool(trace_contexts, false,"trace contexts operations") DEFINE_bool(gc_greedy, false,"perform GC prior to some allocations") DEFINE_bool(gc_verbose, false,"print stuff during garbage collection") DEFINE_bool(heap_stats, false,"report heap statistics before and after GC") DEFINE_bool(code_stats, false,"report code statistics after GC") DEFINE_bool(verify_heap, false,"verify heap pointers before and after GC") DEFINE_bool(print_handles, false,"report handles after GC") DEFINE_bool(print_global_handles, false,"report global handles after GC") DEFINE_bool(trace_ic, false,"trace inline cache state transitions") DEFINE_bool(print_interfaces, false,"print interfaces") DEFINE_bool(print_interface_details, false,"print interface inference details") DEFINE_int(print_interface_depth, 5,"depth for printing interfaces") DEFINE_bool(trace_normalization, false,"prints when objects are turned into dictionaries.") DEFINE_bool(trace_lazy, false,"trace lazy compilation") DEFINE_bool(collect_heap_spill_statistics, false,"report heap spill statistics along with heap_stats ""(requires heap_stats)") DEFINE_bool(trace_isolates, false,"trace isolate state changes") DEFINE_bool(log_state_changes, false,"Log state changes.") DEFINE_bool(regexp_possessive_quantifier, false,"enable possessive quantifier syntax for testing") DEFINE_bool(trace_regexp_bytecodes, false,"trace regexp bytecode execution") DEFINE_bool(trace_regexp_assembler, false,"trace regexp macro assembler calls.")#define FLAG DEFINE_bool(log, false,"Minimal logging (no API, code, GC, suspect, or handles samples).") DEFINE_bool(log_all, false,"Log all events to the log file.") DEFINE_bool(log_runtime, false,"Activate runtime system %Log call.") DEFINE_bool(log_api, false,"Log API events to the log file.") DEFINE_bool(log_code, false,"Log code events to the log file without profiling.") DEFINE_bool(log_gc, false,"Log heap samples on garbage collection for the hp2ps tool.") DEFINE_bool(log_handles, false,"Log global handle events.") DEFINE_bool(log_snapshot_positions, false,"log positions of (de)serialized objects in the snapshot.") DEFINE_bool(log_suspect, false,"Log suspect operations.") DEFINE_bool(prof, false,"Log statistical profiling information (implies --log-code).") DEFINE_bool(prof_auto, true,"Used with --prof, starts profiling automatically") DEFINE_bool(prof_lazy, false,"Used with --prof, only does sampling and logging"" when profiler is active (implies --noprof_auto).") DEFINE_bool(prof_browser_mode, true,"Used with --prof, turns on browser-compatible mode for profiling.") DEFINE_bool(log_regexp, false,"Log regular expression execution.") DEFINE_bool(sliding_state_window, false,"Update sliding state window counters.") DEFINE_string(logfile,"v8.log","Specify the name of the log file.") DEFINE_bool(ll_prof, false,"Enable low-level linux profiler.")#define FLAG DEFINE_bool(trace_elements_transitions, false,"trace elements transitions") DEFINE_bool(print_code_stubs, false,"print code stubs") DEFINE_bool(test_secondary_stub_cache, false,"test secondary stub cache by disabling the primary one") DEFINE_bool(test_primary_stub_cache, false,"test primary stub cache by disabling the secondary one") DEFINE_bool(print_code, false,"print generated code") DEFINE_bool(print_opt_code, false,"print optimized code") DEFINE_bool(print_unopt_code, false,"print unoptimized code before ""printing optimized code based on it") DEFINE_bool(print_code_verbose, false,"print more information for code") DEFINE_bool(print_builtin_code, false,"print generated code for builtins")#47"/Users/thlorenz/dev/dx/v8-perf/build/v8/src/flags.cc"2 namespace{struct Flag{enum FlagType{TYPE_BOOL, TYPE_INT, TYPE_FLOAT, TYPE_STRING, TYPE_ARGS} name
Definition: flags.cc:1349
Handle< String > hidden_symbol()
Definition: factory.h:433
Handle< Context > NewCatchContext(Handle< JSFunction > function, Handle< Context > previous, Handle< String > name, Handle< Object > thrown_object)
Definition: factory.cc:314
Handle< DescriptorArray > CopyAppendForeignDescriptor(Handle< DescriptorArray > array, Handle< String > key, Handle< Object > value, PropertyAttributes attributes)
Definition: factory.cc:894
Flag flags[]
Definition: flags.cc:1467
int int32_t
Definition: unicode.cc:47
Handle< Context > NewFunctionContext(int length, Handle< JSFunction > function)
Definition: factory.cc:305
Handle< AccessorInfo > NewAccessorInfo()
Definition: factory.cc:358
Handle< JSFunction > NewFunctionWithPrototype(Handle< String > name, InstanceType type, int instance_size, Handle< JSObject > prototype, Handle< Code > code, bool force_initial_map)
Definition: factory.cc:801
ExternalArrayType
Definition: v8.h:1407
Handle< SharedFunctionInfo > NewSharedFunctionInfo(Handle< String > name, int number_of_literals, Handle< Code > code, Handle< ScopeInfo > scope_info)
Definition: factory.cc:1098
Handle< Object > NewNumber(double value, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:581
Handle< JSObject > NewArgumentsObject(Handle< Object > callee, int length)
Definition: factory.cc:1266
Handle< Code > CopyCode(Handle< Code > code)
Definition: factory.cc:868
Handle< String > NumberToString(Handle< Object > number)
Definition: factory.cc:1144
void EnsureCanContainHeapObjectElements(Handle< JSArray > array)
Definition: factory.cc:1049
PropertyAttributes
#define SYMBOL_ACCESSOR(name, str)
Definition: factory.h:425
Handle< String > LookupAsciiSymbol(Vector< const char > str)
Definition: factory.cc:174
Handle< JSMessageObject > NewJSMessageObject(Handle< String > type, Handle< JSArray > arguments, int start_position, int end_position, Handle< Object > script, Handle< Object > stack_trace, Handle< Object > stack_frames)
Definition: factory.cc:1118
Handle< Object > NewSyntaxError(const char *type, Handle< JSArray > args)
Definition: factory.cc:636
Handle< DescriptorArray > NewDescriptorArray(int number_of_descriptors)
Definition: factory.cc:115
Handle< Context > NewModuleContext(Handle< Context > previous, Handle< ScopeInfo > scope_info)
Definition: factory.cc:296
Handle< String > EmergencyNewError(const char *type, Handle< JSArray > args)
Definition: factory.cc:682
Handle< SeededNumberDictionary > DictionaryAtNumberPut(Handle< SeededNumberDictionary >, uint32_t key, Handle< Object > value)
Definition: factory.cc:1156
Handle< Map > GetElementsTransitionMap(Handle< JSObject > object, ElementsKind elements_kind)
Definition: factory.cc:506
Handle< String > NewStringFromUtf8(Vector< const char > str, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:207
Handle< Object > NewRangeError(const char *type, Vector< Handle< Object > > args)
Definition: factory.cc:625
void ConfigureInstance(Handle< FunctionTemplateInfo > desc, Handle< JSObject > instance, bool *pending_exception)
Definition: factory.cc:1460
Handle< StringDictionary > NewStringDictionary(int at_least_space_for)
Definition: factory.cc:73
Handle< Map > CopyMap(Handle< Map > map, int extra_inobject_props)
Definition: factory.cc:474
Handle< JSFunction > NewFunction(Handle< String > name, Handle< Object > prototype)
Definition: factory.cc:1188
Handle< SeqTwoByteString > NewRawTwoByteString(int length, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:234
Handle< JSObject > NewNeanderObject()
Definition: factory.cc:605
Handle< ScopeInfo > NewScopeInfo(int length)
Definition: factory.cc:849
Handle< Map > CopyMapDropTransitions(Handle< Map > map)
Definition: factory.cc:499
void SetIdentityHash(Handle< JSObject > object, Object *hash)
Definition: factory.cc:1091
void SetRegExpAtomData(Handle< JSRegExp > regexp, JSRegExp::Type type, Handle< String > source, JSRegExp::Flags flags, Handle< Object > match_pattern)
Definition: factory.cc:1424
void SetElementsCapacityAndLength(Handle< JSArray > array, int capacity, int length)
Definition: factory.cc:1031
#define ROOT_LIST(V)
Definition: heap.h:155
Handle< Object > ToBoolean(bool value)
Definition: factory.cc:1485
Handle< Object > GlobalConstantFor(Handle< String > name)
Definition: factory.cc:1476
Handle< String > LookupSymbol(Vector< const char > str)
Definition: factory.cc:161
Handle< JSObject > NewJSObjectFromMap(Handle< Map > map)
Definition: factory.cc:997
#define ROOT_ACCESSOR(type, name, camel_name)
Definition: factory.h:417
Handle< String > NewStringFromTwoByte(Vector< const uc16 > str, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:216
Handle< ExternalArray > NewExternalArray(int length, ExternalArrayType array_type, void *external_pointer, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:427
Handle< ByteArray > NewByteArray(int length, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:418
Handle< FixedDoubleArray > NewFixedDoubleArray(int size, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:63
Handle< FixedArray > NewFixedArray(int size, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:44
Handle< JSModule > NewJSModule()
Definition: factory.cc:981
#define SYMBOL_LIST(V)
Definition: heap.h:159
Handle< GlobalObject > NewGlobalObject(Handle< JSFunction > constructor)
Definition: factory.cc:988
Handle< Object > ToObject(Handle< Object > object)
Definition: factory.cc:1222
Handle< Context > NewBlockContext(Handle< JSFunction > function, Handle< Context > previous, Handle< ScopeInfo > scope_info)
Definition: factory.cc:338
Handle< FixedArray > CopyFixedArray(Handle< FixedArray > array)
Definition: factory.cc:516
Vector< const char > CStrVector(const char *data)
Definition: utils.h:525
Handle< String > LookupAsciiSymbol(const char *str)
Definition: factory.h:88
void SetContent(Handle< JSArray > array, Handle< FixedArrayBase > elements)
Definition: factory.cc:1041
Handle< JSArray > NewJSArrayWithElements(Handle< FixedArrayBase > elements, ElementsKind elements_kind=TERMINAL_FAST_ELEMENTS_KIND, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:1019
Handle< Object > NewNumberFromInt(int32_t value, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:589
Handle< String > NewProperSubString(Handle< String > str, int begin, int end)
Definition: factory.cc:260
Handle< DeoptimizationInputData > NewDeoptimizationInputData(int deopt_entry_count, PretenureFlag pretenure)
Definition: factory.cc:124
Handle< JSProxy > NewJSProxy(Handle< Object > handler, Handle< Object > prototype)
Definition: factory.cc:1066
Handle< JSFunction > NewFunctionWithoutPrototype(Handle< String > name, LanguageMode language_mode)
Definition: factory.cc:1212
Handle< DeoptimizationOutputData > NewDeoptimizationOutputData(int deopt_entry_count, PretenureFlag pretenure)
Definition: factory.cc:135
Handle< String > NewStringFromAscii(Vector< const char > str, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:199
Handle< String > NewExternalStringFromTwoByte(const ExternalTwoByteString::Resource *resource)
Definition: factory.cc:279
Handle< TypeFeedbackInfo > NewTypeFeedbackInfo()
Definition: factory.cc:153
Handle< Object > NewReferenceError(const char *type, Vector< Handle< Object > > args)
Definition: factory.cc:646
Handle< JSFunction > CreateApiFunction(Handle< FunctionTemplateInfo > data, ApiInstanceType type=JavaScriptObject)
Definition: factory.cc:1274
void EnsureCanContainElements(Handle< JSArray > array, Handle< FixedArrayBase > elements, uint32_t length, EnsureElementsMode mode)
Definition: factory.cc:1056
void BecomeJSObject(Handle< JSReceiver > object)
Definition: factory.cc:1075
Handle< Object > NewTypeError(const char *type, Vector< Handle< Object > > args)
Definition: factory.cc:614
Handle< Map > ObjectLiteralMapFromCache(Handle< Context > context, Handle< FixedArray > keys)
Definition: factory.cc:1403
Handle< Foreign > NewForeign(Address addr, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:406
Handle< Context > NewGlobalContext()
Definition: factory.cc:288
Handle< String > Uint32ToString(uint32_t value)
Definition: factory.cc:1150
Handle< FixedDoubleArray > CopyFixedDoubleArray(Handle< FixedDoubleArray > array)
Definition: factory.cc:521
Handle< Map > CopyMapDropDescriptors(Handle< Map > map)
Definition: factory.cc:469
Handle< String > LookupTwoByteSymbol(Vector< const uc16 > str)
Definition: factory.cc:192
Handle< JSFunction > InstallMembers(Handle< JSFunction > function)
Handle< Context > NewWithContext(Handle< JSFunction > function, Handle< Context > previous, Handle< JSObject > extension)
Definition: factory.cc:328
Handle< Code > NewCode(const CodeDesc &desc, Code::Flags flags, Handle< Object > self_reference, bool immovable=false)
Definition: factory.cc:857
Handle< Struct > NewStruct(InstanceType type)
Definition: factory.cc:350
void SetRegExpIrregexpData(Handle< JSRegExp > regexp, JSRegExp::Type type, Handle< String > source, JSRegExp::Flags flags, int capture_count)
Definition: factory.cc:1438
Handle< AccessorPair > NewAccessorPair()
Definition: factory.cc:146
Handle< Object > NewEvalError(const char *type, Vector< Handle< Object > > args)
Definition: factory.cc:670
Handle< Map > NewMap(InstanceType type, int instance_size, ElementsKind elements_kind=TERMINAL_FAST_ELEMENTS_KIND)
Definition: factory.cc:451
Handle< String > NewConsString(Handle< String > first, Handle< String > second)
Definition: factory.cc:243
Handle< Object > NewNumberFromUint(uint32_t value, PretenureFlag pretenure=NOT_TENURED)
Definition: factory.cc:597
Handle< ObjectHashSet > NewObjectHashSet(int at_least_space_for)
Definition: factory.cc:99
Handle< JSGlobalPropertyCell > NewJSGlobalPropertyCell(Handle< Object > value)
Definition: factory.cc:442
FlagType type() const
Definition: flags.cc:1358
Handle< UnseededNumberDictionary > NewUnseededNumberDictionary(int at_least_space_for)
Definition: factory.cc:90
void BecomeJSFunction(Handle< JSReceiver > object)
Definition: factory.cc:1083
Handle< Object > NewError(const char *maker, const char *type, Handle< JSArray > args)
Definition: factory.cc:719
Handle< SeededNumberDictionary > NewSeededNumberDictionary(int at_least_space_for)
Definition: factory.cc:81