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 46 of file qv4function_p.h.

Member Typedef Documentation

◆ AotCompiledCode

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

Definition at line 82 of file qv4function_p.h.

◆ JittedCode

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

Definition at line 81 of file qv4function_p.h.

Member Enumeration Documentation

◆ Kind

Enumerator
JsUntyped 
JsTyped 
AotCompiled 
Eval 

Definition at line 99 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 104 of file qv4function.cpp.

◆ ~Function()

Function::~Function ( )
protected

Definition at line 173 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 57 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 21 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 80 of file qv4function.cpp.

◆ destroy()

void Function::destroy ( )

Definition at line 87 of file qv4function.cpp.

◆ executableCompilationUnit()

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

Definition at line 61 of file qv4function_p.h.

◆ finalUrl()

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

Definition at line 120 of file qv4function_p.h.

◆ isArrowFunction()

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

Definition at line 123 of file qv4function_p.h.

◆ isClosureWrapper()

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

Definition at line 125 of file qv4function_p.h.

◆ isGenerator()

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

Definition at line 124 of file qv4function_p.h.

◆ isJittable()

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

Definition at line 136 of file qv4function_p.h.

◆ isStrict()

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

Definition at line 122 of file qv4function_p.h.

◆ mark()

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

Definition at line 92 of file qv4function.cpp.

◆ name()

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

Definition at line 113 of file qv4function_p.h.

◆ nestedFunction()

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

Definition at line 129 of file qv4function_p.h.

◆ prettyName()

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

Definition at line 241 of file qv4function.cpp.

◆ runtimeString()

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

Definition at line 67 of file qv4function_p.h.

◆ sourceFile()

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

Definition at line 119 of file qv4function_p.h.

◆ sourceLocation()

QQmlSourceLocation Function::sourceLocation ( ) const

Definition at line 252 of file qv4function.cpp.

◆ updateInternalClass()

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

Definition at line 193 of file qv4function.cpp.

Member Data Documentation

◆ [union]

union { ... } QV4::Function

◆ [union]

union { ... } QV4::Function

◆ aotCompiledCode

AotCompiledCode QV4::Function::aotCompiledCode

Definition at line 92 of file qv4function_p.h.

◆ aotCompiledFunction

AOTCompiledFunction QV4::Function::aotCompiledFunction

Definition at line 87 of file qv4function_p.h.

◆ codeData

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

Definition at line 78 of file qv4function_p.h.

◆ codeRef

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

Definition at line 79 of file qv4function_p.h.

◆ compiledFunction

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

Definition at line 77 of file qv4function_p.h.

◆ detectedInjectedParameters

bool QV4::Function::detectedInjectedParameters = false

Definition at line 101 of file qv4function_p.h.

◆ internalClass

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

Definition at line 96 of file qv4function_p.h.

◆ interpreterCallCount

int QV4::Function::interpreterCallCount = 0

Definition at line 97 of file qv4function_p.h.

◆ jittedCode

JittedCode QV4::Function::jittedCode = nullptr

Definition at line 91 of file qv4function_p.h.

◆ jsTypedFunction

JSTypedFunction QV4::Function::jsTypedFunction

Definition at line 86 of file qv4function_p.h.

◆ kind

Kind QV4::Function::kind = JsUntyped

Definition at line 100 of file qv4function_p.h.

◆ nFormals

quint16 QV4::Function::nFormals = 0

Definition at line 98 of file qv4function_p.h.

◆ noFunction

void* QV4::Function::noFunction = nullptr

Definition at line 85 of file qv4function_p.h.


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