| var fails = require('../internals/fails'); |
| var wellKnownSymbol = require('../internals/well-known-symbol'); |
| var V8_VERSION = require('../internals/v8-version'); |
| |
| var SPECIES = wellKnownSymbol('species'); |
| |
| module.exports = function (METHOD_NAME) { |
| // We can't use this feature detection in V8 since it causes |
| // deoptimization and serious performance degradation |
| // https://github.com/zloirock/core-js/issues/677 |
| return V8_VERSION >= 51 || !fails(function () { |
| var array = []; |
| var constructor = array.constructor = {}; |
| constructor[SPECIES] = function () { |
| return { foo: 1 }; |
| }; |
| return array[METHOD_NAME](Boolean).foo !== 1; |
| }); |
| }; |