shim.js 940 B

1234567891011121314151617181920212223242526272829
  1. "use strict";
  2. var isConcatSpreadable = require("es6-symbol").isConcatSpreadable
  3. , SubArray = require("../../../../array/_sub-array-dummy-safe");
  4. module.exports = function (t, a) {
  5. var arr = [1, 3, 45], x = {}, subArr, subArr2, result;
  6. a.deep(
  7. t.call(arr, "2d", x, ["ere", "fe", x], false, null),
  8. [1, 3, 45, "2d", x, "ere", "fe", x, false, null], "Plain array"
  9. );
  10. subArr = new SubArray("lol", "miszko");
  11. subArr2 = new SubArray("elo", "fol");
  12. result = t.call(subArr, "df", arr, "fef", subArr2, null);
  13. a(result instanceof SubArray, true, "Instance of subclass");
  14. a.deep(
  15. result, ["lol", "miszko", "df", 1, 3, 45, "fef", "elo", "fol", null], "Spreable by default"
  16. );
  17. SubArray.prototype[isConcatSpreadable] = false;
  18. result = t.call(subArr, "df", arr, "fef", subArr2, null);
  19. a.deep(result, [subArr, "df", 1, 3, 45, "fef", subArr2, null], "Non spreadable");
  20. delete SubArray.prototype[isConcatSpreadable];
  21. };