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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sdk/Script.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month 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 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * 12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */ 24 */
25
26 /** 25 /**
27 * @constructor
28 * @extends {WebInspector.SDKObject}
29 * @implements {WebInspector.ContentProvider} 26 * @implements {WebInspector.ContentProvider}
30 * @param {!WebInspector.DebuggerModel} debuggerModel 27 * @unrestricted
31 * @param {string} scriptId
32 * @param {string} sourceURL
33 * @param {number} startLine
34 * @param {number} startColumn
35 * @param {number} endLine
36 * @param {number} endColumn
37 * @param {!RuntimeAgent.ExecutionContextId} executionContextId
38 * @param {string} hash
39 * @param {boolean} isContentScript
40 * @param {boolean} isLiveEdit
41 * @param {string=} sourceMapURL
42 * @param {boolean=} hasSourceURL
43 */ 28 */
44 WebInspector.Script = function(debuggerModel, scriptId, sourceURL, startLine, st artColumn, endLine, endColumn, executionContextId, hash, isContentScript, isLive Edit, sourceMapURL, hasSourceURL) 29 WebInspector.Script = class extends WebInspector.SDKObject {
45 { 30 /**
46 WebInspector.SDKObject.call(this, debuggerModel.target()); 31 * @param {!WebInspector.DebuggerModel} debuggerModel
32 * @param {string} scriptId
33 * @param {string} sourceURL
34 * @param {number} startLine
35 * @param {number} startColumn
36 * @param {number} endLine
37 * @param {number} endColumn
38 * @param {!RuntimeAgent.ExecutionContextId} executionContextId
39 * @param {string} hash
40 * @param {boolean} isContentScript
41 * @param {boolean} isLiveEdit
42 * @param {string=} sourceMapURL
43 * @param {boolean=} hasSourceURL
44 */
45 constructor(
46 debuggerModel,
47 scriptId,
48 sourceURL,
49 startLine,
50 startColumn,
51 endLine,
52 endColumn,
53 executionContextId,
54 hash,
55 isContentScript,
56 isLiveEdit,
57 sourceMapURL,
58 hasSourceURL) {
59 super(debuggerModel.target());
47 this.debuggerModel = debuggerModel; 60 this.debuggerModel = debuggerModel;
48 this.scriptId = scriptId; 61 this.scriptId = scriptId;
49 this.sourceURL = sourceURL; 62 this.sourceURL = sourceURL;
50 this.lineOffset = startLine; 63 this.lineOffset = startLine;
51 this.columnOffset = startColumn; 64 this.columnOffset = startColumn;
52 this.endLine = endLine; 65 this.endLine = endLine;
53 this.endColumn = endColumn; 66 this.endColumn = endColumn;
54 this._executionContextId = executionContextId; 67 this._executionContextId = executionContextId;
55 this.hash = hash; 68 this.hash = hash;
56 this._isContentScript = isContentScript; 69 this._isContentScript = isContentScript;
57 this._isLiveEdit = isLiveEdit; 70 this._isLiveEdit = isLiveEdit;
58 this.sourceMapURL = sourceMapURL; 71 this.sourceMapURL = sourceMapURL;
59 this.hasSourceURL = hasSourceURL; 72 this.hasSourceURL = hasSourceURL;
60 }; 73 }
61 74
62 /** @enum {symbol} */ 75 /**
63 WebInspector.Script.Events = { 76 * @param {string} source
64 ScriptEdited: Symbol("ScriptEdited"), 77 * @return {string}
65 SourceMapURLAdded: Symbol("SourceMapURLAdded") 78 */
66 }; 79 static _trimSourceURLComment(source) {
67 80 var sourceURLIndex = source.lastIndexOf('//# sourceURL=');
68 WebInspector.Script.sourceURLRegex = /^[\040\t]*\/\/[@#] sourceURL=\s*(\S*?)\s*$ /m;
69
70 /**
71 * @param {string} source
72 * @return {string}
73 */
74 WebInspector.Script._trimSourceURLComment = function(source)
75 {
76 var sourceURLIndex = source.lastIndexOf("//# sourceURL=");
77 if (sourceURLIndex === -1) { 81 if (sourceURLIndex === -1) {
78 sourceURLIndex = source.lastIndexOf("//@ sourceURL="); 82 sourceURLIndex = source.lastIndexOf('//@ sourceURL=');
79 if (sourceURLIndex === -1) 83 if (sourceURLIndex === -1)
80 return source; 84 return source;
81 } 85 }
82 var sourceURLLineIndex = source.lastIndexOf("\n", sourceURLIndex); 86 var sourceURLLineIndex = source.lastIndexOf('\n', sourceURLIndex);
83 if (sourceURLLineIndex === -1) 87 if (sourceURLLineIndex === -1)
84 return source; 88 return source;
85 var sourceURLLine = source.substr(sourceURLLineIndex + 1).split("\n", 1)[0]; 89 var sourceURLLine = source.substr(sourceURLLineIndex + 1).split('\n', 1)[0];
86 if (sourceURLLine.search(WebInspector.Script.sourceURLRegex) === -1) 90 if (sourceURLLine.search(WebInspector.Script.sourceURLRegex) === -1)
87 return source; 91 return source;
88 return source.substr(0, sourceURLLineIndex) + source.substr(sourceURLLineInd ex + sourceURLLine.length + 1); 92 return source.substr(0, sourceURLLineIndex) + source.substr(sourceURLLineInd ex + sourceURLLine.length + 1);
89 }; 93 }
90 94
91 /** 95 /**
92 * @param {!WebInspector.Script} script 96 * @param {!WebInspector.Script} script
93 * @param {string} source 97 * @param {string} source
94 */ 98 */
95 WebInspector.Script._reportDeprecatedCommentIfNeeded = function(script, source) 99 static _reportDeprecatedCommentIfNeeded(script, source) {
96 {
97 var consoleModel = script.target().consoleModel; 100 var consoleModel = script.target().consoleModel;
98 if (!consoleModel) 101 if (!consoleModel)
99 return; 102 return;
100 var linesToCheck = 5; 103 var linesToCheck = 5;
101 var offset = source.lastIndexOf("\n"); 104 var offset = source.lastIndexOf('\n');
102 while (linesToCheck && offset !== -1) { 105 while (linesToCheck && offset !== -1) {
103 offset = source.lastIndexOf("\n", offset - 1); 106 offset = source.lastIndexOf('\n', offset - 1);
104 --linesToCheck; 107 --linesToCheck;
105 } 108 }
106 offset = offset !== -1 ? offset : 0; 109 offset = offset !== -1 ? offset : 0;
107 var sourceTail = source.substr(offset); 110 var sourceTail = source.substr(offset);
108 if (sourceTail.length > 5000) 111 if (sourceTail.length > 5000)
112 return;
113 if (sourceTail.search(/^[\040\t]*\/\/@ source(mapping)?url=/mi) === -1)
114 return;
115 var text = WebInspector.UIString(
116 '\'//@ sourceURL\' and \'//@ sourceMappingURL\' are deprecated, please u se \'//# sourceURL=\' and \'//# sourceMappingURL=\' instead.');
117 var msg = new WebInspector.ConsoleMessage(
118 script.target(), WebInspector.ConsoleMessage.MessageSource.JS, WebInspec tor.ConsoleMessage.MessageLevel.Warning,
119 text, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined,
120 script.scriptId);
121 consoleModel.addMessage(msg);
122 }
123
124 /**
125 * @return {boolean}
126 */
127 isContentScript() {
128 return this._isContentScript;
129 }
130
131 /**
132 * @return {?WebInspector.ExecutionContext}
133 */
134 executionContext() {
135 return this.target().runtimeModel.executionContext(this._executionContextId) ;
136 }
137
138 /**
139 * @return {boolean}
140 */
141 isLiveEdit() {
142 return this._isLiveEdit;
143 }
144
145 /**
146 * @override
147 * @return {string}
148 */
149 contentURL() {
150 return this.sourceURL;
151 }
152
153 /**
154 * @override
155 * @return {!WebInspector.ResourceType}
156 */
157 contentType() {
158 return WebInspector.resourceTypes.Script;
159 }
160
161 /**
162 * @override
163 * @return {!Promise<?string>}
164 */
165 requestContent() {
166 if (this._source)
167 return Promise.resolve(this._source);
168 if (!this.scriptId)
169 return Promise.resolve(/** @type {?string} */ (''));
170
171 var callback;
172 var promise = new Promise(fulfill => callback = fulfill);
173 this.target().debuggerAgent().getScriptSource(this.scriptId, didGetScriptSou rce.bind(this));
174 return promise;
175
176 /**
177 * @this {WebInspector.Script}
178 * @param {?Protocol.Error} error
179 * @param {string} source
180 */
181 function didGetScriptSource(error, source) {
182 if (!error) {
183 WebInspector.Script._reportDeprecatedCommentIfNeeded(this, source);
184 this._source = WebInspector.Script._trimSourceURLComment(source);
185 } else {
186 this._source = '';
187 }
188 callback(this._source);
189 }
190 }
191
192 /**
193 * @override
194 * @param {string} query
195 * @param {boolean} caseSensitive
196 * @param {boolean} isRegex
197 * @param {function(!Array.<!DebuggerAgent.SearchMatch>)} callback
198 */
199 searchInContent(query, caseSensitive, isRegex, callback) {
200 /**
201 * @param {?Protocol.Error} error
202 * @param {!Array.<!DebuggerAgent.SearchMatch>} searchMatches
203 */
204 function innerCallback(error, searchMatches) {
205 if (error) {
206 console.error(error);
207 callback([]);
109 return; 208 return;
110 if (sourceTail.search(/^[\040\t]*\/\/@ source(mapping)?url=/mi) === -1) 209 }
111 return; 210 var result = [];
112 var text = WebInspector.UIString("'//@ sourceURL' and '//@ sourceMappingURL' are deprecated, please use '//# sourceURL=' and '//# sourceMappingURL=' instead ."); 211 for (var i = 0; i < searchMatches.length; ++i) {
113 var msg = new WebInspector.ConsoleMessage(script.target(), WebInspector.Cons oleMessage.MessageSource.JS, WebInspector.ConsoleMessage.MessageLevel.Warning, t ext, undefined, undefined, undefined, undefined, undefined, undefined, undefined , undefined, undefined, script.scriptId); 212 var searchMatch =
114 consoleModel.addMessage(msg); 213 new WebInspector.ContentProvider.SearchMatch(searchMatches[i].lineNu mber, searchMatches[i].lineContent);
214 result.push(searchMatch);
215 }
216 callback(result || []);
217 }
218
219 if (this.scriptId) {
220 // Script failed to parse.
221 this.target().debuggerAgent().searchInContent(this.scriptId, query, caseSe nsitive, isRegex, innerCallback);
222 } else {
223 callback([]);
224 }
225 }
226
227 /**
228 * @param {string} source
229 * @return {string}
230 */
231 _appendSourceURLCommentIfNeeded(source) {
232 if (!this.hasSourceURL)
233 return source;
234 return source + '\n //# sourceURL=' + this.sourceURL;
235 }
236
237 /**
238 * @param {string} newSource
239 * @param {function(?Protocol.Error, !RuntimeAgent.ExceptionDetails=, !Array.< !DebuggerAgent.CallFrame>=, !RuntimeAgent.StackTrace=, boolean=)} callback
240 */
241 editSource(newSource, callback) {
242 /**
243 * @this {WebInspector.Script}
244 * @param {?Protocol.Error} error
245 * @param {!Array.<!DebuggerAgent.CallFrame>=} callFrames
246 * @param {boolean=} stackChanged
247 * @param {!RuntimeAgent.StackTrace=} asyncStackTrace
248 * @param {!RuntimeAgent.ExceptionDetails=} exceptionDetails
249 */
250 function didEditScriptSource(error, callFrames, stackChanged, asyncStackTrac e, exceptionDetails) {
251 if (!error && !exceptionDetails)
252 this._source = newSource;
253 var needsStepIn = !!stackChanged;
254 callback(error, exceptionDetails, callFrames, asyncStackTrace, needsStepIn );
255 }
256
257 newSource = WebInspector.Script._trimSourceURLComment(newSource);
258 // We append correct sourceURL to script for consistency only. It's not actu ally needed for things to work correctly.
259 newSource = this._appendSourceURLCommentIfNeeded(newSource);
260
261 if (this.scriptId)
262 this.target().debuggerAgent().setScriptSource(
263 this.scriptId, newSource, undefined, didEditScriptSource.bind(this));
264 else
265 callback('Script failed to parse');
266 }
267
268 /**
269 * @param {number} lineNumber
270 * @param {number=} columnNumber
271 * @return {!WebInspector.DebuggerModel.Location}
272 */
273 rawLocation(lineNumber, columnNumber) {
274 return new WebInspector.DebuggerModel.Location(this.debuggerModel, this.scri ptId, lineNumber, columnNumber || 0);
275 }
276
277 /**
278 * @return {boolean}
279 */
280 isInlineScript() {
281 var startsAtZero = !this.lineOffset && !this.columnOffset;
282 return !!this.sourceURL && !startsAtZero;
283 }
284
285 /**
286 * @param {string} sourceMapURL
287 */
288 addSourceMapURL(sourceMapURL) {
289 if (this.sourceMapURL)
290 return;
291 this.sourceMapURL = sourceMapURL;
292 this.dispatchEventToListeners(WebInspector.Script.Events.SourceMapURLAdded, this.sourceMapURL);
293 }
294
295 /**
296 * @return {boolean}
297 */
298 isAnonymousScript() {
299 return !this.sourceURL;
300 }
301
302 /**
303 * @return {boolean}
304 */
305 isInlineScriptWithSourceURL() {
306 return !!this.hasSourceURL && this.isInlineScript();
307 }
308
309 /**
310 * @param {!Array<!DebuggerAgent.ScriptPosition>} positions
311 * @return {!Promise<boolean>}
312 */
313 setBlackboxedRanges(positions) {
314 return new Promise(setBlackboxedRanges.bind(this));
315
316 /**
317 * @param {function(?)} fulfill
318 * @param {function(*)} reject
319 * @this {WebInspector.Script}
320 */
321 function setBlackboxedRanges(fulfill, reject) {
322 this.target().debuggerAgent().setBlackboxedRanges(this.scriptId, positions , callback);
323 /**
324 * @param {?Protocol.Error} error
325 */
326 function callback(error) {
327 if (error)
328 console.error(error);
329 fulfill(!error);
330 }
331 }
332 }
115 }; 333 };
116 334
117 WebInspector.Script.prototype = { 335 /** @enum {symbol} */
118 /** 336 WebInspector.Script.Events = {
119 * @return {boolean} 337 ScriptEdited: Symbol('ScriptEdited'),
120 */ 338 SourceMapURLAdded: Symbol('SourceMapURLAdded')
121 isContentScript: function()
122 {
123 return this._isContentScript;
124 },
125
126 /**
127 * @return {?WebInspector.ExecutionContext}
128 */
129 executionContext: function()
130 {
131 return this.target().runtimeModel.executionContext(this._executionContex tId);
132 },
133
134 /**
135 * @return {boolean}
136 */
137 isLiveEdit: function()
138 {
139 return this._isLiveEdit;
140 },
141
142 /**
143 * @override
144 * @return {string}
145 */
146 contentURL: function()
147 {
148 return this.sourceURL;
149 },
150
151 /**
152 * @override
153 * @return {!WebInspector.ResourceType}
154 */
155 contentType: function()
156 {
157 return WebInspector.resourceTypes.Script;
158 },
159
160 /**
161 * @override
162 * @return {!Promise<?string>}
163 */
164 requestContent: function()
165 {
166 if (this._source)
167 return Promise.resolve(this._source);
168 if (!this.scriptId)
169 return Promise.resolve(/** @type {?string} */(""));
170
171 var callback;
172 var promise = new Promise(fulfill => callback = fulfill);
173 this.target().debuggerAgent().getScriptSource(this.scriptId, didGetScrip tSource.bind(this));
174 return promise;
175
176 /**
177 * @this {WebInspector.Script}
178 * @param {?Protocol.Error} error
179 * @param {string} source
180 */
181 function didGetScriptSource(error, source)
182 {
183 if (!error) {
184 WebInspector.Script._reportDeprecatedCommentIfNeeded(this, sourc e);
185 this._source = WebInspector.Script._trimSourceURLComment(source) ;
186 } else {
187 this._source = "";
188 }
189 callback(this._source);
190 }
191 },
192
193 /**
194 * @override
195 * @param {string} query
196 * @param {boolean} caseSensitive
197 * @param {boolean} isRegex
198 * @param {function(!Array.<!DebuggerAgent.SearchMatch>)} callback
199 */
200 searchInContent: function(query, caseSensitive, isRegex, callback)
201 {
202 /**
203 * @param {?Protocol.Error} error
204 * @param {!Array.<!DebuggerAgent.SearchMatch>} searchMatches
205 */
206 function innerCallback(error, searchMatches)
207 {
208 if (error) {
209 console.error(error);
210 callback([]);
211 return;
212 }
213 var result = [];
214 for (var i = 0; i < searchMatches.length; ++i) {
215 var searchMatch = new WebInspector.ContentProvider.SearchMatch(s earchMatches[i].lineNumber, searchMatches[i].lineContent);
216 result.push(searchMatch);
217 }
218 callback(result || []);
219 }
220
221 if (this.scriptId) {
222 // Script failed to parse.
223 this.target().debuggerAgent().searchInContent(this.scriptId, query, caseSensitive, isRegex, innerCallback);
224 } else {
225 callback([]);
226 }
227 },
228
229 /**
230 * @param {string} source
231 * @return {string}
232 */
233 _appendSourceURLCommentIfNeeded: function(source)
234 {
235 if (!this.hasSourceURL)
236 return source;
237 return source + "\n //# sourceURL=" + this.sourceURL;
238 },
239
240 /**
241 * @param {string} newSource
242 * @param {function(?Protocol.Error, !RuntimeAgent.ExceptionDetails=, !Array .<!DebuggerAgent.CallFrame>=, !RuntimeAgent.StackTrace=, boolean=)} callback
243 */
244 editSource: function(newSource, callback)
245 {
246 /**
247 * @this {WebInspector.Script}
248 * @param {?Protocol.Error} error
249 * @param {!Array.<!DebuggerAgent.CallFrame>=} callFrames
250 * @param {boolean=} stackChanged
251 * @param {!RuntimeAgent.StackTrace=} asyncStackTrace
252 * @param {!RuntimeAgent.ExceptionDetails=} exceptionDetails
253 */
254 function didEditScriptSource(error, callFrames, stackChanged, asyncStack Trace, exceptionDetails)
255 {
256 if (!error && !exceptionDetails)
257 this._source = newSource;
258 var needsStepIn = !!stackChanged;
259 callback(error, exceptionDetails, callFrames, asyncStackTrace, needs StepIn);
260 }
261
262 newSource = WebInspector.Script._trimSourceURLComment(newSource);
263 // We append correct sourceURL to script for consistency only. It's not actually needed for things to work correctly.
264 newSource = this._appendSourceURLCommentIfNeeded(newSource);
265
266 if (this.scriptId)
267 this.target().debuggerAgent().setScriptSource(this.scriptId, newSour ce, undefined, didEditScriptSource.bind(this));
268 else
269 callback("Script failed to parse");
270 },
271
272 /**
273 * @param {number} lineNumber
274 * @param {number=} columnNumber
275 * @return {!WebInspector.DebuggerModel.Location}
276 */
277 rawLocation: function(lineNumber, columnNumber)
278 {
279 return new WebInspector.DebuggerModel.Location(this.debuggerModel, this. scriptId, lineNumber, columnNumber || 0);
280 },
281
282 /**
283 * @return {boolean}
284 */
285 isInlineScript: function()
286 {
287 var startsAtZero = !this.lineOffset && !this.columnOffset;
288 return !!this.sourceURL && !startsAtZero;
289 },
290
291 /**
292 * @param {string} sourceMapURL
293 */
294 addSourceMapURL: function(sourceMapURL)
295 {
296 if (this.sourceMapURL)
297 return;
298 this.sourceMapURL = sourceMapURL;
299 this.dispatchEventToListeners(WebInspector.Script.Events.SourceMapURLAdd ed, this.sourceMapURL);
300 },
301
302 /**
303 * @return {boolean}
304 */
305 isAnonymousScript: function()
306 {
307 return !this.sourceURL;
308 },
309
310 /**
311 * @return {boolean}
312 */
313 isInlineScriptWithSourceURL: function()
314 {
315 return !!this.hasSourceURL && this.isInlineScript();
316 },
317
318 /**
319 * @param {!Array<!DebuggerAgent.ScriptPosition>} positions
320 * @return {!Promise<boolean>}
321 */
322 setBlackboxedRanges: function(positions)
323 {
324 return new Promise(setBlackboxedRanges.bind(this));
325
326 /**
327 * @param {function(?)} fulfill
328 * @param {function(*)} reject
329 * @this {WebInspector.Script}
330 */
331 function setBlackboxedRanges(fulfill, reject)
332 {
333 this.target().debuggerAgent().setBlackboxedRanges(this.scriptId, pos itions, callback);
334 /**
335 * @param {?Protocol.Error} error
336 */
337 function callback(error)
338 {
339 if (error)
340 console.error(error);
341 fulfill(!error);
342 }
343 }
344 },
345
346 __proto__: WebInspector.SDKObject.prototype
347 }; 339 };
340
341 WebInspector.Script.sourceURLRegex = /^[\040\t]*\/\/[@#] sourceURL=\s*(\S*?)\s*$ /m;
342
343
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698