diff options
-rw-r--r-- | src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp | 2 | ||||
-rw-r--r-- | src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp | 2 | ||||
-rw-r--r-- | src/qml/compiler/qqmlirbuilder.cpp | 8 | ||||
-rw-r--r-- | src/qml/compiler/qv4codegen.cpp | 22 | ||||
-rw-r--r-- | src/qml/compiler/qv4codegen_p.h | 2 | ||||
-rw-r--r-- | src/qml/compiler/qv4compilercontext.cpp | 4 | ||||
-rw-r--r-- | src/qml/compiler/qv4compilercontext_p.h | 19 | ||||
-rw-r--r-- | src/qml/compiler/qv4compilerscanfunctions.cpp | 15 | ||||
-rw-r--r-- | src/qml/compiler/qv4compilerscanfunctions_p.h | 8 | ||||
-rw-r--r-- | src/qml/jsapi/qjsengine.cpp | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4globalobject.cpp | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4runtimecodegen.cpp | 4 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4script.cpp | 4 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4script_p.h | 6 | ||||
-rw-r--r-- | src/qml/types/qquickworkerscript.cpp | 4 | ||||
-rw-r--r-- | tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp | 6 | ||||
-rw-r--r-- | tools/qmlcachegen/qmlcachegen.cpp | 2 | ||||
-rw-r--r-- | tools/qmljs/qmljs.cpp | 2 |
18 files changed, 58 insertions, 56 deletions
diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp index 7950d21612..a00454758e 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp @@ -103,7 +103,7 @@ void JavaScriptJob::run() } } - QV4::Script script(ctx, QV4::Compiler::EvalCode, this->script); + QV4::Script script(ctx, QV4::Compiler::ContextType::Eval, this->script); if (const QV4::Function *function = frame ? frame->v4Function : engine->globalCode) script.strictMode = function->isStrict(); diff --git a/src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp b/src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp index 92492d9305..97c7de1cde 100644 --- a/src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp +++ b/src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp @@ -254,7 +254,7 @@ QV4::ReturnedValue NativeDebugger::evaluateExpression(const QString &expression) QV4::ExecutionContext *ctx = m_engine->currentStackFrame ? m_engine->currentContext() : m_engine->rootContext(); - QV4::Script script(ctx, QV4::Compiler::EvalCode, expression); + QV4::Script script(ctx, QV4::Compiler::ContextType::Eval, expression); if (const QV4::Function *function = m_engine->currentStackFrame ? m_engine->currentStackFrame->v4Function : m_engine->globalCode) script.strictMode = function->isStrict(); diff --git a/src/qml/compiler/qqmlirbuilder.cpp b/src/qml/compiler/qqmlirbuilder.cpp index f763e55113..ffad1927df 100644 --- a/src/qml/compiler/qqmlirbuilder.cpp +++ b/src/qml/compiler/qqmlirbuilder.cpp @@ -1809,8 +1809,8 @@ QVector<int> JSCodeGen::generateJSCodeForFunctionsAndBindings(const QList<Compil { QVector<int> runtimeFunctionIndices(functions.size()); - QV4::Compiler::ScanFunctions scan(this, sourceCode, QV4::Compiler::GlobalCode); - scan.enterGlobalEnvironment(QV4::Compiler::QmlBinding); + QV4::Compiler::ScanFunctions scan(this, sourceCode, QV4::Compiler::ContextType::Global); + scan.enterGlobalEnvironment(QV4::Compiler::ContextType::Binding); for (const CompiledFunctionOrExpression &f : functions) { Q_ASSERT(f.node != qmlRoot); QQmlJS::AST::FunctionDeclaration *function = QQmlJS::AST::cast<QQmlJS::AST::FunctionDeclaration*>(f.node); @@ -1818,7 +1818,7 @@ QVector<int> JSCodeGen::generateJSCodeForFunctionsAndBindings(const QList<Compil if (function) scan.enterQmlFunction(function); else - scan.enterEnvironment(f.node, QV4::Compiler::QmlBinding); + scan.enterEnvironment(f.node, QV4::Compiler::ContextType::Binding); scan(function ? function->body : f.node); scan.leaveEnvironment(); @@ -2193,7 +2193,7 @@ QV4::Compiler::Codegen::Reference JSCodeGen::fallbackNameLookup(const QString &n // Look for IDs first. for (const IdMapping &mapping : qAsConst(_idObjects)) { if (name == mapping.name) { - if (_context->compilationMode == QV4::Compiler::QmlBinding) + if (_context->type == QV4::Compiler::ContextType::Binding) _context->idObjectDependencies.insert(mapping.idIndex); Instruction::LoadIdObject load; diff --git a/src/qml/compiler/qv4codegen.cpp b/src/qml/compiler/qv4codegen.cpp index a4d00ce37b..4df078ffc2 100644 --- a/src/qml/compiler/qv4codegen.cpp +++ b/src/qml/compiler/qv4codegen.cpp @@ -108,7 +108,7 @@ void Codegen::generateFromProgram(const QString &fileName, const QString &sourceCode, Program *node, Module *module, - CompilationMode mode) + ContextType contextType) { Q_ASSERT(node); @@ -119,7 +119,7 @@ void Codegen::generateFromProgram(const QString &fileName, _module->fileName = fileName; _module->finalUrl = finalUrl; - ScanFunctions scan(this, sourceCode, mode); + ScanFunctions scan(this, sourceCode, contextType); scan(node); if (hasError) @@ -1791,7 +1791,7 @@ Codegen::Reference Codegen::referenceForName(const QString &name, bool isLhs) return fallback; } - if (!c->parent && !c->forceLookupByName() && _context->compilationMode != EvalCode && c->compilationMode != QmlBinding) { + if (!c->parent && !c->forceLookupByName() && _context->type != ContextType::Eval && c->type != ContextType::Binding) { Reference r = Reference::fromName(this, name); r.global = true; return r; @@ -2293,7 +2293,7 @@ bool Codegen::visit(FunctionDeclaration * ast) RegisterScope scope(this); - if (_context->compilationMode == QmlBinding) + if (_context->type == ContextType::Binding) referenceForName(ast->name.toString(), true).loadInAccumulator(); _expr.accept(nx); return false; @@ -2345,7 +2345,7 @@ int Codegen::defineFunction(const QString &name, AST::Node *ast, _module->functions.append(_context); _context->functionIndex = _module->functions.count() - 1; - _context->hasDirectEval |= (_context->compilationMode == EvalCode || _context->compilationMode == GlobalCode || _module->debugMode); // Conditional breakpoints are like eval in the function + _context->hasDirectEval |= (_context->type == ContextType::Eval || _context->type == ContextType::Global || _module->debugMode); // Conditional breakpoints are like eval in the function // When a user writes the following QML signal binding: // onSignal: function() { doSomethingUsefull } @@ -2365,7 +2365,7 @@ int Codegen::defineFunction(const QString &name, AST::Node *ast, bytecodeGenerator->newRegisterArray(sizeof(CallData)/sizeof(Value) - 1 + _context->arguments.size()); int returnAddress = -1; - bool _requiresReturnValue = (_context->compilationMode == QmlBinding || _context->compilationMode == EvalCode || _context->compilationMode == GlobalCode); + bool _requiresReturnValue = (_context->type == ContextType::Binding || _context->type == ContextType::Eval || _context->type == ContextType::Global); qSwap(requiresReturnValue, _requiresReturnValue); if (requiresReturnValue) returnAddress = bytecodeGenerator->newRegister(); @@ -2375,15 +2375,15 @@ int Codegen::defineFunction(const QString &name, AST::Node *ast, _context->addLocalVar(QStringLiteral("arguments"), Context::VariableDeclaration, AST::VariableScope::Var); bool allVarsEscape = _context->hasWith || _context->hasTry || _context->hasDirectEval; - if (_context->compilationMode == QmlBinding // we don't really need this for bindings, but we do for signal handlers, and we don't know if the code is a signal handler or not. - || (!_context->canUseSimpleCall() && _context->compilationMode != GlobalCode && - (_context->compilationMode != EvalCode || _context->isStrict))) { + if (_context->type == ContextType::Binding // we don't really need this for bindings, but we do for signal handlers, and we don't know if the code is a signal handler or not. + || (!_context->canUseSimpleCall() && _context->type != ContextType::Global && + (_context->type != ContextType::Eval || _context->isStrict))) { Instruction::CreateCallContext createContext; bytecodeGenerator->addInstruction(createContext); } // variables in global code are properties of the global context object, not locals as with other functions. - if (_context->compilationMode == FunctionCode || _context->compilationMode == QmlBinding) { + if (_context->type == ContextType::Function || _context->type == ContextType::Binding) { for (Context::MemberMap::iterator it = _context->members.begin(), end = _context->members.end(); it != end; ++it) { const QString &local = it.key(); if (allVarsEscape) @@ -2867,7 +2867,7 @@ bool Codegen::visit(ReturnStatement *ast) if (hasError) return true; - if (_context->compilationMode != FunctionCode && _context->compilationMode != QmlBinding) { + if (_context->type != ContextType::Function && _context->type != ContextType::Binding) { throwSyntaxError(ast->returnToken, QStringLiteral("Return statement outside of function")); return false; } diff --git a/src/qml/compiler/qv4codegen_p.h b/src/qml/compiler/qv4codegen_p.h index ed43620e3a..03579d4b29 100644 --- a/src/qml/compiler/qv4codegen_p.h +++ b/src/qml/compiler/qv4codegen_p.h @@ -101,7 +101,7 @@ public: const QString &sourceCode, AST::Program *ast, Module *module, - CompilationMode mode = GlobalCode); + ContextType contextType = ContextType::Global); public: class VolatileMemoryLocationScanner; diff --git a/src/qml/compiler/qv4compilercontext.cpp b/src/qml/compiler/qv4compilercontext.cpp index 0a9d3d8efe..61b9254681 100644 --- a/src/qml/compiler/qv4compilercontext.cpp +++ b/src/qml/compiler/qv4compilercontext.cpp @@ -47,11 +47,11 @@ using namespace QQmlJS::AST; QT_BEGIN_NAMESPACE -Context *Module::newContext(Node *node, Context *parent, CompilationMode compilationMode) +Context *Module::newContext(Node *node, Context *parent, ContextType contextType) { Q_ASSERT(!contextMap.contains(node)); - Context *c = new Context(parent, compilationMode); + Context *c = new Context(parent, contextType); if (node) { SourceLocation loc = node->firstSourceLocation(); c->line = loc.startLine; diff --git a/src/qml/compiler/qv4compilercontext_p.h b/src/qml/compiler/qv4compilercontext_p.h index 2479465587..2864d759f9 100644 --- a/src/qml/compiler/qv4compilercontext_p.h +++ b/src/qml/compiler/qv4compilercontext_p.h @@ -66,14 +66,15 @@ namespace Compiler { struct ControlFlow; -enum CompilationMode { - GlobalCode, - EvalCode, - FunctionCode, - QmlBinding // This is almost the same as EvalCode, except: +enum class ContextType { + Global, + Function, + Eval, + Binding, // This is almost the same as Eval, except: // * function declarations are moved to the return address when encountered // * return statements are allowed everywhere (like in FunctionCode) // * variable declarations are treated as true locals (like in FunctionCode) + Block }; struct Context; @@ -86,7 +87,7 @@ struct Module { qDeleteAll(contextMap); } - Context *newContext(QQmlJS::AST::Node *node, Context *parent, CompilationMode compilationMode); + Context *newContext(QQmlJS::AST::Node *node, Context *parent, ContextType compilationMode); QHash<QQmlJS::AST::Node *, Context *> contextMap; QList<Context *> functions; @@ -157,7 +158,7 @@ struct Context { UsesArgumentsObject usesArgumentsObject = ArgumentsObjectUnknown; - CompilationMode compilationMode; + ContextType type; template <typename T> class SmallSet: public QVarLengthArray<T, 8> @@ -206,9 +207,9 @@ struct Context { PropertyDependencyMap contextObjectPropertyDependencies; PropertyDependencyMap scopeObjectPropertyDependencies; - Context(Context *parent, CompilationMode mode) + Context(Context *parent, ContextType type) : parent(parent) - , compilationMode(mode) + , type(type) { if (parent && parent->isStrict) isStrict = true; diff --git a/src/qml/compiler/qv4compilerscanfunctions.cpp b/src/qml/compiler/qv4compilerscanfunctions.cpp index 3bbef3a96a..b779e37946 100644 --- a/src/qml/compiler/qv4compilerscanfunctions.cpp +++ b/src/qml/compiler/qv4compilerscanfunctions.cpp @@ -56,12 +56,12 @@ using namespace QV4; using namespace QV4::Compiler; using namespace QQmlJS::AST; -ScanFunctions::ScanFunctions(Codegen *cg, const QString &sourceCode, CompilationMode defaultProgramMode) +ScanFunctions::ScanFunctions(Codegen *cg, const QString &sourceCode, ContextType defaultProgramType) : _cg(cg) , _sourceCode(sourceCode) , _context(nullptr) , _allowFuncDecls(true) - , defaultProgramMode(defaultProgramMode) + , defaultProgramType(defaultProgramType) { } @@ -73,12 +73,12 @@ void ScanFunctions::operator()(Node *node) calcEscapingVariables(); } -void ScanFunctions::enterGlobalEnvironment(CompilationMode compilationMode) +void ScanFunctions::enterGlobalEnvironment(ContextType compilationMode) { enterEnvironment(astNodeForGlobalEnvironment, compilationMode); } -void ScanFunctions::enterEnvironment(Node *node, CompilationMode compilationMode) +void ScanFunctions::enterEnvironment(Node *node, ContextType compilationMode) { Context *c = _cg->_module->contextMap.value(node); if (!c) @@ -138,7 +138,7 @@ void ScanFunctions::checkName(const QStringRef &name, const SourceLocation &loc) bool ScanFunctions::visit(Program *ast) { - enterEnvironment(ast, defaultProgramMode); + enterEnvironment(ast, defaultProgramType); checkDirectivePrologue(ast->statements); return true; } @@ -392,7 +392,8 @@ bool ScanFunctions::visit(ThisExpression *) return false; } -bool ScanFunctions::visit(Block *ast) { +bool ScanFunctions::visit(Block *ast) +{ TemporaryBoolAssignment allowFuncDecls(_allowFuncDecls, _context->isStrict ? false : _allowFuncDecls); Node::accept(ast->statements, this); return false; @@ -401,7 +402,7 @@ bool ScanFunctions::visit(Block *ast) { bool ScanFunctions::enterFunction(Node *ast, const QString &name, FormalParameterList *formals, StatementList *body, bool enterName) { Context *outerContext = _context; - enterEnvironment(ast, FunctionCode); + enterEnvironment(ast, ContextType::Function); FunctionExpression *expr = AST::cast<FunctionExpression *>(ast); if (!expr) diff --git a/src/qml/compiler/qv4compilerscanfunctions_p.h b/src/qml/compiler/qv4compilerscanfunctions_p.h index 5ec9310b8d..fc24481ad4 100644 --- a/src/qml/compiler/qv4compilerscanfunctions_p.h +++ b/src/qml/compiler/qv4compilerscanfunctions_p.h @@ -81,11 +81,11 @@ class ScanFunctions: protected QQmlJS::AST::Visitor { typedef QV4::TemporaryAssignment<bool> TemporaryBoolAssignment; public: - ScanFunctions(Codegen *cg, const QString &sourceCode, CompilationMode defaultProgramMode); + ScanFunctions(Codegen *cg, const QString &sourceCode, ContextType defaultProgramType); void operator()(AST::Node *node); - void enterGlobalEnvironment(CompilationMode compilationMode); - void enterEnvironment(AST::Node *node, CompilationMode compilationMode); + void enterGlobalEnvironment(ContextType compilationMode); + void enterEnvironment(AST::Node *node, ContextType compilationMode); void leaveEnvironment(); void enterQmlFunction(AST::FunctionDeclaration *ast) @@ -146,7 +146,7 @@ protected: QStack<Context *> _contextStack; bool _allowFuncDecls; - CompilationMode defaultProgramMode; + ContextType defaultProgramType; private: static constexpr AST::Node *astNodeForGlobalEnvironment = nullptr; diff --git a/src/qml/jsapi/qjsengine.cpp b/src/qml/jsapi/qjsengine.cpp index 924de14bc7..ebc35a8fd7 100644 --- a/src/qml/jsapi/qjsengine.cpp +++ b/src/qml/jsapi/qjsengine.cpp @@ -462,7 +462,7 @@ QJSValue QJSEngine::evaluate(const QString& program, const QString& fileName, in QV4::Scope scope(v4); QV4::ScopedValue result(scope); - QV4::Script script(v4->rootContext(), QV4::Compiler::GlobalCode, program, fileName, lineNumber); + QV4::Script script(v4->rootContext(), QV4::Compiler::ContextType::Global, program, fileName, lineNumber); script.strictMode = false; if (v4->currentStackFrame) script.strictMode = v4->currentStackFrame->v4Function->isStrict(); diff --git a/src/qml/jsruntime/qv4globalobject.cpp b/src/qml/jsruntime/qv4globalobject.cpp index f419ab53fe..b68f3db3cf 100644 --- a/src/qml/jsruntime/qv4globalobject.cpp +++ b/src/qml/jsruntime/qv4globalobject.cpp @@ -361,7 +361,7 @@ ReturnedValue EvalFunction::evalCall(const Value *, const Value *argv, int argc, const QString code = scode->toQString(); bool inheritContext = !isStrict; - Script script(ctx, QV4::Compiler::EvalCode, code, QStringLiteral("eval code")); + Script script(ctx, QV4::Compiler::ContextType::Eval, code, QStringLiteral("eval code")); script.strictMode = (directCall && isStrict); script.inheritContext = inheritContext; script.parse(); diff --git a/src/qml/jsruntime/qv4runtimecodegen.cpp b/src/qml/jsruntime/qv4runtimecodegen.cpp index 93ca666c53..b03dce49f3 100644 --- a/src/qml/jsruntime/qv4runtimecodegen.cpp +++ b/src/qml/jsruntime/qv4runtimecodegen.cpp @@ -52,9 +52,9 @@ void RuntimeCodegen::generateFromFunctionExpression(const QString &fileName, _module->finalUrl = fileName; _context = nullptr; - Compiler::ScanFunctions scan(this, sourceCode, Compiler::GlobalCode); + Compiler::ScanFunctions scan(this, sourceCode, Compiler::ContextType::Global); // fake a global environment - scan.enterEnvironment(nullptr, Compiler::FunctionCode); + scan.enterEnvironment(nullptr, Compiler::ContextType::Function); scan(ast); scan.leaveEnvironment(); diff --git a/src/qml/jsruntime/qv4script.cpp b/src/qml/jsruntime/qv4script.cpp index 01d6bfd368..daff1c659a 100644 --- a/src/qml/jsruntime/qv4script.cpp +++ b/src/qml/jsruntime/qv4script.cpp @@ -127,7 +127,7 @@ void Script::parse() RuntimeCodegen cg(v4, &jsGenerator, strictMode); if (inheritContext) cg.setUseFastLookups(false); - cg.generateFromProgram(sourceFile, sourceFile, sourceCode, program, &module, compilationMode); + cg.generateFromProgram(sourceFile, sourceFile, sourceCode, program, &module, contextType); if (v4->hasException) return; @@ -218,7 +218,7 @@ QQmlRefPointer<QV4::CompiledData::CompilationUnit> Script::precompile(QV4::Compi Codegen cg(unitGenerator, /*strict mode*/false); cg.setUseFastLookups(false); - cg.generateFromProgram(fileName, finalUrl, source, program, module, GlobalCode); + cg.generateFromProgram(fileName, finalUrl, source, program, module, ContextType::Global); errors = cg.qmlErrors(); if (!errors.isEmpty()) { if (reportedErrors) diff --git a/src/qml/jsruntime/qv4script_p.h b/src/qml/jsruntime/qv4script_p.h index c94b1d1a4f..0d1bce6f06 100644 --- a/src/qml/jsruntime/qv4script_p.h +++ b/src/qml/jsruntime/qv4script_p.h @@ -65,9 +65,9 @@ class QQmlContextData; namespace QV4 { struct Q_QML_EXPORT Script { - Script(ExecutionContext *scope, QV4::Compiler::CompilationMode mode, const QString &sourceCode, const QString &source = QString(), int line = 1, int column = 0) + Script(ExecutionContext *scope, QV4::Compiler::ContextType mode, const QString &sourceCode, const QString &source = QString(), int line = 1, int column = 0) : sourceFile(source), line(line), column(column), sourceCode(sourceCode) - , context(scope), strictMode(false), inheritContext(false), parsed(false), compilationMode(mode) + , context(scope), strictMode(false), inheritContext(false), parsed(false), contextType(mode) , vmFunction(nullptr), parseAsBinding(false) {} Script(ExecutionEngine *engine, QmlContext *qml, const QString &sourceCode, const QString &source = QString(), int line = 1, int column = 0) : sourceFile(source), line(line), column(column), sourceCode(sourceCode) @@ -86,7 +86,7 @@ struct Q_QML_EXPORT Script { bool strictMode; bool inheritContext; bool parsed; - QV4::Compiler::CompilationMode compilationMode = QV4::Compiler::EvalCode; + QV4::Compiler::ContextType contextType = QV4::Compiler::ContextType::Eval; QV4::PersistentValue qmlContext; QQmlRefPointer<CompiledData::CompilationUnit> compilationUnit; Function *vmFunction; diff --git a/src/qml/types/qquickworkerscript.cpp b/src/qml/types/qquickworkerscript.cpp index 634e2da1c9..859f647ce4 100644 --- a/src/qml/types/qquickworkerscript.cpp +++ b/src/qml/types/qquickworkerscript.cpp @@ -244,9 +244,9 @@ void QQuickWorkerScriptEnginePrivate::WorkerEngine::init() QV4::Scope scope(m_v4Engine); QV4::ExecutionContext *globalContext = scope.engine->rootContext(); - onmessage.set(scope.engine, QV4::Script(globalContext, QV4::Compiler::GlobalCode, QString::fromUtf8(CALL_ONMESSAGE_SCRIPT)).run()); // do not use QStringLiteral here, MSVC2012 cannot apply this cleanly to the macro + onmessage.set(scope.engine, QV4::Script(globalContext, QV4::Compiler::ContextType::Global, QString::fromUtf8(CALL_ONMESSAGE_SCRIPT)).run()); // do not use QStringLiteral here, MSVC2012 cannot apply this cleanly to the macro Q_ASSERT(!scope.engine->hasException); - QV4::Script createsendscript(globalContext, QV4::Compiler::GlobalCode, QString::fromUtf8(SEND_MESSAGE_CREATE_SCRIPT)); // do not use QStringLiteral here, MSVC2012 cannot apply this cleanly to the macro + QV4::Script createsendscript(globalContext, QV4::Compiler::ContextType::Global, QString::fromUtf8(SEND_MESSAGE_CREATE_SCRIPT)); // do not use QStringLiteral here, MSVC2012 cannot apply this cleanly to the macro QV4::ScopedFunctionObject createsendconstructor(scope, createsendscript.run()); Q_ASSERT(!scope.engine->hasException); QV4::ScopedString name(scope, m_v4Engine->newString(QStringLiteral("sendMessage"))); diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp index 619780bcdd..52de892a66 100644 --- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp +++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp @@ -2357,7 +2357,7 @@ static inline bool evaluate_error(QV4::ExecutionEngine *v4, const QV4::Value &o, QLatin1String(source) + QLatin1String(" })"); QV4::Scope scope(v4); - QV4::Script program(QV4::ScopedContext(scope, scope.engine->rootContext()), QV4::Compiler::EvalCode, functionSource); + QV4::Script program(QV4::ScopedContext(scope, scope.engine->rootContext()), QV4::Compiler::ContextType::Eval, functionSource); program.inheritContext = true; QV4::ScopedFunctionObject function(scope, program.run()); @@ -2383,7 +2383,7 @@ static inline bool evaluate_value(QV4::ExecutionEngine *v4, const QV4::Value &o, QLatin1String(source) + QLatin1String(" })"); QV4::Scope scope(v4); - QV4::Script program(QV4::ScopedContext(scope, scope.engine->rootContext()), QV4::Compiler::EvalCode, functionSource); + QV4::Script program(QV4::ScopedContext(scope, scope.engine->rootContext()), QV4::Compiler::ContextType::Eval, functionSource); program.inheritContext = true; QV4::ScopedFunctionObject function(scope, program.run()); @@ -2414,7 +2414,7 @@ static inline QV4::ReturnedValue evaluate(QV4::ExecutionEngine *v4, const QV4::V QV4::Scope scope(v4); - QV4::Script program(QV4::ScopedContext(scope, scope.engine->rootContext()), QV4::Compiler::EvalCode, functionSource); + QV4::Script program(QV4::ScopedContext(scope, scope.engine->rootContext()), QV4::Compiler::ContextType::Eval, functionSource); program.inheritContext = true; QV4::ScopedFunctionObject function(scope, program.run()); diff --git a/tools/qmlcachegen/qmlcachegen.cpp b/tools/qmlcachegen/qmlcachegen.cpp index ff3a2d9cff..ed8b3c19a5 100644 --- a/tools/qmlcachegen/qmlcachegen.cpp +++ b/tools/qmlcachegen/qmlcachegen.cpp @@ -303,7 +303,7 @@ static bool compileJSFile(const QString &inputFileName, const QString &inputFile &irDocument.jsGenerator.stringTable, illegalNames); v4CodeGen.setUseFastLookups(false); // Disable lookups in non-standalone (aka QML) mode v4CodeGen.generateFromProgram(inputFileName, inputFileUrl, sourceCode, program, - &irDocument.jsModule, QV4::Compiler::GlobalCode); + &irDocument.jsModule, QV4::Compiler::ContextType::Global); QList<QQmlJS::DiagnosticMessage> jsErrors = v4CodeGen.errors(); if (!jsErrors.isEmpty()) { for (const QQmlJS::DiagnosticMessage &e: qAsConst(jsErrors)) { diff --git a/tools/qmljs/qmljs.cpp b/tools/qmljs/qmljs.cpp index ea014f3beb..ecc2cf44c5 100644 --- a/tools/qmljs/qmljs.cpp +++ b/tools/qmljs/qmljs.cpp @@ -120,7 +120,7 @@ int main(int argc, char *argv[]) const QString code = QString::fromUtf8(file.readAll()); file.close(); - script.reset(new QV4::Script(ctx, QV4::Compiler::GlobalCode, code, fn)); + script.reset(new QV4::Script(ctx, QV4::Compiler::ContextType::Global, code, fn)); script->parseAsBinding = runAsQml; script->parse(); } |