Opal-Estate-Pro/node_modules/es5-ext/test/array/#/concat/shim.js
2019-09-13 11:27:52 +07:00

30 lines
940 B
JavaScript

"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];
};