[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 <michael.liao@microsoft.com>
Reviewed-by: Robert Paveza <Rob.Paveza@microsoft.com>
This commit is contained in:
Michael Liao
2020-03-24 03:03:11 +00:00
committed by Commit Bot
parent 0769db92d4
commit 32f6f55c06
@@ -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;