21 lines
687 B
JavaScript
21 lines
687 B
JavaScript
|
'use strict';
|
||
|
var fails = require('../internals/fails');
|
||
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
||
|
var V8_VERSION = require('../internals/engine-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;
|
||
|
});
|
||
|
};
|