'use strict'; var isFunction = require('../../function/is-function') , slice = Array.prototype.slice, defineProperty = Object.defineProperty , desc = { configurable: true, enumerable: true, writable: true, value: null }; module.exports = function (/*…items*/) { var result, i, l; if (!this || (this === Array) || !isFunction(this)) return slice.call(arguments); result = new this(l = arguments.length); for (i = 0; i < l; ++i) { desc.value = arguments[i]; defineProperty(result, i, desc); } desc.value = null; result.length = l; return result; };