massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / core-js / modules / es.regexp.sticky.js
1 var global = require('../internals/global');
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 defineProperty = require('../internals/object-define-property').f;
6 var getInternalState = require('../internals/internal-state').get;
7
8 var RegExpPrototype = RegExp.prototype;
9 var TypeError = global.TypeError;
10
11 // `RegExp.prototype.sticky` getter
12 // https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky
13 if (DESCRIPTORS && MISSED_STICKY) {
14   defineProperty(RegExpPrototype, 'sticky', {
15     configurable: true,
16     get: function () {
17       if (this === RegExpPrototype) return undefined;
18       // We can't use InternalStateModule.getterFor because
19       // we don't add metadata for regexps created by a literal.
20       if (classof(this) === 'RegExp') {
21         return !!getInternalState(this).sticky;
22       }
23       throw TypeError('Incompatible receiver, RegExp required');
24     }
25   });
26 }