21 lines
640 B
JavaScript
21 lines
640 B
JavaScript
|
'use strict';
|
||
|
|
||
|
var implementation = require('./implementation');
|
||
|
|
||
|
var supportsDescriptors = require('define-properties').supportsDescriptors;
|
||
|
var gOPD = Object.getOwnPropertyDescriptor;
|
||
|
var TypeErr = TypeError;
|
||
|
|
||
|
module.exports = function getPolyfill() {
|
||
|
if (!supportsDescriptors) {
|
||
|
throw new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');
|
||
|
}
|
||
|
if (/a/mig.flags === 'gim') {
|
||
|
var descriptor = gOPD(RegExp.prototype, 'flags');
|
||
|
if (descriptor && typeof descriptor.get === 'function' && typeof (/a/).dotAll === 'boolean') {
|
||
|
return descriptor.get;
|
||
|
}
|
||
|
}
|
||
|
return implementation;
|
||
|
};
|