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