UNPKG

amos-tool

Version:

amos ui tool

68 lines (64 loc) 1.53 kB
"use strict"; function _ArrayHigh(r) { this.array = void 0 === r ? [] : new Array(r); } _ArrayHigh.prototype = { length: function() { return this.array.length; }, at: function(r) { return this.array[r]; }, set: function(r, t) { this.array[r] = t; }, push: function(r) { return this.array.push(r); }, slice: function(r, t) { return this.array = this.array.slice(r, t); }, concat: function(r) { this.array = this.array.concat(r); }, remove: function(r, t) { t = void 0 === t ? 1 : t, this.array.splice(r, t); }, join: function(r) { return this.array.join(r); }, clear: function() { this.array.length = 0; } }; var Queue = function() { this._array_h = new _ArrayHigh; }; Queue.prototype = { _index: 0, push: function(r) { this._array_h.push(r); }, pop: function() { var r = null; return this._array_h.length() && (r = this._array_h.at(this._index), 2 * ++this._index >= this._array_h.length() && (this._array_h.slice(this._index), this._index = 0)), r; }, head: function() { var r = null, t = this._array_h.length(); return t && (r = this._array_h.at(t - 1)), r; }, tail: function() { var r = null; return this._array_h.length() && (r = this._array_h.at(this._index)), r; }, length: function() { return this._array_h.length() - this._index; }, empty: function() { return 0 === this._array_h.length(); }, clear: function() { this._array_h.clear(); } }, module.exports = Queue;