44 class CompilationInfo;
64 : backing_(backing) { }
68 int start_pos() {
return backing_[kStartPositionIndex]; }
69 int end_pos() {
return backing_[kEndPositionIndex]; }
74 backing_[kStrictModeIndex] ==
STRICT);
75 return static_cast<StrictMode>(backing_[kStrictModeIndex]);
78 bool is_valid() {
return !backing_.is_empty(); }
97 virtual const char*
Data();
125 unsigned char* symbol_data_;
126 unsigned char* symbol_data_end_;
130 unsigned Read(
int position);
131 unsigned* ReadAddress(
int position);
133 int ReadNumber(
byte** source);
136 : store_(reinterpret_cast<unsigned*>(const_cast<char*>(backing_store)),
137 length / static_cast<int>(sizeof(unsigned))),
140 reinterpret_cast<intptr_t>(backing_store) %
sizeof(
unsigned)));
144 static const char* ReadString(
unsigned* start,
int* chars);
171 template <
typename T,
int initial_size>
184 list_->
Add(last_, zone);
197 if ((list_ !=
NULL) && (list_->length() > 0))
198 last_ = list_->RemoveLast();
210 if (i == list_->length()) {
225 int length = (list_ ==
NULL) ? 0 : list_->length();
226 return length + ((last_ ==
NULL) ? 0 : 1);
234 list_->
Add(last_, zone);
258 int min,
int max, RegExpQuantifier::QuantifierType type);
262 void FlushCharacters();
265 Zone* zone()
const {
return zone_; }
274 enum {ADD_NONE, ADD_CHAR, ADD_TERM, ADD_ASSERT, ADD_ATOM} last_added_;
275 #define LAST(x) last_added_ = x;
284 RegExpParser(FlatStringReader* in,
285 Handle<String>* error,
289 static bool ParseRegExp(FlatStringReader* input,
291 RegExpCompileData* result,
294 RegExpTree* ParsePattern();
295 RegExpTree* ParseDisjunction();
296 RegExpTree* ParseGroup();
297 RegExpTree* ParseCharacterClass();
301 bool ParseIntervalQuantifier(
int* min_out,
int* max_out);
305 uc32 ParseClassCharacterEscape();
309 bool ParseHexEscape(
int length,
uc32* value);
311 uc32 ParseOctalLiteral();
317 bool ParseBackReferenceIndex(
int* index_out);
319 CharacterRange ParseClassAtom(
uc16* char_class);
320 RegExpTree* ReportError(Vector<const char>
message);
322 void Advance(
int dist);
334 static const int kMaxCaptures = 1 << 16;
335 static const uc32 kEndMarker = (1 << 21);
338 enum SubexpressionType {
348 RegExpParserState(RegExpParserState* previous_state,
349 SubexpressionType group_type,
350 int disjunction_capture_index,
352 : previous_state_(previous_state),
354 group_type_(group_type),
355 disjunction_capture_index_(disjunction_capture_index) {}
357 RegExpParserState* previous_state() {
return previous_state_; }
358 bool IsSubexpression() {
return previous_state_ !=
NULL; }
360 RegExpBuilder* builder() {
return builder_; }
362 SubexpressionType group_type() {
return group_type_; }
366 int capture_index() {
return disjunction_capture_index_; }
370 RegExpParserState* previous_state_;
372 RegExpBuilder* builder_;
374 SubexpressionType group_type_;
376 int disjunction_capture_index_;
379 Isolate* isolate() {
return isolate_; }
380 Zone* zone()
const {
return zone_; }
383 bool has_more() {
return has_more_; }
384 bool has_next() {
return next_pos_ < in()->length(); }
386 FlatStringReader* in() {
return in_; }
387 void ScanForCaptures();
391 Handle<String>* error_;
392 ZoneList<RegExpCapture*>* captures_;
393 FlatStringReader* in_;
401 bool contains_anchor_;
402 bool is_scanned_for_captures_;
410 class SingletonLogger;
441 template<
typename FunctionState>
444 function_state->isolate_ = isolate;
445 function_state->saved_ast_node_id_ = isolate->ast_node_id();
449 template<
typename FunctionState>
451 if (function_state->outer_function_state_ !=
NULL) {
452 function_state->isolate_->set_ast_node_id(
453 function_state->saved_ast_node_id_);
466 return ObjectLiteral::IsBoilerplateProperty(property);
470 return !
string.is_null() &&
string->AsArrayIndex(index);
483 value->AsFunctionLiteral() !=
NULL) {
484 *has_function =
true;
485 value->AsFunctionLiteral()->set_pretenure();
534 bool is_reference_error =
false);
537 bool is_reference_error =
false);
541 bool is_reference_error =
false);
589 bool name_is_strict_reserved,
591 int function_token_position,
592 FunctionLiteral::FunctionType type,
604 delete reusable_preparser_;
605 reusable_preparser_ =
NULL;
615 return parser.
Parse();
629 static const int kMaxNumFunctionLocals = 4194303;
631 enum VariableDeclarationContext {
639 enum VariableDeclarationProperties {
645 FunctionLiteral* ParseProgram();
647 FunctionLiteral* ParseLazy();
648 FunctionLiteral* ParseLazy(Utf16CharacterStream* source);
650 Isolate* isolate() {
return isolate_; }
651 CompilationInfo*
info()
const {
return info_; }
654 FunctionLiteral* DoParseProgram(CompilationInfo* info,
655 Handle<String> source);
658 void ReportInvalidPreparseData(Handle<String>
name,
bool* ok);
660 void SetCachedData(ScriptDataImpl** data,
662 cached_data_mode_ = cached_data_mode;
668 symbol_cache_.Initialize(*data ? (*data)->symbol_count() : 0,
zone());
672 bool inside_with()
const {
return scope_->inside_with(); }
673 ScriptDataImpl** cached_data()
const {
return cached_data_; }
674 CachedDataMode cached_data_mode()
const {
return cached_data_mode_; }
684 void* ParseSourceElements(ZoneList<Statement*>* processor,
int end_token,
685 bool is_eval,
bool is_global,
bool* ok);
687 Statement* ParseModuleDeclaration(
ZoneStringList* names,
bool* ok);
688 Module* ParseModule(
bool* ok);
689 Module* ParseModuleLiteral(
bool* ok);
690 Module* ParseModulePath(
bool* ok);
691 Module* ParseModuleVariable(
bool* ok);
692 Module* ParseModuleUrl(
bool* ok);
693 Module* ParseModuleSpecifier(
bool* ok);
694 Block* ParseImportDeclaration(
bool* ok);
695 Statement* ParseExportDeclaration(
bool* ok);
698 Statement* ParseFunctionDeclaration(
ZoneStringList* names,
bool* ok);
699 Statement* ParseNativeDeclaration(
bool* ok);
701 Block* ParseVariableStatement(VariableDeclarationContext var_context,
704 Block* ParseVariableDeclarations(VariableDeclarationContext var_context,
705 VariableDeclarationProperties* decl_props,
709 Statement* ParseExpressionOrLabelledStatement(
ZoneStringList* labels,
712 Statement* ParseContinueStatement(
bool* ok);
714 Statement* ParseReturnStatement(
bool* ok);
716 CaseClause* ParseCaseClause(
bool* default_seen_ptr,
bool* ok);
717 SwitchStatement* ParseSwitchStatement(
ZoneStringList* labels,
bool* ok);
718 DoWhileStatement* ParseDoWhileStatement(
ZoneStringList* labels,
bool* ok);
719 WhileStatement* ParseWhileStatement(
ZoneStringList* labels,
bool* ok);
721 Statement* ParseThrowStatement(
bool* ok);
722 Expression* MakeCatchContext(Handle<String>
id, VariableProxy* value);
723 TryStatement* ParseTryStatement(
bool* ok);
724 DebuggerStatement* ParseDebuggerStatement(
bool* ok);
730 void InitializeForEachStatement(ForEachStatement* stmt,
735 FunctionLiteral* ParseFunctionLiteral(
737 Scanner::Location function_name_location,
738 bool name_is_strict_reserved,
740 int function_token_position,
741 FunctionLiteral::FunctionType type,
745 Expression* ParseV8Intrinsic(
bool* ok);
750 Literal* GetLiteralUndefined(
int position);
761 void CheckConflictingVarDeclarations(Scope* scope,
bool* ok);
764 VariableProxy* NewUnresolved(Handle<String>
name,
767 void Declare(Declaration* declaration,
bool resolve,
bool* ok);
769 bool TargetStackContainsLabel(Handle<String> label);
770 BreakableStatement* LookupBreakTarget(Handle<String> label,
bool* ok);
771 IterationStatement* LookupContinueTarget(Handle<String> label,
bool* ok);
773 void RegisterTargetUse(Label* target, Target* stop);
777 Scope* NewScope(Scope* parent,
ScopeType type);
779 Handle<String> LookupCachedSymbol(
int symbol_id);
782 Expression* NewThrowReferenceError(Handle<String> type);
787 Expression* NewThrowSyntaxError(Handle<String> type, Handle<Object> first);
791 Expression* NewThrowTypeError(Handle<String> type,
792 Handle<Object> first,
793 Handle<Object> second);
796 Expression* NewThrowError(Handle<String> constructor,
798 Vector< Handle<Object> > arguments);
801 SingletonLogger* logger);
804 ZoneList<Handle<String> > symbol_cache_;
806 Handle<Script> script_;
808 PreParser* reusable_preparser_;
809 Scope* original_scope_;
810 Target* target_stack_;
811 ScriptDataImpl** cached_data_;
814 CompilationInfo* info_;
840 static const int kLiteralTypeSlot = 0;
841 static const int kElementsSlot = 1;
848 #endif // V8_PARSER_H_
Variable GeneratorVariable
bool is_global_scope() const
v8::internal::Scope Scope
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 NULL
Scope * DeclarationScope()
Handle< String > Identifier
Vector< const char * > BuildArgs()
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 true
Expression * BuildUnaryExpression(Expression *expression, Token::Value op, int pos, AstNodeFactory< AstConstructionVisitor > *factory)
int GetSymbolIdentifier()
static Expression * MarkExpressionAsLValue(Expression *expression)
ParserTraits::Type::Zone * zone() const
void AddQuantifierToAtom(int min, int max, RegExpQuantifier::QuantifierType type)
void CheckStrictModeLValue(Expression *expression, bool *ok)
static Handle< FixedArray > GetElements(Handle< FixedArray > value)
Handle< String > NextLiteralString(Scanner *scanner, PretenureFlag tenured)
static void CheckAssigningFunctionLiteralToProperty(Expression *left, Expression *right)
Expression * ExpressionFromString(int pos, Scanner *scanner, AstNodeFactory< AstConstructionVisitor > *factory)
static void CheckFunctionLiteralInsideTopLevelObjectLiteral(Scope *scope, Expression *value, bool *has_function)
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
void AddAtom(RegExpTree *tree)
ZoneList< v8::internal::Expression * > * NewExpressionList(int size, Zone *zone)
#define ASSERT(condition)
v8::internal::Expression * Expression
static bool IsCompileTimeValue(Expression *expression)
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 on console Map counters to a file Enable debugger compile events enable GDBJIT interface(disables compacting GC)") DEFINE_bool(gdbjit_full
ParserTraits::Type::Scope * scope_
void Read(const v8::FunctionCallbackInfo< v8::Value > &args)
ParserTraits(Parser *parser)
static bool IsBoilerplateProperty(ObjectLiteral::Property *property)
virtual ~ScriptDataImpl()
bool is_generator() const
void ReportMessageAt(Scanner::Location source_location, const char *message, Vector< const char * > args, bool is_reference_error=false)
Literal * GetLiteralTheHole(int position, AstNodeFactory< AstConstructionVisitor > *factory)
static const int kSymbolCountOffset
static const int kVersionOffset
FunctionEntry GetFunctionEntry(int start)
v8::internal::Literal * Literal
Literal * ExpressionFromLiteral(Token::Value token, int pos, Scanner *scanner, AstNodeFactory< AstConstructionVisitor > *factory)
void AddAssertion(RegExpTree *tree)
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
void Add(T *value, Zone *zone)
static LiteralType GetLiteralType(Handle< FixedArray > value)
v8::internal::Parser * Parser
AstNodeFactory< AstConstructionVisitor > Factory
ZoneList< T * > * GetList(Zone *zone)
static bool IsIdentifier(Expression *expression)
ObjectLiteral::Property * ObjectLiteralProperty
void set_allow_lazy(bool allow)
void ReadNextSymbolPosition()
bool IsLexicalVariableMode(VariableMode mode)
bool IsEvalOrArguments(Handle< String > identifier) const
static Handle< FixedArray > GetValue(Isolate *isolate, Expression *expression)
Handle< String > GetSymbol(Scanner *scanner=NULL)
static ZoneList< Expression * > * NullExpressionList()
static void PushLiteralName(FuncNameInferrer *fni, Handle< String > id)
static ScriptDataImpl * PreParse(Isolate *isolate, Utf16CharacterStream *source)
bool ShortcutNumericLiteralBinaryExpression(Expression **x, Expression *y, Token::Value op, int pos, AstNodeFactory< AstConstructionVisitor > *factory)
void ReportMessage(const char *message, Vector< Handle< String > > args, bool is_reference_error=false)
#define T(name, string, precedence)
const char * BuildMessage()
v8::internal::FunctionLiteral * FunctionLiteral
static const int kHasErrorOffset
static void SetUpFunctionState(FunctionState *function_state, Zone *zone)
void PushLiteralName(Handle< String > name)
Expression * ThisExpression(Scope *scope, AstNodeFactory< AstConstructionVisitor > *factory)
static Expression * EmptyExpression()
static BailoutId FirstUsable()
static Literal * EmptyLiteral()
virtual const char * Data()
static bool IsThisProperty(Expression *expression)
static bool IsArrayIndex(Handle< String > string, uint32_t *index)
void AddCharacter(uc16 character)
Scanner::Location MessageLocation()
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 info
ZoneList< v8::internal::Expression * > * ExpressionList
void PushPropertyName(FuncNameInferrer *fni, Expression *expression)
#define ASSERT_EQ(v1, v2)
ZoneList< ObjectLiteral::Property * > * PropertyList
static void TearDownFunctionState(FunctionState *function_state)
ZoneList< ObjectLiteral::Property * > * NewPropertyList(int size, Zone *zone)
void Add(const T &element, AllocationPolicy allocator=AllocationPolicy())
ZoneList< Handle< String > > ZoneStringList
FunctionEntry(Vector< unsigned > backing)
FunctionLiteral * ParseFunctionLiteral(Handle< String > name, Scanner::Location function_name_location, bool name_is_strict_reserved, bool is_generator, int function_token_position, FunctionLiteral::FunctionType type, bool *ok)
static bool Parse(CompilationInfo *info, bool allow_lazy=false)
ScriptDataImpl(Vector< unsigned > store)
void set_contains_anchor()
static const int kHeaderSize
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
RegExpBuilder(Zone *zone)
Parser(CompilationInfo *info)
Expression * ParseV8Intrinsic(bool *ok)
static const int kMagicOffset
void CheckPossibleEvalCall(Expression *expression, Scope *scope)
Expression * ExpressionFromIdentifier(Handle< String > name, int pos, Scope *scope, AstNodeFactory< AstConstructionVisitor > *factory)
static Handle< String > EmptyIdentifier()