You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
1.0 KiB
26 lines
1.0 KiB
var global = require('../internals/global'); |
|
var DESCRIPTORS = require('../internals/descriptors'); |
|
var UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all'); |
|
var classof = require('../internals/classof-raw'); |
|
var defineProperty = require('../internals/object-define-property').f; |
|
var getInternalState = require('../internals/internal-state').get; |
|
|
|
var RegExpPrototype = RegExp.prototype; |
|
var TypeError = global.TypeError; |
|
|
|
// `RegExp.prototype.dotAll` getter |
|
// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall |
|
if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) { |
|
defineProperty(RegExpPrototype, 'dotAll', { |
|
configurable: true, |
|
get: function () { |
|
if (this === RegExpPrototype) return undefined; |
|
// We can't use InternalStateModule.getterFor because |
|
// we don't add metadata for regexps created by a literal. |
|
if (classof(this) === 'RegExp') { |
|
return !!getInternalState(this).dotAll; |
|
} |
|
throw TypeError('Incompatible receiver, RegExp required'); |
|
} |
|
}); |
|
}
|
|
|