History

Merge pull request #32 from huffman/feat/entity-server-script-property

PR FIxes

Clément Brisset committed 9 years ago

Commit 95f07f32 parents a1ea57c ad704315 files · +45 −42Browse files

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

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+8−6
@@ -147,19 +147,19 @@ static bool hasCorrectSyntax(const QScriptProgram& program, ScriptEngine* report · 146 unmodified lines
147147 return true;
148148 }
149149
150−static bool hadUncaughtExceptions(QScriptEngine& engine, const QString& fileName, ScriptEngine* reportingEngine) {
150+static bool hadUncaughtExceptions(QScriptEngine& engine, const QString& fileName, ScriptEngine* reportingEngine, QString& exceptionMessage = QString()) {
151151 if (engine.hasUncaughtException()) {
152152 const auto backtrace = engine.uncaughtExceptionBacktrace();
153153 const auto exception = engine.uncaughtException().toString();
154154 const auto line = QString::number(engine.uncaughtExceptionLineNumber());
155155 engine.clearExceptions();
156156
157− auto message = QString(SCRIPT_EXCEPTION_FORMAT).arg(exception, fileName, line);
157+ exceptionMessage = QString(SCRIPT_EXCEPTION_FORMAT).arg(exception, fileName, line);
158158 if (!backtrace.empty()) {
159159 static const auto lineSeparator = "\n ";
160− message += QString("\n[Backtrace]%1%2").arg(lineSeparator, backtrace.join(lineSeparator));
160+ exceptionMessage += QString("\n[Backtrace]%1%2").arg(lineSeparator, backtrace.join(lineSeparator));
161161 }
162− reportingEngine->scriptErrorMessage(qPrintable(message));
162+ reportingEngine->scriptErrorMessage(qPrintable(exceptionMessage));
163163 return true;
164164 }
165165 return false;
@@ -1469,9 +1469,11 @@ void ScriptEngine::entityScriptContentAvailable(const EntityItemID& entityID, co · 1303 unmodified lines
14691469 });
14701470 testConstructor = sandbox.evaluate(program);
14711471 }
1472− if (hadUncaughtExceptions(sandbox, program.fileName(), this)) {
1472+
1473+ QString exceptionMessage;
1474+ if (hadUncaughtExceptions(sandbox, program.fileName(), this, exceptionMessage)) {
14731475 newDetails.status = ERROR_RUNNING_SCRIPT;
1474− newDetails.errorInfo = "Exception";
1476+ newDetails.errorInfo = exceptionMessage;
14751477 _entityScripts[entityID] = newDetails;
14761478
14771479 return;