aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qqmlcodegenerator.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <[email protected]>2013-10-24 10:38:29 +0200
committerThe Qt Project <[email protected]>2013-10-29 23:05:33 +0100
commit1fc951da6aa0bff05af37b20744aba810a2d2988 (patch)
treece83346780586278bc5ba91370146a034aeebeac /src/qml/compiler/qqmlcodegenerator.cpp
parent4d33a38f4b11cea2123b818487ff55f0988767bc (diff)
Cleanup QML specific JS code generator
Move parameters global to the entire QML file to the constructor, pass component/context specific parameters to the generate function. Change-Id: I6c3ab41b3bab19b066bbe20f971c5cafaeb70b98 Reviewed-by: Lars Knoll <[email protected]>
Diffstat (limited to 'src/qml/compiler/qqmlcodegenerator.cpp')
-rw-r--r--src/qml/compiler/qqmlcodegenerator.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/qml/compiler/qqmlcodegenerator.cpp b/src/qml/compiler/qqmlcodegenerator.cpp
index cbf58599ac..fc485e82f2 100644
--- a/src/qml/compiler/qqmlcodegenerator.cpp
+++ b/src/qml/compiler/qqmlcodegenerator.cpp
@@ -1198,22 +1198,23 @@ int QmlUnitGenerator::getStringId(const QString &str) const
return jsUnitGenerator->getStringId(str);
}
-QVector<int> JSCodeGen::generateJSCodeForFunctionsAndBindings(const QString &fileName, ParsedQML *output)
+JSCodeGen::JSCodeGen(const QString &fileName, const QString &sourceCode, V4IR::Module *jsModule, Engine *jsEngine, AST::UiProgram *qmlRoot)
+ : QQmlJS::Codegen(/*strict mode*/false)
+ , sourceCode(sourceCode)
+ , jsEngine(jsEngine)
+ , qmlRoot(qmlRoot)
{
- return generateJSCodeForFunctionsAndBindings(fileName, output->code, &output->jsModule, &output->jsParserEngine,
- output->program, /* ### */output->program, output->functions);
+ _module = jsModule;
+ _module->setFileName(fileName);
}
-QVector<int> JSCodeGen::generateJSCodeForFunctionsAndBindings(const QString &fileName, const QString &sourceCode, V4IR::Module *jsModule,
- QQmlJS::Engine *jsEngine, AST::UiProgram *qmlRoot, AST::Node *contextRoot,
+QVector<int> JSCodeGen::generateJSCodeForFunctionsAndBindings(AST::Node *contextRoot,
const QList<AST::Node*> &functions,
const ObjectIdMapping &objectIds)
{
this->idObjects = objectIds;
QVector<int> runtimeFunctionIndices(functions.size());
- _module = jsModule;
- _module->setFileName(fileName);
ScanFunctions scan(this, sourceCode, GlobalCode);
scan.enterEnvironment(0, QmlBinding);