#include "ScriptRuntime.h" #include #include #include #include #include #include #include "ScriptBridges.h" #include "ScriptCache.h" #include "ScriptingConfig.h" namespace Scripting { namespace { // Конверсия QJSValue → строка-результат скрипта. // null/undefined → пустая строка (успех). // "" → пустая строка (успех). // строка → текст бизнес-ошибки. // число/булево/объект → toString() как diagnostic (рассматриваем как ошибку). QString jsValueToResultString(const QJSValue &v) { if (v.isUndefined() || v.isNull()) return QString(); if (v.isString()) return v.toString(); return v.toString(); } QString locationOf(const QJSValue &err) { const int line = err.property("lineNumber").toInt(); const QString file = err.property("fileName").toString(); if (line > 0 || !file.isEmpty()) { return QStringLiteral(" at %1:%2").arg(file.isEmpty() ? QStringLiteral("