function test(arr, desc) {
                desc = desc + " has species which gives an array with non-config property, validating on ";
                var error = "Cannot redefine property '1'";
                assert.throws(function () { Array.prototype.map.call(arr, function (a) { return a;}); }, TypeError, desc + "map", error);
                assert.throws(function () { Array.prototype.filter.call(arr, function (a) { return true;}); }, TypeError,desc + "filter", error);
                assert.throws(function () { Array.prototype.slice.call(arr, 0); }, TypeError, desc + "slice", error);
                assert.throws(function () { Array.prototype.concat.call(arr, [1, 2]); }, TypeError, desc + "concat", error);
            }
True is added to the array as an literal, not spreaded