Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/object_ui/JavaScriptAutocomplete.js

Issue 2729743002: [DevTools] Move 'this' evaluation from ExecutionContext to autocomplete. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 ObjectUI.JavaScriptAutocomplete = {}; 5 ObjectUI.JavaScriptAutocomplete = {};
6 6
7 /** @typedef {{title:(string|undefined), items:Array<string>}} */ 7 /** @typedef {{title:(string|undefined), items:Array<string>}} */
8 ObjectUI.JavaScriptAutocomplete.CompletionGroup; 8 ObjectUI.JavaScriptAutocomplete.CompletionGroup;
9 9
10 /** 10 /**
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 */ 63 */
64 ObjectUI.JavaScriptAutocomplete._mapCompletions = function(text, query) { 64 ObjectUI.JavaScriptAutocomplete._mapCompletions = function(text, query) {
65 var mapMatch = text.match(/\.\s*(get|set|delete)\s*\(\s*$/); 65 var mapMatch = text.match(/\.\s*(get|set|delete)\s*\(\s*$/);
66 var executionContext = UI.context.flavor(SDK.ExecutionContext); 66 var executionContext = UI.context.flavor(SDK.ExecutionContext);
67 if (!executionContext || !mapMatch) 67 if (!executionContext || !mapMatch)
68 return Promise.resolve([]); 68 return Promise.resolve([]);
69 69
70 var clippedExpression = ObjectUI.JavaScriptAutocomplete._clipExpression(text.s ubstring(0, mapMatch.index)); 70 var clippedExpression = ObjectUI.JavaScriptAutocomplete._clipExpression(text.s ubstring(0, mapMatch.index));
71 var fulfill; 71 var fulfill;
72 var promise = new Promise(x => fulfill = x); 72 var promise = new Promise(x => fulfill = x);
73 executionContext.evaluate(clippedExpression, 'completion', true, true, false, false, false, evaluated); 73 executionContext.evaluate(clippedExpression || 'this', 'completion', true, tru e, false, false, false, evaluated);
74 return promise; 74 return promise;
75 75
76 /** 76 /**
77 * @param {?SDK.RemoteObject} result 77 * @param {?SDK.RemoteObject} result
78 * @param {!Protocol.Runtime.ExceptionDetails=} exceptionDetails 78 * @param {!Protocol.Runtime.ExceptionDetails=} exceptionDetails
79 */ 79 */
80 function evaluated(result, exceptionDetails) { 80 function evaluated(result, exceptionDetails) {
81 if (!result || !!exceptionDetails || result.subtype !== 'map') { 81 if (!result || !!exceptionDetails || result.subtype !== 'map') {
82 fulfill([]); 82 fulfill([]);
83 return; 83 return;
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 183
184 if (!query && !expressionString && !force) 184 if (!query && !expressionString && !force)
185 return Promise.resolve([]); 185 return Promise.resolve([]);
186 186
187 var fulfill; 187 var fulfill;
188 var promise = new Promise(x => fulfill = x); 188 var promise = new Promise(x => fulfill = x);
189 var selectedFrame = executionContext.debuggerModel.selectedCallFrame(); 189 var selectedFrame = executionContext.debuggerModel.selectedCallFrame();
190 if (!expressionString && selectedFrame) 190 if (!expressionString && selectedFrame)
191 variableNamesInScopes(selectedFrame, receivedPropertyNames); 191 variableNamesInScopes(selectedFrame, receivedPropertyNames);
192 else 192 else
193 executionContext.evaluate(expressionString, 'completion', true, true, false, false, false, evaluated); 193 executionContext.evaluate(expressionString || 'this', 'completion', true, tr ue, false, false, false, evaluated);
194 194
195 return promise; 195 return promise;
196 /** 196 /**
197 * @param {?SDK.RemoteObject} result 197 * @param {?SDK.RemoteObject} result
198 * @param {!Protocol.Runtime.ExceptionDetails=} exceptionDetails 198 * @param {!Protocol.Runtime.ExceptionDetails=} exceptionDetails
199 */ 199 */
200 function evaluated(result, exceptionDetails) { 200 function evaluated(result, exceptionDetails) {
201 if (!result || !!exceptionDetails) { 201 if (!result || !!exceptionDetails) {
202 fulfill([]); 202 fulfill([]);
203 return; 203 return;
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 function itemComparator(naturalOrder, a, b) { 460 function itemComparator(naturalOrder, a, b) {
461 var aStartsWithUnderscore = a.startsWith('_'); 461 var aStartsWithUnderscore = a.startsWith('_');
462 var bStartsWithUnderscore = b.startsWith('_'); 462 var bStartsWithUnderscore = b.startsWith('_');
463 if (aStartsWithUnderscore && !bStartsWithUnderscore) 463 if (aStartsWithUnderscore && !bStartsWithUnderscore)
464 return 1; 464 return 1;
465 if (bStartsWithUnderscore && !aStartsWithUnderscore) 465 if (bStartsWithUnderscore && !aStartsWithUnderscore)
466 return -1; 466 return -1;
467 return naturalOrder ? String.naturalOrderComparator(a, b) : a.localeCompare( b); 467 return naturalOrder ? String.naturalOrderComparator(a, b) : a.localeCompare( b);
468 } 468 }
469 }; 469 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698