diff --git a/tslib.d.ts b/tslib.d.ts index a6aea8b..76e89d1 100644 --- a/tslib.d.ts +++ b/tslib.d.ts @@ -27,7 +27,7 @@ export declare function __read(o: any, n?: number): any[]; export declare function __spread(...args: any[][]): any[]; /** @deprecated since TypeScript 4.2 */ export declare function __spreadArrays(...args: any[][]): any[]; -export declare function __spreadArray(to: any[], from: any[]): any[]; +export declare function __spreadArray(to: any[], from: any[], pack?: boolean): any[]; export declare function __await(v: any): any; export declare function __asyncGenerator(thisArg: any, _arguments: any, generator: Function): any; export declare function __asyncDelegator(o: any): any; diff --git a/tslib.es6.js b/tslib.es6.js index 5de1e31..93311d3 100644 --- a/tslib.es6.js +++ b/tslib.es6.js @@ -162,10 +162,14 @@ export function __spreadArrays() { return r; } -export function __spreadArray(to, from) { - for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) - to[j] = from[i]; - return to; +export function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || from); } export function __await(v) { diff --git a/tslib.js b/tslib.js index e462859..62639f0 100644 --- a/tslib.js +++ b/tslib.js @@ -203,10 +203,14 @@ var __createBinding; return r; }; - __spreadArray = function (to, from) { - for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) - to[j] = from[i]; - return to; + __spreadArray = function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || from); }; __await = function (v) {