var isObject = require('./_is-object'); | |
var isArray = require('./_is-array'); | |
var SPECIES = require('./_wks')('species'); | |
module.exports = function (original) { | |
var C; | |
if (isArray(original)) { | |
C = original.constructor; | |
// cross-realm fallback | |
if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; | |
if (isObject(C)) { | |
C = C[SPECIES]; | |
if (C === null) C = undefined; | |
} | |
} return C === undefined ? Array : C; | |
}; |