|
| | 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 () |
| |