diff options
author | Fabian Kosmale <[email protected]> | 2019-09-20 16:38:30 +0200 |
---|---|---|
committer | Fabian Kosmale <[email protected]> | 2019-09-23 11:00:55 +0200 |
commit | 36be27265d61c76b25417a25e482030e30ff380f (patch) | |
tree | 8445ce374857bb76bcc2c28c524b5cf98bf09e06 /src/qml/jsruntime/qv4promiseobject.cpp | |
parent | 5e96f43fe03e16d7ca68f0dd888c4518a98694f2 (diff) |
QMLJS: Fix exception handling in promises
If an exception is thrown inside a promise's resolve or reject
handler, the promise needs to resolve into a rejected state with the
exceptions value. The value was previously not set.
Fixes: QTBUG-78554
Change-Id: Ic22faa6ef1e519e4cae6732c69bb14f7053d13da
Reviewed-by: Ulf Hermann <[email protected]>
Reviewed-by: Qt CI Bot <[email protected]>
Diffstat (limited to 'src/qml/jsruntime/qv4promiseobject.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4promiseobject.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/qml/jsruntime/qv4promiseobject.cpp b/src/qml/jsruntime/qv4promiseobject.cpp index 40a0dfaa57..851fee7bd8 100644 --- a/src/qml/jsruntime/qv4promiseobject.cpp +++ b/src/qml/jsruntime/qv4promiseobject.cpp @@ -163,6 +163,7 @@ void ReactionHandler::executeReaction(ReactionEvent *event) ScopedFunctionObject reaction(scope); if (scope.hasException()) { reaction = capability->d()->reject.as<QV4::FunctionObject>(); + result = scope.engine->catchException(); } else { reaction = capability->d()->resolve.as<QV4::FunctionObject>(); } |