diff options
author | Lars Knoll <[email protected]> | 2013-09-12 15:27:01 +0200 |
---|---|---|
committer | The Qt Project <[email protected]> | 2013-09-18 13:13:49 +0200 |
commit | ce5dee24226f6abacaffe298092afe035d0822c4 (patch) | |
tree | 3b4dca1f091e47fcc0a235983853613f2f342726 /src/qml/jsapi/qjsengine.cpp | |
parent | 16f92ad85cf665d863ded5eeaaa7fc3f90820b3f (diff) |
Convert more methods to use ReturnedValue
Change Exception.value() and a few other places.
Change-Id: I53ce17e5656e260138b1ac7f6d467e4636c0a0b9
Reviewed-by: Simon Hausmann <[email protected]>
Diffstat (limited to 'src/qml/jsapi/qjsengine.cpp')
-rw-r--r-- | src/qml/jsapi/qjsengine.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/qml/jsapi/qjsengine.cpp b/src/qml/jsapi/qjsengine.cpp index d3c2c75ca7..7bc8b80396 100644 --- a/src/qml/jsapi/qjsengine.cpp +++ b/src/qml/jsapi/qjsengine.cpp @@ -260,18 +260,20 @@ void QJSEngine::collectGarbage() */ QJSValue QJSEngine::evaluate(const QString& program, const QString& fileName, int lineNumber) { + QV4::Scope scope(d->m_v4Engine); QV4::ExecutionContext *ctx = d->m_v4Engine->current; + QV4::ScopedValue result(scope); try { QV4::Script script(ctx, program, fileName, lineNumber); script.strictMode = ctx->strictMode; script.inheritContext = true; script.parse(); - QV4::Value result = script.run(); - return new QJSValuePrivate(d->m_v4Engine, result); + result = script.run(); } catch (QV4::Exception& ex) { ex.accept(ctx); - return new QJSValuePrivate(d->m_v4Engine, ex.value()); + result = ex.value(); } + return new QJSValuePrivate(d->m_v4Engine, result); } /*! |