--- /dev/null
+/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError PURE_IMPORTS_END */
+import * as tslib_1 from "tslib";
+import { Subscriber } from '../Subscriber';
+import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';
+export function skipLast(count) {
+ return function (source) { return source.lift(new SkipLastOperator(count)); };
+}
+var SkipLastOperator = /*@__PURE__*/ (function () {
+ function SkipLastOperator(_skipCount) {
+ this._skipCount = _skipCount;
+ if (this._skipCount < 0) {
+ throw new ArgumentOutOfRangeError;
+ }
+ }
+ SkipLastOperator.prototype.call = function (subscriber, source) {
+ if (this._skipCount === 0) {
+ return source.subscribe(new Subscriber(subscriber));
+ }
+ else {
+ return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));
+ }
+ };
+ return SkipLastOperator;
+}());
+var SkipLastSubscriber = /*@__PURE__*/ (function (_super) {
+ tslib_1.__extends(SkipLastSubscriber, _super);
+ function SkipLastSubscriber(destination, _skipCount) {
+ var _this = _super.call(this, destination) || this;
+ _this._skipCount = _skipCount;
+ _this._count = 0;
+ _this._ring = new Array(_skipCount);
+ return _this;
+ }
+ SkipLastSubscriber.prototype._next = function (value) {
+ var skipCount = this._skipCount;
+ var count = this._count++;
+ if (count < skipCount) {
+ this._ring[count] = value;
+ }
+ else {
+ var currentIndex = count % skipCount;
+ var ring = this._ring;
+ var oldValue = ring[currentIndex];
+ ring[currentIndex] = value;
+ this.destination.next(oldValue);
+ }
+ };
+ return SkipLastSubscriber;
+}(Subscriber));
+//# sourceMappingURL=skipLast.js.map