diff --git a/lib/6to5/transformation/templates/to-array.js b/lib/6to5/transformation/templates/to-array.js index c479b65446..820a6f06da 100644 --- a/lib/6to5/transformation/templates/to-array.js +++ b/lib/6to5/transformation/templates/to-array.js @@ -1,3 +1,9 @@ (function (arr) { - return Array.isArray(arr) ? arr : Array.from(arr); + if (Array.isArray(arr)) { + var arr2 = []; + for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); + return arr2; + } else { + return Array.from(arr); + } }); diff --git a/test/fixtures/transformation/es6-destructuring/spread/expected.js b/test/fixtures/transformation/es6-destructuring/spread/expected.js index d7543faac6..b170df5f45 100644 --- a/test/fixtures/transformation/es6-destructuring/spread/expected.js +++ b/test/fixtures/transformation/es6-destructuring/spread/expected.js @@ -1,6 +1,6 @@ "use strict"; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; var isSorted = function (_ref) { var _ref2 = _toArray(_ref); @@ -12,4 +12,4 @@ var isSorted = function (_ref) { if (!zs.length) return true; if (y > x) return isSorted(zs); return false; -}; \ No newline at end of file +}; diff --git a/test/fixtures/transformation/es6-spread/array-literal-first/expected.js b/test/fixtures/transformation/es6-spread/array-literal-first/expected.js index 4f599ff941..9e6356e2ca 100644 --- a/test/fixtures/transformation/es6-spread/array-literal-first/expected.js +++ b/test/fixtures/transformation/es6-spread/array-literal-first/expected.js @@ -1,5 +1,5 @@ "use strict"; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; -var lyrics = [].concat(_toArray(parts), ["head", "and", "toes"]); \ No newline at end of file +var lyrics = [].concat(_toArray(parts), ["head", "and", "toes"]); diff --git a/test/fixtures/transformation/es6-spread/array-literal-middle/expected.js b/test/fixtures/transformation/es6-spread/array-literal-middle/expected.js index 74fb15b350..7c3bbd996a 100644 --- a/test/fixtures/transformation/es6-spread/array-literal-middle/expected.js +++ b/test/fixtures/transformation/es6-spread/array-literal-middle/expected.js @@ -1,5 +1,5 @@ "use strict"; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; -var a = [b].concat(_toArray(c), [d]); \ No newline at end of file +var a = [b].concat(_toArray(c), [d]); diff --git a/test/fixtures/transformation/es6-spread/array-literal-multiple/expected.js b/test/fixtures/transformation/es6-spread/array-literal-multiple/expected.js index 5ddf59335e..f3876c1bba 100644 --- a/test/fixtures/transformation/es6-spread/array-literal-multiple/expected.js +++ b/test/fixtures/transformation/es6-spread/array-literal-multiple/expected.js @@ -1,5 +1,5 @@ "use strict"; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; -var a = [b].concat(_toArray(c), [d, e], _toArray(f)); \ No newline at end of file +var a = [b].concat(_toArray(c), [d, e], _toArray(f)); diff --git a/test/fixtures/transformation/es6-spread/array-literals/expected.js b/test/fixtures/transformation/es6-spread/array-literals/expected.js index 754ab5115c..96cbadfada 100644 --- a/test/fixtures/transformation/es6-spread/array-literals/expected.js +++ b/test/fixtures/transformation/es6-spread/array-literals/expected.js @@ -1,5 +1,5 @@ "use strict"; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; -var lyrics = ["head", "and", "toes"].concat(_toArray(parts)); \ No newline at end of file +var lyrics = ["head", "and", "toes"].concat(_toArray(parts)); diff --git a/test/fixtures/transformation/es6-spread/contexted-computed-method-call-multiple-args/expected.js b/test/fixtures/transformation/es6-spread/contexted-computed-method-call-multiple-args/expected.js index fe2844f752..f107616b53 100644 --- a/test/fixtures/transformation/es6-spread/contexted-computed-method-call-multiple-args/expected.js +++ b/test/fixtures/transformation/es6-spread/contexted-computed-method-call-multiple-args/expected.js @@ -1,6 +1,6 @@ "use strict"; var _obj; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; -(_obj = obj)[method].apply(_obj, [foo, bar].concat(_toArray(args))); \ No newline at end of file +(_obj = obj)[method].apply(_obj, [foo, bar].concat(_toArray(args))); diff --git a/test/fixtures/transformation/es6-spread/contexted-computed-method-call-single-arg/expected.js b/test/fixtures/transformation/es6-spread/contexted-computed-method-call-single-arg/expected.js index f87fa8da5c..359469abac 100644 --- a/test/fixtures/transformation/es6-spread/contexted-computed-method-call-single-arg/expected.js +++ b/test/fixtures/transformation/es6-spread/contexted-computed-method-call-single-arg/expected.js @@ -1,6 +1,6 @@ "use strict"; var _obj; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; -(_obj = obj)[method].apply(_obj, _toArray(args)); \ No newline at end of file +(_obj = obj)[method].apply(_obj, _toArray(args)); diff --git a/test/fixtures/transformation/es6-spread/contexted-method-call-multiple-args/expected.js b/test/fixtures/transformation/es6-spread/contexted-method-call-multiple-args/expected.js index 5fc609a79c..e4f00193a6 100644 --- a/test/fixtures/transformation/es6-spread/contexted-method-call-multiple-args/expected.js +++ b/test/fixtures/transformation/es6-spread/contexted-method-call-multiple-args/expected.js @@ -1,7 +1,7 @@ "use strict"; var _foob, _foob$test; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; (_foob = foob).add.apply(_foob, [foo, bar].concat(_toArray(numbers))); -(_foob$test = foob.test).add.apply(_foob$test, [foo, bar].concat(_toArray(numbers))); \ No newline at end of file +(_foob$test = foob.test).add.apply(_foob$test, [foo, bar].concat(_toArray(numbers))); diff --git a/test/fixtures/transformation/es6-spread/contexted-method-call-single-arg/expected.js b/test/fixtures/transformation/es6-spread/contexted-method-call-single-arg/expected.js index fe958b7719..0237ae9cea 100644 --- a/test/fixtures/transformation/es6-spread/contexted-method-call-single-arg/expected.js +++ b/test/fixtures/transformation/es6-spread/contexted-method-call-single-arg/expected.js @@ -1,7 +1,7 @@ "use strict"; var _foob, _foob$test; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; (_foob = foob).add.apply(_foob, _toArray(numbers)); -(_foob$test = foob.test).add.apply(_foob$test, _toArray(numbers)); \ No newline at end of file +(_foob$test = foob.test).add.apply(_foob$test, _toArray(numbers)); diff --git a/test/fixtures/transformation/es6-spread/method-call-first/expected.js b/test/fixtures/transformation/es6-spread/method-call-first/expected.js index ba8ad3b956..50acda90ed 100644 --- a/test/fixtures/transformation/es6-spread/method-call-first/expected.js +++ b/test/fixtures/transformation/es6-spread/method-call-first/expected.js @@ -1,5 +1,5 @@ "use strict"; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; -add.apply(undefined, _toArray(numbers).concat([foo, bar])); \ No newline at end of file +add.apply(undefined, _toArray(numbers).concat([foo, bar])); diff --git a/test/fixtures/transformation/es6-spread/method-call-middle/expected.js b/test/fixtures/transformation/es6-spread/method-call-middle/expected.js index d2a846d705..a2975e50c6 100644 --- a/test/fixtures/transformation/es6-spread/method-call-middle/expected.js +++ b/test/fixtures/transformation/es6-spread/method-call-middle/expected.js @@ -1,5 +1,5 @@ "use strict"; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; -add.apply(undefined, [foo].concat(_toArray(numbers), [bar])); \ No newline at end of file +add.apply(undefined, [foo].concat(_toArray(numbers), [bar])); diff --git a/test/fixtures/transformation/es6-spread/method-call-multiple-args/expected.js b/test/fixtures/transformation/es6-spread/method-call-multiple-args/expected.js index c256c920aa..3e0d49d9a3 100644 --- a/test/fixtures/transformation/es6-spread/method-call-multiple-args/expected.js +++ b/test/fixtures/transformation/es6-spread/method-call-multiple-args/expected.js @@ -1,5 +1,5 @@ "use strict"; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; -add.apply(undefined, [foo, bar].concat(_toArray(numbers))); \ No newline at end of file +add.apply(undefined, [foo, bar].concat(_toArray(numbers))); diff --git a/test/fixtures/transformation/es6-spread/method-call-multiple/expected.js b/test/fixtures/transformation/es6-spread/method-call-multiple/expected.js index 1ec67879ae..e57d5f4cc7 100644 --- a/test/fixtures/transformation/es6-spread/method-call-multiple/expected.js +++ b/test/fixtures/transformation/es6-spread/method-call-multiple/expected.js @@ -1,5 +1,5 @@ "use strict"; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; -add.apply(undefined, [foo].concat(_toArray(numbers), [bar, what], _toArray(test))); \ No newline at end of file +add.apply(undefined, [foo].concat(_toArray(numbers), [bar, what], _toArray(test))); diff --git a/test/fixtures/transformation/es6-spread/method-call-single-arg/expected.js b/test/fixtures/transformation/es6-spread/method-call-single-arg/expected.js index 374feff578..dad1dd21b6 100644 --- a/test/fixtures/transformation/es6-spread/method-call-single-arg/expected.js +++ b/test/fixtures/transformation/es6-spread/method-call-single-arg/expected.js @@ -1,5 +1,5 @@ "use strict"; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; -add.apply(undefined, _toArray(numbers)); \ No newline at end of file +add.apply(undefined, _toArray(numbers)); diff --git a/test/fixtures/transformation/es6-spread/new-expression/expected.js b/test/fixtures/transformation/es6-spread/new-expression/expected.js index b421806bf8..10889ab673 100644 --- a/test/fixtures/transformation/es6-spread/new-expression/expected.js +++ b/test/fixtures/transformation/es6-spread/new-expression/expected.js @@ -2,7 +2,7 @@ var _applyConstructor = function (Constructor, args) { var instance = Object.create(Constructor.prototype); var result = Constructor.apply(instance, args); return result != null && (typeof result == "object" || typeof result == "function") ? result : instance; }; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; _applyConstructor(Numbers, _toArray(nums)); -_applyConstructor(Numbers, [1].concat(_toArray(nums))); \ No newline at end of file +_applyConstructor(Numbers, [1].concat(_toArray(nums))); diff --git a/test/fixtures/transformation/es6-spread/single/expected.js b/test/fixtures/transformation/es6-spread/single/expected.js index 374e9cbd25..7005e8737a 100644 --- a/test/fixtures/transformation/es6-spread/single/expected.js +++ b/test/fixtures/transformation/es6-spread/single/expected.js @@ -1,5 +1,5 @@ "use strict"; -var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; +var _toArray = function (arr) { if (Array.isArray(arr)) { var arr2 = []; for (var i = 0; i < arr.length; i++) arr2.push(arr[i]); return arr2; } else { return Array.from(arr); } }; -[].concat(_toArray(foo)); \ No newline at end of file +[].concat(_toArray(foo));