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

Unified Diff: third_party/WebKit/Source/devtools/front_end/common/Trie.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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/common/Trie.js
diff --git a/third_party/WebKit/Source/devtools/front_end/common/Trie.js b/third_party/WebKit/Source/devtools/front_end/common/Trie.js
index 808622e712c3f114f94109f1362657265fab5852..f24b454a3b583d9a735cfec4d10d6d986ac876f0 100644
--- a/third_party/WebKit/Source/devtools/front_end/common/Trie.js
+++ b/third_party/WebKit/Source/devtools/front_end/common/Trie.js
@@ -1,144 +1,135 @@
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-
/**
- * @constructor
+ * @unrestricted
*/
-WebInspector.Trie = function()
-{
+WebInspector.Trie = class {
+ constructor() {
this.clear();
-};
-
-WebInspector.Trie.prototype = {
- /**
- * @param {string} word
- */
- add: function(word)
- {
- var node = this._root;
- ++this._wordsInSubtree[this._root];
- for (var i = 0; i < word.length; ++i) {
- var edge = word[i];
- var next = this._edges[node][edge];
- if (!next) {
- if (this._freeNodes.length) {
- // No need to reset any fields since they were properly cleaned up in remove().
- next = this._freeNodes.pop();
- } else {
- next = this._size++;
- this._isWord.push(false);
- this._wordsInSubtree.push(0);
- this._edges.push({ __proto__: null });
- }
- this._edges[node][edge] = next;
- }
- ++this._wordsInSubtree[next];
- node = next;
- }
- this._isWord[node] = true;
- },
+ }
- /**
- * @param {string} word
- * @return {boolean}
- */
- remove: function(word)
- {
- if (!this.has(word))
- return false;
- var node = this._root;
- --this._wordsInSubtree[this._root];
- for (var i = 0; i < word.length; ++i) {
- var edge = word[i];
- var next = this._edges[node][edge];
- if (!--this._wordsInSubtree[next]) {
- delete this._edges[node][edge];
- this._freeNodes.push(next);
- }
- node = next;
+ /**
+ * @param {string} word
+ */
+ add(word) {
+ var node = this._root;
+ ++this._wordsInSubtree[this._root];
+ for (var i = 0; i < word.length; ++i) {
+ var edge = word[i];
+ var next = this._edges[node][edge];
+ if (!next) {
+ if (this._freeNodes.length) {
+ // No need to reset any fields since they were properly cleaned up in remove().
+ next = this._freeNodes.pop();
+ } else {
+ next = this._size++;
+ this._isWord.push(false);
+ this._wordsInSubtree.push(0);
+ this._edges.push({__proto__: null});
}
- this._isWord[node] = false;
- return true;
- },
+ this._edges[node][edge] = next;
+ }
+ ++this._wordsInSubtree[next];
+ node = next;
+ }
+ this._isWord[node] = true;
+ }
- /**
- * @param {string} word
- * @return {boolean}
- */
- has: function(word)
- {
- var node = this._root;
- for (var i = 0; i < word.length; ++i) {
- node = this._edges[node][word[i]];
- if (!node)
- return false;
- }
- return this._isWord[node];
- },
+ /**
+ * @param {string} word
+ * @return {boolean}
+ */
+ remove(word) {
+ if (!this.has(word))
+ return false;
+ var node = this._root;
+ --this._wordsInSubtree[this._root];
+ for (var i = 0; i < word.length; ++i) {
+ var edge = word[i];
+ var next = this._edges[node][edge];
+ if (!--this._wordsInSubtree[next]) {
+ delete this._edges[node][edge];
+ this._freeNodes.push(next);
+ }
+ node = next;
+ }
+ this._isWord[node] = false;
+ return true;
+ }
- /**
- * @param {string=} prefix
- * @return {!Array<string>}
- */
- words: function(prefix)
- {
- prefix = prefix || "";
- var node = this._root;
- for (var i = 0; i < prefix.length; ++i) {
- node = this._edges[node][prefix[i]];
- if (!node)
- return [];
- }
- var results = [];
- this._dfs(node, prefix, results);
- return results;
- },
+ /**
+ * @param {string} word
+ * @return {boolean}
+ */
+ has(word) {
+ var node = this._root;
+ for (var i = 0; i < word.length; ++i) {
+ node = this._edges[node][word[i]];
+ if (!node)
+ return false;
+ }
+ return this._isWord[node];
+ }
- /**
- * @param {number} node
- * @param {string} prefix
- * @param {!Array<string>} results
- */
- _dfs: function(node, prefix, results)
- {
- if (this._isWord[node])
- results.push(prefix);
- var edges = this._edges[node];
- for (var edge in edges)
- this._dfs(edges[edge], prefix + edge, results);
- },
+ /**
+ * @param {string=} prefix
+ * @return {!Array<string>}
+ */
+ words(prefix) {
+ prefix = prefix || '';
+ var node = this._root;
+ for (var i = 0; i < prefix.length; ++i) {
+ node = this._edges[node][prefix[i]];
+ if (!node)
+ return [];
+ }
+ var results = [];
+ this._dfs(node, prefix, results);
+ return results;
+ }
- /**
- * @param {string} word
- * @param {boolean} fullWordOnly
- * @return {string}
- */
- longestPrefix: function(word, fullWordOnly)
- {
- var node = this._root;
- var wordIndex = 0;
- for (var i = 0; i < word.length; ++i) {
- node = this._edges[node][word[i]];
- if (!node)
- break;
- if (!fullWordOnly || this._isWord[node])
- wordIndex = i + 1;
- }
- return word.substring(0, wordIndex);
- },
+ /**
+ * @param {number} node
+ * @param {string} prefix
+ * @param {!Array<string>} results
+ */
+ _dfs(node, prefix, results) {
+ if (this._isWord[node])
+ results.push(prefix);
+ var edges = this._edges[node];
+ for (var edge in edges)
+ this._dfs(edges[edge], prefix + edge, results);
+ }
- clear: function()
- {
- this._size = 1;
- this._root = 0;
- /** @type {!Array<!Object<string, number>>} */
- this._edges = [{ __proto__: null }];
- /** @type {!Array<boolean>} */
- this._isWord = [false];
- /** @type {!Array<number>} */
- this._wordsInSubtree = [0];
- /** @type {!Array<number>} */
- this._freeNodes = [];
+ /**
+ * @param {string} word
+ * @param {boolean} fullWordOnly
+ * @return {string}
+ */
+ longestPrefix(word, fullWordOnly) {
+ var node = this._root;
+ var wordIndex = 0;
+ for (var i = 0; i < word.length; ++i) {
+ node = this._edges[node][word[i]];
+ if (!node)
+ break;
+ if (!fullWordOnly || this._isWord[node])
+ wordIndex = i + 1;
}
+ return word.substring(0, wordIndex);
+ }
+
+ clear() {
+ this._size = 1;
+ this._root = 0;
+ /** @type {!Array<!Object<string, number>>} */
+ this._edges = [{__proto__: null}];
+ /** @type {!Array<boolean>} */
+ this._isWord = [false];
+ /** @type {!Array<number>} */
+ this._wordsInSubtree = [0];
+ /** @type {!Array<number>} */
+ this._freeNodes = [];
+ }
};

Powered by Google App Engine
This is Rietveld 408576698