mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
Merge from vscode cfc1ab4c5f816765b91fb7ead3c3427a7c8581a3
This commit is contained in:
@@ -3,8 +3,6 @@
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { Iterator, IteratorResult, FIN } from 'vs/base/common/iterator';
|
||||
|
||||
class Node<E> {
|
||||
|
||||
static readonly Undefined = new Node<any>(undefined);
|
||||
@@ -126,24 +124,12 @@ export class LinkedList<E> {
|
||||
this._size -= 1;
|
||||
}
|
||||
|
||||
iterator(): Iterator<E> {
|
||||
let element: { done: false; value: E; };
|
||||
*[Symbol.iterator](): Iterator<E> {
|
||||
let node = this._first;
|
||||
return {
|
||||
next(): IteratorResult<E> {
|
||||
if (node === Node.Undefined) {
|
||||
return FIN;
|
||||
}
|
||||
|
||||
if (!element) {
|
||||
element = { done: false, value: node.element };
|
||||
} else {
|
||||
element.value = node.element;
|
||||
}
|
||||
node = node.next;
|
||||
return element;
|
||||
}
|
||||
};
|
||||
while (node !== Node.Undefined) {
|
||||
yield node.element;
|
||||
node = node.next;
|
||||
}
|
||||
}
|
||||
|
||||
toArray(): E[] {
|
||||
|
||||
Reference in New Issue
Block a user