|
| BytecodeGenerator (VM &, ProgramNode *, UnlinkedProgramCodeBlock *, DebuggerMode, const VariableEnvironment *) |
|
| BytecodeGenerator (VM &, FunctionNode *, UnlinkedFunctionCodeBlock *, DebuggerMode, const VariableEnvironment *) |
|
| BytecodeGenerator (VM &, EvalNode *, UnlinkedEvalCodeBlock *, DebuggerMode, const VariableEnvironment *) |
|
| BytecodeGenerator (VM &, ModuleProgramNode *, UnlinkedModuleProgramCodeBlock *, DebuggerMode, const VariableEnvironment *) |
|
| ~BytecodeGenerator () |
|
VM * | vm () const |
|
ParserArena & | parserArena () const |
|
const CommonIdentifiers & | propertyNames () const |
|
bool | isConstructor () const |
|
DerivedContextType | derivedContextType () const |
|
bool | usesArrowFunction () const |
|
bool | needsToUpdateArrowFunctionContext () const |
|
bool | usesEval () const |
|
bool | usesThis () const |
|
ConstructorKind | constructorKind () const |
|
SuperBinding | superBinding () const |
|
JSParserScriptMode | scriptMode () const |
|
bool | isArgumentNumber (const Identifier &, int) |
|
Variable | variable (const Identifier &, ThisResolutionType=ThisResolutionType::Local) |
|
void | createVariable (const Identifier &, VarKind, SymbolTable *, ExistingVariableMode=VerifyExisting) |
|
RegisterID * | thisRegister () |
|
RegisterID * | argumentsRegister () |
|
RegisterID * | newTarget () |
|
RegisterID * | scopeRegister () |
|
RegisterID * | generatorRegister () |
|
RegisterID * | promiseCapabilityRegister () |
|
RegisterID * | newTemporary () |
|
RegisterID * | newTemporaryOr (RegisterID *suggestion) |
|
RegisterID * | ignoredResult () |
|
RegisterID * | newBlockScopeVariable () |
|
RegisterID * | tempDestination (RegisterID *dst) |
|
RegisterID * | finalDestination (RegisterID *originalDst, RegisterID *tempDst=0) |
|
RegisterID * | destinationForAssignResult (RegisterID *dst) |
|
RegisterID * | moveToDestinationIfNeeded (RegisterID *dst, RegisterID *src) |
|
LabelScopePtr | newLabelScope (LabelScope::Type, const Identifier *=0) |
|
Ref< Label > | newLabel () |
|
Ref< Label > | newEmittedLabel () |
|
void | emitNode (RegisterID *dst, StatementNode *n) |
|
void | emitNodeInTailPosition (RegisterID *dst, StatementNode *n) |
|
void | emitNode (StatementNode *n) |
|
void | emitNodeInTailPosition (StatementNode *n) |
|
RegisterID * | emitNode (RegisterID *dst, ExpressionNode *n) |
|
RegisterID * | emitNodeInTailPosition (RegisterID *dst, ExpressionNode *n) |
|
RegisterID * | emitNode (ExpressionNode *n) |
|
RegisterID * | emitNodeInTailPosition (ExpressionNode *n) |
|
void | emitNodeInConditionContext (ExpressionNode *n, Label &trueTarget, Label &falseTarget, FallThroughMode fallThroughMode) |
|
void | emitExpressionInfo (const JSTextPosition &divot, const JSTextPosition &divotStart, const JSTextPosition &divotEnd) |
|
ALWAYS_INLINE bool | leftHandSideNeedsCopy (bool rightHasAssignments, bool rightIsPure) |
|
ALWAYS_INLINE RefPtr< RegisterID > | emitNodeForLeftHandSide (ExpressionNode *n, bool rightHasAssignments, bool rightIsPure) |
|
void | hoistSloppyModeFunctionIfNecessary (const Identifier &functionName) |
|
void | emitProfileType (RegisterID *registerToProfile, ProfileTypeBytecodeFlag) |
|
void | emitProfileType (RegisterID *registerToProfile, const Variable &, const JSTextPosition &startDivot, const JSTextPosition &endDivot) |
|
void | emitProfileType (RegisterID *registerToProfile, ProfileTypeBytecodeFlag, const JSTextPosition &startDivot, const JSTextPosition &endDivot) |
|
void | emitProfileType (RegisterID *registerToProfile, const JSTextPosition &startDivot, const JSTextPosition &endDivot) |
|
void | emitProfileControlFlow (int) |
|
RegisterID * | emitLoadArrowFunctionLexicalEnvironment (const Identifier &) |
|
RegisterID * | ensureThis () |
|
void | emitLoadThisFromArrowFunctionLexicalEnvironment () |
|
RegisterID * | emitLoadNewTargetFromArrowFunctionLexicalEnvironment () |
|
RegisterID * | emitLoad (RegisterID *dst, bool) |
|
RegisterID * | emitLoad (RegisterID *dst, const Identifier &) |
|
RegisterID * | emitLoad (RegisterID *dst, JSValue, SourceCodeRepresentation=SourceCodeRepresentation::Other) |
|
RegisterID * | emitLoadGlobalObject (RegisterID *dst) |
|
RegisterID * | emitUnaryOp (OpcodeID, RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitUnaryOp (OpcodeID, RegisterID *dst, RegisterID *src, OperandTypes) |
|
RegisterID * | emitUnaryOpProfiled (OpcodeID, RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitBinaryOp (OpcodeID, RegisterID *dst, RegisterID *src1, RegisterID *src2, OperandTypes) |
|
RegisterID * | emitEqualityOp (OpcodeID, RegisterID *dst, RegisterID *src1, RegisterID *src2) |
|
RegisterID * | emitUnaryNoDstOp (OpcodeID, RegisterID *src) |
|
RegisterID * | emitCreateThis (RegisterID *dst) |
|
void | emitTDZCheck (RegisterID *target) |
|
bool | needsTDZCheck (const Variable &) |
|
void | emitTDZCheckIfNecessary (const Variable &, RegisterID *target, RegisterID *scope) |
|
void | liftTDZCheckIfPossible (const Variable &) |
|
RegisterID * | emitNewObject (RegisterID *dst) |
|
RegisterID * | emitNewArray (RegisterID *dst, ElementNode *, unsigned length) |
|
RegisterID * | emitNewArrayWithSpread (RegisterID *dst, ElementNode *) |
|
RegisterID * | emitNewArrayWithSize (RegisterID *dst, RegisterID *length) |
|
RegisterID * | emitNewFunction (RegisterID *dst, FunctionMetadataNode *) |
|
RegisterID * | emitNewFunctionExpression (RegisterID *dst, FuncExprNode *) |
|
RegisterID * | emitNewDefaultConstructor (RegisterID *dst, ConstructorKind, const Identifier &name, const Identifier &ecmaName, const SourceCode &classSource) |
|
RegisterID * | emitNewArrowFunctionExpression (RegisterID *, ArrowFuncExprNode *) |
|
RegisterID * | emitNewMethodDefinition (RegisterID *dst, MethodDefinitionNode *) |
|
RegisterID * | emitNewRegExp (RegisterID *dst, RegExp *) |
|
void | emitSetFunctionNameIfNeeded (ExpressionNode *valueNode, RegisterID *value, RegisterID *name) |
|
RegisterID * | emitMoveLinkTimeConstant (RegisterID *dst, LinkTimeConstant) |
|
RegisterID * | emitMoveEmptyValue (RegisterID *dst) |
|
RegisterID * | emitMove (RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitToNumber (RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitToString (RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitInc (RegisterID *srcDst) |
|
RegisterID * | emitDec (RegisterID *srcDst) |
|
RegisterID * | emitOverridesHasInstance (RegisterID *dst, RegisterID *constructor, RegisterID *hasInstanceValue) |
|
RegisterID * | emitInstanceOf (RegisterID *dst, RegisterID *value, RegisterID *basePrototype) |
|
RegisterID * | emitInstanceOfCustom (RegisterID *dst, RegisterID *value, RegisterID *constructor, RegisterID *hasInstanceValue) |
|
RegisterID * | emitTypeOf (RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitIn (RegisterID *dst, RegisterID *property, RegisterID *base) |
|
RegisterID * | emitTryGetById (RegisterID *dst, RegisterID *base, const Identifier &property) |
|
RegisterID * | emitGetById (RegisterID *dst, RegisterID *base, const Identifier &property) |
|
RegisterID * | emitGetById (RegisterID *dst, RegisterID *base, RegisterID *thisVal, const Identifier &property) |
|
RegisterID * | emitPutById (RegisterID *base, const Identifier &property, RegisterID *value) |
|
RegisterID * | emitPutById (RegisterID *base, RegisterID *thisValue, const Identifier &property, RegisterID *value) |
|
RegisterID * | emitDirectPutById (RegisterID *base, const Identifier &property, RegisterID *value, PropertyNode::PutType) |
|
RegisterID * | emitDeleteById (RegisterID *dst, RegisterID *base, const Identifier &) |
|
RegisterID * | emitGetByVal (RegisterID *dst, RegisterID *base, RegisterID *property) |
|
RegisterID * | emitGetByVal (RegisterID *dst, RegisterID *base, RegisterID *thisValue, RegisterID *property) |
|
RegisterID * | emitGetArgumentByVal (RegisterID *dst, RegisterID *base, RegisterID *property) |
|
RegisterID * | emitPutByVal (RegisterID *base, RegisterID *property, RegisterID *value) |
|
RegisterID * | emitPutByVal (RegisterID *base, RegisterID *thisValue, RegisterID *property, RegisterID *value) |
|
RegisterID * | emitDirectPutByVal (RegisterID *base, RegisterID *property, RegisterID *value) |
|
RegisterID * | emitDeleteByVal (RegisterID *dst, RegisterID *base, RegisterID *property) |
|
RegisterID * | emitPutByIndex (RegisterID *base, unsigned index, RegisterID *value) |
|
RegisterID * | emitAssert (RegisterID *condition, int line) |
|
void | emitPutGetterById (RegisterID *base, const Identifier &property, unsigned propertyDescriptorOptions, RegisterID *getter) |
|
void | emitPutSetterById (RegisterID *base, const Identifier &property, unsigned propertyDescriptorOptions, RegisterID *setter) |
|
void | emitPutGetterSetter (RegisterID *base, const Identifier &property, unsigned attributes, RegisterID *getter, RegisterID *setter) |
|
void | emitPutGetterByVal (RegisterID *base, RegisterID *property, unsigned propertyDescriptorOptions, RegisterID *getter) |
|
void | emitPutSetterByVal (RegisterID *base, RegisterID *property, unsigned propertyDescriptorOptions, RegisterID *setter) |
|
RegisterID * | emitGetArgument (RegisterID *dst, int32_t index) |
|
void | emitPutGeneratorFields (RegisterID *nextFunction) |
|
ExpectedFunction | expectedFunctionForIdentifier (const Identifier &) |
|
RegisterID * | emitCall (RegisterID *dst, RegisterID *func, ExpectedFunction, CallArguments &, const JSTextPosition &divot, const JSTextPosition &divotStart, const JSTextPosition &divotEnd, DebuggableCall) |
|
RegisterID * | emitCallInTailPosition (RegisterID *dst, RegisterID *func, ExpectedFunction, CallArguments &, const JSTextPosition &divot, const JSTextPosition &divotStart, const JSTextPosition &divotEnd, DebuggableCall) |
|
RegisterID * | emitCallEval (RegisterID *dst, RegisterID *func, CallArguments &, const JSTextPosition &divot, const JSTextPosition &divotStart, const JSTextPosition &divotEnd, DebuggableCall) |
|
RegisterID * | emitCallVarargs (RegisterID *dst, RegisterID *func, RegisterID *thisRegister, RegisterID *arguments, RegisterID *firstFreeRegister, int32_t firstVarArgOffset, const JSTextPosition &divot, const JSTextPosition &divotStart, const JSTextPosition &divotEnd, DebuggableCall) |
|
RegisterID * | emitCallVarargsInTailPosition (RegisterID *dst, RegisterID *func, RegisterID *thisRegister, RegisterID *arguments, RegisterID *firstFreeRegister, int32_t firstVarArgOffset, const JSTextPosition &divot, const JSTextPosition &divotStart, const JSTextPosition &divotEnd, DebuggableCall) |
|
RegisterID * | emitCallForwardArgumentsInTailPosition (RegisterID *dst, RegisterID *func, RegisterID *thisRegister, RegisterID *firstFreeRegister, int32_t firstVarArgOffset, const JSTextPosition &divot, const JSTextPosition &divotStart, const JSTextPosition &divotEnd, DebuggableCall) |
|
void | emitCallDefineProperty (RegisterID *newObj, RegisterID *propertyNameRegister, RegisterID *valueRegister, RegisterID *getterRegister, RegisterID *setterRegister, unsigned options, const JSTextPosition &) |
|
void | emitEnumeration (ThrowableExpressionData *enumerationNode, ExpressionNode *subjectNode, const std::function< void(BytecodeGenerator &, RegisterID *)> &callBack, ForOfNode *=nullptr, RegisterID *forLoopSymbolTable=nullptr) |
|
RegisterID * | emitGetTemplateObject (RegisterID *dst, TaggedTemplateNode *) |
|
RegisterID * | emitGetGlobalPrivate (RegisterID *dst, const Identifier &property) |
|
RegisterID * | emitReturn (RegisterID *src, ReturnFrom=ReturnFrom::Normal) |
|
RegisterID * | emitEnd (RegisterID *src) |
|
RegisterID * | emitConstruct (RegisterID *dst, RegisterID *func, ExpectedFunction, CallArguments &, const JSTextPosition &divot, const JSTextPosition &divotStart, const JSTextPosition &divotEnd) |
|
RegisterID * | emitStrcat (RegisterID *dst, RegisterID *src, int count) |
|
void | emitToPrimitive (RegisterID *dst, RegisterID *src) |
|
ResolveType | resolveType () |
|
RegisterID * | emitResolveConstantLocal (RegisterID *dst, const Variable &) |
|
RegisterID * | emitResolveScope (RegisterID *dst, const Variable &) |
|
RegisterID * | emitGetFromScope (RegisterID *dst, RegisterID *scope, const Variable &, ResolveMode) |
|
RegisterID * | emitPutToScope (RegisterID *scope, const Variable &, RegisterID *value, ResolveMode, InitializationMode) |
|
RegisterID * | initializeVariable (const Variable &, RegisterID *value) |
|
void | emitLabel (Label &) |
|
void | emitLoopHint () |
|
void | emitJump (Label &target) |
|
void | emitJumpIfTrue (RegisterID *cond, Label &target) |
|
void | emitJumpIfFalse (RegisterID *cond, Label &target) |
|
void | emitJumpIfNotFunctionCall (RegisterID *cond, Label &target) |
|
void | emitJumpIfNotFunctionApply (RegisterID *cond, Label &target) |
|
void | emitEnter () |
|
void | emitCheckTraps () |
|
RegisterID * | emitHasIndexedProperty (RegisterID *dst, RegisterID *base, RegisterID *propertyName) |
|
RegisterID * | emitHasStructureProperty (RegisterID *dst, RegisterID *base, RegisterID *propertyName, RegisterID *enumerator) |
|
RegisterID * | emitHasGenericProperty (RegisterID *dst, RegisterID *base, RegisterID *propertyName) |
|
RegisterID * | emitGetPropertyEnumerator (RegisterID *dst, RegisterID *base) |
|
RegisterID * | emitGetEnumerableLength (RegisterID *dst, RegisterID *base) |
|
RegisterID * | emitGetStructurePropertyEnumerator (RegisterID *dst, RegisterID *base, RegisterID *length) |
|
RegisterID * | emitGetGenericPropertyEnumerator (RegisterID *dst, RegisterID *base, RegisterID *length, RegisterID *structureEnumerator) |
|
RegisterID * | emitEnumeratorStructurePropertyName (RegisterID *dst, RegisterID *enumerator, RegisterID *index) |
|
RegisterID * | emitEnumeratorGenericPropertyName (RegisterID *dst, RegisterID *enumerator, RegisterID *index) |
|
RegisterID * | emitToIndexString (RegisterID *dst, RegisterID *index) |
|
RegisterID * | emitIsCellWithType (RegisterID *dst, RegisterID *src, JSType) |
|
RegisterID * | emitIsJSArray (RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitIsProxyObject (RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitIsRegExpObject (RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitIsMap (RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitIsSet (RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitIsObject (RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitIsNumber (RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitIsUndefined (RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitIsEmpty (RegisterID *dst, RegisterID *src) |
|
RegisterID * | emitIsDerivedArray (RegisterID *dst, RegisterID *src) |
|
void | emitRequireObjectCoercible (RegisterID *value, const String &error) |
|
RegisterID * | emitIteratorNext (RegisterID *dst, RegisterID *iterator, const ThrowableExpressionData *node) |
|
RegisterID * | emitIteratorNextWithValue (RegisterID *dst, RegisterID *iterator, RegisterID *value, const ThrowableExpressionData *node) |
|
void | emitIteratorClose (RegisterID *iterator, const ThrowableExpressionData *node) |
|
RegisterID * | emitRestParameter (RegisterID *result, unsigned numParametersToSkip) |
|
bool | emitReadOnlyExceptionIfNeeded (const Variable &) |
|
TryData * | pushTry (Label &start, Label &handlerLabel, HandlerType) |
|
void | popTry (TryData *, Label &end) |
|
void | emitCatch (RegisterID *exceptionRegister, RegisterID *thrownValueRegister) |
|
void | restoreScopeRegister () |
|
void | restoreScopeRegister (int lexicalScopeIndex) |
|
int | labelScopeDepthToLexicalScopeIndex (int labelScopeDepth) |
|
void | emitThrow (RegisterID *exc) |
|
void | emitThrowStaticError (ErrorType, RegisterID *) |
|
void | emitThrowStaticError (ErrorType, const Identifier &message) |
|
void | emitThrowReferenceError (const String &message) |
|
void | emitThrowTypeError (const String &message) |
|
void | emitThrowTypeError (const Identifier &message) |
|
void | emitThrowRangeError (const Identifier &message) |
|
void | emitThrowOutOfMemoryError () |
|
void | emitPushCatchScope (VariableEnvironment &) |
|
void | emitPopCatchScope (VariableEnvironment &) |
|
void | emitGetScope () |
|
RegisterID * | emitPushWithScope (RegisterID *objectScope) |
|
void | emitPopWithScope () |
|
void | emitPutThisToArrowFunctionContextScope () |
|
void | emitPutNewTargetToArrowFunctionContextScope () |
|
void | emitPutDerivedConstructorToArrowFunctionContextScope () |
|
RegisterID * | emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment () |
|
void | emitDebugHook (DebugHookType, const JSTextPosition &) |
|
void | emitDebugHook (DebugHookType, unsigned line, unsigned charOffset, unsigned lineStart) |
|
void | emitDebugHook (StatementNode *) |
|
void | emitDebugHook (ExpressionNode *) |
|
void | emitWillLeaveCallFrameDebugHook () |
|
RegisterID * | completionTypeRegister () const |
|
RegisterID * | completionValueRegister () const |
|
void | emitSetCompletionType (CompletionType type) |
|
void | emitSetCompletionValue (RegisterID *reg) |
|
void | emitJumpIf (OpcodeID compareOpcode, RegisterID *completionTypeRegister, CompletionType, Label &jumpTarget) |
|
bool | emitJumpViaFinallyIfNeeded (int targetLabelScopeDepth, Label &jumpTarget) |
|
bool | emitReturnViaFinallyIfNeeded (RegisterID *returnRegister) |
|
void | emitFinallyCompletion (FinallyContext &, RegisterID *completionTypeRegister, Label &normalCompletionLabel) |
|
FinallyContext * | pushFinallyControlFlowScope (Label &finallyLabel) |
|
FinallyContext | popFinallyControlFlowScope () |
|
void | pushIndexedForInScope (RegisterID *local, RegisterID *index) |
|
void | popIndexedForInScope (RegisterID *local) |
|
void | pushStructureForInScope (RegisterID *local, RegisterID *index, RegisterID *property, RegisterID *enumerator) |
|
void | popStructureForInScope (RegisterID *local) |
|
void | invalidateForInContextForLocal (RegisterID *local) |
|
LabelScopePtr | breakTarget (const Identifier &) |
|
LabelScopePtr | continueTarget (const Identifier &) |
|
void | beginSwitch (RegisterID *, SwitchInfo::SwitchType) |
|
void | endSwitch (uint32_t clauseCount, const Vector< Ref< Label >, 8 > &, ExpressionNode **, Label &defaultLabel, int32_t min, int32_t range) |
|
void | emitYieldPoint (RegisterID *) |
|
void | emitGeneratorStateLabel () |
|
void | emitGeneratorStateChange (int32_t state) |
|
RegisterID * | emitYield (RegisterID *argument) |
|
RegisterID * | emitDelegateYield (RegisterID *argument, ThrowableExpressionData *) |
|
RegisterID * | generatorStateRegister () |
|
RegisterID * | generatorValueRegister () |
|
RegisterID * | generatorResumeModeRegister () |
|
RegisterID * | generatorFrameRegister () |
|
CodeType | codeType () const |
|
bool | shouldEmitDebugHooks () |
|
bool | isStrictMode () const |
|
SourceParseMode | parseMode () const |
|
bool | isBuiltinFunction () const |
|
OpcodeID | lastOpcodeID () const |
|
bool | isDerivedConstructorContext () |
|
bool | isDerivedClassContext () |
|
bool | isArrowFunction () |
|
bool | isSuperUsedInInnerArrowFunction () |
|
bool | isSuperCallUsedInInnerArrowFunction () |
|
bool | isThisUsedInInnerArrowFunction () |
|
void | pushLexicalScope (VariableEnvironmentNode *, TDZCheckOptimization, NestedScopeType=NestedScopeType::IsNotNested, RegisterID **constantSymbolTableResult=nullptr, bool shouldInitializeBlockScopedFunctions=true) |
|
void | popLexicalScope (VariableEnvironmentNode *) |
|
void | prepareLexicalScopeForNextForLoopIteration (VariableEnvironmentNode *, RegisterID *loopSymbolTable) |
|
int | labelScopeDepth () const |
|
JSString * | addStringConstant (const Identifier &) |
|
JSTemplateRegistryKey * | addTemplateRegistryKeyConstant (Ref< TemplateRegistryKey > &&) |
|
Vector< UnlinkedInstruction, 0, UnsafeVectorOverflow > & | instructions () |
|
RegisterID * | emitThrowExpressionTooDeepException () |
|