From 32f6f55c069aaf33db77f8b00aee8147ff98b1a9 Mon Sep 17 00:00:00 2001 From: Michael Liao Date: Mon, 23 Mar 2020 19:58:55 -0700 Subject: [PATCH] [JavaScriptAutocomplete]: Fixing unhandled exception when compileScript returns null Issue: - JavaScriptAutocomplete.isExpressionComplete calls RuntimeModel.compileScript - When RuntimeModel.js hits an InspectorBackend.ProtocolError, it returns null - isExpressionComplete doesn't handle the null case and checks result.exceptionDetails causing an unhandled exception isExpressionComplete: https://cs.chromium.org/chromium/src/third_party/devtools-frontend/src/front_end/object_ui/JavaScriptAutocomplete.js?type=cs&q=if+(!result.exceptionDetails)+-f:out+file:JavaScriptAutocomplete.js&sq=package:chromium&g=0&l=676 compileScript: https://cs.chromium.org/chromium/src/third_party/devtools-frontend/src/front_end/sdk/RuntimeModel.js?type=cs&q=RuntimeModel.compileScript+-f:out&sq=package:chromium&g=0&l=265 Changes: - Add null case to isExpressionComplete Change-Id: I5c54310c465f588a00f5678da9fc625629c532c6 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2111359 Commit-Queue: Michael Liao Reviewed-by: Robert Paveza --- front_end/object_ui/JavaScriptAutocomplete.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/front_end/object_ui/JavaScriptAutocomplete.js b/front_end/object_ui/JavaScriptAutocomplete.js index 7c94188250..c4509c4fba 100644 --- a/front_end/object_ui/JavaScriptAutocomplete.js +++ b/front_end/object_ui/JavaScriptAutocomplete.js @@ -674,7 +674,7 @@ export class JavaScriptAutocomplete { } const result = await currentExecutionContext.runtimeModel.compileScript(expression, '', false, currentExecutionContext.id); - if (!result.exceptionDetails) { + if (!result || !result.exceptionDetails) { return true; } const description = result.exceptionDetails.exception.description;