Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QV4::JSTypesStackFrame Struct Reference

#include <qv4stackframe_p.h>

+ Inheritance diagram for QV4::JSTypesStackFrame:
+ Collaboration diagram for QV4::JSTypesStackFrame:

Public Member Functions

void init (Function *v4Function, const Value *argv, int argc, bool callerCanHandleTailCall=false)
 
const Valueargv () const
 
uint requiredJSStackFrameSize () const
 
void setupJSFrame (Value *stackSpace, const Value &function, const Heap::ExecutionContext *scope, const Value &thisObject, const Value &newTarget=Value::undefinedValue())
 
void setupJSFrame (Value *stackSpace, const Value &function, const Heap::ExecutionContext *scope, const Value &thisObject, const Value &newTarget, uint nFormals, uint nRegisters)
 
ExecutionContextcontext () const
 
void setContext (ExecutionContext *context)
 
Heap::CallContext * callContext () const
 
bool isTailCalling () const
 
void setTailCalling (bool tailCalling)
 
bool pendingTailCall () const
 
void setPendingTailCall (bool pending)
 
const char * yield () const
 
void setYield (const char *yield)
 
bool yieldIsIterator () const
 
void setYieldIsIterator (bool isIter)
 
bool callerCanHandleTailCall () const
 
ReturnedValue thisObject () const
 
ValueframePointer () const
 
void push (EngineBase *engine)
 
void pop (EngineBase *engine)
 
- Public Member Functions inherited from QV4::CppStackFrame
void init (Function *v4Function, int argc, Kind kind)
 
bool isJSTypesFrame () const
 
bool isMetaTypesFrame () const
 
QString source () const
 
QString function () const
 
int lineNumber () const
 
int statementNumber () const
 
int missingLineNumber () const
 
CppStackFrameparentFrame () const
 
void setParentFrame (CppStackFrame *parentFrame)
 
int argc () const
 
ExecutionContextcontext () const
 
Heap::CallContext * callContext () const
 
ReturnedValue thisObject () const
 

Static Public Member Functions

static uint requiredJSStackFrameSize (uint nRegisters)
 
static uint requiredJSStackFrameSize (Function *v4Function)
 

Additional Inherited Members

- Public Attributes inherited from QV4::CppStackFrame
int instructionPointer
 
Functionv4Function
 
- Protected Types inherited from QV4::CppStackFrameBase
enum class  Kind : quint8 { JS , Meta }
 
- Protected Member Functions inherited from QV4::CppStackFrame
 CppStackFrame ()=default
 
void push (EngineBase *engine)
 
void pop (EngineBase *engine)
 
Heap::CallContext * callContext (Heap::ExecutionContext *ctx) const
 
- Protected Attributes inherited from QV4::CppStackFrameBase
CppStackFrameparent
 
Functionv4Function
 
int originalArgumentsCount
 
int instructionPointer
 
union { 
 
   struct { 
 
      Value *   savedStackTop 
 
      CallData *   jsFrame 
 
      const Value *   originalArguments 
 
      const char *   yield 
 
      const char *   unwindHandler 
 
      const char *   unwindLabel 
 
      int   unwindLevel 
 
      bool   yieldIsIterator 
 
      bool   callerCanHandleTailCall 
 
      bool   pendingTailCall 
 
      bool   isTailCalling 
 
   }  
 
   struct { 
 
      ExecutionContext *   context 
 
      QObject *   thisObject 
 
      const QMetaType *   metaTypes 
 
      void **   returnAndArgs 
 
      bool   returnValueIsUndefined 
 
   }  
 
};  
 
QT_WARNING_POP Kind kind
 

Detailed Description

Definition at line 164 of file qv4stackframe_p.h.

Member Function Documentation

◆ argv()

const Value * QV4::JSTypesStackFrame::argv ( ) const
inline

Definition at line 188 of file qv4stackframe_p.h.

◆ callContext()

Heap::CallContext * QV4::JSTypesStackFrame::callContext ( ) const
inline

Definition at line 251 of file qv4stackframe_p.h.

◆ callerCanHandleTailCall()

bool QV4::JSTypesStackFrame::callerCanHandleTailCall ( ) const
inline

Definition at line 268 of file qv4stackframe_p.h.

◆ context()

ExecutionContext * QV4::JSTypesStackFrame::context ( ) const
inline

Definition at line 241 of file qv4stackframe_p.h.

Referenced by QV4::Runtime::PopScriptContext::call(), QV4::Runtime::PushBlockContext::call(), QV4::Runtime::PushScriptContext::call(), and QV4::Runtime::PushCatchContext::call().

+ Here is the caller graph for this function:

◆ framePointer()

Value * QV4::JSTypesStackFrame::framePointer ( ) const
inline

Definition at line 275 of file qv4stackframe_p.h.

◆ init()

void QV4::JSTypesStackFrame::init ( Function * v4Function,
const Value * argv,
int argc,
bool callerCanHandleTailCall = false )
inline

Definition at line 173 of file qv4stackframe_p.h.

◆ isTailCalling()

bool QV4::JSTypesStackFrame::isTailCalling ( ) const
inline

Definition at line 256 of file qv4stackframe_p.h.

◆ pendingTailCall()

bool QV4::JSTypesStackFrame::pendingTailCall ( ) const
inline

Definition at line 259 of file qv4stackframe_p.h.

◆ pop()

void QV4::JSTypesStackFrame::pop ( EngineBase * engine)
inline

Definition at line 282 of file qv4stackframe_p.h.

References engine.

◆ push()

void QV4::JSTypesStackFrame::push ( EngineBase * engine)
inline

Definition at line 277 of file qv4stackframe_p.h.

References engine.

◆ requiredJSStackFrameSize() [1/3]

uint QV4::JSTypesStackFrame::requiredJSStackFrameSize ( ) const
inline

Definition at line 196 of file qv4stackframe_p.h.

Referenced by QV4::GeneratorFunction::virtualCall().

+ Here is the caller graph for this function:

◆ requiredJSStackFrameSize() [2/3]

static uint QV4::JSTypesStackFrame::requiredJSStackFrameSize ( Function * v4Function)
inlinestatic

◆ requiredJSStackFrameSize() [3/3]

static uint QV4::JSTypesStackFrame::requiredJSStackFrameSize ( uint nRegisters)
inlinestatic

Definition at line 190 of file qv4stackframe_p.h.

◆ setContext()

void QV4::JSTypesStackFrame::setContext ( ExecutionContext * context)
inline

Definition at line 246 of file qv4stackframe_p.h.

References context.

◆ setPendingTailCall()

void QV4::JSTypesStackFrame::setPendingTailCall ( bool pending)
inline

Definition at line 260 of file qv4stackframe_p.h.

References pending.

◆ setTailCalling()

void QV4::JSTypesStackFrame::setTailCalling ( bool tailCalling)
inline

Definition at line 257 of file qv4stackframe_p.h.

◆ setupJSFrame() [1/2]

void QV4::JSTypesStackFrame::setupJSFrame ( Value * stackSpace,
const Value & function,
const Heap::ExecutionContext * scope,
const Value & thisObject,
const Value & newTarget,
uint nFormals,
uint nRegisters )
inline

Definition at line 207 of file qv4stackframe_p.h.

References QV4::StaticValue::asReturnedValue(), function, QV4::CallData::function, and Q_STATIC_ASSERT.

+ Here is the call graph for this function:

◆ setupJSFrame() [2/2]

void QV4::JSTypesStackFrame::setupJSFrame ( Value * stackSpace,
const Value & function,
const Heap::ExecutionContext * scope,
const Value & thisObject,
const Value & newTarget = Value::undefinedValue() )
inline

Definition at line 200 of file qv4stackframe_p.h.

◆ setYield()

void QV4::JSTypesStackFrame::setYield ( const char * yield)
inline

Definition at line 263 of file qv4stackframe_p.h.

◆ setYieldIsIterator()

void QV4::JSTypesStackFrame::setYieldIsIterator ( bool isIter)
inline

Definition at line 266 of file qv4stackframe_p.h.

◆ thisObject()

ReturnedValue QV4::JSTypesStackFrame::thisObject ( ) const
inline

Definition at line 270 of file qv4stackframe_p.h.

◆ yield()

const char * QV4::JSTypesStackFrame::yield ( ) const
inline

Definition at line 262 of file qv4stackframe_p.h.

◆ yieldIsIterator()

bool QV4::JSTypesStackFrame::yieldIsIterator ( ) const
inline

Definition at line 265 of file qv4stackframe_p.h.


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