| 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; | 
| }; |