summaryrefslogtreecommitdiff
path: root/src/qml/compiler/qv4isel_p.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2013-09-01 13:11:00 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-05 20:26:42 +0200
commitc5694ba5739527c016893079ef659fa8d19161e8 (patch)
tree2db13e88045d01adde48cde19eadca6cd0bdbb79 /src/qml/compiler/qv4isel_p.cpp
parent87ccf530772caa5d388d97b556183fb20930ef38 (diff)
downloadqtdeclarative-c5694ba5739527c016893079ef659fa8d19161e8.tar.gz
Make it possible to supply an external JS unit generator to the isel
This is needed for QML unit generation, when we share the JS generator for QML types/strings and JS code. Change-Id: I50f0c1fa6721d6e3e59417c6c256c82aec124e8f Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/compiler/qv4isel_p.cpp')
-rw-r--r--src/qml/compiler/qv4isel_p.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/qml/compiler/qv4isel_p.cpp b/src/qml/compiler/qv4isel_p.cpp
index 66f8ca5327..4d475a1bd0 100644
--- a/src/qml/compiler/qv4isel_p.cpp
+++ b/src/qml/compiler/qv4isel_p.cpp
@@ -58,11 +58,16 @@ QTextStream qout(stderr, QIODevice::WriteOnly);
using namespace QQmlJS;
using namespace QQmlJS::V4IR;
-EvalInstructionSelection::EvalInstructionSelection(QV4::ExecutableAllocator *execAllocator, Module *module)
- : QV4::Compiler::JSUnitGenerator(module)
- , useFastLookups(true)
+EvalInstructionSelection::EvalInstructionSelection(QV4::ExecutableAllocator *execAllocator, Module *module, QV4::Compiler::JSUnitGenerator *jsGenerator)
+ : useFastLookups(true)
, executableAllocator(execAllocator)
+ , irModule(module)
{
+ if (!jsGenerator) {
+ jsGenerator = new QV4::Compiler::JSUnitGenerator(module);
+ ownJSGenerator.reset(jsGenerator);
+ }
+ this->jsGenerator = jsGenerator;
assert(execAllocator);
assert(module);
}