schangxiang@126.com
2025-09-18 49a51c068d62084bc4c3e77c4be94a20de556c4a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
"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, length;
    if (!this || this === Array || !isFunction(this)) return slice.call(arguments);
    result = new this(length = arguments.length);
    for (i = 0; i < length; ++i) {
        desc.value = arguments[i];
        defineProperty(result, i, desc);
    }
    desc.value = null;
    result.length = length;
    return result;
};