diff options
-rw-r--r-- | src/script/api/qscriptvalue.cpp | 4 | ||||
-rw-r--r-- | tests/auto/qscriptvalue/tst_qscriptvalue.cpp | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/script/api/qscriptvalue.cpp b/src/script/api/qscriptvalue.cpp index 2084ddb..c3c7c18 100644 --- a/src/script/api/qscriptvalue.cpp +++ b/src/script/api/qscriptvalue.cpp @@ -2131,8 +2131,10 @@ QScriptValue QScriptValue::construct(const QScriptValueList &args) JSC::ConstructData constructData; JSC::ConstructType constructType = callee.getConstructData(constructData); JSC::JSObject *result = JSC::construct(exec, callee, constructType, constructData, jscArgs); - if (exec->hadException()) + if (exec->hadException()) { eng_p->uncaughtException = exec->exception(); + result = JSC::asObject(exec->exception()); + } return eng_p->scriptValueFromJSCValue(result); } diff --git a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp index 2551e6c..2eff71a 100644 --- a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp +++ b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp @@ -2593,10 +2593,8 @@ void tst_QScriptValue::construct() QScriptValue fun = eng.evaluate("(function() { throw new Error('foo'); })"); QCOMPARE(fun.isFunction(), true); QScriptValue ret = fun.construct(); - QEXPECT_FAIL("", "Returns null if a constructor throws an error", Continue); QCOMPARE(ret.isError(), true); QCOMPARE(eng.hasUncaughtException(), true); - QEXPECT_FAIL("", "Returns null if a constructor throws an error", Continue); QVERIFY(ret.strictlyEquals(eng.uncaughtException())); } |