History

Fix script error logging

ksuprynowicz committed 3 years ago

Commit 8dc776a1 parent 3164e715 files · +44 −14Browse files

Showing the changes to libraries/script-engine/src/v8/ScriptValueV8Wrapper.cpp (1 of 5 files). Show all

Unified · Split

libraries/script-engine/src/v8/ScriptValueV8Wrapper.cpp+12−3
@@ -102,15 +102,24 @@ ScriptValue ScriptValueV8Wrapper::call(const ScriptValue& thisObject, const Scri · 101 unmodified lines
102102 auto maybeResult = v8Function->Call(_engine->getContext(), recv, args.length(), v8Args);
103103 lock.unlock();
104104 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+ }
106111 }
107112 v8::Local<v8::Value> result;
108113 Q_ASSERT(_engine == _value.getEngine());
109114 if (maybeResult.ToLocal(&result)) {
110115 return ScriptValue(new ScriptValueV8Wrapper(_engine, V8ScriptValue(_engine, result)));
111116 } 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+ }
114123 return _engine->undefinedValue();
115124 }
116125 }