bf283f20c4ae78bf784d8220c7515d687ea0d81cd7ebff7d9b5f9e0ee3146d6414f2c8925e211c2073c5d1dc8d0e735ac6f1a9e2d97da2987ba6c710585a12 1003 B

1234567891011121314151617181920212223242526
  1. 'use strict';
  2. var DESCRIPTORS = require('../internals/descriptors');
  3. var MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;
  4. var classof = require('../internals/classof-raw');
  5. var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
  6. var getInternalState = require('../internals/internal-state').get;
  7. var RegExpPrototype = RegExp.prototype;
  8. var $TypeError = TypeError;
  9. // `RegExp.prototype.sticky` getter
  10. // https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky
  11. if (DESCRIPTORS && MISSED_STICKY) {
  12. defineBuiltInAccessor(RegExpPrototype, 'sticky', {
  13. configurable: true,
  14. get: function sticky() {
  15. if (this === RegExpPrototype) return;
  16. // We can't use InternalStateModule.getterFor because
  17. // we don't add metadata for regexps created by a literal.
  18. if (classof(this) === 'RegExp') {
  19. return !!getInternalState(this).sticky;
  20. }
  21. throw new $TypeError('Incompatible receiver, RegExp required');
  22. }
  23. });
  24. }