'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 
 | 
}); 
 |