Index: third_party/WebKit/Source/devtools/front_end/formatter_worker/FormatterWorker.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/formatter_worker/FormatterWorker.js b/third_party/WebKit/Source/devtools/front_end/formatter_worker/FormatterWorker.js |
index f9e209cd8d7b496971096bb73434c472e27e6f1e..4cdf13a5e0a9f04c9bc87e45acc6429039fda3b7 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/formatter_worker/FormatterWorker.js |
+++ b/third_party/WebKit/Source/devtools/front_end/formatter_worker/FormatterWorker.js |
@@ -27,169 +27,163 @@ |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
- |
/** |
* @param {string} mimeType |
* @return {function(string, function(string, ?string, number, number):(!Object|undefined))} |
*/ |
-WebInspector.createTokenizer = function(mimeType) |
-{ |
- var mode = CodeMirror.getMode({indentUnit: 2}, mimeType); |
- var state = CodeMirror.startState(mode); |
- /** |
- * @param {string} line |
- * @param {function(string, ?string, number, number):?} callback |
- */ |
- function tokenize(line, callback) |
- { |
- var stream = new CodeMirror.StringStream(line); |
- while (!stream.eol()) { |
- var style = mode.token(stream, state); |
- var value = stream.current(); |
- if (callback(value, style, stream.start, stream.start + value.length) === WebInspector.AbortTokenization) |
- return; |
- stream.start = stream.pos; |
- } |
+WebInspector.createTokenizer = function(mimeType) { |
+ var mode = CodeMirror.getMode({indentUnit: 2}, mimeType); |
+ var state = CodeMirror.startState(mode); |
+ /** |
+ * @param {string} line |
+ * @param {function(string, ?string, number, number):?} callback |
+ */ |
+ function tokenize(line, callback) { |
+ var stream = new CodeMirror.StringStream(line); |
+ while (!stream.eol()) { |
+ var style = mode.token(stream, state); |
+ var value = stream.current(); |
+ if (callback(value, style, stream.start, stream.start + value.length) === WebInspector.AbortTokenization) |
+ return; |
+ stream.start = stream.pos; |
} |
- return tokenize; |
+ } |
+ return tokenize; |
}; |
WebInspector.AbortTokenization = {}; |
self.onmessage = function(event) { |
- var method = /** @type {string} */(event.data.method); |
- var params = /** @type !{indentString: string, content: string, mimeType: string} */ (event.data.params); |
- if (!method) |
- return; |
+ var method = /** @type {string} */ (event.data.method); |
+ var params = /** @type !{indentString: string, content: string, mimeType: string} */ (event.data.params); |
+ if (!method) |
+ return; |
- switch (method) { |
- case "format": |
- WebInspector.format(params.mimeType, params.content, params.indentString); |
- break; |
- case "parseCSS": |
- WebInspector.parseCSS(params.content); |
- break; |
- case "parseSCSS": |
- WebInspector.FormatterWorkerContentParser.parse(params.content, "text/x-scss"); |
- break; |
- case "javaScriptOutline": |
- WebInspector.javaScriptOutline(params.content); |
- break; |
- case "javaScriptIdentifiers": |
- WebInspector.javaScriptIdentifiers(params.content); |
- break; |
- case "evaluatableJavaScriptSubstring": |
- WebInspector.evaluatableJavaScriptSubstring(params.content); |
- break; |
- case "relaxedJSONParser": |
- WebInspector.relaxedJSONParser(params.content); |
- break; |
+ switch (method) { |
+ case 'format': |
+ WebInspector.format(params.mimeType, params.content, params.indentString); |
+ break; |
+ case 'parseCSS': |
+ WebInspector.parseCSS(params.content); |
+ break; |
+ case 'parseSCSS': |
+ WebInspector.FormatterWorkerContentParser.parse(params.content, 'text/x-scss'); |
+ break; |
+ case 'javaScriptOutline': |
+ WebInspector.javaScriptOutline(params.content); |
+ break; |
+ case 'javaScriptIdentifiers': |
+ WebInspector.javaScriptIdentifiers(params.content); |
+ break; |
+ case 'evaluatableJavaScriptSubstring': |
+ WebInspector.evaluatableJavaScriptSubstring(params.content); |
+ break; |
+ case 'relaxedJSONParser': |
+ WebInspector.relaxedJSONParser(params.content); |
+ break; |
default: |
- console.error("Unsupport method name: " + method); |
- } |
+ console.error('Unsupport method name: ' + method); |
+ } |
}; |
/** |
* @param {string} content |
*/ |
-WebInspector.relaxedJSONParser = function(content) |
-{ |
- postMessage(WebInspector.RelaxedJSONParser.parse(content)); |
+WebInspector.relaxedJSONParser = function(content) { |
+ postMessage(WebInspector.RelaxedJSONParser.parse(content)); |
}; |
/** |
* @param {string} content |
*/ |
-WebInspector.evaluatableJavaScriptSubstring = function(content) |
-{ |
- var tokenizer = acorn.tokenizer(content, {ecmaVersion: 6}); |
- var result = ""; |
- try { |
- var token = tokenizer.getToken(); |
- while (token.type !== acorn.tokTypes.eof && WebInspector.AcornTokenizer.punctuator(token)) |
- token = tokenizer.getToken(); |
- |
- var startIndex = token.start; |
- var endIndex = token.end; |
- var openBracketsCounter = 0; |
- while (token.type !== acorn.tokTypes.eof) { |
- var isIdentifier = WebInspector.AcornTokenizer.identifier(token); |
- var isThis = WebInspector.AcornTokenizer.keyword(token, "this"); |
- var isString = token.type === acorn.tokTypes.string; |
- if (!isThis && !isIdentifier && !isString) |
- break; |
+WebInspector.evaluatableJavaScriptSubstring = function(content) { |
+ var tokenizer = acorn.tokenizer(content, {ecmaVersion: 6}); |
+ var result = ''; |
+ try { |
+ var token = tokenizer.getToken(); |
+ while (token.type !== acorn.tokTypes.eof && WebInspector.AcornTokenizer.punctuator(token)) |
+ token = tokenizer.getToken(); |
- endIndex = token.end; |
- token = tokenizer.getToken(); |
- while (WebInspector.AcornTokenizer.punctuator(token, ".[]")) { |
- if (WebInspector.AcornTokenizer.punctuator(token, "[")) |
- openBracketsCounter++; |
+ var startIndex = token.start; |
+ var endIndex = token.end; |
+ var openBracketsCounter = 0; |
+ while (token.type !== acorn.tokTypes.eof) { |
+ var isIdentifier = WebInspector.AcornTokenizer.identifier(token); |
+ var isThis = WebInspector.AcornTokenizer.keyword(token, 'this'); |
+ var isString = token.type === acorn.tokTypes.string; |
+ if (!isThis && !isIdentifier && !isString) |
+ break; |
- if (WebInspector.AcornTokenizer.punctuator(token, "]")) { |
- endIndex = openBracketsCounter > 0 ? token.end : endIndex; |
- openBracketsCounter--; |
- } |
+ endIndex = token.end; |
+ token = tokenizer.getToken(); |
+ while (WebInspector.AcornTokenizer.punctuator(token, '.[]')) { |
+ if (WebInspector.AcornTokenizer.punctuator(token, '[')) |
+ openBracketsCounter++; |
- token = tokenizer.getToken(); |
- } |
+ if (WebInspector.AcornTokenizer.punctuator(token, ']')) { |
+ endIndex = openBracketsCounter > 0 ? token.end : endIndex; |
+ openBracketsCounter--; |
} |
- result = content.substring(startIndex, endIndex); |
- } catch (e) { |
- console.error(e); |
+ |
+ token = tokenizer.getToken(); |
+ } |
} |
- postMessage(result); |
+ result = content.substring(startIndex, endIndex); |
+ } catch (e) { |
+ console.error(e); |
+ } |
+ postMessage(result); |
}; |
/** |
* @param {string} content |
*/ |
-WebInspector.javaScriptIdentifiers = function(content) |
-{ |
- var root = acorn.parse(content, { ranges: false, ecmaVersion: 6 }); |
+WebInspector.javaScriptIdentifiers = function(content) { |
+ var root = acorn.parse(content, {ranges: false, ecmaVersion: 6}); |
- /** @type {!Array<!ESTree.Node>} */ |
- var identifiers = []; |
- var walker = new WebInspector.ESTreeWalker(beforeVisit); |
+ /** @type {!Array<!ESTree.Node>} */ |
+ var identifiers = []; |
+ var walker = new WebInspector.ESTreeWalker(beforeVisit); |
- /** |
- * @param {!ESTree.Node} node |
- * @return {boolean} |
- */ |
- function isFunction(node) |
- { |
- return node.type === "FunctionDeclaration" || node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression"; |
+ /** |
+ * @param {!ESTree.Node} node |
+ * @return {boolean} |
+ */ |
+ function isFunction(node) { |
+ return node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression' || |
+ node.type === 'ArrowFunctionExpression'; |
+ } |
+ |
+ /** |
+ * @param {!ESTree.Node} node |
+ */ |
+ function beforeVisit(node) { |
+ if (isFunction(node)) { |
+ if (node.id) |
+ identifiers.push(node.id); |
+ return WebInspector.ESTreeWalker.SkipSubtree; |
} |
- /** |
- * @param {!ESTree.Node} node |
- */ |
- function beforeVisit(node) |
- { |
- if (isFunction(node)) { |
- if (node.id) |
- identifiers.push(node.id); |
- return WebInspector.ESTreeWalker.SkipSubtree; |
- } |
+ if (node.type !== 'Identifier') |
+ return; |
- if (node.type !== "Identifier") |
- return; |
+ if (node.parent && node.parent.type === 'MemberExpression' && node.parent.property === node && |
+ !node.parent.computed) |
+ return; |
+ identifiers.push(node); |
+ } |
- if (node.parent && node.parent.type === "MemberExpression" && node.parent.property === node && !node.parent.computed) |
- return; |
- identifiers.push(node); |
- } |
+ if (!root || root.type !== 'Program' || root.body.length !== 1 || !isFunction(root.body[0])) { |
+ postMessage([]); |
+ return; |
+ } |
- if (!root || root.type !== "Program" || root.body.length !== 1 || !isFunction(root.body[0])) { |
- postMessage([]); |
- return; |
- } |
- |
- var functionNode = root.body[0]; |
- for (var param of functionNode.params) |
- walker.walk(param); |
- walker.walk(functionNode.body); |
- var reduced = identifiers.map(id => ({name: id.name, offset: id.start})); |
- postMessage(reduced); |
+ var functionNode = root.body[0]; |
+ for (var param of functionNode.params) |
+ walker.walk(param); |
+ walker.walk(functionNode.body); |
+ var reduced = identifiers.map(id => ({name: id.name, offset: id.start})); |
+ postMessage(reduced); |
}; |
/** |
@@ -197,73 +191,67 @@ WebInspector.javaScriptIdentifiers = function(content) |
* @param {string} text |
* @param {string=} indentString |
*/ |
-WebInspector.format = function(mimeType, text, indentString) |
-{ |
- // Default to a 4-space indent. |
- indentString = indentString || " "; |
- var result = {}; |
- var builder = new WebInspector.FormattedContentBuilder(indentString); |
- var lineEndings = text.computeLineEndings(); |
- try { |
- switch (mimeType) { |
- case "text/html": |
- var formatter = new WebInspector.HTMLFormatter(builder); |
- formatter.format(text, lineEndings); |
- break; |
- case "text/css": |
- var formatter = new WebInspector.CSSFormatter(builder); |
- formatter.format(text, lineEndings, 0, text.length); |
- break; |
- case "text/javascript": |
- var formatter = new WebInspector.JavaScriptFormatter(builder); |
- formatter.format(text, lineEndings, 0, text.length); |
- break; |
- default: |
- var formatter = new WebInspector.IdentityFormatter(builder); |
- formatter.format(text, lineEndings, 0, text.length); |
- } |
- result.mapping = builder.mapping(); |
- result.content = builder.content(); |
- } catch (e) { |
- console.error(e); |
- result.mapping = { original: [0], formatted: [0] }; |
- result.content = text; |
+WebInspector.format = function(mimeType, text, indentString) { |
+ // Default to a 4-space indent. |
+ indentString = indentString || ' '; |
+ var result = {}; |
+ var builder = new WebInspector.FormattedContentBuilder(indentString); |
+ var lineEndings = text.computeLineEndings(); |
+ try { |
+ switch (mimeType) { |
+ case 'text/html': |
+ var formatter = new WebInspector.HTMLFormatter(builder); |
+ formatter.format(text, lineEndings); |
+ break; |
+ case 'text/css': |
+ var formatter = new WebInspector.CSSFormatter(builder); |
+ formatter.format(text, lineEndings, 0, text.length); |
+ break; |
+ case 'text/javascript': |
+ var formatter = new WebInspector.JavaScriptFormatter(builder); |
+ formatter.format(text, lineEndings, 0, text.length); |
+ break; |
+ default: |
+ var formatter = new WebInspector.IdentityFormatter(builder); |
+ formatter.format(text, lineEndings, 0, text.length); |
} |
- postMessage(result); |
+ result.mapping = builder.mapping(); |
+ result.content = builder.content(); |
+ } catch (e) { |
+ console.error(e); |
+ result.mapping = {original: [0], formatted: [0]}; |
+ result.content = text; |
+ } |
+ postMessage(result); |
}; |
/** |
* @interface |
*/ |
-WebInspector.FormatterWorkerContentParser = function() { }; |
+WebInspector.FormatterWorkerContentParser = function() {}; |
WebInspector.FormatterWorkerContentParser.prototype = { |
- /** |
- * @param {string} content |
- * @return {!Object} |
- */ |
- parse: function(content) { } |
+ /** |
+ * @param {string} content |
+ * @return {!Object} |
+ */ |
+ parse: function(content) {} |
}; |
/** |
* @param {string} content |
* @param {string} mimeType |
*/ |
-WebInspector.FormatterWorkerContentParser.parse = function(content, mimeType) |
-{ |
- var extension = self.runtime.extensions(WebInspector.FormatterWorkerContentParser).find(findExtension); |
- console.assert(extension); |
- extension.instance() |
- .then(instance => instance.parse(content)) |
- .catchException(null) |
- .then(postMessage); |
+WebInspector.FormatterWorkerContentParser.parse = function(content, mimeType) { |
+ var extension = self.runtime.extensions(WebInspector.FormatterWorkerContentParser).find(findExtension); |
+ console.assert(extension); |
+ extension.instance().then(instance => instance.parse(content)).catchException(null).then(postMessage); |
- /** |
- * @param {!Runtime.Extension} extension |
- * @return {boolean} |
- */ |
- function findExtension(extension) |
- { |
- return extension.descriptor()["mimeType"] === mimeType; |
- } |
+ /** |
+ * @param {!Runtime.Extension} extension |
+ * @return {boolean} |
+ */ |
+ function findExtension(extension) { |
+ return extension.descriptor()['mimeType'] === mimeType; |
+ } |
}; |