123456789101112131415161718192021222324252627282930313233343536373839 |
- 'use strict';
- var implementation = require('./implementation');
- var supportsDescriptors = require('define-properties').supportsDescriptors;
- var $gOPD = Object.getOwnPropertyDescriptor;
- module.exports = function getPolyfill() {
- if (supportsDescriptors && (/a/mig).flags === 'gim') {
- var descriptor = $gOPD(RegExp.prototype, 'flags');
- if (
- descriptor
- && typeof descriptor.get === 'function'
- && 'dotAll' in RegExp.prototype
- && 'hasIndices' in RegExp.prototype
- ) {
- /* eslint getter-return: 0 */
- var calls = '';
- var o = {};
- Object.defineProperty(o, 'hasIndices', {
- get: function () {
- calls += 'd';
- }
- });
- Object.defineProperty(o, 'sticky', {
- get: function () {
- calls += 'y';
- }
- });
- descriptor.get.call(o);
- if (calls === 'dy') {
- return descriptor.get;
- }
- }
- }
- return implementation;
- };
|