diff options
Diffstat (limited to 'src/qml/qml/qqmlvme.cpp')
-rw-r--r-- | src/qml/qml/qqmlvme.cpp | 32 |
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) |