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

#include <FunctionCodeBlock.h>

Inheritance diagram for JSC::FunctionCodeBlock:
JSC::CodeBlock JSC::JSCell JSC::JSCell JSC::HeapCell JSC::HeapCell JSC::HeapCell JSC::HeapCell

Public Types

typedef CodeBlock Base
 
- Public Types inherited from JSC::CodeBlock
enum  CopyParsedBlockTag { CopyParsedBlock, CopyParsedBlock }
 
enum  ShrinkMode { EarlyShrink, LateShrink, EarlyShrink, LateShrink }
 
enum  SteppingMode { SteppingModeDisabled, SteppingModeEnabled, SteppingModeDisabled, SteppingModeEnabled }
 
enum  CopyParsedBlockTag { CopyParsedBlock, CopyParsedBlock }
 
enum  ShrinkMode { EarlyShrink, LateShrink, EarlyShrink, LateShrink }
 
enum  SteppingMode { SteppingModeDisabled, SteppingModeEnabled, SteppingModeDisabled, SteppingModeEnabled }
 
typedef JSC::Instruction Instruction
 
typedef RefCountedArray< Instruction > & UnpackedInstructions
 
typedef HashMap< Structure *, Bag< LLIntPrototypeLoadAdaptiveStructureWatchpoint > > StructureWatchpointMap
 
typedef JSC::Instruction Instruction
 
typedef RefCountedArray< Instruction > & UnpackedInstructions
 
typedef HashMap< Structure *, Bag< LLIntPrototypeLoadAdaptiveStructureWatchpoint > > StructureWatchpointMap
 
- Public Types inherited from JSC::JSCell
enum  CreatingEarlyCellTag { CreatingEarlyCell, CreatingEarlyCell }
 
enum  CreatingEarlyCellTag { CreatingEarlyCell, CreatingEarlyCell }
 
- Public Types inherited from JSC::HeapCell
enum  Kind : int8_t { JSCell, Auxiliary, JSCell, Auxiliary }
 
enum  Kind : int8_t { JSCell, Auxiliary, JSCell, Auxiliary }
 

Static Public Member Functions

static FunctionCodeBlockcreate (VM *vm, CopyParsedBlockTag, FunctionCodeBlock &other)
 
static FunctionCodeBlockcreate (VM *vm, FunctionExecutable *ownerExecutable, UnlinkedFunctionCodeBlock *unlinkedCodeBlock, JSScope *scope, RefPtr< SourceProvider > &&sourceProvider, unsigned sourceOffset, unsigned firstLineColumnOffset)
 
static StructurecreateStructure (VM &vm, JSGlobalObject *globalObject, JSValue prototype)
 
- Static Public Member Functions inherited from JSC::CodeBlock
static ptrdiff_t offsetOfNumParameters ()
 
static size_t estimatedSize (JSCell *)
 
static void visitChildren (JSCell *, SlotVisitor &)
 
static void clearLLIntGetByIdCache (Instruction *)
 
static ptrdiff_t jitCodeOffset ()
 
static ALWAYS_INLINE bool isConstantRegisterIndex (int index)
 
static unsigned numberOfLLIntBaselineCalleeSaveRegisters ()
 
static size_t llintBaselineCalleeSaveSpaceAsVirtualRegisters ()
 
static ptrdiff_t offsetOfNumParameters ()
 
static size_t estimatedSize (JSCell *)
 
static void visitChildren (JSCell *, SlotVisitor &)
 
static void clearLLIntGetByIdCache (Instruction *)
 
static ptrdiff_t jitCodeOffset ()
 
static ALWAYS_INLINE bool isConstantRegisterIndex (int index)
 
static unsigned numberOfLLIntBaselineCalleeSaveRegisters ()
 
static size_t llintBaselineCalleeSaveSpaceAsVirtualRegisters ()
 
- Static Public Member Functions inherited from JSC::JSCell
template<typename CellType >
static SubspacesubspaceFor (VM &)
 
static JSCellseenMultipleCalleeObjects ()
 
static JS_EXPORT_PRIVATE CallType getCallData (JSCell *, CallData &)
 
static JS_EXPORT_PRIVATE ConstructType getConstructData (JSCell *, ConstructData &)
 
static JS_EXPORT_PRIVATE void dumpToStream (const JSCell *, PrintStream &)
 
static JS_EXPORT_PRIVATE size_t estimatedSize (JSCell *)
 
static void visitChildren (JSCell *, SlotVisitor &)
 
static void visitOutputConstraints (JSCell *, SlotVisitor &)
 
static JS_EXPORT_PRIVATE void heapSnapshot (JSCell *, HeapSnapshotBuilder &)
 
static bool put (JSCell *, ExecState *, PropertyName, JSValue, PutPropertySlot &)
 
static bool putByIndex (JSCell *, ExecState *, unsigned propertyName, JSValue, bool shouldThrow)
 
static bool deleteProperty (JSCell *, ExecState *, PropertyName)
 
static bool deletePropertyByIndex (JSCell *, ExecState *, unsigned propertyName)
 
static JSValue toThis (JSCell *, ExecState *, ECMAMode)
 
static bool canUseFastGetOwnProperty (const Structure &)
 
static ptrdiff_t structureIDOffset ()
 
static ptrdiff_t typeInfoFlagsOffset ()
 
static ptrdiff_t typeInfoTypeOffset ()
 
static ptrdiff_t indexingTypeAndMiscOffset ()
 
static ptrdiff_t cellStateOffset ()
 
template<typename CellType >
static SubspacesubspaceFor (VM &)
 
static JSCellseenMultipleCalleeObjects ()
 
static JS_EXPORT_PRIVATE CallType getCallData (JSCell *, CallData &)
 
static JS_EXPORT_PRIVATE ConstructType getConstructData (JSCell *, ConstructData &)
 
static JS_EXPORT_PRIVATE void dumpToStream (const JSCell *, PrintStream &)
 
static JS_EXPORT_PRIVATE size_t estimatedSize (JSCell *)
 
static void visitChildren (JSCell *, SlotVisitor &)
 
static void visitOutputConstraints (JSCell *, SlotVisitor &)
 
static JS_EXPORT_PRIVATE void heapSnapshot (JSCell *, HeapSnapshotBuilder &)
 
static bool put (JSCell *, ExecState *, PropertyName, JSValue, PutPropertySlot &)
 
static bool putByIndex (JSCell *, ExecState *, unsigned propertyName, JSValue, bool shouldThrow)
 
static bool deleteProperty (JSCell *, ExecState *, PropertyName)
 
static bool deletePropertyByIndex (JSCell *, ExecState *, unsigned propertyName)
 
static JSValue toThis (JSCell *, ExecState *, ECMAMode)
 
static bool canUseFastGetOwnProperty (const Structure &)
 
static ptrdiff_t structureIDOffset ()
 
static ptrdiff_t typeInfoFlagsOffset ()
 
static ptrdiff_t typeInfoTypeOffset ()
 
static ptrdiff_t indexingTypeAndMiscOffset ()
 
static ptrdiff_t cellStateOffset ()
 

Public Attributes

 DECLARE_INFO
 
- Public Attributes inherited from JSC::CodeBlock
 DECLARE_INFO
 
int m_numCalleeLocals
 
int m_numVars
 
ConcurrentJSLock m_lock
 
bool m_visitWeaklyHasBeenCalled
 
bool m_shouldAlwaysBeInlined
 
bool m_allTransitionsHaveBeenMarked: 1
 
bool m_didFailJITCompilation: 1
 
bool m_didFailFTLCompilation: 1
 
bool m_hasBeenCompiledWithFTL: 1
 
bool m_isConstructor: 1
 
bool m_isStrictMode: 1
 
unsigned m_codeType: 2
 
unsigned m_debuggerRequests
 
unsigned m_hasDebuggerStatement: 1
 
unsigned m_steppingMode: 1
 
unsigned m_numBreakpoints: 30
 

Additional Inherited Members

- Public Member Functions inherited from JSC::CodeBlock
JS_EXPORT_PRIVATE ~CodeBlock ()
 
UnlinkedCodeBlockunlinkedCodeBlock () const
 
CString inferredName () const
 
CodeBlockHash hash () const
 
bool hasHash () const
 
bool isSafeToComputeHash () const
 
CString hashAsStringIfPossible () const
 
CString sourceCodeForTools () const
 
CString sourceCodeOnOneLine () const
 
void dumpAssumingJITType (PrintStream &, JITCode::JITType) const
 
JS_EXPORT_PRIVATE void dump (PrintStream &) const
 
int numParameters () const
 
void setNumParameters (int newValue)
 
int numCalleeLocals () const
 
int * addressOfNumParameters ()
 
CodeBlockalternative () const
 
void setAlternative (VM &, CodeBlock *)
 
template<typename Functor >
void forEachRelatedCodeBlock (Functor &&functor)
 
CodeSpecializationKind specializationKind () const
 
CodeBlockalternativeForJettison ()
 
JS_EXPORT_PRIVATE CodeBlockbaselineAlternative ()
 
CodeBlockbaselineVersion ()
 
void visitChildren (SlotVisitor &)
 
void visitWeakly (SlotVisitor &)
 
void clearVisitWeaklyHasBeenCalled ()
 
void dumpSource ()
 
void dumpSource (PrintStream &)
 
void dumpBytecode ()
 
void dumpBytecode (PrintStream &)
 
void dumpBytecode (PrintStream &out, const Instruction *begin, const Instruction *&it, const StubInfoMap &=StubInfoMap(), const CallLinkInfoMap &=CallLinkInfoMap())
 
void dumpBytecode (PrintStream &out, unsigned bytecodeOffset, const StubInfoMap &=StubInfoMap(), const CallLinkInfoMap &=CallLinkInfoMap())
 
void dumpExceptionHandlers (PrintStream &)
 
void printStructures (PrintStream &, const Instruction *)
 
void printStructure (PrintStream &, const char *name, const Instruction *, int operand)
 
void dumpMathICStats ()
 
bool isStrictMode () const
 
ECMAMode ecmaMode () const
 
bool isKnownNotImmediate (int index)
 
ALWAYS_INLINE bool isTemporaryRegisterIndex (int index)
 
HandlerInfohandlerForBytecodeOffset (unsigned bytecodeOffset, RequiredHandler=RequiredHandler::AnyHandler)
 
HandlerInfohandlerForIndex (unsigned, RequiredHandler=RequiredHandler::AnyHandler)
 
void removeExceptionHandlerForCallSite (CallSiteIndex)
 
unsigned lineNumberForBytecodeOffset (unsigned bytecodeOffset)
 
unsigned columnNumberForBytecodeOffset (unsigned bytecodeOffset)
 
void expressionRangeForBytecodeOffset (unsigned bytecodeOffset, int &divot, int &startOffset, int &endOffset, unsigned &line, unsigned &column) const
 
std::optional< unsigned > bytecodeOffsetFromCallSiteIndex (CallSiteIndex)
 
void getStubInfoMap (const ConcurrentJSLocker &, StubInfoMap &result)
 
void getStubInfoMap (StubInfoMap &result)
 
void getCallLinkInfoMap (const ConcurrentJSLocker &, CallLinkInfoMap &result)
 
void getCallLinkInfoMap (CallLinkInfoMap &result)
 
void getByValInfoMap (const ConcurrentJSLocker &, ByValInfoMap &result)
 
void getByValInfoMap (ByValInfoMap &result)
 
void unlinkIncomingCalls ()
 
void linkIncomingCall (ExecState *callerFrame, LLIntCallLinkInfo *)
 
void setJITCodeMap (std::unique_ptr< CompactJITCodeMap > jitCodeMap)
 
CompactJITCodeMapjitCodeMap ()
 
unsigned bytecodeOffset (Instruction *returnAddress)
 
unsigned numberOfInstructions () const
 
RefCountedArray< Instruction > & instructions ()
 
const RefCountedArray< Instruction > & instructions () const
 
size_t predictedMachineCodeSize ()
 
bool usesOpcode (OpcodeID)
 
unsigned instructionCount () const
 
CodeBlocknewReplacement ()
 
void setJITCode (Ref< JITCode > &&code)
 
RefPtr< JITCodejitCode ()
 
JITCode::JITType jitType () const
 
bool hasBaselineJITProfiling () const
 
void jettison (Profiler::JettisonReason, ReoptimizationMode=DontCountReoptimization, const FireDetail *=nullptr)
 
ExecutableBaseownerExecutable () const
 
ScriptExecutableownerScriptExecutable () const
 
VMvm () const
 
void setThisRegister (VirtualRegister thisRegister)
 
VirtualRegister thisRegister () const
 
bool usesEval () const
 
void setScopeRegister (VirtualRegister scopeRegister)
 
VirtualRegister scopeRegister () const
 
CodeType codeType () const
 
PutPropertySlot::Context putByIdContext () const
 
SourceProvidersource () const
 
unsigned sourceOffset () const
 
unsigned firstLineColumnOffset () const
 
size_t numberOfJumpTargets () const
 
unsigned jumpTarget (int index) const
 
String nameForRegister (VirtualRegister)
 
unsigned numberOfArgumentValueProfiles ()
 
ValueProfilevalueProfileForArgument (unsigned argumentIndex)
 
unsigned numberOfValueProfiles ()
 
ValueProfilevalueProfile (int index)
 
ValueProfilevalueProfileForBytecodeOffset (int bytecodeOffset)
 
SpeculatedType valueProfilePredictionForBytecodeOffset (const ConcurrentJSLocker &locker, int bytecodeOffset)
 
unsigned totalNumberOfValueProfiles ()
 
ValueProfilegetFromAllValueProfiles (unsigned index)
 
RareCaseProfileaddRareCaseProfile (int bytecodeOffset)
 
unsigned numberOfRareCaseProfiles ()
 
RareCaseProfilerareCaseProfileForBytecodeOffset (int bytecodeOffset)
 
unsigned rareCaseProfileCountForBytecodeOffset (int bytecodeOffset)
 
bool likelyToTakeSlowCase (int bytecodeOffset)
 
bool couldTakeSlowCase (int bytecodeOffset)
 
ArithProfilearithProfileForBytecodeOffset (int bytecodeOffset)
 
ArithProfilearithProfileForPC (Instruction *)
 
bool couldTakeSpecialFastCase (int bytecodeOffset)
 
unsigned numberOfArrayProfiles () const
 
const ArrayProfileVectorarrayProfiles ()
 
ArrayProfileaddArrayProfile (const ConcurrentJSLocker &, unsigned bytecodeOffset)
 
ArrayProfileaddArrayProfile (unsigned bytecodeOffset)
 
ArrayProfilegetArrayProfile (const ConcurrentJSLocker &, unsigned bytecodeOffset)
 
ArrayProfilegetArrayProfile (unsigned bytecodeOffset)
 
ArrayProfilegetOrAddArrayProfile (const ConcurrentJSLocker &, unsigned bytecodeOffset)
 
ArrayProfilegetOrAddArrayProfile (unsigned bytecodeOffset)
 
size_t numberOfExceptionHandlers () const
 
HandlerInfoexceptionHandler (int index)
 
bool hasExpressionInfo ()
 
size_t numberOfIdentifiers () const
 
const Identifieridentifier (int index) const
 
Vector< WriteBarrier< Unknown > > & constants ()
 
Vector< SourceCodeRepresentation > & constantsSourceCodeRepresentation ()
 
unsigned addConstant (JSValue v)
 
unsigned addConstantLazily ()
 
const Vector< WriteBarrier< Unknown > > & constantRegisters ()
 
WriteBarrier< Unknown > & constantRegister (int index)
 
ALWAYS_INLINE JSValue getConstant (int index) const
 
ALWAYS_INLINE SourceCodeRepresentation constantSourceCodeRepresentation (int index) const
 
FunctionExecutablefunctionDecl (int index)
 
int numberOfFunctionDecls ()
 
FunctionExecutablefunctionExpr (int index)
 
RegExpregexp (int index) const
 
unsigned numberOfRegExps () const
 
const Vector< BitVector > & bitVectors () const
 
const BitVector & bitVector (size_t i)
 
unsigned numberOfConstantBuffers () const
 
unsigned addConstantBuffer (const Vector< JSValue > &buffer)
 
Vector< JSValue > & constantBufferAsVector (unsigned index)
 
JSValueconstantBuffer (unsigned index)
 
Heapheap () const
 
JSGlobalObjectglobalObject ()
 
JSGlobalObjectglobalObjectFor (CodeOrigin)
 
BytecodeLivenessAnalysislivenessAnalysis ()
 
void validate ()
 
size_t numberOfSwitchJumpTables () const
 
SimpleJumpTableaddSwitchJumpTable ()
 
SimpleJumpTableswitchJumpTable (int tableIndex)
 
void clearSwitchJumpTables ()
 
size_t numberOfStringSwitchJumpTables () const
 
StringJumpTableaddStringSwitchJumpTable ()
 
StringJumpTablestringSwitchJumpTable (int tableIndex)
 
DirectEvalCodeCachedirectEvalCodeCache ()
 
void shrinkToFit (ShrinkMode)
 
bool checkIfJITThresholdReached ()
 
void dontJITAnytimeSoon ()
 
int32_t thresholdForJIT (int32_t threshold)
 
void jitAfterWarmUp ()
 
void jitSoon ()
 
const BaselineExecutionCounterllintExecuteCounter () const
 
StructureWatchpointMapllintGetByIdWatchpointMap ()
 
JS_EXPORT_PRIVATE unsigned reoptimizationRetryCounter () const
 
void countReoptimization ()
 
void optimizeAfterWarmUp ()
 
unsigned numberOfDFGCompiles ()
 
bool shouldOptimizeNow ()
 
void updateAllValueProfilePredictions ()
 
void updateAllArrayPredictions ()
 
void updateAllPredictions ()
 
unsigned frameRegisterCount ()
 
int stackPointerOffset ()
 
bool hasOpDebugForLineAndColumn (unsigned line, unsigned column)
 
bool hasDebuggerRequests () const
 
voiddebuggerRequestsAddress ()
 
void addBreakpoint (unsigned numBreakpoints)
 
void removeBreakpoint (unsigned numBreakpoints)
 
void setSteppingMode (SteppingMode)
 
void clearDebuggerRequests ()
 
bool wasCompiledWithDebuggingOpcodes () const
 
void beginValidationDidFail ()
 
NO_RETURN_DUE_TO_CRASH void endValidationDidFail ()
 
void clearExceptionHandlers ()
 
void appendExceptionHandler (const HandlerInfo &handler)
 
CallSiteIndex newExceptionHandlingCallSiteIndex (CallSiteIndex originalCallSite)
 
JS_EXPORT_PRIVATE ~CodeBlock ()
 
UnlinkedCodeBlockunlinkedCodeBlock () const
 
CString inferredName () const
 
CodeBlockHash hash () const
 
bool hasHash () const
 
bool isSafeToComputeHash () const
 
CString hashAsStringIfPossible () const
 
CString sourceCodeForTools () const
 
CString sourceCodeOnOneLine () const
 
void dumpAssumingJITType (PrintStream &, JITCode::JITType) const
 
JS_EXPORT_PRIVATE void dump (PrintStream &) const
 
int numParameters () const
 
void setNumParameters (int newValue)
 
int numCalleeLocals () const
 
int * addressOfNumParameters ()
 
CodeBlockalternative () const
 
void setAlternative (VM &, CodeBlock *)
 
template<typename Functor >
void forEachRelatedCodeBlock (Functor &&functor)
 
CodeSpecializationKind specializationKind () const
 
CodeBlockalternativeForJettison ()
 
JS_EXPORT_PRIVATE CodeBlockbaselineAlternative ()
 
CodeBlockbaselineVersion ()
 
void visitChildren (SlotVisitor &)
 
void visitWeakly (SlotVisitor &)
 
void clearVisitWeaklyHasBeenCalled ()
 
void dumpSource ()
 
void dumpSource (PrintStream &)
 
void dumpBytecode ()
 
void dumpBytecode (PrintStream &)
 
void dumpBytecode (PrintStream &out, const Instruction *begin, const Instruction *&it, const StubInfoMap &=StubInfoMap(), const CallLinkInfoMap &=CallLinkInfoMap())
 
void dumpBytecode (PrintStream &out, unsigned bytecodeOffset, const StubInfoMap &=StubInfoMap(), const CallLinkInfoMap &=CallLinkInfoMap())
 
void dumpExceptionHandlers (PrintStream &)
 
void printStructures (PrintStream &, const Instruction *)
 
void printStructure (PrintStream &, const char *name, const Instruction *, int operand)
 
void dumpMathICStats ()
 
bool isStrictMode () const
 
ECMAMode ecmaMode () const
 
bool isKnownNotImmediate (int index)
 
ALWAYS_INLINE bool isTemporaryRegisterIndex (int index)
 
HandlerInfohandlerForBytecodeOffset (unsigned bytecodeOffset, RequiredHandler=RequiredHandler::AnyHandler)
 
HandlerInfohandlerForIndex (unsigned, RequiredHandler=RequiredHandler::AnyHandler)
 
void removeExceptionHandlerForCallSite (CallSiteIndex)
 
unsigned lineNumberForBytecodeOffset (unsigned bytecodeOffset)
 
unsigned columnNumberForBytecodeOffset (unsigned bytecodeOffset)
 
void expressionRangeForBytecodeOffset (unsigned bytecodeOffset, int &divot, int &startOffset, int &endOffset, unsigned &line, unsigned &column) const
 
std::optional< unsigned > bytecodeOffsetFromCallSiteIndex (CallSiteIndex)
 
void getStubInfoMap (const ConcurrentJSLocker &, StubInfoMap &result)
 
void getStubInfoMap (StubInfoMap &result)
 
void getCallLinkInfoMap (const ConcurrentJSLocker &, CallLinkInfoMap &result)
 
void getCallLinkInfoMap (CallLinkInfoMap &result)
 
void getByValInfoMap (const ConcurrentJSLocker &, ByValInfoMap &result)
 
void getByValInfoMap (ByValInfoMap &result)
 
void unlinkIncomingCalls ()
 
void linkIncomingCall (ExecState *callerFrame, LLIntCallLinkInfo *)
 
void setJITCodeMap (std::unique_ptr< CompactJITCodeMap > jitCodeMap)
 
CompactJITCodeMapjitCodeMap ()
 
unsigned bytecodeOffset (Instruction *returnAddress)
 
unsigned numberOfInstructions () const
 
RefCountedArray< Instruction > & instructions ()
 
const RefCountedArray< Instruction > & instructions () const
 
size_t predictedMachineCodeSize ()
 
bool usesOpcode (OpcodeID)
 
unsigned instructionCount () const
 
CodeBlocknewReplacement ()
 
void setJITCode (Ref< JITCode > &&code)
 
RefPtr< JITCodejitCode ()
 
JITCode::JITType jitType () const
 
bool hasBaselineJITProfiling () const
 
void jettison (Profiler::JettisonReason, ReoptimizationMode=DontCountReoptimization, const FireDetail *=nullptr)
 
ExecutableBaseownerExecutable () const
 
ScriptExecutableownerScriptExecutable () const
 
VMvm () const
 
void setThisRegister (VirtualRegister thisRegister)
 
VirtualRegister thisRegister () const
 
bool usesEval () const
 
void setScopeRegister (VirtualRegister scopeRegister)
 
VirtualRegister scopeRegister () const
 
CodeType codeType () const
 
PutPropertySlot::Context putByIdContext () const
 
SourceProvidersource () const
 
unsigned sourceOffset () const
 
unsigned firstLineColumnOffset () const
 
size_t numberOfJumpTargets () const
 
unsigned jumpTarget (int index) const
 
String nameForRegister (VirtualRegister)
 
unsigned numberOfArgumentValueProfiles ()
 
ValueProfilevalueProfileForArgument (unsigned argumentIndex)
 
unsigned numberOfValueProfiles ()
 
ValueProfilevalueProfile (int index)
 
ValueProfilevalueProfileForBytecodeOffset (int bytecodeOffset)
 
SpeculatedType valueProfilePredictionForBytecodeOffset (const ConcurrentJSLocker &locker, int bytecodeOffset)
 
unsigned totalNumberOfValueProfiles ()
 
ValueProfilegetFromAllValueProfiles (unsigned index)
 
RareCaseProfileaddRareCaseProfile (int bytecodeOffset)
 
unsigned numberOfRareCaseProfiles ()
 
RareCaseProfilerareCaseProfileForBytecodeOffset (int bytecodeOffset)
 
unsigned rareCaseProfileCountForBytecodeOffset (int bytecodeOffset)
 
bool likelyToTakeSlowCase (int bytecodeOffset)
 
bool couldTakeSlowCase (int bytecodeOffset)
 
ArithProfilearithProfileForBytecodeOffset (int bytecodeOffset)
 
ArithProfilearithProfileForPC (Instruction *)
 
bool couldTakeSpecialFastCase (int bytecodeOffset)
 
unsigned numberOfArrayProfiles () const
 
const ArrayProfileVectorarrayProfiles ()
 
ArrayProfileaddArrayProfile (const ConcurrentJSLocker &, unsigned bytecodeOffset)
 
ArrayProfileaddArrayProfile (unsigned bytecodeOffset)
 
ArrayProfilegetArrayProfile (const ConcurrentJSLocker &, unsigned bytecodeOffset)
 
ArrayProfilegetArrayProfile (unsigned bytecodeOffset)
 
ArrayProfilegetOrAddArrayProfile (const ConcurrentJSLocker &, unsigned bytecodeOffset)
 
ArrayProfilegetOrAddArrayProfile (unsigned bytecodeOffset)
 
size_t numberOfExceptionHandlers () const
 
HandlerInfoexceptionHandler (int index)
 
bool hasExpressionInfo ()
 
size_t numberOfIdentifiers () const
 
const Identifieridentifier (int index) const
 
Vector< WriteBarrier< Unknown > > & constants ()
 
Vector< SourceCodeRepresentation > & constantsSourceCodeRepresentation ()
 
unsigned addConstant (JSValue v)
 
unsigned addConstantLazily ()
 
const Vector< WriteBarrier< Unknown > > & constantRegisters ()
 
WriteBarrier< Unknown > & constantRegister (int index)
 
ALWAYS_INLINE JSValue getConstant (int index) const
 
ALWAYS_INLINE SourceCodeRepresentation constantSourceCodeRepresentation (int index) const
 
FunctionExecutablefunctionDecl (int index)
 
int numberOfFunctionDecls ()
 
FunctionExecutablefunctionExpr (int index)
 
RegExpregexp (int index) const
 
unsigned numberOfRegExps () const
 
const Vector< BitVector > & bitVectors () const
 
const BitVector & bitVector (size_t i)
 
unsigned numberOfConstantBuffers () const
 
unsigned addConstantBuffer (const Vector< JSValue > &buffer)
 
Vector< JSValue > & constantBufferAsVector (unsigned index)
 
JSValueconstantBuffer (unsigned index)
 
Heapheap () const
 
JSGlobalObjectglobalObject ()
 
JSGlobalObjectglobalObjectFor (CodeOrigin)
 
BytecodeLivenessAnalysislivenessAnalysis ()
 
void validate ()
 
size_t numberOfSwitchJumpTables () const
 
SimpleJumpTableaddSwitchJumpTable ()
 
SimpleJumpTableswitchJumpTable (int tableIndex)
 
void clearSwitchJumpTables ()
 
size_t numberOfStringSwitchJumpTables () const
 
StringJumpTableaddStringSwitchJumpTable ()
 
StringJumpTablestringSwitchJumpTable (int tableIndex)
 
DirectEvalCodeCachedirectEvalCodeCache ()
 
void shrinkToFit (ShrinkMode)
 
bool checkIfJITThresholdReached ()
 
void dontJITAnytimeSoon ()
 
int32_t thresholdForJIT (int32_t threshold)
 
void jitAfterWarmUp ()
 
void jitSoon ()
 
const BaselineExecutionCounterllintExecuteCounter () const
 
StructureWatchpointMapllintGetByIdWatchpointMap ()
 
JS_EXPORT_PRIVATE unsigned reoptimizationRetryCounter () const
 
void countReoptimization ()
 
void optimizeAfterWarmUp ()
 
unsigned numberOfDFGCompiles ()
 
bool shouldOptimizeNow ()
 
void updateAllValueProfilePredictions ()
 
void updateAllArrayPredictions ()
 
void updateAllPredictions ()
 
unsigned frameRegisterCount ()
 
int stackPointerOffset ()
 
bool hasOpDebugForLineAndColumn (unsigned line, unsigned column)
 
bool hasDebuggerRequests () const
 
voiddebuggerRequestsAddress ()
 
void addBreakpoint (unsigned numBreakpoints)
 
void removeBreakpoint (unsigned numBreakpoints)
 
void setSteppingMode (SteppingMode)
 
void clearDebuggerRequests ()
 
bool wasCompiledWithDebuggingOpcodes () const
 
void beginValidationDidFail ()
 
NO_RETURN_DUE_TO_CRASH void endValidationDidFail ()
 
void clearExceptionHandlers ()
 
void appendExceptionHandler (const HandlerInfo &handler)
 
CallSiteIndex newExceptionHandlingCallSiteIndex (CallSiteIndex originalCallSite)
 
- Public Member Functions inherited from JSC::JSCell
 JSCell (CreatingEarlyCellTag)
 
bool isString () const
 
bool isSymbol () const
 
bool isObject () const
 
bool isAnyWasmCallee (VM &) const
 
bool isGetterSetter () const
 
bool isCustomGetterSetter () const
 
bool isProxy () const
 
bool inherits (VM &, const ClassInfo *) const
 
bool isAPIValueWrapper () const
 
void lock ()
 
bool tryLock ()
 
void unlock ()
 
bool isLocked () const
 
JSType type () const
 
IndexingType indexingTypeAndMisc () const
 
IndexingType indexingType () const
 
StructureID structureID () const
 
Structurestructure () const
 
Structurestructure (VM &) const
 
void setStructure (VM &, Structure *)
 
void setStructureIDDirectly (StructureID id)
 
void clearStructure ()
 
TypeInfo::InlineTypeFlags inlineTypeFlags () const
 
const char * className (VM &) const
 
JS_EXPORT_PRIVATE bool getString (ExecState *, String &) const
 
JS_EXPORT_PRIVATE String getString (ExecState *) const
 
JS_EXPORT_PRIVATE JSObjectgetObject ()
 
const JSObjectgetObject () const
 
JS_EXPORT_PRIVATE JSValue toPrimitive (ExecState *, PreferredPrimitiveType) const
 
bool getPrimitiveNumber (ExecState *, double &number, JSValue &) const
 
bool toBoolean (ExecState *) const
 
TriState pureToBoolean () const
 
JS_EXPORT_PRIVATE double toNumber (ExecState *) const
 
JSObjecttoObject (ExecState *, JSGlobalObject *) const
 
void dump (PrintStream &) const
 
size_t estimatedSizeInBytes () const
 
const ClassInfoclassInfo (VM &) const
 
const MethodTablemethodTable () const
 
const MethodTablemethodTable (VM &) const
 
JSValue fastGetOwnProperty (VM &, Structure &, PropertyName)
 
CellState cellState () const
 
void setCellState (CellState data) const
 
bool atomicCompareExchangeCellStateWeakRelaxed (CellState oldState, CellState newState)
 
CellState atomicCompareExchangeCellStateStrong (CellState oldState, CellState newState)
 
void callDestructor (VM &)
 
 JSCell (CreatingEarlyCellTag)
 
bool isString () const
 
bool isSymbol () const
 
bool isObject () const
 
bool isAnyWasmCallee (VM &) const
 
bool isGetterSetter () const
 
bool isCustomGetterSetter () const
 
bool isProxy () const
 
bool inherits (VM &, const ClassInfo *) const
 
bool isAPIValueWrapper () const
 
void lock ()
 
bool tryLock ()
 
void unlock ()
 
bool isLocked () const
 
JSType type () const
 
IndexingType indexingTypeAndMisc () const
 
IndexingType indexingType () const
 
StructureID structureID () const
 
Structurestructure () const
 
Structurestructure (VM &) const
 
void setStructure (VM &, Structure *)
 
void setStructureIDDirectly (StructureID id)
 
void clearStructure ()
 
TypeInfo::InlineTypeFlags inlineTypeFlags () const
 
const char * className (VM &) const
 
JS_EXPORT_PRIVATE bool getString (ExecState *, String &) const
 
JS_EXPORT_PRIVATE String getString (ExecState *) const
 
JS_EXPORT_PRIVATE JSObjectgetObject ()
 
const JSObjectgetObject () const
 
JS_EXPORT_PRIVATE JSValue toPrimitive (ExecState *, PreferredPrimitiveType) const
 
bool getPrimitiveNumber (ExecState *, double &number, JSValue &) const
 
bool toBoolean (ExecState *) const
 
TriState pureToBoolean () const
 
JS_EXPORT_PRIVATE double toNumber (ExecState *) const
 
JSObjecttoObject (ExecState *, JSGlobalObject *) const
 
void dump (PrintStream &) const
 
size_t estimatedSizeInBytes () const
 
const ClassInfoclassInfo (VM &) const
 
const MethodTablemethodTable () const
 
const MethodTablemethodTable (VM &) const
 
JSValue fastGetOwnProperty (VM &, Structure &, PropertyName)
 
CellState cellState () const
 
void setCellState (CellState data) const
 
bool atomicCompareExchangeCellStateWeakRelaxed (CellState oldState, CellState newState)
 
CellState atomicCompareExchangeCellStateStrong (CellState oldState, CellState newState)
 
void callDestructor (VM &)
 
- Public Member Functions inherited from JSC::HeapCell
 HeapCell ()
 
void zap ()
 
bool isZapped () const
 
bool isLargeAllocation () const
 
CellContainer cellContainer () const
 
MarkedBlockmarkedBlock () const
 
LargeAllocationlargeAllocation () const
 
Heapheap () const
 
VMvm () const
 
size_t cellSize () const
 
AllocatorAttributes allocatorAttributes () const
 
DestructionMode destructionMode () const
 
Kind cellKind () const
 
 HeapCell ()
 
void zap ()
 
bool isZapped () const
 
bool isLargeAllocation () const
 
CellContainer cellContainer () const
 
MarkedBlockmarkedBlock () const
 
LargeAllocationlargeAllocation () const
 
Heapheap () const
 
VMvm () const
 
size_t cellSize () const
 
AllocatorAttributes allocatorAttributes () const
 
DestructionMode destructionMode () const
 
Kind cellKind () const
 
- Static Public Attributes inherited from JSC::CodeBlock
static const unsigned StructureFlags = Base::StructureFlags | StructureIsImmortal
 
- Static Public Attributes inherited from JSC::JSCell
static const unsigned StructureFlags = 0
 
static const bool needsDestruction = false
 
static const TypedArrayType TypedArrayStorageType = NotTypedArray
 
- Protected Member Functions inherited from JSC::CodeBlock
 CodeBlock (VM *, Structure *, CopyParsedBlockTag, CodeBlock &other)
 
 CodeBlock (VM *, Structure *, ScriptExecutable *ownerExecutable, UnlinkedCodeBlock *, JSScope *, RefPtr< SourceProvider > &&, unsigned sourceOffset, unsigned firstLineColumnOffset)
 
void finishCreation (VM &, CopyParsedBlockTag, CodeBlock &other)
 
void finishCreation (VM &, ScriptExecutable *ownerExecutable, UnlinkedCodeBlock *, JSScope *)
 
void finalizeLLIntInlineCaches ()
 
void finalizeBaselineJITInlineCaches ()
 
void tallyFrequentExitSites ()
 
 CodeBlock (VM *, Structure *, CopyParsedBlockTag, CodeBlock &other)
 
 CodeBlock (VM *, Structure *, ScriptExecutable *ownerExecutable, UnlinkedCodeBlock *, JSScope *, RefPtr< SourceProvider > &&, unsigned sourceOffset, unsigned firstLineColumnOffset)
 
void finishCreation (VM &, CopyParsedBlockTag, CodeBlock &other)
 
void finishCreation (VM &, ScriptExecutable *ownerExecutable, UnlinkedCodeBlock *, JSScope *)
 
void finalizeLLIntInlineCaches ()
 
void finalizeBaselineJITInlineCaches ()
 
void tallyFrequentExitSites ()
 
- Protected Member Functions inherited from JSC::JSCell
 JSCell (VM &, Structure *)
 
void finishCreation (VM &)
 
void finishCreation (VM &, Structure *, CreatingEarlyCellTag)
 
 JSCell (VM &, Structure *)
 
void finishCreation (VM &)
 
void finishCreation (VM &, Structure *, CreatingEarlyCellTag)
 
- Static Protected Member Functions inherited from JSC::JSCell
static JS_EXPORT_PRIVATE void destroy (JSCell *)
 
static JSValue defaultValue (const JSObject *, ExecState *, PreferredPrimitiveType)
 
static NO_RETURN_DUE_TO_CRASH void getOwnPropertyNames (JSObject *, ExecState *, PropertyNameArray &, EnumerationMode)
 
static NO_RETURN_DUE_TO_CRASH void getOwnNonIndexPropertyNames (JSObject *, ExecState *, PropertyNameArray &, EnumerationMode)
 
static NO_RETURN_DUE_TO_CRASH void getPropertyNames (JSObject *, ExecState *, PropertyNameArray &, EnumerationMode)
 
static uint32_t getEnumerableLength (ExecState *, JSObject *)
 
static NO_RETURN_DUE_TO_CRASH void getStructurePropertyNames (JSObject *, ExecState *, PropertyNameArray &, EnumerationMode)
 
static NO_RETURN_DUE_TO_CRASH void getGenericPropertyNames (JSObject *, ExecState *, PropertyNameArray &, EnumerationMode)
 
static NO_RETURN_DUE_TO_CRASH bool preventExtensions (JSObject *, ExecState *)
 
static NO_RETURN_DUE_TO_CRASH bool isExtensible (JSObject *, ExecState *)
 
static NO_RETURN_DUE_TO_CRASH bool setPrototype (JSObject *, ExecState *, JSValue, bool)
 
static NO_RETURN_DUE_TO_CRASH JSValue getPrototype (JSObject *, ExecState *)
 
static String className (const JSObject *)
 
static String toStringName (const JSObject *, ExecState *)
 
static JS_EXPORT_PRIVATE bool customHasInstance (JSObject *, ExecState *, JSValue)
 
static bool defineOwnProperty (JSObject *, ExecState *, PropertyName, const PropertyDescriptor &, bool shouldThrow)
 
static bool getOwnPropertySlot (JSObject *, ExecState *, PropertyName, PropertySlot &)
 
static bool getOwnPropertySlotByIndex (JSObject *, ExecState *, unsigned propertyName, PropertySlot &)
 
static JS_EXPORT_PRIVATE ArrayBufferslowDownAndWasteMemory (JSArrayBufferView *)
 
static JS_EXPORT_PRIVATE RefPtr< ArrayBufferViewgetTypedArrayImpl (JSArrayBufferView *)
 
static JS_EXPORT_PRIVATE void destroy (JSCell *)
 
static JSValue defaultValue (const JSObject *, ExecState *, PreferredPrimitiveType)
 
static NO_RETURN_DUE_TO_CRASH void getOwnPropertyNames (JSObject *, ExecState *, PropertyNameArray &, EnumerationMode)
 
static NO_RETURN_DUE_TO_CRASH void getOwnNonIndexPropertyNames (JSObject *, ExecState *, PropertyNameArray &, EnumerationMode)
 
static NO_RETURN_DUE_TO_CRASH void getPropertyNames (JSObject *, ExecState *, PropertyNameArray &, EnumerationMode)
 
static uint32_t getEnumerableLength (ExecState *, JSObject *)
 
static NO_RETURN_DUE_TO_CRASH void getStructurePropertyNames (JSObject *, ExecState *, PropertyNameArray &, EnumerationMode)
 
static NO_RETURN_DUE_TO_CRASH void getGenericPropertyNames (JSObject *, ExecState *, PropertyNameArray &, EnumerationMode)
 
static NO_RETURN_DUE_TO_CRASH bool preventExtensions (JSObject *, ExecState *)
 
static NO_RETURN_DUE_TO_CRASH bool isExtensible (JSObject *, ExecState *)
 
static NO_RETURN_DUE_TO_CRASH bool setPrototype (JSObject *, ExecState *, JSValue, bool)
 
static NO_RETURN_DUE_TO_CRASH JSValue getPrototype (JSObject *, ExecState *)
 
static String className (const JSObject *)
 
static String toStringName (const JSObject *, ExecState *)
 
static JS_EXPORT_PRIVATE bool customHasInstance (JSObject *, ExecState *, JSValue)
 
static bool defineOwnProperty (JSObject *, ExecState *, PropertyName, const PropertyDescriptor &, bool shouldThrow)
 
static bool getOwnPropertySlot (JSObject *, ExecState *, PropertyName, PropertySlot &)
 
static bool getOwnPropertySlotByIndex (JSObject *, ExecState *, unsigned propertyName, PropertySlot &)
 
static JS_EXPORT_PRIVATE ArrayBufferslowDownAndWasteMemory (JSArrayBufferView *)
 
static JS_EXPORT_PRIVATE RefPtr< ArrayBufferViewgetTypedArrayImpl (JSArrayBufferView *)
 
- Protected Attributes inherited from JSC::CodeBlock
WriteBarrier< JSGlobalObjectm_globalObject
 

Member Typedef Documentation

◆ Base

Member Function Documentation

◆ create() [1/2]

static FunctionCodeBlock* JSC::FunctionCodeBlock::create ( VM vm,
CopyParsedBlockTag  ,
FunctionCodeBlock other 
)
inlinestatic

◆ create() [2/2]

static FunctionCodeBlock* JSC::FunctionCodeBlock::create ( VM vm,
FunctionExecutable ownerExecutable,
UnlinkedFunctionCodeBlock unlinkedCodeBlock,
JSScope scope,
RefPtr< SourceProvider > &&  sourceProvider,
unsigned  sourceOffset,
unsigned  firstLineColumnOffset 
)
inlinestatic

◆ createStructure()

static Structure* JSC::FunctionCodeBlock::createStructure ( VM vm,
JSGlobalObject globalObject,
JSValue  prototype 
)
inlinestatic

Member Data Documentation

◆ DECLARE_INFO

JSC::FunctionCodeBlock::DECLARE_INFO

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