v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::FuncNameInferrer Class Reference

#include <func-name-inferrer.h>

Collaboration diagram for v8::internal::FuncNameInferrer:

Classes

struct  Name
 
class  State
 

Public Member Functions

 FuncNameInferrer (AstValueFactory *ast_value_factory)
 
 FuncNameInferrer (const FuncNameInferrer &)=delete
 
FuncNameInferreroperator= (const FuncNameInferrer &)=delete
 
bool IsOpen () const
 
void PushEnclosingName (const AstRawString *name)
 
void PushLiteralName (const AstRawString *name)
 
void PushVariableName (const AstRawString *name)
 
void AddFunction (FunctionLiteral *func_to_infer)
 
void RemoveLastFunction ()
 
void RemoveAsyncKeywordFromEnd ()
 
void Infer ()
 

Private Types

enum  NameType : uint8_t { kEnclosingConstructorName , kLiteralName , kVariableName }
 

Private Member Functions

AstConsStringMakeNameFromStack ()
 
void InferFunctionsNames ()
 

Private Attributes

AstValueFactoryast_value_factory_
 
base::SmallVector< Name, 8 > names_stack_
 
std::vector< FunctionLiteral * > funcs_to_infer_
 
size_t scope_depth_ = 0
 

Detailed Description

Definition at line 45 of file func-name-inferrer.h.

Member Enumeration Documentation

◆ NameType

Enumerator
kEnclosingConstructorName 
kLiteralName 
kVariableName 

Definition at line 104 of file func-name-inferrer.h.

Constructor & Destructor Documentation

◆ FuncNameInferrer() [1/2]

v8::internal::FuncNameInferrer::FuncNameInferrer ( AstValueFactory * ast_value_factory)
explicit

Definition at line 14 of file func-name-inferrer.cc.

◆ FuncNameInferrer() [2/2]

v8::internal::FuncNameInferrer::FuncNameInferrer ( const FuncNameInferrer & )
delete

Member Function Documentation

◆ AddFunction()

void v8::internal::FuncNameInferrer::AddFunction ( FunctionLiteral * func_to_infer)
inline

Definition at line 85 of file func-name-inferrer.h.

Here is the call graph for this function:

◆ Infer()

void v8::internal::FuncNameInferrer::Infer ( )
inline

Definition at line 98 of file func-name-inferrer.h.

Here is the call graph for this function:

◆ InferFunctionsNames()

void v8::internal::FuncNameInferrer::InferFunctionsNames ( )
private

Definition at line 72 of file func-name-inferrer.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsOpen()

bool v8::internal::FuncNameInferrer::IsOpen ( ) const
inline

Definition at line 74 of file func-name-inferrer.h.

Here is the caller graph for this function:

◆ MakeNameFromStack()

AstConsString * v8::internal::FuncNameInferrer::MakeNameFromStack ( )
private

Definition at line 48 of file func-name-inferrer.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

FuncNameInferrer & v8::internal::FuncNameInferrer::operator= ( const FuncNameInferrer & )
delete

◆ PushEnclosingName()

void v8::internal::FuncNameInferrer::PushEnclosingName ( const AstRawString * name)

Definition at line 17 of file func-name-inferrer.cc.

Here is the call graph for this function:

◆ PushLiteralName()

void v8::internal::FuncNameInferrer::PushLiteralName ( const AstRawString * name)

Definition at line 27 of file func-name-inferrer.cc.

Here is the call graph for this function:

◆ PushVariableName()

void v8::internal::FuncNameInferrer::PushVariableName ( const AstRawString * name)

Definition at line 34 of file func-name-inferrer.cc.

Here is the call graph for this function:

◆ RemoveAsyncKeywordFromEnd()

void v8::internal::FuncNameInferrer::RemoveAsyncKeywordFromEnd ( )

Definition at line 40 of file func-name-inferrer.cc.

Here is the call graph for this function:

◆ RemoveLastFunction()

void v8::internal::FuncNameInferrer::RemoveLastFunction ( )
inline

Definition at line 91 of file func-name-inferrer.h.

Here is the call graph for this function:

Member Data Documentation

◆ ast_value_factory_

AstValueFactory* v8::internal::FuncNameInferrer::ast_value_factory_
private

Definition at line 128 of file func-name-inferrer.h.

◆ funcs_to_infer_

std::vector<FunctionLiteral*> v8::internal::FuncNameInferrer::funcs_to_infer_
private

Definition at line 130 of file func-name-inferrer.h.

◆ names_stack_

base::SmallVector<Name, 8> v8::internal::FuncNameInferrer::names_stack_
private

Definition at line 129 of file func-name-inferrer.h.

◆ scope_depth_

size_t v8::internal::FuncNameInferrer::scope_depth_ = 0
private

Definition at line 131 of file func-name-inferrer.h.


The documentation for this class was generated from the following files: