--- /dev/null
+'use strict';
+
+var 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, ['lol', 'miszko', 'df', 1, 3, 45, 'fef', subArr2, null],
+ "Non spreadable");
+
+ delete SubArray.prototype['@@isConcatSpreadable'];
+};