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
102 auto maybeResult = v8Function->Call(_engine->getContext(), recv, args.length(), v8Args);102 auto maybeResult = v8Function->Call(_engine->getContext(), recv, args.length(), v8Args);
103 lock.unlock();103 lock.unlock();
104 if (tryCatch.HasCaught()) {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 v8::Local<v8::Value> result;112 v8::Local<v8::Value> result;
108 Q_ASSERT(_engine == _value.getEngine());113 Q_ASSERT(_engine == _value.getEngine());
109 if (maybeResult.ToLocal(&result)) {114 if (maybeResult.ToLocal(&result)) {
110 return ScriptValue(new ScriptValueV8Wrapper(_engine, V8ScriptValue(_engine, result)));115 return ScriptValue(new ScriptValueV8Wrapper(_engine, V8ScriptValue(_engine, result)));
111 } else {116 } else {
112 //V8TODO Add more details117 QString errorMessage("JS function call failed: " + _engine->currentContext()->backtrace().join("\n"));
113 qCWarning(scriptengine_v8) << "JS function call failed";118 if (_engine->_manager) {
119 _engine->_manager->scriptErrorMessage(errorMessage);
120 } else {
121 qDebug(scriptengine_v8) << errorMessage;
122 }
114 return _engine->undefinedValue();123 return _engine->undefinedValue();
115 }124 }
116}125}