UNPKG

@edsilv/exjs

Version:
29 lines (27 loc) 833 B
/// <reference path="enumerable.ts" /> namespace exjs { function reverseEnumerator<T>(prev: IEnumerable<T>): IEnumerator<T> { var a: T[]; var i = 0; var e = { current: undefined, moveNext: function (): boolean { if (!a) { a = en(prev).toArray(); i = a.length; } i--; e.current = a[i]; return i >= 0; } }; return e; } Enumerable.prototype.reverse = function<T>(): IEnumerableEx<T> { var e = new Enumerable<T>(); e.getEnumerator = () => reverseEnumerator(<IEnumerable<T>>this); return e; }; if (List) List.prototype.reverse = Enumerable.prototype.reverse; }