Showing the changes to libraries/script-engine/src/v8/ScriptValueV8Wrapper.cpp (1 of 5 files). Show all
Unified · Split
| @@ -102,15 +102,24 @@ ScriptValue ScriptValueV8Wrapper::call(const ScriptValue& thisObject, const Scri · 101 unmodified lines | ||
| 102 | 102 | auto maybeResult = v8Function->Call(_engine->getContext(), recv, args.length(), v8Args); |
| 103 | 103 | lock.unlock(); |
| 104 | 104 | if (tryCatch.HasCaught()) { |
| 105 | − qCDebug(scriptengine_v8) << "Function call failed: \"" << _engine->formatErrorMessageFromTryCatch(tryCatch); | |
| 105 | + QString errorMessage(QString("Function call failed: \"") + _engine->formatErrorMessageFromTryCatch(tryCatch)); | |
| 106 | + if (_engine->_manager) { | |
| 107 | + _engine->_manager->scriptErrorMessage(errorMessage); | |
| 108 | + } else { | |
| 109 | + qDebug(scriptengine_v8) << errorMessage; | |
| 110 | + } | |
| 106 | 111 | } |
| 107 | 112 | v8::Local<v8::Value> result; |
| 108 | 113 | Q_ASSERT(_engine == _value.getEngine()); |
| 109 | 114 | if (maybeResult.ToLocal(&result)) { |
| 110 | 115 | return ScriptValue(new ScriptValueV8Wrapper(_engine, V8ScriptValue(_engine, result))); |
| 111 | 116 | } else { |
| 112 | − //V8TODO Add more details | |
| 113 | − qCWarning(scriptengine_v8) << "JS function call failed"; | |
| 117 | + QString errorMessage("JS function call failed: " + _engine->currentContext()->backtrace().join("\n")); | |
| 118 | + if (_engine->_manager) { | |
| 119 | + _engine->_manager->scriptErrorMessage(errorMessage); | |
| 120 | + } else { | |
| 121 | + qDebug(scriptengine_v8) << errorMessage; | |
| 122 | + } | |
| 114 | 123 | return _engine->undefinedValue(); |
| 115 | 124 | } |
| 116 | 125 | } |