| 'use strict'; | 
| var globalThis = require('../internals/global-this'); | 
| var DESCRIPTORS = require('../internals/descriptors'); | 
| var defineBuiltInAccessor = require('../internals/define-built-in-accessor'); | 
| var regExpFlags = require('../internals/regexp-flags'); | 
| var fails = require('../internals/fails'); | 
|   | 
| // babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError | 
| var RegExp = globalThis.RegExp; | 
| var RegExpPrototype = RegExp.prototype; | 
|   | 
| var FORCED = DESCRIPTORS && fails(function () { | 
|   var INDICES_SUPPORT = true; | 
|   try { | 
|     RegExp('.', 'd'); | 
|   } catch (error) { | 
|     INDICES_SUPPORT = false; | 
|   } | 
|   | 
|   var O = {}; | 
|   // modern V8 bug | 
|   var calls = ''; | 
|   var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy'; | 
|   | 
|   var addGetter = function (key, chr) { | 
|     // eslint-disable-next-line es/no-object-defineproperty -- safe | 
|     Object.defineProperty(O, key, { get: function () { | 
|       calls += chr; | 
|       return true; | 
|     } }); | 
|   }; | 
|   | 
|   var pairs = { | 
|     dotAll: 's', | 
|     global: 'g', | 
|     ignoreCase: 'i', | 
|     multiline: 'm', | 
|     sticky: 'y' | 
|   }; | 
|   | 
|   if (INDICES_SUPPORT) pairs.hasIndices = 'd'; | 
|   | 
|   for (var key in pairs) addGetter(key, pairs[key]); | 
|   | 
|   // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe | 
|   var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O); | 
|   | 
|   return result !== expected || calls !== expected; | 
| }); | 
|   | 
| // `RegExp.prototype.flags` getter | 
| // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags | 
| if (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', { | 
|   configurable: true, | 
|   get: regExpFlags | 
| }); |