From 1ad1aee11fe684763cd4618b9b08c52fcc6a38f6 Mon Sep 17 00:00:00 2001 From: ksuprynowicz Date: Mon, 20 Feb 2023 18:14:00 +0100 Subject: [PATCH] Minor scripting-related fixes --- interface/src/Application.cpp | 2 +- libraries/script-engine/src/ScriptManager.cpp | 6 ++++-- libraries/script-engine/src/v8/ScriptEngineV8.cpp | 2 +- scripts/system/notifications.js | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 2ee62087cd..2112edae2b 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -7570,7 +7570,7 @@ void Application::registerScriptEngineWithApplicationServices(const ScriptManage scriptEngine->registerGlobalObject("UserActivityLogger", DependencyManager::get().data()); scriptEngine->registerGlobalObject("Users", DependencyManager::get().data()); - scriptEngine->registerGlobalObject("GooglePoly", DependencyManager::get().data()); + //scriptEngine->registerGlobalObject("GooglePoly", DependencyManager::get().data()); if (auto steamClient = PluginManager::getInstance()->getSteamClientPlugin()) { scriptEngine->registerGlobalObject("Steam", new SteamScriptingInterface(scriptManager.get(), steamClient.get())); diff --git a/libraries/script-engine/src/ScriptManager.cpp b/libraries/script-engine/src/ScriptManager.cpp index b359dc5e3a..5ae3632e04 100644 --- a/libraries/script-engine/src/ScriptManager.cpp +++ b/libraries/script-engine/src/ScriptManager.cpp @@ -432,17 +432,18 @@ void ScriptManager::waitTillDoneRunning(bool shutdown) { while (workerThread->isRunning()) { // If the final evaluation takes too long, then tell the script engine to stop running auto elapsedUsecs = usecTimestampNow() - startedWaiting; + // V8TODO: temporarily increased script timeout. Maybe use different timeouts for release and unoptimized debug? static const auto MAX_SCRIPT_EVALUATION_TIME = USECS_PER_SECOND; if (elapsedUsecs > MAX_SCRIPT_EVALUATION_TIME) { workerThread->quit(); if (_engine->isEvaluating()) { - qCWarning(scriptengine) << "Script Engine has been running too long, aborting:" << getFilename(); + qCWarning(scriptengine) << "Script Engine has been running too long (evaluation), aborting:" << getFilename(); _engine->abortEvaluation(); } else { auto context = _engine->currentContext(); if (context) { - qCWarning(scriptengine) << "Script Engine has been running too long, throwing:" << getFilename(); + qCWarning(scriptengine) << "Script Engine has been running too long (event loop), throwing:" << getFilename(); context->throwError("Timed out during shutdown"); } } @@ -451,6 +452,7 @@ void ScriptManager::waitTillDoneRunning(bool shutdown) { // flooding it with aborts/exceptions will persist it longer static const auto MAX_SCRIPT_QUITTING_TIME = 0.5 * MSECS_PER_SECOND; if (!workerThread->wait(MAX_SCRIPT_QUITTING_TIME)) { + Q_ASSERT(false); workerThread->terminate(); } } diff --git a/libraries/script-engine/src/v8/ScriptEngineV8.cpp b/libraries/script-engine/src/v8/ScriptEngineV8.cpp index d7458d8655..f9755ec8af 100644 --- a/libraries/script-engine/src/v8/ScriptEngineV8.cpp +++ b/libraries/script-engine/src/v8/ScriptEngineV8.cpp @@ -408,7 +408,7 @@ ScriptEngineV8::ScriptEngineV8(ScriptManager* scriptManager) : // --jitless - might improve debugging performance due to no JIT? // --assert-types - v8::V8::SetFlagsFromString("--stack-size=256"); + v8::V8::SetFlagsFromString("--stack-size=256 --verify-heap"); //v8::V8::SetFlagsFromString("--stack-size=256 --single-threaded"); v8::Platform* platform = getV8Platform(); v8::V8::InitializePlatform(platform); diff --git a/scripts/system/notifications.js b/scripts/system/notifications.js index 98198c8d3f..342a8aba8a 100644 --- a/scripts/system/notifications.js +++ b/scripts/system/notifications.js @@ -87,7 +87,7 @@ if (remainingTime < FADE_OUT_DURATION) { alpha = NOTIFICATION_ALPHA * (remainingTime/FADE_OUT_DURATION); } - var properties, count, extraline, breaks, height; + var properties, count, extraLine, breaks, height; var breakPoint = MAX_LINE_LENGTH + 1; var level = overlayLocationY; var entityLevel = 0;