Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QV4::Function Struct Reference

#include <qv4function_p.h>

Inheritance diagram for QV4::Function:
Collaboration diagram for QV4::Function:

Classes

struct  AOTCompiledFunction
struct  JSTypedFunction

Public Types

enum  Kind : quint8 { JsUntyped , JsTyped , AotCompiled , Eval }
typedef ReturnedValue(* JittedCode) (CppStackFrame *, ExecutionEngine *)
typedef void(* AotCompiledCode) (const QQmlPrivate::AOTCompiledContext *context, void **argv)

Public Member Functions

QV4::ExecutableCompilationUnitexecutableCompilationUnit () const
QV4::Heap::StringruntimeString (uint i) const
bool call (QObject *thisObject, void **a, const QMetaType *types, int argc, ExecutionContext *context)
ReturnedValue call (const Value *thisObject, const Value *argv, int argc, ExecutionContext *context)
void destroy ()
void mark (QV4::MarkStack *ms)
void updateInternalClass (ExecutionEngine *engine, const QList< QByteArray > &parameters)
Heap::Stringname () const
QString sourceFile () const
QUrl finalUrl () const
bool isStrict () const
bool isArrowFunction () const
bool isGenerator () const
bool isClosureWrapper () const
QQmlSourceLocation sourceLocation () const
FunctionnestedFunction () const
bool isJittable () const
Public Member Functions inherited from QV4::FunctionData
 FunctionData (EngineBase *engine, ExecutableCompilationUnit *compilationUnit_)

Static Public Member Functions

static Functioncreate (ExecutionEngine *engine, ExecutableCompilationUnit *unit, const CompiledData::Function *function, const QQmlPrivate::AOTCompiledFunction *aotFunction)
static QString prettyName (const Function *function, const void *address)

Public Attributes

const CompiledData::FunctioncompiledFunction = nullptr
const char * codeData = nullptr
JSC::MacroAssemblerCodeRef * codeRef = nullptr
union { 
   void *   noFunction = nullptr 
   JSTypedFunction   jsTypedFunction 
   AOTCompiledFunction   aotCompiledFunction 
}; 
union { 
   JittedCode   jittedCode = nullptr 
   AotCompiledCode   aotCompiledCode 
}; 
QV4::WriteBarrier::Pointer< Heap::InternalClassinternalClass
int interpreterCallCount = 0
quint16 nFormals = 0
Kind kind = JsUntyped
bool detectedInjectedParameters = false
Public Attributes inherited from QV4::FunctionData
WriteBarrier::HeapObjectWrapper< CompilationUnitRuntimeData, 1 > compilationUnit

Protected Member Functions

 Function (ExecutionEngine *engine, ExecutableCompilationUnit *unit, const CompiledData::Function *function, const QQmlPrivate::AOTCompiledFunction *aotFunction)
 ~Function ()

Detailed Description

Definition at line 47 of file qv4function_p.h.

Member Typedef Documentation

◆ AotCompiledCode

typedef void(* QV4::Function::AotCompiledCode) (const QQmlPrivate::AOTCompiledContext *context, void **argv)

Definition at line 83 of file qv4function_p.h.

◆ JittedCode

typedef ReturnedValue(* QV4::Function::JittedCode) (CppStackFrame *, ExecutionEngine *)

Definition at line 82 of file qv4function_p.h.

Member Enumeration Documentation

◆ Kind

Enumerator
JsUntyped 
JsTyped 
AotCompiled 
Eval 

Definition at line 100 of file qv4function_p.h.

Constructor & Destructor Documentation

◆ Function()

Function::Function ( ExecutionEngine * engine,
ExecutableCompilationUnit * unit,
const CompiledData::Function * function,
const QQmlPrivate::AOTCompiledFunction * aotFunction )
protected

Definition at line 105 of file qv4function.cpp.

◆ ~Function()

Function::~Function ( )
protected

Definition at line 236 of file qv4function.cpp.

Member Function Documentation

◆ call() [1/2]

ReturnedValue Function::call ( const Value * thisObject,
const Value * argv,
int argc,
ExecutionContext * context )

Definition at line 58 of file qv4function.cpp.

Referenced by coverage_report.CoverageExecutor::build_binaries(), coverage_report.CoverageExecutor::generate_coverage(), coverage_report.CoverageExecutor::generate_html_report(), and coverage_report.CoverageExecutor::merge_raw_coverage_results().

Here is the caller graph for this function:

◆ call() [2/2]

bool Function::call ( QObject * thisObject,
void ** a,
const QMetaType * types,
int argc,
ExecutionContext * context )

Definition at line 22 of file qv4function.cpp.

Referenced by coverage_report.CoverageExecutor::build_binaries(), coverage_report.CoverageExecutor::generate_coverage(), coverage_report.CoverageExecutor::generate_html_report(), and coverage_report.CoverageExecutor::merge_raw_coverage_results().

Here is the caller graph for this function:

◆ create()

Function * Function::create ( ExecutionEngine * engine,
ExecutableCompilationUnit * unit,
const CompiledData::Function * function,
const QQmlPrivate::AOTCompiledFunction * aotFunction )
static

Definition at line 81 of file qv4function.cpp.

◆ destroy()

void Function::destroy ( )

Definition at line 88 of file qv4function.cpp.

◆ executableCompilationUnit()

QV4::ExecutableCompilationUnit * QV4::Function::executableCompilationUnit ( ) const
inline

Definition at line 62 of file qv4function_p.h.

◆ finalUrl()

QUrl QV4::Function::finalUrl ( ) const
inline

Definition at line 121 of file qv4function_p.h.

◆ isArrowFunction()

bool QV4::Function::isArrowFunction ( ) const
inline

Definition at line 124 of file qv4function_p.h.

◆ isClosureWrapper()

bool QV4::Function::isClosureWrapper ( ) const
inline

Definition at line 126 of file qv4function_p.h.

◆ isGenerator()

bool QV4::Function::isGenerator ( ) const
inline

Definition at line 125 of file qv4function_p.h.

◆ isJittable()

bool QV4::Function::isJittable ( ) const
inline

Definition at line 137 of file qv4function_p.h.

◆ isStrict()

bool QV4::Function::isStrict ( ) const
inline

Definition at line 123 of file qv4function_p.h.

◆ mark()

void Function::mark ( QV4::MarkStack * ms)

Definition at line 93 of file qv4function.cpp.

◆ name()

Heap::String * QV4::Function::name ( ) const
inline

Definition at line 114 of file qv4function_p.h.

◆ nestedFunction()

Function * QV4::Function::nestedFunction ( ) const
inline

Definition at line 130 of file qv4function_p.h.

◆ prettyName()

QString Function::prettyName ( const Function * function,
const void * address )
static

Definition at line 304 of file qv4function.cpp.

◆ runtimeString()

QV4::Heap::String * QV4::Function::runtimeString ( uint i) const
inline

Definition at line 68 of file qv4function_p.h.

◆ sourceFile()

QString QV4::Function::sourceFile ( ) const
inline

Definition at line 120 of file qv4function_p.h.

◆ sourceLocation()

QQmlSourceLocation Function::sourceLocation ( ) const

Definition at line 315 of file qv4function.cpp.

◆ updateInternalClass()

void Function::updateInternalClass ( ExecutionEngine * engine,
const QList< QByteArray > & parameters )

Definition at line 256 of file qv4function.cpp.

Member Data Documentation

◆ [union]

union { ... } QV4::Function

◆ [union]

union { ... } QV4::Function

◆ aotCompiledCode

AotCompiledCode QV4::Function::aotCompiledCode

Definition at line 93 of file qv4function_p.h.

◆ aotCompiledFunction

AOTCompiledFunction QV4::Function::aotCompiledFunction

Definition at line 88 of file qv4function_p.h.

◆ codeData

const char* QV4::Function::codeData = nullptr

Definition at line 79 of file qv4function_p.h.

◆ codeRef

JSC::MacroAssemblerCodeRef* QV4::Function::codeRef = nullptr

Definition at line 80 of file qv4function_p.h.

◆ compiledFunction

const CompiledData::Function* QV4::Function::compiledFunction = nullptr

Definition at line 78 of file qv4function_p.h.

◆ detectedInjectedParameters

bool QV4::Function::detectedInjectedParameters = false

Definition at line 102 of file qv4function_p.h.

◆ internalClass

QV4::WriteBarrier::Pointer<Heap::InternalClass> QV4::Function::internalClass

Definition at line 97 of file qv4function_p.h.

◆ interpreterCallCount

int QV4::Function::interpreterCallCount = 0

Definition at line 98 of file qv4function_p.h.

◆ jittedCode

JittedCode QV4::Function::jittedCode = nullptr

Definition at line 92 of file qv4function_p.h.

◆ jsTypedFunction

JSTypedFunction QV4::Function::jsTypedFunction

Definition at line 87 of file qv4function_p.h.

◆ kind

Kind QV4::Function::kind = JsUntyped

Definition at line 101 of file qv4function_p.h.

◆ nFormals

quint16 QV4::Function::nFormals = 0

Definition at line 99 of file qv4function_p.h.

◆ noFunction

void* QV4::Function::noFunction = nullptr

Definition at line 86 of file qv4function_p.h.


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