aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlvme.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qml/qqmlvme.cpp')
-rw-r--r--src/qml/qml/qqmlvme.cpp32
1 files changed, 3 insertions, 29 deletions
diff --git a/src/qml/qml/qqmlvme.cpp b/src/qml/qml/qqmlvme.cpp
index f256f3a1ce..5bf679d7a3 100644
--- a/src/qml/qml/qqmlvme.cpp
+++ b/src/qml/qml/qqmlvme.cpp
@@ -1088,18 +1088,7 @@ void QQmlScriptData::initialize(QQmlEngine *engine)
QV8Engine *v8engine = ep->v8engine();
QV4::ExecutionEngine *v4 = QV8Engine::getV4(v8engine);
- // If compilation throws an error, a surrounding catch will record it.
- // pass 0 as the QML object, we set it later before calling run()
- QV4::Script *program = new QV4::Script(v4, QV4::ObjectRef::null(), m_programSource, urlString, 1);
- try {
- program->parse();
- } catch (QV4::Exception &) {
- delete program;
- throw;
- }
-
- m_program = program;
- m_programSource.clear(); // We don't need this anymore
+ m_program = new QV4::Script(v4, QV4::ObjectRef::null(), m_precompiledScript);
addToEngine(engine);
@@ -1119,11 +1108,6 @@ QV4::PersistentValue QQmlVME::run(QQmlContextData *parentCtxt, QQmlScriptData *s
QV4::ExecutionEngine *v4 = QV8Engine::getV4(parentCtxt->engine);
QV4::Scope scope(v4);
- if (script->hasError()) {
- ep->warning(script->error());
- return rv;
- }
-
bool shared = script->pragmas & QQmlScript::Object::ScriptBlock::Shared;
QQmlContextData *effectiveCtxt = parentCtxt;
@@ -1164,18 +1148,8 @@ QV4::PersistentValue QQmlVME::run(QQmlContextData *parentCtxt, QQmlScriptData *s
ctxt->importedScripts << run(ctxt, script->scripts.at(ii)->scriptData());
}
- if (!script->isInitialized()) {
- QV4::ExecutionContext *ctx = QV8Engine::getV4(parentCtxt->engine)->current;
- try {
- script->initialize(parentCtxt->engine);
- } catch (QV4::Exception &e) {
- e.accept(ctx);
- QQmlError error;
- QQmlExpressionPrivate::exceptionToError(e, error);
- if (error.isValid())
- ep->warning(error);
- }
- }
+ if (!script->isInitialized())
+ script->initialize(parentCtxt->engine);
if (!script->m_program) {
if (shared)