Showing the changes to libraries/script-engine/src/v8/ScriptEngineV8.cpp (1 of 5 files). Show all
Unified · Split
| @@ -634,9 +634,13 @@ ScriptValue ScriptEngineV8::evaluateInClosure(const ScriptValue& _closure, · 633 unmodified lines | ||
| 634 | 634 | v8::Local<v8::Value> v8Result; |
| 635 | 635 | if (!maybeResult.ToLocal(&v8Result)) { |
| 636 | 636 | v8::String::Utf8Value utf8Value(getIsolate(), tryCatch.Exception()); |
| 637 | − QString errorMessage = QString(*utf8Value); | |
| 638 | − qCWarning(scriptengine_v8) << __FUNCTION__ << "---------- hasCaught:" << errorMessage; | |
| 639 | − qCWarning(scriptengine_v8) << __FUNCTION__ << "---------- tryCatch details:" << formatErrorMessageFromTryCatch(tryCatch); | |
| 637 | + QString errorMessage = QString(__FUNCTION__) + " hasCaught:" + QString(*utf8Value) + "\n" | |
| 638 | + + "tryCatch details:" + formatErrorMessageFromTryCatch(tryCatch); | |
| 639 | + if (_manager) { | |
| 640 | + _manager->scriptErrorMessage(errorMessage); | |
| 641 | + } else { | |
| 642 | + qWarning(scriptengine_v8) << errorMessage; | |
| 643 | + } | |
| 640 | 644 | } |
| 641 | 645 | |
| 642 | 646 | if (hasUncaughtException()) { |
| @@ -685,6 +689,12 @@ ScriptValue ScriptEngineV8::evaluate(const QString& sourceCode, const QString& f · 42 unmodified lines | ||
| 685 | 689 | { |
| 686 | 690 | v8::TryCatch tryCatch(getIsolate()); |
| 687 | 691 | if (!v8::Script::Compile(getContext(), v8::String::NewFromUtf8(getIsolate(), sourceCode.toStdString().c_str()).ToLocalChecked(), &scriptOrigin).ToLocal(&script)) { |
| 692 | + QString errorMessage(QString("Error while compiling script: \"") + fileName + QString("\" ") + formatErrorMessageFromTryCatch(tryCatch)); | |
| 693 | + if (_manager) { | |
| 694 | + _manager->scriptErrorMessage(errorMessage); | |
| 695 | + } else { | |
| 696 | + qDebug(scriptengine_v8) << errorMessage; | |
| 697 | + } | |
| 688 | 698 | setUncaughtException(tryCatch, "Error while compiling script"); |
| 689 | 699 | _evaluatingCounter--; |
| 690 | 700 | return nullValue(); |
| @@ -697,7 +707,12 @@ ScriptValue ScriptEngineV8::evaluate(const QString& sourceCode, const QString& f · 6 unmodified lines | ||
| 697 | 707 | Q_ASSERT(tryCatchRun.HasCaught()); |
| 698 | 708 | auto runError = tryCatchRun.Message(); |
| 699 | 709 | ScriptValue errorValue(new ScriptValueV8Wrapper(this, V8ScriptValue(this, runError->Get()))); |
| 700 | − qCDebug(scriptengine_v8) << "Running script: \"" << fileName << "\" " << formatErrorMessageFromTryCatch(tryCatchRun); | |
| 710 | + QString errorMessage(QString("Running script: \"") + fileName + QString("\" ") + formatErrorMessageFromTryCatch(tryCatchRun)); | |
| 711 | + if (_manager) { | |
| 712 | + _manager->scriptErrorMessage(errorMessage); | |
| 713 | + } else { | |
| 714 | + qDebug(scriptengine_v8) << errorMessage; | |
| 715 | + } | |
| 701 | 716 | setUncaughtException(tryCatchRun, "script evaluation"); |
| 702 | 717 | |
| 703 | 718 | _evaluatingCounter--; |
| @@ -749,7 +764,7 @@ void ScriptEngineV8::setUncaughtException(const v8::TryCatch &tryCatch, const QS · 45 unmodified lines | ||
| 749 | 764 | if (backtraceV8String->IsString()) { |
| 750 | 765 | if (v8::Local<v8::String>::Cast(backtraceV8String)->Length() > 0) { |
| 751 | 766 | v8::String::Utf8Value backtraceUtf8Value(getIsolate(), backtraceV8String); |
| 752 | − QString errorBacktrace = *backtraceUtf8Value; | |
| 767 | + QString errorBacktrace = QString(*backtraceUtf8Value).replace("\\n","\n"); | |
| 753 | 768 | ex->backtrace = errorBacktrace.split("\n"); |
| 754 | 769 | |
| 755 | 770 | } |
| @@ -790,14 +805,14 @@ QString ScriptEngineV8::formatErrorMessageFromTryCatch(v8::TryCatch &tryCatch) { · 34 unmodified lines | ||
| 790 | 805 | if (backtraceV8String->IsString()) { |
| 791 | 806 | if (v8::Local<v8::String>::Cast(backtraceV8String)->Length() > 0) { |
| 792 | 807 | v8::String::Utf8Value backtraceUtf8Value(getIsolate(), backtraceV8String); |
| 793 | − errorBacktrace = *backtraceUtf8Value; | |
| 808 | + errorBacktrace = QString(*backtraceUtf8Value).replace("\\n","\n"); | |
| 794 | 809 | } |
| 795 | 810 | } |
| 796 | 811 | } |
| 797 | 812 | QTextStream resultStream(&result); |
| 798 | 813 | resultStream << "failed on line " << errorLineNumber << " column " << errorColumnNumber << " with message: \"" << errorMessage <<"\" backtrace: " << errorBacktrace; |
| 799 | 814 | } |
| 800 | − return result; | |
| 815 | + return result.replace("\\n", "\n"); | |
| 801 | 816 | } |
| 802 | 817 | |
| 803 | 818 | v8::Local<v8::ObjectTemplate> ScriptEngineV8::getObjectProxyTemplate() { |