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
qqmljscodegenerator.cpp File Reference

(5afde2703ff1e60c30379de72567a9facb008d7b)

#include "qqmljscodegenerator_p.h"
#include "qqmljsmetatypes_p.h"
#include "qqmljsregistercontent_p.h"
#include "qqmljsscope_p.h"
#include "qqmljsutils_p.h"
#include <private/qqmljstypepropagator_p.h>
#include <private/qqmlirbuilder_p.h>
#include <private/qqmljsscope_p.h>
#include <private/qqmljsutils_p.h>
#include <private/qv4compilerscanfunctions_p.h>
#include <private/qduplicatetracker_p.h>
#include <QtCore/qdir.h>
#include <QtCore/qfileinfo.h>
+ Include dependency graph for qqmljscodegenerator.cpp:

Go to the source code of this file.

Macros

#define BYTECODE_UNIMPLEMENTED()   Q_ASSERT_X(false, Q_FUNC_INFO, "not implemented");
 
#define INJECT_TRACE_INFO(function)
 

Functions

static bool isTypeStorable (const QQmlJSTypeResolver *resolver, const QQmlJSScope::ConstPtr &type)
 
static QString toNumericString (double value)
 
static QString maxExpression (int argc)
 
static QString minExpression (int argc)
 
static QString messageTypeForMethod (const QString &method)
 

Macro Definition Documentation

◆ BYTECODE_UNIMPLEMENTED

#define BYTECODE_UNIMPLEMENTED ( )    Q_ASSERT_X(false, Q_FUNC_INFO, "not implemented");

Definition at line 34 of file qqmljscodegenerator.cpp.

Referenced by QQmlJSCodeGenerator::generate_CallPossiblyDirectEval(), QQmlJSCodeGenerator::generate_CallValue(), QQmlJSCodeGenerator::generate_CallWithReceiver(), QQmlJSCodeGenerator::generate_CallWithSpread(), QQmlJSCodeGenerator::generate_CloneBlockContext(), QQmlJSCodeGenerator::generate_CmpInstanceOf(), QQmlJSCodeGenerator::generate_ConstructWithSpread(), QQmlJSCodeGenerator::generate_CreateClass(), QQmlJSCodeGenerator::generate_CreateMappedArgumentsObject(), QQmlJSCodeGenerator::generate_CreateRestParameter(), QQmlJSCodeGenerator::generate_CreateUnmappedArgumentsObject(), QQmlJSCodeGenerator::generate_Debug(), QQmlJSCodeGenerator::generate_DeclareVar(), QQmlJSCodeGenerator::generate_DeleteName(), QQmlJSCodeGenerator::generate_DeleteProperty(), QQmlJSCodeGenerator::generate_DestructureRestElement(), QQmlJSCodeGenerator::generate_GetException(), QQmlJSCodeGenerator::generate_GetTemplateObject(), QQmlJSCodeGenerator::generate_IteratorClose(), QQmlJSCodeGenerator::generate_IteratorNextForYieldStar(), QQmlJSCodeGenerator::generate_JumpNotUndefined(), QQmlJSCodeGenerator::generate_LoadImport(), QQmlJSCodeGenerator::generate_LoadOptionalProperty(), QQmlJSCodeGenerator::generate_LoadScopedLocal(), QQmlJSCodeGenerator::generate_LoadSuperConstructor(), QQmlJSCodeGenerator::generate_LoadSuperProperty(), QQmlJSCodeGenerator::generate_MoveRegExp(), QQmlJSCodeGenerator::generate_PopScriptContext(), QQmlJSCodeGenerator::generate_PushBlockContext(), QQmlJSCodeGenerator::generate_PushScriptContext(), QQmlJSCodeGenerator::generate_PushWithContext(), QQmlJSCodeGenerator::generate_Resume(), QQmlJSCodeGenerator::generate_SetException(), QQmlJSCodeGenerator::generate_StoreLocal(), QQmlJSCodeGenerator::generate_StoreNameStrict(), QQmlJSCodeGenerator::generate_StoreScopedLocal(), QQmlJSCodeGenerator::generate_StoreSuperProperty(), QQmlJSCodeGenerator::generate_TailCall(), QQmlJSCodeGenerator::generate_ThrowOnNullOrUndefined(), QQmlJSCodeGenerator::generate_ToObject(), QQmlJSCodeGenerator::generate_UnwindToLabel(), QQmlJSCodeGenerator::generate_Yield(), and QQmlJSCodeGenerator::generate_YieldStar().

◆ INJECT_TRACE_INFO

#define INJECT_TRACE_INFO ( function)
Value:
static const bool injectTraceInfo = true; \
if (injectTraceInfo) { \
m_body += u"// "_s + QStringLiteral(#function) + u'\n'; \
}
#define QStringLiteral(str)

Definition at line 36 of file qqmljscodegenerator.cpp.

Referenced by QQmlJSCodeGenerator::generate_Add(), QQmlJSCodeGenerator::generate_As(), QQmlJSCodeGenerator::generate_BitAnd(), QQmlJSCodeGenerator::generate_BitAndConst(), QQmlJSCodeGenerator::generate_BitOr(), QQmlJSCodeGenerator::generate_BitOrConst(), QQmlJSCodeGenerator::generate_BitXor(), QQmlJSCodeGenerator::generate_BitXorConst(), QQmlJSCodeGenerator::generate_CallPropertyLookup(), QQmlJSCodeGenerator::generate_CallQmlContextPropertyLookup(), QQmlJSCodeGenerator::generate_CheckException(), QQmlJSCodeGenerator::generate_CmpEq(), QQmlJSCodeGenerator::generate_CmpEqInt(), QQmlJSCodeGenerator::generate_CmpEqNull(), QQmlJSCodeGenerator::generate_CmpGe(), QQmlJSCodeGenerator::generate_CmpGt(), QQmlJSCodeGenerator::generate_CmpLe(), QQmlJSCodeGenerator::generate_CmpLt(), QQmlJSCodeGenerator::generate_CmpNe(), QQmlJSCodeGenerator::generate_CmpNeInt(), QQmlJSCodeGenerator::generate_CmpNeNull(), QQmlJSCodeGenerator::generate_CmpStrictEqual(), QQmlJSCodeGenerator::generate_CmpStrictNotEqual(), QQmlJSCodeGenerator::generate_Construct(), QQmlJSCodeGenerator::generate_ConvertThisToObject(), QQmlJSCodeGenerator::generate_CreateCallContext(), QQmlJSCodeGenerator::generate_DeadTemporalZoneCheck(), QQmlJSCodeGenerator::generate_Decrement(), QQmlJSCodeGenerator::generate_DefineArray(), QQmlJSCodeGenerator::generate_DefineObjectLiteral(), QQmlJSCodeGenerator::generate_Div(), QQmlJSCodeGenerator::generate_Exp(), QQmlJSCodeGenerator::generate_GetIterator(), QQmlJSCodeGenerator::generate_GetLookup(), QQmlJSCodeGenerator::generate_GetOptionalLookup(), QQmlJSCodeGenerator::generate_Increment(), QQmlJSCodeGenerator::generate_IteratorNext(), QQmlJSCodeGenerator::generate_Jump(), QQmlJSCodeGenerator::generate_JumpFalse(), QQmlJSCodeGenerator::generate_JumpNoException(), QQmlJSCodeGenerator::generate_JumpTrue(), QQmlJSCodeGenerator::generate_LoadConst(), QQmlJSCodeGenerator::generate_LoadElement(), QQmlJSCodeGenerator::generate_LoadFalse(), QQmlJSCodeGenerator::generate_LoadGlobalLookup(), QQmlJSCodeGenerator::generate_LoadInt(), QQmlJSCodeGenerator::generate_LoadNull(), QQmlJSCodeGenerator::generate_LoadQmlContextPropertyLookup(), QQmlJSCodeGenerator::generate_LoadReg(), QQmlJSCodeGenerator::generate_LoadRuntimeString(), QQmlJSCodeGenerator::generate_LoadTrue(), QQmlJSCodeGenerator::generate_LoadUndefined(), QQmlJSCodeGenerator::generate_LoadZero(), QQmlJSCodeGenerator::generate_Mod(), QQmlJSCodeGenerator::generate_MoveConst(), QQmlJSCodeGenerator::generate_MoveReg(), QQmlJSCodeGenerator::generate_Mul(), QQmlJSCodeGenerator::generate_PopContext(), QQmlJSCodeGenerator::generate_Ret(), QQmlJSCodeGenerator::generate_SetLookup(), QQmlJSCodeGenerator::generate_Shl(), QQmlJSCodeGenerator::generate_ShlConst(), QQmlJSCodeGenerator::generate_Shr(), QQmlJSCodeGenerator::generate_ShrConst(), QQmlJSCodeGenerator::generate_StoreElement(), QQmlJSCodeGenerator::generate_StoreNameSloppy(), QQmlJSCodeGenerator::generate_StoreReg(), QQmlJSCodeGenerator::generate_Sub(), QQmlJSCodeGenerator::generate_ThrowException(), QQmlJSCodeGenerator::generate_UCompl(), QQmlJSCodeGenerator::generate_UMinus(), QQmlJSCodeGenerator::generate_UNot(), QQmlJSCodeGenerator::generate_UPlus(), QQmlJSCodeGenerator::generate_UShr(), and QQmlJSCodeGenerator::generate_UShrConst().

Function Documentation

◆ isTypeStorable()

static bool isTypeStorable ( const QQmlJSTypeResolver * resolver,
const QQmlJSScope::ConstPtr & type )
static

Definition at line 43 of file qqmljscodegenerator.cpp.

References QQmlJSTypeResolver::equals(), QQmlJSTypeResolver::nullType(), and QQmlJSTypeResolver::voidType().

Referenced by QQmlJSCodeGenerator::AccumulatorConverter::AccumulatorConverter(), QQmlJSCodeGenerator::run(), and QQmlJSCodeGenerator::startInstruction().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ maxExpression()

static QString maxExpression ( int argc)
static

Definition at line 1884 of file qqmljscodegenerator.cpp.

References QString::arg(), i, QString::number(), Q_ASSERT_X, and Q_FUNC_INFO.

+ Here is the call graph for this function:

◆ messageTypeForMethod()

static QString messageTypeForMethod ( const QString & method)
static

Definition at line 2040 of file qqmljscodegenerator.cpp.

References method.

◆ minExpression()

static QString minExpression ( int argc)
static

Definition at line 1900 of file qqmljscodegenerator.cpp.

References QString::arg(), i, QString::number(), Q_ASSERT_X, and Q_FUNC_INFO.

+ Here is the call graph for this function:

◆ toNumericString()

static QString toNumericString ( double value)
static

Definition at line 391 of file qqmljscodegenerator.cpp.

References i, QString::number(), and qFpClassify().

Referenced by QQmlJSCodeGenerator::generate_LoadConst(), and QQmlJSCodeGenerator::generate_MoveConst().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: