22 lines
573 B
JavaScript
22 lines
573 B
JavaScript
|
var fails = require('../internals/fails');
|
||
|
|
||
|
var replacement = /#|\.prototype\./;
|
||
|
|
||
|
var isForced = function (feature, detection) {
|
||
|
var value = data[normalize(feature)];
|
||
|
return value == POLYFILL ? true
|
||
|
: value == NATIVE ? false
|
||
|
: typeof detection == 'function' ? fails(detection)
|
||
|
: !!detection;
|
||
|
};
|
||
|
|
||
|
var normalize = isForced.normalize = function (string) {
|
||
|
return String(string).replace(replacement, '.').toLowerCase();
|
||
|
};
|
||
|
|
||
|
var data = isForced.data = {};
|
||
|
var NATIVE = isForced.NATIVE = 'N';
|
||
|
var POLYFILL = isForced.POLYFILL = 'P';
|
||
|
|
||
|
module.exports = isForced;
|