Index: chrome/browser/resources/bookmark_manager/js/bmm/tree_iterator.js |
diff --git a/chrome/browser/resources/bookmark_manager/js/bmm/tree_iterator.js b/chrome/browser/resources/bookmark_manager/js/bmm/tree_iterator.js |
deleted file mode 100644 |
index 042f24f87b8c0db1b158d19461e4192b609c1d93..0000000000000000000000000000000000000000 |
--- a/chrome/browser/resources/bookmark_manager/js/bmm/tree_iterator.js |
+++ /dev/null |
@@ -1,113 +0,0 @@ |
-// Copyright (c) 2010 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. |
- |
-cr.define('bmm', function() { |
- /** |
- * An inorder (document order) iterator for iterating over a bookmark tree. |
- * |
- * <pre> |
- * var it = new TreeIterator(node); |
- * while (it.moveNext()) { |
- * print(it.current.title); |
- * } |
- * </pre> |
- * |
- * @param {!BookmarkTreeNode} node The node to start at. |
- * @constructor |
- */ |
- function TreeIterator(node) { |
- this.current_ = node; |
- this.parentStack_ = []; |
- this.indexStack_ = []; |
- } |
- |
- /** |
- * Helper function for {@code TreeIterator.prototype.next}. This returns the |
- * next node in document order. |
- * @param {BookmarkTreeNode} node The current node. |
- * @param {!Array.<!BookmarkTreeNode>} parents A stack of parents. |
- * @param {!Array.<number>} index A stack of indexes. |
- * @return {BookmarkTreeNode} The next node or null if no more nodes can be |
- * found. |
- */ |
- function getNext(node, parents, index) { |
- var i, p; |
- |
- if (!node) |
- return null; |
- |
- // If the node has children return first child. |
- if (node.children && node.children.length) { |
- parents.push(node); |
- index.push(0); |
- return node.children[0]; |
- } |
- |
- if (!parents.length) |
- return null; |
- |
- // Walk up the parent stack until we find a node that has a next sibling. |
- while (node) { |
- p = parents[parents.length - 1]; |
- if (!p) |
- return null; |
- i = index[index.length - 1]; |
- if (i + 1 < p.children.length) |
- break; |
- node = parents.pop(); |
- index.pop(); |
- } |
- |
- // Walked out of subtree. |
- if (!parents.length || !node) |
- return null; |
- |
- // Return next child. |
- i = ++index[index.length - 1]; |
- p = parents[parents.length - 1]; |
- return p.children[i]; |
- } |
- |
- TreeIterator.prototype = { |
- /** |
- * Whether the next move will be the first move. |
- * @type {boolean} |
- * @private |
- */ |
- first_: true, |
- |
- /** |
- * Moves the iterator to the next item. |
- * @return {boolean} Whether we succeeded moving to the next item. This |
- * returns false when we have moved off the end of the iterator. |
- */ |
- moveNext: function() { |
- // The first call to this should move us to the first node. |
- if (this.first_) { |
- this.first_ = false; |
- return true; |
- } |
- this.current_ = getNext(this.current_, this.parentStack_, |
- this.indexStack_); |
- |
- return !!this.current_; |
- }, |
- |
- /** |
- * The current item. This throws an exception if trying to access after |
- * {@code moveNext} has returned false or before {@code moveNext} has been |
- * called. |
- * @type {!BookmarkTreeNode} |
- */ |
- get current() { |
- if (!this.current_ || this.first_) |
- throw Error('No such element'); |
- return this.current_; |
- } |
- }; |
- |
- return { |
- TreeIterator: TreeIterator |
- }; |
-}); |