V8 Project
|
#include <func-name-inferrer.h>
Classes | |
struct | Name |
Public Member Functions | |
FuncNameInferrer (AstValueFactory *ast_value_factory, Zone *zone) | |
bool | IsOpen () const |
void | PushEnclosingName (const AstRawString *name) |
void | Enter () |
void | PushLiteralName (const AstRawString *name) |
void | PushVariableName (const AstRawString *name) |
void | AddFunction (FunctionLiteral *func_to_infer) |
void | RemoveLastFunction () |
void | Infer () |
void | Leave () |
![]() | |
INLINE (void *operator new(size_t size, Zone *zone)) | |
void | operator delete (void *, size_t) |
void | operator delete (void *pointer, Zone *zone) |
Private Types | |
enum | NameType { kEnclosingConstructorName , kLiteralName , kVariableName } |
Private Member Functions | |
Zone * | zone () const |
const AstString * | MakeNameFromStack () |
const AstString * | MakeNameFromStackHelper (int pos, const AstString *prev) |
void | InferFunctionsNames () |
DISALLOW_COPY_AND_ASSIGN (FuncNameInferrer) | |
Private Attributes | |
AstValueFactory * | ast_value_factory_ |
ZoneList< int > | entries_stack_ |
ZoneList< Name > | names_stack_ |
ZoneList< FunctionLiteral * > | funcs_to_infer_ |
Zone * | zone_ |
Definition at line 29 of file func-name-inferrer.h.
|
private |
Enumerator | |
---|---|
kEnclosingConstructorName | |
kLiteralName | |
kVariableName |
Definition at line 79 of file func-name-inferrer.h.
v8::internal::FuncNameInferrer::FuncNameInferrer | ( | AstValueFactory * | ast_value_factory, |
Zone * | zone | ||
) |
Definition at line 15 of file func-name-inferrer.cc.
|
inline |
Definition at line 50 of file func-name-inferrer.h.
References v8::internal::List< T, AllocationPolicy >::Add(), funcs_to_infer_, IsOpen(), and zone().
Referenced by v8::internal::ParserTraits::InferFunctionName(), and v8::internal::Parser::ParseFunctionLiteral().
|
private |
|
inline |
Definition at line 40 of file func-name-inferrer.h.
References v8::internal::List< T, AllocationPolicy >::Add(), entries_stack_, names_stack_, and zone().
Referenced by v8::internal::Parser::ParseVariableDeclarations().
|
inline |
Definition at line 63 of file func-name-inferrer.h.
References DCHECK, funcs_to_infer_, InferFunctionsNames(), and IsOpen().
Referenced by v8::internal::Parser::ParseVariableDeclarations().
|
private |
Definition at line 76 of file func-name-inferrer.cc.
References funcs_to_infer_, and MakeNameFromStack().
Referenced by Infer().
|
inline |
Definition at line 34 of file func-name-inferrer.h.
References entries_stack_.
Referenced by AddFunction(), Infer(), Leave(), PushLiteralName(), PushVariableName(), and RemoveLastFunction().
|
inline |
Definition at line 71 of file func-name-inferrer.h.
References DCHECK, entries_stack_, funcs_to_infer_, IsOpen(), and names_stack_.
Referenced by v8::internal::Parser::ParseVariableDeclarations().
|
private |
Definition at line 49 of file func-name-inferrer.cc.
References ast_value_factory_, and MakeNameFromStackHelper().
Referenced by InferFunctionsNames().
|
private |
Definition at line 53 of file func-name-inferrer.cc.
References ast_value_factory_, v8::internal::String::kMaxLength, kVariableName, v8::internal::AstString::length(), name, names_stack_, and v8::internal::AstValueFactory::NewConsString().
Referenced by MakeNameFromStack().
void v8::internal::FuncNameInferrer::PushEnclosingName | ( | const AstRawString * | name | ) |
Definition at line 25 of file func-name-inferrer.cc.
References unibrow::Uppercase::Is(), kEnclosingConstructorName, name, names_stack_, and zone().
Referenced by v8::internal::Parser::ParseLazy().
void v8::internal::FuncNameInferrer::PushLiteralName | ( | const AstRawString * | name | ) |
Definition at line 35 of file func-name-inferrer.cc.
References ast_value_factory_, IsOpen(), kLiteralName, name, names_stack_, and zone().
Referenced by v8::internal::ParserTraits::ExpressionFromString(), v8::internal::ParserTraits::PushLiteralName(), and v8::internal::ParserTraits::PushPropertyName().
void v8::internal::FuncNameInferrer::PushVariableName | ( | const AstRawString * | name | ) |
Definition at line 42 of file func-name-inferrer.cc.
References ast_value_factory_, IsOpen(), kVariableName, name, names_stack_, and zone().
Referenced by v8::internal::ParserTraits::ExpressionFromIdentifier(), and v8::internal::Parser::ParseVariableDeclarations().
|
inline |
Definition at line 56 of file func-name-inferrer.h.
References funcs_to_infer_, and IsOpen().
Referenced by v8::internal::Parser::ParseVariableDeclarations().
|
inlineprivate |
Definition at line 90 of file func-name-inferrer.h.
References zone_.
Referenced by AddFunction(), Enter(), PushEnclosingName(), PushLiteralName(), and PushVariableName().
|
private |
Definition at line 102 of file func-name-inferrer.h.
Referenced by MakeNameFromStack(), MakeNameFromStackHelper(), PushLiteralName(), and PushVariableName().
Definition at line 103 of file func-name-inferrer.h.
|
private |
Definition at line 105 of file func-name-inferrer.h.
Referenced by AddFunction(), Infer(), InferFunctionsNames(), Leave(), and RemoveLastFunction().
Definition at line 104 of file func-name-inferrer.h.
Referenced by Enter(), Leave(), MakeNameFromStackHelper(), PushEnclosingName(), PushLiteralName(), and PushVariableName().
|
private |
Definition at line 106 of file func-name-inferrer.h.
Referenced by zone().