From 1ad1aee11fe684763cd4618b9b08c52fcc6a38f6 Mon Sep 17 00:00:00 2001
From: ksuprynowicz <ksuprynowicz@post.pl>
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<UserActivityLoggerScriptingInterface>().data());
     scriptEngine->registerGlobalObject("Users", DependencyManager::get<UsersScriptingInterface>().data());
 
-    scriptEngine->registerGlobalObject("GooglePoly", DependencyManager::get<GooglePolyScriptingInterface>().data());
+    //scriptEngine->registerGlobalObject("GooglePoly", DependencyManager::get<GooglePolyScriptingInterface>().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;