+
+ concat(...items: (T | ConcatArray<T>)[]): T[] {
+ if (this.length + items.length > this.size) {
+ super.splice(0, (this.length + items.length) - this.size);
+ }
+ return super.concat(items as T[]);
+ }
+
+ splice(start: number, deleteCount?: number, ...items: T[]): T[] {
+ this.push(...items);
+ return super.splice(start, deleteCount);
+ }