diff options
-rw-r--r-- | l/src/devtools-protocol.lisp | 4 | ||||
-rw-r--r-- | l/src/main.lisp | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/l/src/devtools-protocol.lisp b/l/src/devtools-protocol.lisp index 8b41330..2d67033 100644 --- a/l/src/devtools-protocol.lisp +++ b/l/src/devtools-protocol.lisp @@ -34,6 +34,10 @@ "Returns true if `message` is a response to `Runtime.evaluate`." (jsown:keyp (json-obj-get message "result") "sessionId")) +(defun runtime-evaluate-exception-p (message) + "Returns true if `message` describes a runtime exception" + (jsown:keyp (json-obj-get message "result") "exceptionDetails")) + (defun parse-get-targets-response (response) "Parses a list of target info objects from the response to `Target.getTargets`." (let* ((result (json-obj-get response "result")) diff --git a/l/src/main.lisp b/l/src/main.lisp index 9eaa8e3..61a48be 100644 --- a/l/src/main.lisp +++ b/l/src/main.lisp @@ -78,7 +78,7 @@ "sessionId"))) ;; Failed to reload tab. - (when (jsown:keyp (json-obj-get response "result") "exceptionDetails") + (when (runtime-evaluate-exception-p response) ;; `reload-tab` adds an extra increment to the wait group. If the call ;; fails, we only receive one message instead of two, so the wait group ;; must be decremented to match. |