| Index: third_party/WebKit/Source/devtools/front_end/components/ExecutionContextSelector.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/components/ExecutionContextSelector.js b/third_party/WebKit/Source/devtools/front_end/components/ExecutionContextSelector.js
|
| index 4e3676b025c963e8e50849af1648690e437e396e..0cf6dd826ca477969127d734c424c12c40946823 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/components/ExecutionContextSelector.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/components/ExecutionContextSelector.js
|
| @@ -202,13 +202,24 @@ WebInspector.ExecutionContextSelector.completionsForTextPromptInCurrentContext =
|
| }
|
|
|
| // Pass less stop characters to rangeOfWord so the range will be a more complete expression.
|
| - var expressionRange = wordRange.startContainer.rangeOfWord(wordRange.startOffset, " =:({;,!+-*/&|^<>", proxyElement, "backward");
|
| + var expressionRange = wordRange.startContainer.rangeOfWord(wordRange.startOffset, " =:({;,!+-*/&|^<>`", proxyElement, "backward");
|
| var expressionString = expressionRange.toString();
|
|
|
| - // The "[" is also a stop character, except when it's the last character of the expression.
|
| - var pos = expressionString.lastIndexOf("[", expressionString.length - 2);
|
| - if (pos !== -1)
|
| - expressionString = expressionString.substr(pos + 1);
|
| + var bracketCount = 0;
|
| + var index = expressionString.length - 1;
|
| + while (index >= 0) {
|
| + var character = expressionString.charAt(index);
|
| + if (character === "]")
|
| + bracketCount++;
|
| + // Allow an open bracket at the end for property completion.
|
| + if (character === "[" && index < expressionString.length - 1) {
|
| + bracketCount--;
|
| + if (bracketCount < 0)
|
| + break;
|
| + }
|
| + index--;
|
| + }
|
| + expressionString = expressionString.substring(index + 1);
|
|
|
| var prefix = wordRange.toString();
|
| executionContext.completionsForExpression(expressionString, prefix, force, completionsReadyCallback);
|
|
|