![]() |
Qt 6.x
The Qt SDK
|
#include <qv4function_p.h>
Classes | |
struct | JSTypedFunction |
Public Types | |
enum | Kind : quint8 { JsUntyped , JsTyped , AotCompiled , Eval } |
typedef ReturnedValue(* | JittedCode) (CppStackFrame *, ExecutionEngine *) |
Public Member Functions | |
QV4::ExecutableCompilationUnit * | executableCompilationUnit () const |
QV4::Heap::String * | runtimeString (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 | updateInternalClass (ExecutionEngine *engine, const QList< QByteArray > ¶meters) |
Heap::String * | name () const |
QString | sourceFile () const |
QUrl | finalUrl () const |
bool | isStrict () const |
bool | isArrowFunction () const |
bool | isGenerator () const |
bool | isClosureWrapper () const |
QQmlSourceLocation | sourceLocation () const |
Function * | nestedFunction () const |
![]() | |
FunctionData (ExecutableCompilationUnit *compilationUnit) | |
Static Public Member Functions | |
static Function * | create (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::Function * | compiledFunction | |
const char * | codeData | |
JittedCode | jittedCode | |
JSC::MacroAssemblerCodeRef * | codeRef | |
union { | ||
const QQmlPrivate::AOTCompiledFunction * aotCompiledFunction = nullptr | ||
const JSTypedFunction * jsTypedFunction | ||
}; | ||
Heap::InternalClass * | internalClass | |
int | interpreterCallCount = 0 | |
quint16 | nFormals | |
Kind | kind = JsUntyped | |
bool | detectedInjectedParameters = false | |
![]() | ||
CompiledData::CompilationUnitBase * | compilationUnit | |
Protected Member Functions | |
Function (ExecutionEngine *engine, ExecutableCompilationUnit *unit, const CompiledData::Function *function, const QQmlPrivate::AOTCompiledFunction *aotFunction) | |
~Function () | |
Definition at line 47 of file qv4function_p.h.
typedef ReturnedValue(* QV4::Function::JittedCode) (CppStackFrame *, ExecutionEngine *) |
Definition at line 79 of file qv4function_p.h.
enum QV4::Function::Kind : quint8 |
Enumerator | |
---|---|
JsUntyped | |
JsTyped | |
AotCompiled | |
Eval |
Definition at line 91 of file qv4function_p.h.
|
protected |
Definition at line 100 of file qv4function.cpp.
References QQmlImport::AllowRecursion, QList< T >::append(), QV4::Function::JSTypedFunction::argumentTypes, QV4::Attr_NotConfigurable, QV4::EngineBase::Class_CallContext, QV4::FunctionData::compilationUnit, QQmlTypeData::compilationUnit(), compiledFunction, QQmlType::elementName(), engine, QV4::CompiledData::Function::formalsTable(), function, QQmlEnginePrivate::get(), QQmlTypeLoader::getType(), i, QV4::ExecutableCompilationUnit::ignoresFunctionSignature(), internalClass, QQmlType::isComposite(), QQmlType::isInlineComponentType(), QV4::isSpecificType(), QMetaType::isValid(), QQmlType::isValid(), JsTyped, jsTypedFunction, kind, QV4::CompiledData::Function::localsTable(), QQmlPropertyCacheCreatorBase::metaTypeForPropertyType(), QV4::CompiledData::Parameter::nameIndex, QV4::CompiledData::Function::nFormals, nFormals, QV4::CompiledData::Function::nLocals, QV4::ExecutableCompilationUnit::qmlType, QQmlMetaType::qmlType(), QV4::ExecutableCompilationUnit::qmlTypeForComponent(), QQmlTypeNameCache::query(), QV4::CompiledData::Function::returnType, QV4::Function::JSTypedFunction::returnType, QV4::CompiledData::CompilationUnitBase::runtimeStrings, QQmlType::sourceUrl(), QV4::CompiledData::CompilationUnit::stringAt(), QQmlType::typeId(), QQmlEnginePrivate::typeLoader, and QV4::ExecutableCompilationUnit::typeNameCache.
|
protected |
Definition at line 172 of file qv4function.cpp.
References codeRef, QV4::destroyFunctionTable(), JsTyped, jsTypedFunction, and kind.
ReturnedValue Function::call | ( | const Value * | thisObject, |
const Value * | argv, | ||
int | argc, | ||
ExecutionContext * | context | ||
) |
Definition at line 59 of file qv4function.cpp.
References AotCompiled, aotCompiledFunction, QV4::coerceAndCall(), compiledFunction, context, QV4::convertAndCall(), QV4::doCall(), JsTyped, jsTypedFunction, and kind.
bool Function::call | ( | QObject * | thisObject, |
void ** | a, | ||
const QMetaType * | types, | ||
int | argc, | ||
ExecutionContext * | context | ||
) |
Definition at line 23 of file qv4function.cpp.
References AotCompiled, context, QV4::convertAndCall(), engine, QV4::Moth::VME::exec(), frame, and kind.
Referenced by QV4::EvalFunction::evalCall(), QQmlJavaScriptExpression::evaluate(), QQmlJavaScriptExpression::evaluate(), and QV4::Script::run().
|
static |
Definition at line 82 of file qv4function.cpp.
References engine, and function.
Referenced by QV4::ExecutableCompilationUnit::linkToEngine().
void Function::destroy | ( | ) |
Definition at line 89 of file qv4function.cpp.
|
inline |
Definition at line 61 of file qv4function_p.h.
Referenced by QQmlJavaScriptExpression::setupFunction().
|
inline |
Definition at line 110 of file qv4function_p.h.
Referenced by QV4::ExecutionEngine::resolvedUrl().
|
inline |
Definition at line 113 of file qv4function_p.h.
References QV4::CompiledData::Function::flags.
Referenced by QV4::FunctionObject::createScriptFunction(), and QV4::getSuperBase().
|
inline |
Definition at line 115 of file qv4function_p.h.
References QV4::CompiledData::Function::flags.
|
inline |
Definition at line 114 of file qv4function_p.h.
References QV4::CompiledData::Function::flags.
Referenced by QV4::Runtime::Closure::call(), and QV4::Runtime::ObjectLiteral::call().
|
inline |
Definition at line 112 of file qv4function_p.h.
References QV4::CompiledData::Function::flags.
Referenced by QV4::Runtime::StoreProperty::call(), QV4::ExecutionContext::deleteProperty(), QV4::EvalFunction::evalCall(), and QJSEngine::evaluate().
|
inline |
Definition at line 103 of file qv4function_p.h.
References QV4::CompiledData::Function::nameIndex.
Referenced by QV4::CppStackFrame::function().
|
inline |
Definition at line 119 of file qv4function_p.h.
References QV4::CompiledData::Function::nestedFunctionIndex.
Definition at line 229 of file qv4function.cpp.
References QString::append(), function, QString::isEmpty(), QString::number(), QString::prepend(), and prettyName().
Referenced by prettyName().
|
inline |
Definition at line 67 of file qv4function_p.h.
References i.
|
inline |
Definition at line 109 of file qv4function_p.h.
Referenced by QV4::CppStackFrame::source(), and sourceLocation().
QQmlSourceLocation Function::sourceLocation | ( | ) | const |
Definition at line 240 of file qv4function.cpp.
References QV4::CompiledData::Location::column(), compiledFunction, QV4::CompiledData::Location::line(), QV4::CompiledData::Function::location, and sourceFile().
Referenced by QQmlJavaScriptExpression::sourceLocation().
void Function::updateInternalClass | ( | ExecutionEngine * | engine, |
const QList< QByteArray > & | parameters | ||
) |
Definition at line 182 of file qv4function.cpp.
References QV4::Heap::InternalClass::addMember(), arg, QList< T >::at(), QV4::Attr_NotConfigurable, QV4::EngineBase::Class_CallContext, QV4::FunctionData::compilationUnit, compiledFunction, engine, QString::fromUtf8(), i, internalClass, j, QV4::CompiledData::Function::localsTable(), nFormals, QV4::CompiledData::Function::nLocals, QString::number(), QV4::CompiledData::CompilationUnitBase::runtimeStrings, and QList< T >::size().
Referenced by QQmlBoundSignal_callback().
union { ... } QV4::Function |
const QQmlPrivate::AOTCompiledFunction* QV4::Function::aotCompiledFunction = nullptr |
Definition at line 83 of file qv4function_p.h.
Referenced by call(), QQmlBinding::doUpdate(), and QV4::ArrowFunction::virtualCall().
const char* QV4::Function::codeData |
Definition at line 77 of file qv4function_p.h.
Referenced by QV4::GeneratorFunction::virtualCall().
JSC::MacroAssemblerCodeRef* QV4::Function::codeRef |
Definition at line 81 of file qv4function_p.h.
Referenced by ~Function().
const CompiledData::Function* QV4::Function::compiledFunction |
Definition at line 59 of file qv4function_p.h.
Referenced by Function(), call(), QV4::JSTypesStackFrame::requiredJSStackFrameSize(), sourceLocation(), updateInternalClass(), and QV4::ArrowFunction::virtualCall().
bool QV4::Function::detectedInjectedParameters = false |
Definition at line 93 of file qv4function_p.h.
Heap::InternalClass* QV4::Function::internalClass |
Definition at line 88 of file qv4function_p.h.
Referenced by Function(), and updateInternalClass().
int QV4::Function::interpreterCallCount = 0 |
Definition at line 89 of file qv4function_p.h.
JittedCode QV4::Function::jittedCode |
Definition at line 80 of file qv4function_p.h.
const JSTypedFunction* QV4::Function::jsTypedFunction |
Definition at line 84 of file qv4function_p.h.
Referenced by Function(), ~Function(), call(), and QV4::ArrowFunction::virtualCall().
Definition at line 92 of file qv4function_p.h.
Referenced by Function(), ~Function(), call(), call(), QQmlBinding::doUpdate(), QV4::EvalFunction::evalCall(), QV4::getSuperBase(), QV4::ArrowFunction::virtualCall(), and QV4::ArrowFunction::virtualCallWithMetaTypes().
quint16 QV4::Function::nFormals |
Definition at line 90 of file qv4function_p.h.
Referenced by Function(), and updateInternalClass().