webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
JSC::ASTBuilder Class Reference

#include <ASTBuilder.h>

Classes

struct  BinaryExprContext
 
struct  UnaryExprContext
 

Public Types

typedef ExpressionNodeExpression
 
typedef JSC::SourceElementsSourceElements
 
typedef ArgumentsNodeArguments
 
typedef CommaNodeComma
 
typedef PropertyNodeProperty
 
typedef PropertyListNodePropertyList
 
typedef ElementNodeElementList
 
typedef ArgumentListNodeArgumentsList
 
typedef TemplateExpressionListNodeTemplateExpressionList
 
typedef TemplateStringNodeTemplateString
 
typedef TemplateStringListNodeTemplateStringList
 
typedef TemplateLiteralNodeTemplateLiteral
 
typedef FunctionParametersFormalParameterList
 
typedef FunctionMetadataNodeFunctionBody
 
typedef ClassExprNodeClassExpression
 
typedef ModuleNameNodeModuleName
 
typedef ImportSpecifierNodeImportSpecifier
 
typedef ImportSpecifierListNodeImportSpecifierList
 
typedef ExportSpecifierNodeExportSpecifier
 
typedef ExportSpecifierListNodeExportSpecifierList
 
typedef StatementNodeStatement
 
typedef ClauseListNodeClauseList
 
typedef CaseClauseNodeClause
 
typedef std::pair< ExpressionNode *, BinaryOpInfo > BinaryOperand
 
typedef DestructuringPatternNodeDestructuringPattern
 
typedef ArrayPatternNodeArrayPattern
 
typedef ObjectPatternNodeObjectPattern
 
typedef BindingNodeBindingPattern
 
typedef AssignmentElementNodeAssignmentElement
 

Public Member Functions

 ASTBuilder (VM *vm, ParserArena &parserArena, SourceCode *sourceCode)
 
ExpressionNodemakeBinaryNode (const JSTokenLocation &, int token, std::pair< ExpressionNode *, BinaryOpInfo >, std::pair< ExpressionNode *, BinaryOpInfo >)
 
ExpressionNodemakeFunctionCallNode (const JSTokenLocation &, ExpressionNode *func, ArgumentsNode *args, const JSTextPosition &divotStart, const JSTextPosition &divot, const JSTextPosition &divotEnd)
 
JSC::SourceElementscreateSourceElements ()
 
int features () const
 
int numConstants () const
 
ExpressionNodemakeAssignNode (const JSTokenLocation &, ExpressionNode *left, Operator, ExpressionNode *right, bool leftHasAssignments, bool rightHasAssignments, const JSTextPosition &start, const JSTextPosition &divot, const JSTextPosition &end)
 
ExpressionNodemakePrefixNode (const JSTokenLocation &, ExpressionNode *, Operator, const JSTextPosition &start, const JSTextPosition &divot, const JSTextPosition &end)
 
ExpressionNodemakePostfixNode (const JSTokenLocation &, ExpressionNode *, Operator, const JSTextPosition &start, const JSTextPosition &divot, const JSTextPosition &end)
 
ExpressionNodemakeTypeOfNode (const JSTokenLocation &, ExpressionNode *)
 
ExpressionNodemakeDeleteNode (const JSTokenLocation &, ExpressionNode *, const JSTextPosition &start, const JSTextPosition &divot, const JSTextPosition &end)
 
ExpressionNodemakeNegateNode (const JSTokenLocation &, ExpressionNode *)
 
ExpressionNodemakeBitwiseNotNode (const JSTokenLocation &, ExpressionNode *)
 
ExpressionNodemakePowNode (const JSTokenLocation &, ExpressionNode *left, ExpressionNode *right, bool rightHasAssignments)
 
ExpressionNodemakeMultNode (const JSTokenLocation &, ExpressionNode *left, ExpressionNode *right, bool rightHasAssignments)
 
ExpressionNodemakeDivNode (const JSTokenLocation &, ExpressionNode *left, ExpressionNode *right, bool rightHasAssignments)
 
ExpressionNodemakeModNode (const JSTokenLocation &, ExpressionNode *left, ExpressionNode *right, bool rightHasAssignments)
 
ExpressionNodemakeAddNode (const JSTokenLocation &, ExpressionNode *left, ExpressionNode *right, bool rightHasAssignments)
 
ExpressionNodemakeSubNode (const JSTokenLocation &, ExpressionNode *left, ExpressionNode *right, bool rightHasAssignments)
 
ExpressionNodemakeBitXOrNode (const JSTokenLocation &, ExpressionNode *left, ExpressionNode *right, bool rightHasAssignments)
 
ExpressionNodemakeBitAndNode (const JSTokenLocation &, ExpressionNode *left, ExpressionNode *right, bool rightHasAssignments)
 
ExpressionNodemakeBitOrNode (const JSTokenLocation &, ExpressionNode *left, ExpressionNode *right, bool rightHasAssignments)
 
ExpressionNodemakeLeftShiftNode (const JSTokenLocation &, ExpressionNode *left, ExpressionNode *right, bool rightHasAssignments)
 
ExpressionNodemakeRightShiftNode (const JSTokenLocation &, ExpressionNode *left, ExpressionNode *right, bool rightHasAssignments)
 
ExpressionNodemakeURightShiftNode (const JSTokenLocation &, ExpressionNode *left, ExpressionNode *right, bool rightHasAssignments)
 
ExpressionNodecreateLogicalNot (const JSTokenLocation &location, ExpressionNode *expr)
 
ExpressionNodecreateUnaryPlus (const JSTokenLocation &location, ExpressionNode *expr)
 
ExpressionNodecreateVoid (const JSTokenLocation &location, ExpressionNode *expr)
 
ExpressionNodecreateThisExpr (const JSTokenLocation &location)
 
ExpressionNodecreateSuperExpr (const JSTokenLocation &location)
 
ExpressionNodecreateImportExpr (const JSTokenLocation &location, ExpressionNode *expr, const JSTextPosition &start, const JSTextPosition &divot, const JSTextPosition &end)
 
ExpressionNodecreateNewTargetExpr (const JSTokenLocation location)
 
bool isNewTarget (ExpressionNode *node)
 
ExpressionNodecreateResolve (const JSTokenLocation &location, const Identifier &ident, const JSTextPosition &start, const JSTextPosition &end)
 
ExpressionNodecreateObjectLiteral (const JSTokenLocation &location)
 
ExpressionNodecreateObjectLiteral (const JSTokenLocation &location, PropertyListNode *properties)
 
ExpressionNodecreateArray (const JSTokenLocation &location, int elisions)
 
ExpressionNodecreateArray (const JSTokenLocation &location, ElementNode *elems)
 
ExpressionNodecreateArray (const JSTokenLocation &location, int elisions, ElementNode *elems)
 
ExpressionNodecreateDoubleExpr (const JSTokenLocation &location, double d)
 
ExpressionNodecreateIntegerExpr (const JSTokenLocation &location, double d)
 
ExpressionNodecreateString (const JSTokenLocation &location, const Identifier *string)
 
ExpressionNodecreateBoolean (const JSTokenLocation &location, bool b)
 
ExpressionNodecreateNull (const JSTokenLocation &location)
 
ExpressionNodecreateBracketAccess (const JSTokenLocation &location, ExpressionNode *base, ExpressionNode *property, bool propertyHasAssignments, const JSTextPosition &start, const JSTextPosition &divot, const JSTextPosition &end)
 
ExpressionNodecreateDotAccess (const JSTokenLocation &location, ExpressionNode *base, const Identifier *property, const JSTextPosition &start, const JSTextPosition &divot, const JSTextPosition &end)
 
ExpressionNodecreateSpreadExpression (const JSTokenLocation &location, ExpressionNode *expression, const JSTextPosition &start, const JSTextPosition &divot, const JSTextPosition &end)
 
TemplateStringNodecreateTemplateString (const JSTokenLocation &location, const Identifier *cooked, const Identifier *raw)
 
TemplateStringListNodecreateTemplateStringList (TemplateStringNode *templateString)
 
TemplateStringListNodecreateTemplateStringList (TemplateStringListNode *templateStringList, TemplateStringNode *templateString)
 
TemplateExpressionListNodecreateTemplateExpressionList (ExpressionNode *expression)
 
TemplateExpressionListNodecreateTemplateExpressionList (TemplateExpressionListNode *templateExpressionListNode, ExpressionNode *expression)
 
TemplateLiteralNodecreateTemplateLiteral (const JSTokenLocation &location, TemplateStringListNode *templateStringList)
 
TemplateLiteralNodecreateTemplateLiteral (const JSTokenLocation &location, TemplateStringListNode *templateStringList, TemplateExpressionListNode *templateExpressionList)
 
ExpressionNodecreateTaggedTemplate (const JSTokenLocation &location, ExpressionNode *base, TemplateLiteralNode *templateLiteral, const JSTextPosition &start, const JSTextPosition &divot, const JSTextPosition &end)
 
ExpressionNodecreateRegExp (const JSTokenLocation &location, const Identifier &pattern, const Identifier &flags, const JSTextPosition &start)
 
ExpressionNodecreateNewExpr (const JSTokenLocation &location, ExpressionNode *expr, ArgumentsNode *arguments, const JSTextPosition &start, const JSTextPosition &divot, const JSTextPosition &end)
 
ExpressionNodecreateNewExpr (const JSTokenLocation &location, ExpressionNode *expr, const JSTextPosition &start, const JSTextPosition &end)
 
ExpressionNodecreateConditionalExpr (const JSTokenLocation &location, ExpressionNode *condition, ExpressionNode *lhs, ExpressionNode *rhs)
 
ExpressionNodecreateAssignResolve (const JSTokenLocation &location, const Identifier &ident, ExpressionNode *rhs, const JSTextPosition &start, const JSTextPosition &divot, const JSTextPosition &end, AssignmentContext assignmentContext)
 
YieldExprNodecreateYield (const JSTokenLocation &location)
 
YieldExprNodecreateYield (const JSTokenLocation &location, ExpressionNode *argument, bool delegate, const JSTextPosition &start, const JSTextPosition &divot, const JSTextPosition &end)
 
AwaitExprNodecreateAwait (const JSTokenLocation &location, ExpressionNode *argument, const JSTextPosition &start, const JSTextPosition &divot, const JSTextPosition &end)
 
ClassExprNodecreateClassExpr (const JSTokenLocation &location, const ParserClassInfo< ASTBuilder > &classInfo, VariableEnvironment &classEnvironment, ExpressionNode *constructor, ExpressionNode *parentClass, PropertyListNode *instanceMethods, PropertyListNode *staticMethods)
 
ExpressionNodecreateFunctionExpr (const JSTokenLocation &location, const ParserFunctionInfo< ASTBuilder > &functionInfo)
 
ExpressionNodecreateGeneratorFunctionBody (const JSTokenLocation &location, const ParserFunctionInfo< ASTBuilder > &functionInfo, const Identifier &name)
 
ExpressionNodecreateAsyncFunctionBody (const JSTokenLocation &location, const ParserFunctionInfo< ASTBuilder > &functionInfo, SourceParseMode parseMode)
 
ExpressionNodecreateMethodDefinition (const JSTokenLocation &location, const ParserFunctionInfo< ASTBuilder > &functionInfo)
 
FunctionMetadataNodecreateFunctionMetadata (const JSTokenLocation &startLocation, const JSTokenLocation &endLocation, unsigned startColumn, unsigned endColumn, int functionKeywordStart, int functionNameStart, int parametersStart, bool inStrictContext, ConstructorKind constructorKind, SuperBinding superBinding, unsigned parameterCount, unsigned functionLength, SourceParseMode mode, bool isArrowFunctionBodyExpression)
 
ExpressionNodecreateArrowFunctionExpr (const JSTokenLocation &location, const ParserFunctionInfo< ASTBuilder > &functionInfo)
 
NEVER_INLINE PropertyNodecreateGetterOrSetterProperty (const JSTokenLocation &location, PropertyNode::Type type, bool, const Identifier *name, const ParserFunctionInfo< ASTBuilder > &functionInfo, bool isClassProperty)
 
NEVER_INLINE PropertyNodecreateGetterOrSetterProperty (const JSTokenLocation &location, PropertyNode::Type type, bool, ExpressionNode *name, const ParserFunctionInfo< ASTBuilder > &functionInfo, bool isClassProperty)
 
NEVER_INLINE PropertyNodecreateGetterOrSetterProperty (VM *vm, ParserArena &parserArena, const JSTokenLocation &location, PropertyNode::Type type, bool, double name, const ParserFunctionInfo< ASTBuilder > &functionInfo, bool isClassProperty)
 
ArgumentsNodecreateArguments ()
 
ArgumentsNodecreateArguments (ArgumentListNode *args)
 
ArgumentListNodecreateArgumentsList (const JSTokenLocation &location, ExpressionNode *arg)
 
ArgumentListNodecreateArgumentsList (const JSTokenLocation &location, ArgumentListNode *args, ExpressionNode *arg)
 
PropertyNodecreateProperty (const Identifier *propertyName, ExpressionNode *node, PropertyNode::Type type, PropertyNode::PutType putType, bool, SuperBinding superBinding, bool isClassProperty)
 
PropertyNodecreateProperty (VM *vm, ParserArena &parserArena, double propertyName, ExpressionNode *node, PropertyNode::Type type, PropertyNode::PutType putType, bool, SuperBinding superBinding, bool isClassProperty)
 
PropertyNodecreateProperty (ExpressionNode *propertyName, ExpressionNode *node, PropertyNode::Type type, PropertyNode::PutType putType, bool, SuperBinding superBinding, bool isClassProperty)
 
PropertyListNodecreatePropertyList (const JSTokenLocation &location, PropertyNode *property)
 
PropertyListNodecreatePropertyList (const JSTokenLocation &location, PropertyNode *property, PropertyListNode *tail)
 
ElementNodecreateElementList (int elisions, ExpressionNode *expr)
 
ElementNodecreateElementList (ElementNode *elems, int elisions, ExpressionNode *expr)
 
ElementNodecreateElementList (ArgumentListNode *elems)
 
FormalParameterList createFormalParameterList ()
 
void appendParameter (FormalParameterList list, DestructuringPattern pattern, ExpressionNode *defaultValue)
 
CaseClauseNodecreateClause (ExpressionNode *expr, JSC::SourceElements *statements)
 
ClauseListNodecreateClauseList (CaseClauseNode *clause)
 
ClauseListNodecreateClauseList (ClauseListNode *tail, CaseClauseNode *clause)
 
StatementNodecreateFuncDeclStatement (const JSTokenLocation &location, const ParserFunctionInfo< ASTBuilder > &functionInfo)
 
StatementNodecreateClassDeclStatement (const JSTokenLocation &location, ClassExprNode *classExpression, const JSTextPosition &classStart, const JSTextPosition &classEnd, unsigned startLine, unsigned endLine)
 
StatementNodecreateBlockStatement (const JSTokenLocation &location, JSC::SourceElements *elements, int startLine, int endLine, VariableEnvironment &lexicalVariables, DeclarationStacks::FunctionStack &&functionStack)
 
StatementNodecreateExprStatement (const JSTokenLocation &location, ExpressionNode *expr, const JSTextPosition &start, int end)
 
StatementNodecreateIfStatement (const JSTokenLocation &location, ExpressionNode *condition, StatementNode *trueBlock, StatementNode *falseBlock, int start, int end)
 
StatementNodecreateForLoop (const JSTokenLocation &location, ExpressionNode *initializer, ExpressionNode *condition, ExpressionNode *iter, StatementNode *statements, int start, int end, VariableEnvironment &lexicalVariables)
 
StatementNodecreateForInLoop (const JSTokenLocation &location, ExpressionNode *lhs, ExpressionNode *iter, StatementNode *statements, const JSTokenLocation &, const JSTextPosition &eStart, const JSTextPosition &eDivot, const JSTextPosition &eEnd, int start, int end, VariableEnvironment &lexicalVariables)
 
StatementNodecreateForInLoop (const JSTokenLocation &location, DestructuringPatternNode *pattern, ExpressionNode *iter, StatementNode *statements, const JSTokenLocation &declLocation, const JSTextPosition &eStart, const JSTextPosition &eDivot, const JSTextPosition &eEnd, int start, int end, VariableEnvironment &lexicalVariables)
 
StatementNodecreateForOfLoop (const JSTokenLocation &location, ExpressionNode *lhs, ExpressionNode *iter, StatementNode *statements, const JSTokenLocation &, const JSTextPosition &eStart, const JSTextPosition &eDivot, const JSTextPosition &eEnd, int start, int end, VariableEnvironment &lexicalVariables)
 
StatementNodecreateForOfLoop (const JSTokenLocation &location, DestructuringPatternNode *pattern, ExpressionNode *iter, StatementNode *statements, const JSTokenLocation &declLocation, const JSTextPosition &eStart, const JSTextPosition &eDivot, const JSTextPosition &eEnd, int start, int end, VariableEnvironment &lexicalVariables)
 
bool isBindingNode (const DestructuringPattern &pattern)
 
bool isAssignmentLocation (const Expression &pattern)
 
bool isObjectLiteral (const Expression &node)
 
bool isArrayLiteral (const Expression &node)
 
bool isObjectOrArrayLiteral (const Expression &node)
 
bool shouldSkipPauseLocation (StatementNode *statement) const
 
StatementNodecreateEmptyStatement (const JSTokenLocation &location)
 
StatementNodecreateDeclarationStatement (const JSTokenLocation &location, ExpressionNode *expr, int start, int end)
 
ExpressionNodecreateEmptyVarExpression (const JSTokenLocation &location, const Identifier &identifier)
 
ExpressionNodecreateEmptyLetExpression (const JSTokenLocation &location, const Identifier &identifier)
 
StatementNodecreateReturnStatement (const JSTokenLocation &location, ExpressionNode *expression, const JSTextPosition &start, const JSTextPosition &end)
 
StatementNodecreateBreakStatement (const JSTokenLocation &location, const Identifier *ident, const JSTextPosition &start, const JSTextPosition &end)
 
StatementNodecreateContinueStatement (const JSTokenLocation &location, const Identifier *ident, const JSTextPosition &start, const JSTextPosition &end)
 
StatementNodecreateTryStatement (const JSTokenLocation &location, StatementNode *tryBlock, DestructuringPatternNode *catchPattern, StatementNode *catchBlock, StatementNode *finallyBlock, int startLine, int endLine, VariableEnvironment &catchEnvironment)
 
StatementNodecreateSwitchStatement (const JSTokenLocation &location, ExpressionNode *expr, ClauseListNode *firstClauses, CaseClauseNode *defaultClause, ClauseListNode *secondClauses, int startLine, int endLine, VariableEnvironment &lexicalVariables, DeclarationStacks::FunctionStack &&functionStack)
 
StatementNodecreateWhileStatement (const JSTokenLocation &location, ExpressionNode *expr, StatementNode *statement, int startLine, int endLine)
 
StatementNodecreateDoWhileStatement (const JSTokenLocation &location, StatementNode *statement, ExpressionNode *expr, int startLine, int endLine)
 
StatementNodecreateLabelStatement (const JSTokenLocation &location, const Identifier *ident, StatementNode *statement, const JSTextPosition &start, const JSTextPosition &end)
 
StatementNodecreateWithStatement (const JSTokenLocation &location, ExpressionNode *expr, StatementNode *statement, unsigned start, const JSTextPosition &end, unsigned startLine, unsigned endLine)
 
StatementNodecreateThrowStatement (const JSTokenLocation &location, ExpressionNode *expr, const JSTextPosition &start, const JSTextPosition &end)
 
StatementNodecreateDebugger (const JSTokenLocation &location, int startLine, int endLine)
 
ModuleNameNodecreateModuleName (const JSTokenLocation &location, const Identifier &moduleName)
 
ImportSpecifierNodecreateImportSpecifier (const JSTokenLocation &location, const Identifier &importedName, const Identifier &localName)
 
ImportSpecifierListNodecreateImportSpecifierList ()
 
void appendImportSpecifier (ImportSpecifierListNode *specifierList, ImportSpecifierNode *specifier)
 
StatementNodecreateImportDeclaration (const JSTokenLocation &location, ImportSpecifierListNode *importSpecifierList, ModuleNameNode *moduleName)
 
StatementNodecreateExportAllDeclaration (const JSTokenLocation &location, ModuleNameNode *moduleName)
 
StatementNodecreateExportDefaultDeclaration (const JSTokenLocation &location, StatementNode *declaration, const Identifier &localName)
 
StatementNodecreateExportLocalDeclaration (const JSTokenLocation &location, StatementNode *declaration)
 
StatementNodecreateExportNamedDeclaration (const JSTokenLocation &location, ExportSpecifierListNode *exportSpecifierList, ModuleNameNode *moduleName)
 
ExportSpecifierNodecreateExportSpecifier (const JSTokenLocation &location, const Identifier &localName, const Identifier &exportedName)
 
ExportSpecifierListNodecreateExportSpecifierList ()
 
void appendExportSpecifier (ExportSpecifierListNode *specifierList, ExportSpecifierNode *specifier)
 
void appendStatement (JSC::SourceElements *elements, JSC::StatementNode *statement)
 
CommaNodecreateCommaExpr (const JSTokenLocation &location, ExpressionNode *node)
 
CommaNodeappendToCommaExpr (const JSTokenLocation &location, ExpressionNode *, ExpressionNode *tail, ExpressionNode *next)
 
int evalCount () const
 
void appendBinaryExpressionInfo (int &operandStackDepth, ExpressionNode *current, const JSTextPosition &exprStart, const JSTextPosition &lhs, const JSTextPosition &rhs, bool hasAssignments)
 
void operatorStackPop (int &operatorStackDepth)
 
bool operatorStackShouldReduce (int precedence)
 
const BinaryOperandgetFromOperandStack (int i)
 
void shrinkOperandStackBy (int &operandStackDepth, int amount)
 
void appendBinaryOperation (const JSTokenLocation &location, int &operandStackDepth, int &, const BinaryOperand &lhs, const BinaryOperand &rhs)
 
void operatorStackAppend (int &operatorStackDepth, int op, int precedence)
 
ExpressionNodepopOperandStack (int &)
 
void appendUnaryToken (int &tokenStackDepth, int type, const JSTextPosition &start)
 
int unaryTokenStackLastType (int &)
 
const JSTextPositionunaryTokenStackLastStart (int &)
 
void unaryTokenStackRemoveLast (int &tokenStackDepth)
 
void assignmentStackAppend (int &assignmentStackDepth, ExpressionNode *node, const JSTextPosition &start, const JSTextPosition &divot, int assignmentCount, Operator op)
 
ExpressionNodecreateAssignment (const JSTokenLocation &location, int &assignmentStackDepth, ExpressionNode *rhs, int initialAssignmentCount, int currentAssignmentCount, const JSTextPosition &lastTokenEnd)
 
const IdentifiergetName (const Property &property) const
 
PropertyNode::Type getType (const Property &property) const
 
bool isResolve (ExpressionNode *expr) const
 
ExpressionNodecreateDestructuringAssignment (const JSTokenLocation &location, DestructuringPattern pattern, ExpressionNode *initializer)
 
ArrayPattern createArrayPattern (const JSTokenLocation &)
 
void appendArrayPatternSkipEntry (ArrayPattern node, const JSTokenLocation &location)
 
void appendArrayPatternEntry (ArrayPattern node, const JSTokenLocation &location, DestructuringPattern pattern, ExpressionNode *defaultValue)
 
void appendArrayPatternRestEntry (ArrayPattern node, const JSTokenLocation &location, DestructuringPattern pattern)
 
void finishArrayPattern (ArrayPattern node, const JSTextPosition &divotStart, const JSTextPosition &divot, const JSTextPosition &divotEnd)
 
ObjectPattern createObjectPattern (const JSTokenLocation &)
 
void appendObjectPatternEntry (ObjectPattern node, const JSTokenLocation &location, bool wasString, const Identifier &identifier, DestructuringPattern pattern, ExpressionNode *defaultValue)
 
void appendObjectPatternEntry (ObjectPattern node, const JSTokenLocation &location, ExpressionNode *propertyExpression, DestructuringPattern pattern, ExpressionNode *defaultValue)
 
BindingPattern createBindingLocation (const JSTokenLocation &, const Identifier &boundProperty, const JSTextPosition &start, const JSTextPosition &end, AssignmentContext context)
 
RestParameterNodecreateRestParameter (DestructuringPatternNode *pattern, size_t numParametersToSkip)
 
AssignmentElement createAssignmentElement (const Expression &assignmentTarget, const JSTextPosition &start, const JSTextPosition &end)
 
void setEndOffset (Node *node, int offset)
 
int endOffset (Node *node)
 
void setStartOffset (CaseClauseNode *node, int offset)
 
void setStartOffset (Node *node, int offset)
 
JSTextPosition breakpointLocation (Node *node)
 
void propagateArgumentsUse ()
 

Static Public Attributes

static const bool CreatesAST = true
 
static const bool NeedsFreeVariableInfo = true
 
static const bool CanUseFunctionCache = true
 
static const int DontBuildKeywords = 0
 
static const int DontBuildStrings = 0
 

Member Typedef Documentation

◆ Arguments

◆ ArgumentsList

◆ ArrayPattern

◆ AssignmentElement

◆ BinaryOperand

◆ BindingPattern

◆ ClassExpression

◆ Clause

◆ ClauseList

◆ Comma

◆ DestructuringPattern

◆ ElementList

◆ ExportSpecifier

◆ ExportSpecifierList

◆ Expression

◆ FormalParameterList

◆ FunctionBody

◆ ImportSpecifier

◆ ImportSpecifierList

◆ ModuleName

◆ ObjectPattern

◆ Property

◆ PropertyList

◆ SourceElements

◆ Statement

◆ TemplateExpressionList

◆ TemplateLiteral

◆ TemplateString

◆ TemplateStringList

Constructor & Destructor Documentation

◆ ASTBuilder()

JSC::ASTBuilder::ASTBuilder ( VM vm,
ParserArena parserArena,
SourceCode sourceCode 
)
inline

Member Function Documentation

◆ appendArrayPatternEntry()

void JSC::ASTBuilder::appendArrayPatternEntry ( ArrayPattern  node,
const JSTokenLocation location,
DestructuringPattern  pattern,
ExpressionNode defaultValue 
)
inline

◆ appendArrayPatternRestEntry()

void JSC::ASTBuilder::appendArrayPatternRestEntry ( ArrayPattern  node,
const JSTokenLocation location,
DestructuringPattern  pattern 
)
inline

◆ appendArrayPatternSkipEntry()

void JSC::ASTBuilder::appendArrayPatternSkipEntry ( ArrayPattern  node,
const JSTokenLocation location 
)
inline

◆ appendBinaryExpressionInfo()

void JSC::ASTBuilder::appendBinaryExpressionInfo ( int &  operandStackDepth,
ExpressionNode current,
const JSTextPosition exprStart,
const JSTextPosition lhs,
const JSTextPosition rhs,
bool  hasAssignments 
)
inline

◆ appendBinaryOperation()

void JSC::ASTBuilder::appendBinaryOperation ( const JSTokenLocation location,
int &  operandStackDepth,
int &  ,
const BinaryOperand lhs,
const BinaryOperand rhs 
)
inline

◆ appendExportSpecifier()

void JSC::ASTBuilder::appendExportSpecifier ( ExportSpecifierListNode specifierList,
ExportSpecifierNode specifier 
)
inline

◆ appendImportSpecifier()

void JSC::ASTBuilder::appendImportSpecifier ( ImportSpecifierListNode specifierList,
ImportSpecifierNode specifier 
)
inline

◆ appendObjectPatternEntry() [1/2]

void JSC::ASTBuilder::appendObjectPatternEntry ( ObjectPattern  node,
const JSTokenLocation location,
bool  wasString,
const Identifier identifier,
DestructuringPattern  pattern,
ExpressionNode defaultValue 
)
inline

◆ appendObjectPatternEntry() [2/2]

void JSC::ASTBuilder::appendObjectPatternEntry ( ObjectPattern  node,
const JSTokenLocation location,
ExpressionNode propertyExpression,
DestructuringPattern  pattern,
ExpressionNode defaultValue 
)
inline

◆ appendParameter()

void JSC::ASTBuilder::appendParameter ( FormalParameterList  list,
DestructuringPattern  pattern,
ExpressionNode defaultValue 
)
inline

◆ appendStatement()

void JSC::ASTBuilder::appendStatement ( JSC::SourceElements elements,
JSC::StatementNode statement 
)
inline

◆ appendToCommaExpr()

CommaNode* JSC::ASTBuilder::appendToCommaExpr ( const JSTokenLocation location,
ExpressionNode ,
ExpressionNode tail,
ExpressionNode next 
)
inline

◆ appendUnaryToken()

void JSC::ASTBuilder::appendUnaryToken ( int &  tokenStackDepth,
int  type,
const JSTextPosition start 
)
inline

◆ assignmentStackAppend()

void JSC::ASTBuilder::assignmentStackAppend ( int &  assignmentStackDepth,
ExpressionNode node,
const JSTextPosition start,
const JSTextPosition divot,
int  assignmentCount,
Operator  op 
)
inline

◆ breakpointLocation()

JSTextPosition JSC::ASTBuilder::breakpointLocation ( Node node)
inline

◆ createArguments() [1/2]

ArgumentsNode* JSC::ASTBuilder::createArguments ( )
inline

◆ createArguments() [2/2]

ArgumentsNode* JSC::ASTBuilder::createArguments ( ArgumentListNode args)
inline

◆ createArgumentsList() [1/2]

ArgumentListNode* JSC::ASTBuilder::createArgumentsList ( const JSTokenLocation location,
ExpressionNode arg 
)
inline

◆ createArgumentsList() [2/2]

ArgumentListNode* JSC::ASTBuilder::createArgumentsList ( const JSTokenLocation location,
ArgumentListNode args,
ExpressionNode arg 
)
inline

◆ createArray() [1/3]

ExpressionNode* JSC::ASTBuilder::createArray ( const JSTokenLocation location,
int  elisions 
)
inline

◆ createArray() [2/3]

ExpressionNode* JSC::ASTBuilder::createArray ( const JSTokenLocation location,
ElementNode elems 
)
inline

◆ createArray() [3/3]

ExpressionNode* JSC::ASTBuilder::createArray ( const JSTokenLocation location,
int  elisions,
ElementNode elems 
)
inline

◆ createArrayPattern()

ArrayPattern JSC::ASTBuilder::createArrayPattern ( const JSTokenLocation )
inline

◆ createArrowFunctionExpr()

ExpressionNode* JSC::ASTBuilder::createArrowFunctionExpr ( const JSTokenLocation location,
const ParserFunctionInfo< ASTBuilder > &  functionInfo 
)
inline

◆ createAssignment()

ExpressionNode* JSC::ASTBuilder::createAssignment ( const JSTokenLocation location,
int &  assignmentStackDepth,
ExpressionNode rhs,
int  initialAssignmentCount,
int  currentAssignmentCount,
const JSTextPosition lastTokenEnd 
)
inline

◆ createAssignmentElement()

AssignmentElement JSC::ASTBuilder::createAssignmentElement ( const Expression assignmentTarget,
const JSTextPosition start,
const JSTextPosition end 
)
inline

◆ createAssignResolve()

ExpressionNode* JSC::ASTBuilder::createAssignResolve ( const JSTokenLocation location,
const Identifier ident,
ExpressionNode rhs,
const JSTextPosition start,
const JSTextPosition divot,
const JSTextPosition end,
AssignmentContext  assignmentContext 
)
inline

◆ createAsyncFunctionBody()

ExpressionNode* JSC::ASTBuilder::createAsyncFunctionBody ( const JSTokenLocation location,
const ParserFunctionInfo< ASTBuilder > &  functionInfo,
SourceParseMode  parseMode 
)
inline

◆ createAwait()

AwaitExprNode* JSC::ASTBuilder::createAwait ( const JSTokenLocation location,
ExpressionNode argument,
const JSTextPosition start,
const JSTextPosition divot,
const JSTextPosition end 
)
inline

◆ createBindingLocation()

BindingPattern JSC::ASTBuilder::createBindingLocation ( const JSTokenLocation ,
const Identifier boundProperty,
const JSTextPosition start,
const JSTextPosition end,
AssignmentContext  context 
)
inline

◆ createBlockStatement()

StatementNode* JSC::ASTBuilder::createBlockStatement ( const JSTokenLocation location,
JSC::SourceElements elements,
int  startLine,
int  endLine,
VariableEnvironment lexicalVariables,
DeclarationStacks::FunctionStack &&  functionStack 
)
inline

◆ createBoolean()

ExpressionNode* JSC::ASTBuilder::createBoolean ( const JSTokenLocation location,
bool  b 
)
inline

◆ createBracketAccess()

ExpressionNode* JSC::ASTBuilder::createBracketAccess ( const JSTokenLocation location,
ExpressionNode base,
ExpressionNode property,
bool  propertyHasAssignments,
const JSTextPosition start,
const JSTextPosition divot,
const JSTextPosition end 
)
inline

◆ createBreakStatement()

StatementNode* JSC::ASTBuilder::createBreakStatement ( const JSTokenLocation location,
const Identifier ident,
const JSTextPosition start,
const JSTextPosition end 
)
inline

◆ createClassDeclStatement()

StatementNode* JSC::ASTBuilder::createClassDeclStatement ( const JSTokenLocation location,
ClassExprNode classExpression,
const JSTextPosition classStart,
const JSTextPosition classEnd,
unsigned  startLine,
unsigned  endLine 
)
inline

◆ createClassExpr()

ClassExprNode* JSC::ASTBuilder::createClassExpr ( const JSTokenLocation location,
const ParserClassInfo< ASTBuilder > &  classInfo,
VariableEnvironment classEnvironment,
ExpressionNode constructor,
ExpressionNode parentClass,
PropertyListNode instanceMethods,
PropertyListNode staticMethods 
)
inline

◆ createClause()

CaseClauseNode* JSC::ASTBuilder::createClause ( ExpressionNode expr,
JSC::SourceElements statements 
)
inline

◆ createClauseList() [1/2]

ClauseListNode* JSC::ASTBuilder::createClauseList ( CaseClauseNode clause)
inline

◆ createClauseList() [2/2]

ClauseListNode* JSC::ASTBuilder::createClauseList ( ClauseListNode tail,
CaseClauseNode clause 
)
inline

◆ createCommaExpr()

CommaNode* JSC::ASTBuilder::createCommaExpr ( const JSTokenLocation location,
ExpressionNode node 
)
inline

◆ createConditionalExpr()

ExpressionNode* JSC::ASTBuilder::createConditionalExpr ( const JSTokenLocation location,
ExpressionNode condition,
ExpressionNode lhs,
ExpressionNode rhs 
)
inline

◆ createContinueStatement()

StatementNode* JSC::ASTBuilder::createContinueStatement ( const JSTokenLocation location,
const Identifier ident,
const JSTextPosition start,
const JSTextPosition end 
)
inline

◆ createDebugger()

StatementNode* JSC::ASTBuilder::createDebugger ( const JSTokenLocation location,
int  startLine,
int  endLine 
)
inline

◆ createDeclarationStatement()

StatementNode* JSC::ASTBuilder::createDeclarationStatement ( const JSTokenLocation location,
ExpressionNode expr,
int  start,
int  end 
)
inline

◆ createDestructuringAssignment()

ExpressionNode* JSC::ASTBuilder::createDestructuringAssignment ( const JSTokenLocation location,
DestructuringPattern  pattern,
ExpressionNode initializer 
)
inline

◆ createDotAccess()

ExpressionNode* JSC::ASTBuilder::createDotAccess ( const JSTokenLocation location,
ExpressionNode base,
const Identifier property,
const JSTextPosition start,
const JSTextPosition divot,
const JSTextPosition end 
)
inline

◆ createDoubleExpr()

ExpressionNode* JSC::ASTBuilder::createDoubleExpr ( const JSTokenLocation location,
double  d 
)
inline

◆ createDoWhileStatement()

StatementNode* JSC::ASTBuilder::createDoWhileStatement ( const JSTokenLocation location,
StatementNode statement,
ExpressionNode expr,
int  startLine,
int  endLine 
)
inline

◆ createElementList() [1/3]

ElementNode* JSC::ASTBuilder::createElementList ( int  elisions,
ExpressionNode expr 
)
inline

◆ createElementList() [2/3]

ElementNode* JSC::ASTBuilder::createElementList ( ElementNode elems,
int  elisions,
ExpressionNode expr 
)
inline

◆ createElementList() [3/3]

ElementNode* JSC::ASTBuilder::createElementList ( ArgumentListNode elems)
inline

◆ createEmptyLetExpression()

ExpressionNode* JSC::ASTBuilder::createEmptyLetExpression ( const JSTokenLocation location,
const Identifier identifier 
)
inline

◆ createEmptyStatement()

StatementNode* JSC::ASTBuilder::createEmptyStatement ( const JSTokenLocation location)
inline

◆ createEmptyVarExpression()

ExpressionNode* JSC::ASTBuilder::createEmptyVarExpression ( const JSTokenLocation location,
const Identifier identifier 
)
inline

◆ createExportAllDeclaration()

StatementNode* JSC::ASTBuilder::createExportAllDeclaration ( const JSTokenLocation location,
ModuleNameNode moduleName 
)
inline

◆ createExportDefaultDeclaration()

StatementNode* JSC::ASTBuilder::createExportDefaultDeclaration ( const JSTokenLocation location,
StatementNode declaration,
const Identifier localName 
)
inline

◆ createExportLocalDeclaration()

StatementNode* JSC::ASTBuilder::createExportLocalDeclaration ( const JSTokenLocation location,
StatementNode declaration 
)
inline

◆ createExportNamedDeclaration()

StatementNode* JSC::ASTBuilder::createExportNamedDeclaration ( const JSTokenLocation location,
ExportSpecifierListNode exportSpecifierList,
ModuleNameNode moduleName 
)
inline

◆ createExportSpecifier()

ExportSpecifierNode* JSC::ASTBuilder::createExportSpecifier ( const JSTokenLocation location,
const Identifier localName,
const Identifier exportedName 
)
inline

◆ createExportSpecifierList()

ExportSpecifierListNode* JSC::ASTBuilder::createExportSpecifierList ( )
inline

◆ createExprStatement()

StatementNode* JSC::ASTBuilder::createExprStatement ( const JSTokenLocation location,
ExpressionNode expr,
const JSTextPosition start,
int  end 
)
inline

◆ createForInLoop() [1/2]

StatementNode* JSC::ASTBuilder::createForInLoop ( const JSTokenLocation location,
ExpressionNode lhs,
ExpressionNode iter,
StatementNode statements,
const JSTokenLocation ,
const JSTextPosition eStart,
const JSTextPosition eDivot,
const JSTextPosition eEnd,
int  start,
int  end,
VariableEnvironment lexicalVariables 
)
inline

◆ createForInLoop() [2/2]

StatementNode* JSC::ASTBuilder::createForInLoop ( const JSTokenLocation location,
DestructuringPatternNode pattern,
ExpressionNode iter,
StatementNode statements,
const JSTokenLocation declLocation,
const JSTextPosition eStart,
const JSTextPosition eDivot,
const JSTextPosition eEnd,
int  start,
int  end,
VariableEnvironment lexicalVariables 
)
inline

◆ createForLoop()

StatementNode* JSC::ASTBuilder::createForLoop ( const JSTokenLocation location,
ExpressionNode initializer,
ExpressionNode condition,
ExpressionNode iter,
StatementNode statements,
int  start,
int  end,
VariableEnvironment lexicalVariables 
)
inline

◆ createFormalParameterList()

FormalParameterList JSC::ASTBuilder::createFormalParameterList ( )
inline

◆ createForOfLoop() [1/2]

StatementNode* JSC::ASTBuilder::createForOfLoop ( const JSTokenLocation location,
ExpressionNode lhs,
ExpressionNode iter,
StatementNode statements,
const JSTokenLocation ,
const JSTextPosition eStart,
const JSTextPosition eDivot,
const JSTextPosition eEnd,
int  start,
int  end,
VariableEnvironment lexicalVariables 
)
inline

◆ createForOfLoop() [2/2]

StatementNode* JSC::ASTBuilder::createForOfLoop ( const JSTokenLocation location,
DestructuringPatternNode pattern,
ExpressionNode iter,
StatementNode statements,
const JSTokenLocation declLocation,
const JSTextPosition eStart,
const JSTextPosition eDivot,
const JSTextPosition eEnd,
int  start,
int  end,
VariableEnvironment lexicalVariables 
)
inline

◆ createFuncDeclStatement()

StatementNode* JSC::ASTBuilder::createFuncDeclStatement ( const JSTokenLocation location,
const ParserFunctionInfo< ASTBuilder > &  functionInfo 
)
inline

◆ createFunctionExpr()

ExpressionNode* JSC::ASTBuilder::createFunctionExpr ( const JSTokenLocation location,
const ParserFunctionInfo< ASTBuilder > &  functionInfo 
)
inline

◆ createFunctionMetadata()

FunctionMetadataNode* JSC::ASTBuilder::createFunctionMetadata ( const JSTokenLocation startLocation,
const JSTokenLocation endLocation,
unsigned  startColumn,
unsigned  endColumn,
int  functionKeywordStart,
int  functionNameStart,
int  parametersStart,
bool  inStrictContext,
ConstructorKind  constructorKind,
SuperBinding  superBinding,
unsigned  parameterCount,
unsigned  functionLength,
SourceParseMode  mode,
bool  isArrowFunctionBodyExpression 
)
inline

◆ createGeneratorFunctionBody()

ExpressionNode* JSC::ASTBuilder::createGeneratorFunctionBody ( const JSTokenLocation location,
const ParserFunctionInfo< ASTBuilder > &  functionInfo,
const Identifier name 
)
inline

◆ createGetterOrSetterProperty() [1/3]

NEVER_INLINE PropertyNode* JSC::ASTBuilder::createGetterOrSetterProperty ( const JSTokenLocation location,
PropertyNode::Type  type,
bool  ,
const Identifier name,
const ParserFunctionInfo< ASTBuilder > &  functionInfo,
bool  isClassProperty 
)
inline

◆ createGetterOrSetterProperty() [2/3]

NEVER_INLINE PropertyNode* JSC::ASTBuilder::createGetterOrSetterProperty ( const JSTokenLocation location,
PropertyNode::Type  type,
bool  ,
ExpressionNode name,
const ParserFunctionInfo< ASTBuilder > &  functionInfo,
bool  isClassProperty 
)
inline

◆ createGetterOrSetterProperty() [3/3]

NEVER_INLINE PropertyNode* JSC::ASTBuilder::createGetterOrSetterProperty ( VM vm,
ParserArena parserArena,
const JSTokenLocation location,
PropertyNode::Type  type,
bool  ,
double  name,
const ParserFunctionInfo< ASTBuilder > &  functionInfo,
bool  isClassProperty 
)
inline

◆ createIfStatement()

StatementNode* JSC::ASTBuilder::createIfStatement ( const JSTokenLocation location,
ExpressionNode condition,
StatementNode trueBlock,
StatementNode falseBlock,
int  start,
int  end 
)
inline

◆ createImportDeclaration()

StatementNode* JSC::ASTBuilder::createImportDeclaration ( const JSTokenLocation location,
ImportSpecifierListNode importSpecifierList,
ModuleNameNode moduleName 
)
inline

◆ createImportExpr()

ExpressionNode* JSC::ASTBuilder::createImportExpr ( const JSTokenLocation location,
ExpressionNode expr,
const JSTextPosition start,
const JSTextPosition divot,
const JSTextPosition end 
)
inline

◆ createImportSpecifier()

ImportSpecifierNode* JSC::ASTBuilder::createImportSpecifier ( const JSTokenLocation location,
const Identifier importedName,
const Identifier localName 
)
inline

◆ createImportSpecifierList()

ImportSpecifierListNode* JSC::ASTBuilder::createImportSpecifierList ( )
inline

◆ createIntegerExpr()

ExpressionNode* JSC::ASTBuilder::createIntegerExpr ( const JSTokenLocation location,
double  d 
)
inline

◆ createLabelStatement()

StatementNode* JSC::ASTBuilder::createLabelStatement ( const JSTokenLocation location,
const Identifier ident,
StatementNode statement,
const JSTextPosition start,
const JSTextPosition end 
)
inline

◆ createLogicalNot()

ExpressionNode* JSC::ASTBuilder::createLogicalNot ( const JSTokenLocation location,
ExpressionNode expr 
)
inline

◆ createMethodDefinition()

ExpressionNode* JSC::ASTBuilder::createMethodDefinition ( const JSTokenLocation location,
const ParserFunctionInfo< ASTBuilder > &  functionInfo 
)
inline

◆ createModuleName()

ModuleNameNode* JSC::ASTBuilder::createModuleName ( const JSTokenLocation location,
const Identifier moduleName 
)
inline

◆ createNewExpr() [1/2]

ExpressionNode* JSC::ASTBuilder::createNewExpr ( const JSTokenLocation location,
ExpressionNode expr,
ArgumentsNode arguments,
const JSTextPosition start,
const JSTextPosition divot,
const JSTextPosition end 
)
inline

◆ createNewExpr() [2/2]

ExpressionNode* JSC::ASTBuilder::createNewExpr ( const JSTokenLocation location,
ExpressionNode expr,
const JSTextPosition start,
const JSTextPosition end 
)
inline

◆ createNewTargetExpr()

ExpressionNode* JSC::ASTBuilder::createNewTargetExpr ( const JSTokenLocation  location)
inline

◆ createNull()

ExpressionNode* JSC::ASTBuilder::createNull ( const JSTokenLocation location)
inline

◆ createObjectLiteral() [1/2]

ExpressionNode* JSC::ASTBuilder::createObjectLiteral ( const JSTokenLocation location)
inline

◆ createObjectLiteral() [2/2]

ExpressionNode* JSC::ASTBuilder::createObjectLiteral ( const JSTokenLocation location,
PropertyListNode properties 
)
inline

◆ createObjectPattern()

ObjectPattern JSC::ASTBuilder::createObjectPattern ( const JSTokenLocation )
inline

◆ createProperty() [1/3]

PropertyNode* JSC::ASTBuilder::createProperty ( const Identifier propertyName,
ExpressionNode node,
PropertyNode::Type  type,
PropertyNode::PutType  putType,
bool  ,
SuperBinding  superBinding,
bool  isClassProperty 
)
inline

◆ createProperty() [2/3]

PropertyNode* JSC::ASTBuilder::createProperty ( VM vm,
ParserArena parserArena,
double  propertyName,
ExpressionNode node,
PropertyNode::Type  type,
PropertyNode::PutType  putType,
bool  ,
SuperBinding  superBinding,
bool  isClassProperty 
)
inline

◆ createProperty() [3/3]

PropertyNode* JSC::ASTBuilder::createProperty ( ExpressionNode propertyName,
ExpressionNode node,
PropertyNode::Type  type,
PropertyNode::PutType  putType,
bool  ,
SuperBinding  superBinding,
bool  isClassProperty 
)
inline

◆ createPropertyList() [1/2]

PropertyListNode* JSC::ASTBuilder::createPropertyList ( const JSTokenLocation location,
PropertyNode property 
)
inline

◆ createPropertyList() [2/2]

PropertyListNode* JSC::ASTBuilder::createPropertyList ( const JSTokenLocation location,
PropertyNode property,
PropertyListNode tail 
)
inline

◆ createRegExp()

ExpressionNode* JSC::ASTBuilder::createRegExp ( const JSTokenLocation location,
const Identifier pattern,
const Identifier flags,
const JSTextPosition start 
)
inline

◆ createResolve()

ExpressionNode* JSC::ASTBuilder::createResolve ( const JSTokenLocation location,
const Identifier ident,
const JSTextPosition start,
const JSTextPosition end 
)
inline

◆ createRestParameter()

RestParameterNode* JSC::ASTBuilder::createRestParameter ( DestructuringPatternNode pattern,
size_t  numParametersToSkip 
)
inline

◆ createReturnStatement()

StatementNode* JSC::ASTBuilder::createReturnStatement ( const JSTokenLocation location,
ExpressionNode expression,
const JSTextPosition start,
const JSTextPosition end 
)
inline

◆ createSourceElements()

JSC::SourceElements* JSC::ASTBuilder::createSourceElements ( )
inline

◆ createSpreadExpression()

ExpressionNode* JSC::ASTBuilder::createSpreadExpression ( const JSTokenLocation location,
ExpressionNode expression,
const JSTextPosition start,
const JSTextPosition divot,
const JSTextPosition end 
)
inline

◆ createString()

ExpressionNode* JSC::ASTBuilder::createString ( const JSTokenLocation location,
const Identifier string 
)
inline

◆ createSuperExpr()

ExpressionNode* JSC::ASTBuilder::createSuperExpr ( const JSTokenLocation location)
inline

◆ createSwitchStatement()

StatementNode* JSC::ASTBuilder::createSwitchStatement ( const JSTokenLocation location,
ExpressionNode expr,
ClauseListNode firstClauses,
CaseClauseNode defaultClause,
ClauseListNode secondClauses,
int  startLine,
int  endLine,
VariableEnvironment lexicalVariables,
DeclarationStacks::FunctionStack &&  functionStack 
)
inline

◆ createTaggedTemplate()

ExpressionNode* JSC::ASTBuilder::createTaggedTemplate ( const JSTokenLocation location,
ExpressionNode base,
TemplateLiteralNode templateLiteral,
const JSTextPosition start,
const JSTextPosition divot,
const JSTextPosition end 
)
inline

◆ createTemplateExpressionList() [1/2]

TemplateExpressionListNode* JSC::ASTBuilder::createTemplateExpressionList ( ExpressionNode expression)
inline

◆ createTemplateExpressionList() [2/2]

TemplateExpressionListNode* JSC::ASTBuilder::createTemplateExpressionList ( TemplateExpressionListNode templateExpressionListNode,
ExpressionNode expression 
)
inline

◆ createTemplateLiteral() [1/2]

TemplateLiteralNode* JSC::ASTBuilder::createTemplateLiteral ( const JSTokenLocation location,
TemplateStringListNode templateStringList 
)
inline

◆ createTemplateLiteral() [2/2]

TemplateLiteralNode* JSC::ASTBuilder::createTemplateLiteral ( const JSTokenLocation location,
TemplateStringListNode templateStringList,
TemplateExpressionListNode templateExpressionList 
)
inline

◆ createTemplateString()

TemplateStringNode* JSC::ASTBuilder::createTemplateString ( const JSTokenLocation location,
const Identifier cooked,
const Identifier raw 
)
inline

◆ createTemplateStringList() [1/2]

TemplateStringListNode* JSC::ASTBuilder::createTemplateStringList ( TemplateStringNode templateString)
inline

◆ createTemplateStringList() [2/2]

TemplateStringListNode* JSC::ASTBuilder::createTemplateStringList ( TemplateStringListNode templateStringList,
TemplateStringNode templateString 
)
inline

◆ createThisExpr()

ExpressionNode* JSC::ASTBuilder::createThisExpr ( const JSTokenLocation location)
inline

◆ createThrowStatement()

StatementNode* JSC::ASTBuilder::createThrowStatement ( const JSTokenLocation location,
ExpressionNode expr,
const JSTextPosition start,
const JSTextPosition end 
)
inline

◆ createTryStatement()

StatementNode* JSC::ASTBuilder::createTryStatement ( const JSTokenLocation location,
StatementNode tryBlock,
DestructuringPatternNode catchPattern,
StatementNode catchBlock,
StatementNode finallyBlock,
int  startLine,
int  endLine,
VariableEnvironment catchEnvironment 
)
inline

◆ createUnaryPlus()

ExpressionNode* JSC::ASTBuilder::createUnaryPlus ( const JSTokenLocation location,
ExpressionNode expr 
)
inline

◆ createVoid()

ExpressionNode* JSC::ASTBuilder::createVoid ( const JSTokenLocation location,
ExpressionNode expr 
)
inline

◆ createWhileStatement()

StatementNode* JSC::ASTBuilder::createWhileStatement ( const JSTokenLocation location,
ExpressionNode expr,
StatementNode statement,
int  startLine,
int  endLine 
)
inline

◆ createWithStatement()

StatementNode* JSC::ASTBuilder::createWithStatement ( const JSTokenLocation location,
ExpressionNode expr,
StatementNode statement,
unsigned  start,
const JSTextPosition end,
unsigned  startLine,
unsigned  endLine 
)
inline

◆ createYield() [1/2]

YieldExprNode* JSC::ASTBuilder::createYield ( const JSTokenLocation location)
inline

◆ createYield() [2/2]

YieldExprNode* JSC::ASTBuilder::createYield ( const JSTokenLocation location,
ExpressionNode argument,
bool  delegate,
const JSTextPosition start,
const JSTextPosition divot,
const JSTextPosition end 
)
inline

◆ endOffset()

int JSC::ASTBuilder::endOffset ( Node node)
inline

◆ evalCount()

int JSC::ASTBuilder::evalCount ( ) const
inline

◆ features()

int JSC::ASTBuilder::features ( ) const
inline

◆ finishArrayPattern()

void JSC::ASTBuilder::finishArrayPattern ( ArrayPattern  node,
const JSTextPosition divotStart,
const JSTextPosition divot,
const JSTextPosition divotEnd 
)
inline

◆ getFromOperandStack()

const BinaryOperand& JSC::ASTBuilder::getFromOperandStack ( int  i)
inline

◆ getName()

const Identifier* JSC::ASTBuilder::getName ( const Property property) const
inline

◆ getType()

PropertyNode::Type JSC::ASTBuilder::getType ( const Property property) const
inline

◆ isArrayLiteral()

bool JSC::ASTBuilder::isArrayLiteral ( const Expression node)
inline

◆ isAssignmentLocation()

bool JSC::ASTBuilder::isAssignmentLocation ( const Expression pattern)
inline

◆ isBindingNode()

bool JSC::ASTBuilder::isBindingNode ( const DestructuringPattern pattern)
inline

◆ isNewTarget()

bool JSC::ASTBuilder::isNewTarget ( ExpressionNode node)
inline

◆ isObjectLiteral()

bool JSC::ASTBuilder::isObjectLiteral ( const Expression node)
inline

◆ isObjectOrArrayLiteral()

bool JSC::ASTBuilder::isObjectOrArrayLiteral ( const Expression node)
inline

◆ isResolve()

bool JSC::ASTBuilder::isResolve ( ExpressionNode expr) const
inline

◆ makeAddNode()

ExpressionNode * JSC::ASTBuilder::makeAddNode ( const JSTokenLocation location,
ExpressionNode left,
ExpressionNode right,
bool  rightHasAssignments 
)

◆ makeAssignNode()

ExpressionNode * JSC::ASTBuilder::makeAssignNode ( const JSTokenLocation location,
ExpressionNode left,
Operator  op,
ExpressionNode right,
bool  leftHasAssignments,
bool  rightHasAssignments,
const JSTextPosition start,
const JSTextPosition divot,
const JSTextPosition end 
)

◆ makeBinaryNode()

ExpressionNode * JSC::ASTBuilder::makeBinaryNode ( const JSTokenLocation location,
int  token,
std::pair< ExpressionNode *, BinaryOpInfo >  lhs,
std::pair< ExpressionNode *, BinaryOpInfo >  rhs 
)

◆ makeBitAndNode()

ExpressionNode * JSC::ASTBuilder::makeBitAndNode ( const JSTokenLocation location,
ExpressionNode left,
ExpressionNode right,
bool  rightHasAssignments 
)

◆ makeBitOrNode()

ExpressionNode * JSC::ASTBuilder::makeBitOrNode ( const JSTokenLocation location,
ExpressionNode left,
ExpressionNode right,
bool  rightHasAssignments 
)

◆ makeBitwiseNotNode()

ExpressionNode * JSC::ASTBuilder::makeBitwiseNotNode ( const JSTokenLocation location,
ExpressionNode expr 
)

◆ makeBitXOrNode()

ExpressionNode * JSC::ASTBuilder::makeBitXOrNode ( const JSTokenLocation location,
ExpressionNode left,
ExpressionNode right,
bool  rightHasAssignments 
)

◆ makeDeleteNode()

ExpressionNode * JSC::ASTBuilder::makeDeleteNode ( const JSTokenLocation location,
ExpressionNode expr,
const JSTextPosition start,
const JSTextPosition divot,
const JSTextPosition end 
)

◆ makeDivNode()

ExpressionNode * JSC::ASTBuilder::makeDivNode ( const JSTokenLocation location,
ExpressionNode left,
ExpressionNode right,
bool  rightHasAssignments 
)

◆ makeFunctionCallNode()

ExpressionNode * JSC::ASTBuilder::makeFunctionCallNode ( const JSTokenLocation location,
ExpressionNode func,
ArgumentsNode args,
const JSTextPosition divotStart,
const JSTextPosition divot,
const JSTextPosition divotEnd 
)

◆ makeLeftShiftNode()

ExpressionNode * JSC::ASTBuilder::makeLeftShiftNode ( const JSTokenLocation location,
ExpressionNode left,
ExpressionNode right,
bool  rightHasAssignments 
)

◆ makeModNode()

ExpressionNode * JSC::ASTBuilder::makeModNode ( const JSTokenLocation location,
ExpressionNode left,
ExpressionNode right,
bool  rightHasAssignments 
)

◆ makeMultNode()

ExpressionNode * JSC::ASTBuilder::makeMultNode ( const JSTokenLocation location,
ExpressionNode left,
ExpressionNode right,
bool  rightHasAssignments 
)

◆ makeNegateNode()

ExpressionNode * JSC::ASTBuilder::makeNegateNode ( const JSTokenLocation location,
ExpressionNode n 
)

◆ makePostfixNode()

ExpressionNode * JSC::ASTBuilder::makePostfixNode ( const JSTokenLocation location,
ExpressionNode expr,
Operator  op,
const JSTextPosition start,
const JSTextPosition divot,
const JSTextPosition end 
)

◆ makePowNode()

ExpressionNode * JSC::ASTBuilder::makePowNode ( const JSTokenLocation location,
ExpressionNode left,
ExpressionNode right,
bool  rightHasAssignments 
)

◆ makePrefixNode()

ExpressionNode * JSC::ASTBuilder::makePrefixNode ( const JSTokenLocation location,
ExpressionNode expr,
Operator  op,
const JSTextPosition start,
const JSTextPosition divot,
const JSTextPosition end 
)

◆ makeRightShiftNode()

ExpressionNode * JSC::ASTBuilder::makeRightShiftNode ( const JSTokenLocation location,
ExpressionNode left,
ExpressionNode right,
bool  rightHasAssignments 
)

◆ makeSubNode()

ExpressionNode * JSC::ASTBuilder::makeSubNode ( const JSTokenLocation location,
ExpressionNode left,
ExpressionNode right,
bool  rightHasAssignments 
)

◆ makeTypeOfNode()

ExpressionNode * JSC::ASTBuilder::makeTypeOfNode ( const JSTokenLocation location,
ExpressionNode expr 
)

◆ makeURightShiftNode()

ExpressionNode * JSC::ASTBuilder::makeURightShiftNode ( const JSTokenLocation location,
ExpressionNode left,
ExpressionNode right,
bool  rightHasAssignments 
)

◆ numConstants()

int JSC::ASTBuilder::numConstants ( ) const
inline

◆ operatorStackAppend()

void JSC::ASTBuilder::operatorStackAppend ( int &  operatorStackDepth,
int  op,
int  precedence 
)
inline

◆ operatorStackPop()

void JSC::ASTBuilder::operatorStackPop ( int &  operatorStackDepth)
inline

◆ operatorStackShouldReduce()

bool JSC::ASTBuilder::operatorStackShouldReduce ( int  precedence)
inline

◆ popOperandStack()

ExpressionNode* JSC::ASTBuilder::popOperandStack ( int &  )
inline

◆ propagateArgumentsUse()

void JSC::ASTBuilder::propagateArgumentsUse ( )
inline

◆ setEndOffset()

void JSC::ASTBuilder::setEndOffset ( Node node,
int  offset 
)
inline

◆ setStartOffset() [1/2]

void JSC::ASTBuilder::setStartOffset ( CaseClauseNode node,
int  offset 
)
inline

◆ setStartOffset() [2/2]

void JSC::ASTBuilder::setStartOffset ( Node node,
int  offset 
)
inline

◆ shouldSkipPauseLocation()

bool JSC::ASTBuilder::shouldSkipPauseLocation ( StatementNode statement) const
inline

◆ shrinkOperandStackBy()

void JSC::ASTBuilder::shrinkOperandStackBy ( int &  operandStackDepth,
int  amount 
)
inline

◆ unaryTokenStackLastStart()

const JSTextPosition& JSC::ASTBuilder::unaryTokenStackLastStart ( int &  )
inline

◆ unaryTokenStackLastType()

int JSC::ASTBuilder::unaryTokenStackLastType ( int &  )
inline

◆ unaryTokenStackRemoveLast()

void JSC::ASTBuilder::unaryTokenStackRemoveLast ( int &  tokenStackDepth)
inline

Member Data Documentation

◆ CanUseFunctionCache

const bool JSC::ASTBuilder::CanUseFunctionCache = true
static

◆ CreatesAST

const bool JSC::ASTBuilder::CreatesAST = true
static

◆ DontBuildKeywords

const int JSC::ASTBuilder::DontBuildKeywords = 0
static

◆ DontBuildStrings

const int JSC::ASTBuilder::DontBuildStrings = 0
static

◆ NeedsFreeVariableInfo

const bool JSC::ASTBuilder::NeedsFreeVariableInfo = true
static

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