aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/v8/qv8include.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qml/v8/qv8include.cpp')
-rw-r--r--src/qml/qml/v8/qv8include.cpp41
1 files changed, 17 insertions, 24 deletions
diff --git a/src/qml/qml/v8/qv8include.cpp b/src/qml/qml/v8/qv8include.cpp
index 5c24a96847..90c1f5928c 100644
--- a/src/qml/qml/v8/qv8include.cpp
+++ b/src/qml/qml/v8/qv8include.cpp
@@ -144,21 +144,18 @@ void QV8Include::finished()
importContext->isPragmaLibraryContext = m_context->isPragmaLibraryContext;
importContext->setParent(m_context, true);
- v8::TryCatch try_catch;
-
v8::Handle<v8::Script> script = m_engine->qmlModeCompile(code, m_url.toString());
- if (!try_catch.HasCaught()) {
- // ### Only used for debugging info
- //m_engine->contextWrapper()->addSubContext(m_qmlglobal.value(), script, importContext);
+ QV4::ExecutionContext *ctx = QV8Engine::getV4(m_engine)->current;
+ // ### Only used for debugging info
+ //m_engine->contextWrapper()->addSubContext(m_qmlglobal.value(), script, importContext);
+ try {
script->Run(m_qmlglobal.value());
- }
-
- if (try_catch.HasCaught()) {
- v8::Handle<v8::Object>(m_resultObject)->Set(v8::String::New("status"), v8::Integer::New(Exception));
- v8::Handle<v8::Object>(m_resultObject)->Set(v8::String::New("exception"), try_catch.Exception());
- } else {
v8::Handle<v8::Object>(m_resultObject)->Set(v8::String::New("status"), v8::Integer::New(Ok));
+ } catch (QV4::Exception &e) {
+ e.accept(ctx);
+ v8::Handle<v8::Object>(m_resultObject)->Set(v8::String::New("status"), v8::Integer::New(Exception));
+ v8::Handle<v8::Object>(m_resultObject)->Set(v8::String::New("exception"), e.value());
}
} else {
v8::Handle<v8::Object>(m_resultObject)->Set(v8::String::New("status"), v8::Integer::New(NetworkError));
@@ -216,24 +213,20 @@ QV4::Value QV8Include::include(const v8::Arguments &args)
importContext->url = url;
importContext->setParent(context, true);
- v8::TryCatch try_catch;
-
v8::Handle<v8::Script> script = engine->qmlModeCompile(code, url.toString());
- if (!try_catch.HasCaught()) {
- v8::Handle<v8::Object> qmlglobal = QV4::Value::fromObject(args.GetIsolate()->GetEngine()->qmlContextObject());
- // ### Only used for debugging info
- // engine->contextWrapper()->addSubContext(qmlglobal, script, importContext);
+ v8::Handle<v8::Object> qmlglobal = QV4::Value::fromObject(args.GetIsolate()->GetEngine()->qmlContextObject());
+ // ### Only used for debugging info
+ // engine->contextWrapper()->addSubContext(qmlglobal, script, importContext);
+ QV4::ExecutionContext *ctx = QV8Engine::getV4(engine)->current;
+ try {
script->Run(qmlglobal);
- }
-
- if (try_catch.HasCaught()) {
- result = resultValue(Exception);
- result->Set(v8::String::New("exception"), try_catch.Exception());
- } else {
result = resultValue(Ok);
+ } catch (QV4::Exception &e) {
+ e.accept(ctx);
+ result = resultValue(Exception);
+ result->Set(v8::String::New("exception"), e.value());
}
-
} else {
result = resultValue(NetworkError);
}