diff --git a/src/engine/runtime.js b/src/engine/runtime.js
index <HASH>..<HASH> 100644
--- a/src/engine/runtime.js
+++ b/src/engine/runtime.js
@@ -1018,6 +1018,19 @@ class Runtime extends EventEmitter {
     }
 
     /**
+     * Return whether a thread is waiting for more information or done.
+     * @param {?Thread} thread Thread object to check.
+     * @return {boolean} True if the thread is waiting
+     */
+    isWaitingThread (thread) {
+        return (
+            thread.status === Thread.STATUS_PROMISE_WAIT ||
+            thread.status === Thread.STATUS_YIELD_TICK ||
+            !this.isActiveThread(thread)
+        );
+    }
+
+    /**
      * Toggle a script.
      * @param {!string} topBlockId ID of block that starts the script.
      * @param {?object} opts optional arguments to toggle script
add Runtime.isWaitingThread

Add a Runtime Thread helper to check if a thread is in a state where it
will not change at least until next frame. This includes any state
where the thread is done, as that will not change either.