core-js 3.37.1 → 3.38.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/actual/promise/index.js +1 -0
  2. package/actual/promise/try.js +13 -0
  3. package/actual/regexp/escape.js +5 -0
  4. package/actual/regexp/index.js +1 -0
  5. package/actual/typed-array/index.js +2 -0
  6. package/actual/typed-array/methods.js +2 -0
  7. package/actual/typed-array/set-from-base64.js +2 -0
  8. package/actual/typed-array/set-from-hex.js +2 -0
  9. package/es/global-this.js +1 -1
  10. package/es/typed-array/float32-array.js +1 -1
  11. package/es/typed-array/float64-array.js +1 -1
  12. package/es/typed-array/index.js +1 -1
  13. package/es/typed-array/int16-array.js +1 -1
  14. package/es/typed-array/int32-array.js +1 -1
  15. package/es/typed-array/int8-array.js +1 -1
  16. package/es/typed-array/uint16-array.js +1 -1
  17. package/es/typed-array/uint32-array.js +1 -1
  18. package/es/typed-array/uint8-array.js +1 -1
  19. package/es/typed-array/uint8-clamped-array.js +1 -1
  20. package/features/typed-array/set-from-base64.js +2 -0
  21. package/features/typed-array/set-from-hex.js +2 -0
  22. package/full/index.js +2 -0
  23. package/full/promise/index.js +0 -1
  24. package/full/promise/try.js +2 -11
  25. package/full/regexp/escape.js +2 -3
  26. package/full/regexp/index.js +0 -1
  27. package/full/typed-array/set-from-base64.js +4 -0
  28. package/full/typed-array/set-from-hex.js +4 -0
  29. package/internals/array-buffer-byte-length.js +5 -3
  30. package/internals/array-buffer-is-detached.js +6 -2
  31. package/internals/array-buffer-not-detached.js +9 -0
  32. package/internals/array-buffer-transfer.js +6 -7
  33. package/internals/array-buffer-view-core.js +14 -14
  34. package/internals/array-buffer.js +7 -7
  35. package/internals/array-method-has-species-support.js +1 -1
  36. package/internals/async-iterator-prototype.js +3 -3
  37. package/internals/collection-strong.js +7 -7
  38. package/internals/collection-weak.js +2 -2
  39. package/internals/collection.js +2 -2
  40. package/internals/define-global-property.js +3 -3
  41. package/internals/detach-transferable.js +6 -6
  42. package/internals/document-create-element.js +2 -2
  43. package/internals/entry-unbind.js +2 -2
  44. package/internals/entry-virtual.js +2 -2
  45. package/internals/{engine-ff-version.js → environment-ff-version.js} +1 -1
  46. package/internals/{engine-is-ie-or-edge.js → environment-is-ie-or-edge.js} +1 -1
  47. package/internals/{engine-is-ios-pebble.js → environment-is-ios-pebble.js} +1 -1
  48. package/internals/{engine-is-ios.js → environment-is-ios.js} +1 -1
  49. package/internals/environment-is-node.js +4 -0
  50. package/internals/{engine-is-webos-webkit.js → environment-is-webos-webkit.js} +1 -1
  51. package/internals/environment-user-agent.js +7 -0
  52. package/internals/{engine-v8-version.js → environment-v8-version.js} +4 -4
  53. package/internals/{engine-webkit-version.js → environment-webkit-version.js} +1 -1
  54. package/internals/environment.js +21 -0
  55. package/internals/export.js +4 -4
  56. package/internals/get-built-in-node-module.js +15 -0
  57. package/internals/get-built-in-prototype-method.js +2 -2
  58. package/internals/get-built-in.js +2 -2
  59. package/internals/ieee754.js +1 -1
  60. package/internals/internal-state.js +3 -3
  61. package/internals/microtask.js +10 -10
  62. package/internals/number-is-finite.js +2 -2
  63. package/internals/number-parse-float.js +3 -3
  64. package/internals/number-parse-int.js +3 -3
  65. package/internals/object-create.js +2 -1
  66. package/internals/object-prototype-accessors-forced.js +5 -4
  67. package/internals/path.js +2 -2
  68. package/internals/promise-constructor-detection.js +5 -6
  69. package/internals/promise-native-constructor.js +2 -2
  70. package/internals/regexp-sticky-helpers.js +2 -2
  71. package/internals/regexp-unsupported-dot-all.js +2 -2
  72. package/internals/regexp-unsupported-ncg.js +2 -2
  73. package/internals/safe-get-built-in.js +3 -3
  74. package/internals/schedulers-fix.js +6 -6
  75. package/internals/shared-store.js +3 -3
  76. package/internals/string-pad-webkit-bug.js +1 -1
  77. package/internals/structured-clone-proper-transfer.js +5 -7
  78. package/internals/symbol-constructor-detection.js +3 -3
  79. package/internals/task.js +16 -16
  80. package/internals/typed-array-constructor.js +3 -3
  81. package/internals/typed-array-constructors-require-wrappers.js +4 -4
  82. package/internals/uint8-from-base64.js +156 -0
  83. package/internals/uint8-from-hex.js +26 -0
  84. package/internals/url-constructor-detection.js +5 -5
  85. package/internals/weak-map-basic-detection.js +2 -2
  86. package/internals/well-known-symbol.js +2 -2
  87. package/modules/es.array-buffer.constructor.js +2 -2
  88. package/modules/es.array.concat.js +1 -1
  89. package/modules/es.array.iterator.js +1 -1
  90. package/modules/es.array.reduce-right.js +2 -2
  91. package/modules/es.array.reduce.js +2 -2
  92. package/modules/es.array.sort.js +4 -4
  93. package/modules/es.error.cause.js +2 -2
  94. package/modules/es.global-this.js +3 -3
  95. package/modules/es.json.to-string-tag.js +2 -2
  96. package/modules/es.number.constructor.js +3 -3
  97. package/modules/es.number.to-exponential.js +2 -6
  98. package/modules/es.object.group-by.js +1 -1
  99. package/modules/es.promise.constructor.js +11 -11
  100. package/modules/es.reflect.to-string-tag.js +2 -2
  101. package/modules/es.regexp.constructor.js +10 -5
  102. package/modules/es.regexp.flags.js +2 -2
  103. package/modules/es.string.at-alternative.js +1 -1
  104. package/modules/es.string.replace-all.js +3 -7
  105. package/modules/es.string.to-well-formed.js +1 -1
  106. package/modules/es.symbol.constructor.js +6 -6
  107. package/modules/es.symbol.description.js +3 -2
  108. package/modules/es.typed-array.iterator.js +2 -2
  109. package/modules/es.typed-array.set.js +3 -3
  110. package/modules/es.typed-array.sort.js +6 -6
  111. package/modules/es.typed-array.to-locale-string.js +2 -2
  112. package/modules/es.typed-array.to-string.js +2 -2
  113. package/modules/es.weak-map.constructor.js +2 -2
  114. package/modules/esnext.async-disposable-stack.constructor.js +2 -2
  115. package/modules/esnext.disposable-stack.constructor.js +2 -2
  116. package/modules/esnext.iterator.constructor.js +2 -2
  117. package/modules/esnext.json.parse.js +7 -7
  118. package/modules/esnext.json.raw-json.js +5 -3
  119. package/modules/esnext.observable.constructor.js +5 -5
  120. package/modules/esnext.promise.try.js +14 -2
  121. package/modules/esnext.regexp.escape.js +56 -11
  122. package/modules/esnext.string.dedent.js +1 -0
  123. package/modules/esnext.suppressed-error.constructor.js +1 -1
  124. package/modules/esnext.symbol.async-dispose.js +2 -2
  125. package/modules/esnext.symbol.dispose.js +2 -2
  126. package/modules/esnext.uint8-array.from-base64.js +6 -65
  127. package/modules/esnext.uint8-array.from-hex.js +4 -19
  128. package/modules/esnext.uint8-array.set-from-base64.js +19 -0
  129. package/modules/esnext.uint8-array.set-from-hex.js +19 -0
  130. package/modules/esnext.uint8-array.to-base64.js +7 -5
  131. package/modules/esnext.uint8-array.to-hex.js +4 -3
  132. package/modules/web.atob.js +2 -2
  133. package/modules/web.btoa.js +2 -2
  134. package/modules/web.clear-immediate.js +2 -2
  135. package/modules/web.dom-collections.for-each.js +2 -2
  136. package/modules/web.dom-collections.iterator.js +2 -2
  137. package/modules/web.dom-exception.constructor.js +2 -2
  138. package/modules/web.dom-exception.stack.js +2 -2
  139. package/modules/web.queue-microtask.js +1 -1
  140. package/modules/web.self.js +8 -8
  141. package/modules/web.set-immediate.js +3 -3
  142. package/modules/web.set-interval.js +3 -3
  143. package/modules/web.set-timeout.js +3 -3
  144. package/modules/web.structured-clone.js +18 -18
  145. package/modules/web.url-search-params.constructor.js +120 -25
  146. package/modules/web.url.constructor.js +14 -12
  147. package/package.json +4 -2
  148. package/proposals/array-buffer-base64.js +2 -0
  149. package/proposals/global-this.js +2 -2
  150. package/stage/2.7.js +0 -1
  151. package/stage/2.js +0 -1
  152. package/stage/3.js +2 -0
  153. package/internals/engine-is-browser.js +0 -7
  154. package/internals/engine-is-bun.js +0 -3
  155. package/internals/engine-is-deno.js +0 -3
  156. package/internals/engine-is-node.js +0 -5
  157. package/internals/engine-user-agent.js +0 -2
  158. package/internals/try-node-require.js +0 -9
  159. /package/internals/{global.js → global-this.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var global = require('../internals/global');
3
+ var globalThis = require('../internals/global-this');
4
4
  var call = require('../internals/function-call');
5
5
  var DESCRIPTORS = require('../internals/descriptors');
6
6
  var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');
@@ -38,7 +38,7 @@ var setInternalState = InternalStateModule.set;
38
38
  var enforceInternalState = InternalStateModule.enforce;
39
39
  var nativeDefineProperty = definePropertyModule.f;
40
40
  var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
41
- var RangeError = global.RangeError;
41
+ var RangeError = globalThis.RangeError;
42
42
  var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
43
43
  var ArrayBufferPrototype = ArrayBuffer.prototype;
44
44
  var DataView = ArrayBufferModule.DataView;
@@ -116,7 +116,7 @@ if (DESCRIPTORS) {
116
116
  var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';
117
117
  var GETTER = 'get' + TYPE;
118
118
  var SETTER = 'set' + TYPE;
119
- var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];
119
+ var NativeTypedArrayConstructor = globalThis[CONSTRUCTOR_NAME];
120
120
  var TypedArrayConstructor = NativeTypedArrayConstructor;
121
121
  var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;
122
122
  var exported = {};
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
- /* eslint-disable no-new -- required for testing */
3
- var global = require('../internals/global');
2
+ /* eslint-disable no-new, sonar/inconsistent-function-call -- required for testing */
3
+ var globalThis = require('../internals/global-this');
4
4
  var fails = require('../internals/fails');
5
5
  var checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');
6
6
  var NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;
7
7
 
8
- var ArrayBuffer = global.ArrayBuffer;
9
- var Int8Array = global.Int8Array;
8
+ var ArrayBuffer = globalThis.ArrayBuffer;
9
+ var Int8Array = globalThis.Int8Array;
10
10
 
11
11
  module.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {
12
12
  Int8Array(1);
@@ -0,0 +1,156 @@
1
+ 'use strict';
2
+ var globalThis = require('../internals/global-this');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
4
+ var anObjectOrUndefined = require('../internals/an-object-or-undefined');
5
+ var aString = require('../internals/a-string');
6
+ var hasOwn = require('../internals/has-own-property');
7
+ var base64Map = require('../internals/base64-map');
8
+ var getAlphabetOption = require('../internals/get-alphabet-option');
9
+ var notDetached = require('../internals/array-buffer-not-detached');
10
+
11
+ var base64Alphabet = base64Map.c2i;
12
+ var base64UrlAlphabet = base64Map.c2iUrl;
13
+
14
+ var SyntaxError = globalThis.SyntaxError;
15
+ var TypeError = globalThis.TypeError;
16
+ var at = uncurryThis(''.charAt);
17
+
18
+ var skipAsciiWhitespace = function (string, index) {
19
+ var length = string.length;
20
+ for (;index < length; index++) {
21
+ var chr = at(string, index);
22
+ if (chr !== ' ' && chr !== '\t' && chr !== '\n' && chr !== '\f' && chr !== '\r') break;
23
+ } return index;
24
+ };
25
+
26
+ var decodeBase64Chunk = function (chunk, alphabet, throwOnExtraBits) {
27
+ var chunkLength = chunk.length;
28
+
29
+ if (chunkLength < 4) {
30
+ chunk += chunkLength === 2 ? 'AA' : 'A';
31
+ }
32
+
33
+ var triplet = (alphabet[at(chunk, 0)] << 18)
34
+ + (alphabet[at(chunk, 1)] << 12)
35
+ + (alphabet[at(chunk, 2)] << 6)
36
+ + alphabet[at(chunk, 3)];
37
+
38
+ var chunkBytes = [
39
+ (triplet >> 16) & 255,
40
+ (triplet >> 8) & 255,
41
+ triplet & 255
42
+ ];
43
+
44
+ if (chunkLength === 2) {
45
+ if (throwOnExtraBits && chunkBytes[1] !== 0) {
46
+ throw new SyntaxError('Extra bits');
47
+ }
48
+ return [chunkBytes[0]];
49
+ }
50
+
51
+ if (chunkLength === 3) {
52
+ if (throwOnExtraBits && chunkBytes[2] !== 0) {
53
+ throw new SyntaxError('Extra bits');
54
+ }
55
+ return [chunkBytes[0], chunkBytes[1]];
56
+ }
57
+
58
+ return chunkBytes;
59
+ };
60
+
61
+ var writeBytes = function (bytes, elements, written) {
62
+ var elementsLength = elements.length;
63
+ for (var index = 0; index < elementsLength; index++) {
64
+ bytes[written + index] = elements[index];
65
+ }
66
+ return written + elementsLength;
67
+ };
68
+
69
+ /* eslint-disable max-statements, max-depth -- TODO */
70
+ module.exports = function (string, options, into, maxLength) {
71
+ aString(string);
72
+ anObjectOrUndefined(options);
73
+ var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;
74
+ var lastChunkHandling = options ? options.lastChunkHandling : undefined;
75
+
76
+ if (lastChunkHandling === undefined) lastChunkHandling = 'loose';
77
+
78
+ if (lastChunkHandling !== 'loose' && lastChunkHandling !== 'strict' && lastChunkHandling !== 'stop-before-partial') {
79
+ throw new TypeError('Incorrect `lastChunkHandling` option');
80
+ }
81
+
82
+ if (into) notDetached(into.buffer);
83
+
84
+ var bytes = into || [];
85
+ var written = 0;
86
+ var read = 0;
87
+ var chunk = '';
88
+ var index = 0;
89
+
90
+ if (maxLength) while (true) {
91
+ index = skipAsciiWhitespace(string, index);
92
+ if (index === string.length) {
93
+ if (chunk.length > 0) {
94
+ if (lastChunkHandling === 'stop-before-partial') {
95
+ break;
96
+ }
97
+ if (lastChunkHandling === 'loose') {
98
+ if (chunk.length === 1) {
99
+ throw new SyntaxError('Malformed padding: exactly one additional character');
100
+ }
101
+ written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);
102
+ } else {
103
+ throw new SyntaxError('Missing padding');
104
+ }
105
+ }
106
+ read = string.length;
107
+ break;
108
+ }
109
+ var chr = at(string, index);
110
+ ++index;
111
+ if (chr === '=') {
112
+ if (chunk.length < 2) {
113
+ throw new SyntaxError('Padding is too early');
114
+ }
115
+ index = skipAsciiWhitespace(string, index);
116
+ if (chunk.length === 2) {
117
+ if (index === string.length) {
118
+ if (lastChunkHandling === 'stop-before-partial') {
119
+ break;
120
+ }
121
+ throw new SyntaxError('Malformed padding: only one =');
122
+ }
123
+ if (at(string, index) === '=') {
124
+ ++index;
125
+ index = skipAsciiWhitespace(string, index);
126
+ }
127
+ }
128
+ if (index < string.length) {
129
+ throw new SyntaxError('Unexpected character after padding');
130
+ }
131
+ written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, lastChunkHandling === 'strict'), written);
132
+ read = string.length;
133
+ break;
134
+ }
135
+ if (!hasOwn(alphabet, chr)) {
136
+ throw new SyntaxError('Unexpected character');
137
+ }
138
+ var remainingBytes = maxLength - written;
139
+ if (remainingBytes === 1 && chunk.length === 2 || remainingBytes === 2 && chunk.length === 3) {
140
+ // special case: we can fit exactly the number of bytes currently represented by chunk, so we were just checking for `=`
141
+ break;
142
+ }
143
+
144
+ chunk += chr;
145
+ if (chunk.length === 4) {
146
+ written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);
147
+ chunk = '';
148
+ read = index;
149
+ if (written === maxLength) {
150
+ break;
151
+ }
152
+ }
153
+ }
154
+
155
+ return { bytes: bytes, read: read, written: written };
156
+ };
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+ var globalThis = require('../internals/global-this');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
4
+
5
+ var Uint8Array = globalThis.Uint8Array;
6
+ var SyntaxError = globalThis.SyntaxError;
7
+ var parseInt = globalThis.parseInt;
8
+ var min = Math.min;
9
+ var NOT_HEX = /[^\da-f]/i;
10
+ var exec = uncurryThis(NOT_HEX.exec);
11
+ var stringSlice = uncurryThis(''.slice);
12
+
13
+ module.exports = function (string, into) {
14
+ var stringLength = string.length;
15
+ if (stringLength % 2 !== 0) throw new SyntaxError('String should be an even number of characters');
16
+ var maxLength = into ? min(into.length, stringLength / 2) : stringLength / 2;
17
+ var bytes = into || new Uint8Array(maxLength);
18
+ var read = 0;
19
+ var written = 0;
20
+ while (written < maxLength) {
21
+ var hexits = stringSlice(string, read, read += 2);
22
+ if (exec(NOT_HEX, hexits)) throw new SyntaxError('String should only contain hex characters');
23
+ bytes[written++] = parseInt(hexits, 16);
24
+ }
25
+ return { bytes: bytes, read: read };
26
+ };
@@ -8,7 +8,7 @@ var ITERATOR = wellKnownSymbol('iterator');
8
8
 
9
9
  module.exports = !fails(function () {
10
10
  // eslint-disable-next-line unicorn/relative-url-style -- required for testing
11
- var url = new URL('b?a=1&b=2&c=3', 'http://a');
11
+ var url = new URL('b?a=1&b=2&c=3', 'https://a');
12
12
  var params = url.searchParams;
13
13
  var params2 = new URLSearchParams('a=1&a=2&b=3');
14
14
  var result = '';
@@ -24,7 +24,7 @@ module.exports = !fails(function () {
24
24
  return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))
25
25
  || (!params.size && (IS_PURE || !DESCRIPTORS))
26
26
  || !params.sort
27
- || url.href !== 'http://a/c%20d?a=1&c=3'
27
+ || url.href !== 'https://a/c%20d?a=1&c=3'
28
28
  || params.get('c') !== '3'
29
29
  || String(new URLSearchParams('?a=1')) !== 'a=1'
30
30
  || !params[ITERATOR]
@@ -32,11 +32,11 @@ module.exports = !fails(function () {
32
32
  || new URL('https://a@b').username !== 'a'
33
33
  || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'
34
34
  // not punycoded in Edge
35
- || new URL('http://тест').host !== 'xn--e1aybc'
35
+ || new URL('https://тест').host !== 'xn--e1aybc'
36
36
  // not escaped in Chrome 62-
37
- || new URL('http://a#б').hash !== '#%D0%B1'
37
+ || new URL('https://a#б').hash !== '#%D0%B1'
38
38
  // fails in Chrome 66-
39
39
  || result !== 'a1c3'
40
40
  // throws in Safari
41
- || new URL('http://x', undefined).host !== 'x';
41
+ || new URL('https://x', undefined).host !== 'x';
42
42
  });
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
- var global = require('../internals/global');
2
+ var globalThis = require('../internals/global-this');
3
3
  var isCallable = require('../internals/is-callable');
4
4
 
5
- var WeakMap = global.WeakMap;
5
+ var WeakMap = globalThis.WeakMap;
6
6
 
7
7
  module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
- var global = require('../internals/global');
2
+ var globalThis = require('../internals/global-this');
3
3
  var shared = require('../internals/shared');
4
4
  var hasOwn = require('../internals/has-own-property');
5
5
  var uid = require('../internals/uid');
6
6
  var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');
7
7
  var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');
8
8
 
9
- var Symbol = global.Symbol;
9
+ var Symbol = globalThis.Symbol;
10
10
  var WellKnownSymbolsStore = shared('wks');
11
11
  var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;
12
12
 
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var global = require('../internals/global');
3
+ var globalThis = require('../internals/global-this');
4
4
  var arrayBufferModule = require('../internals/array-buffer');
5
5
  var setSpecies = require('../internals/set-species');
6
6
 
7
7
  var ARRAY_BUFFER = 'ArrayBuffer';
8
8
  var ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];
9
- var NativeArrayBuffer = global[ARRAY_BUFFER];
9
+ var NativeArrayBuffer = globalThis[ARRAY_BUFFER];
10
10
 
11
11
  // `ArrayBuffer` constructor
12
12
  // https://tc39.es/ecma262/#sec-arraybuffer-constructor
@@ -10,7 +10,7 @@ var createProperty = require('../internals/create-property');
10
10
  var arraySpeciesCreate = require('../internals/array-species-create');
11
11
  var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
12
12
  var wellKnownSymbol = require('../internals/well-known-symbol');
13
- var V8_VERSION = require('../internals/engine-v8-version');
13
+ var V8_VERSION = require('../internals/environment-v8-version');
14
14
 
15
15
  var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
16
16
 
@@ -37,7 +37,7 @@ module.exports = defineIterator(Array, 'Array', function (iterated, kind) {
37
37
  var target = state.target;
38
38
  var index = state.index++;
39
39
  if (!target || index >= target.length) {
40
- state.target = undefined;
40
+ state.target = null;
41
41
  return createIterResultObject(undefined, true);
42
42
  }
43
43
  switch (state.kind) {
@@ -2,8 +2,8 @@
2
2
  var $ = require('../internals/export');
3
3
  var $reduceRight = require('../internals/array-reduce').right;
4
4
  var arrayMethodIsStrict = require('../internals/array-method-is-strict');
5
- var CHROME_VERSION = require('../internals/engine-v8-version');
6
- var IS_NODE = require('../internals/engine-is-node');
5
+ var CHROME_VERSION = require('../internals/environment-v8-version');
6
+ var IS_NODE = require('../internals/environment-is-node');
7
7
 
8
8
  // Chrome 80-82 has a critical bug
9
9
  // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982
@@ -2,8 +2,8 @@
2
2
  var $ = require('../internals/export');
3
3
  var $reduce = require('../internals/array-reduce').left;
4
4
  var arrayMethodIsStrict = require('../internals/array-method-is-strict');
5
- var CHROME_VERSION = require('../internals/engine-v8-version');
6
- var IS_NODE = require('../internals/engine-is-node');
5
+ var CHROME_VERSION = require('../internals/environment-v8-version');
6
+ var IS_NODE = require('../internals/environment-is-node');
7
7
 
8
8
  // Chrome 80-82 has a critical bug
9
9
  // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982
@@ -9,10 +9,10 @@ var toString = require('../internals/to-string');
9
9
  var fails = require('../internals/fails');
10
10
  var internalSort = require('../internals/array-sort');
11
11
  var arrayMethodIsStrict = require('../internals/array-method-is-strict');
12
- var FF = require('../internals/engine-ff-version');
13
- var IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');
14
- var V8 = require('../internals/engine-v8-version');
15
- var WEBKIT = require('../internals/engine-webkit-version');
12
+ var FF = require('../internals/environment-ff-version');
13
+ var IE_OR_EDGE = require('../internals/environment-is-ie-or-edge');
14
+ var V8 = require('../internals/environment-v8-version');
15
+ var WEBKIT = require('../internals/environment-webkit-version');
16
16
 
17
17
  var test = [];
18
18
  var nativeSort = uncurryThis(test.sort);
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
  /* eslint-disable no-unused-vars -- required for functions `.length` */
3
3
  var $ = require('../internals/export');
4
- var global = require('../internals/global');
4
+ var globalThis = require('../internals/global-this');
5
5
  var apply = require('../internals/function-apply');
6
6
  var wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');
7
7
 
8
8
  var WEB_ASSEMBLY = 'WebAssembly';
9
- var WebAssembly = global[WEB_ASSEMBLY];
9
+ var WebAssembly = globalThis[WEB_ASSEMBLY];
10
10
 
11
11
  // eslint-disable-next-line es/no-error-cause -- feature detection
12
12
  var FORCED = new Error('e', { cause: 7 }).cause !== 7;
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var global = require('../internals/global');
3
+ var globalThis = require('../internals/global-this');
4
4
 
5
5
  // `globalThis` object
6
6
  // https://tc39.es/ecma262/#sec-globalthis
7
- $({ global: true, forced: global.globalThis !== global }, {
8
- globalThis: global
7
+ $({ global: true, forced: globalThis.globalThis !== globalThis }, {
8
+ globalThis: globalThis
9
9
  });
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
- var global = require('../internals/global');
2
+ var globalThis = require('../internals/global-this');
3
3
  var setToStringTag = require('../internals/set-to-string-tag');
4
4
 
5
5
  // JSON[@@toStringTag] property
6
6
  // https://tc39.es/ecma262/#sec-json-@@tostringtag
7
- setToStringTag(global.JSON, 'JSON', true);
7
+ setToStringTag(globalThis.JSON, 'JSON', true);
@@ -2,7 +2,7 @@
2
2
  var $ = require('../internals/export');
3
3
  var IS_PURE = require('../internals/is-pure');
4
4
  var DESCRIPTORS = require('../internals/descriptors');
5
- var global = require('../internals/global');
5
+ var globalThis = require('../internals/global-this');
6
6
  var path = require('../internals/path');
7
7
  var uncurryThis = require('../internals/function-uncurry-this');
8
8
  var isForced = require('../internals/is-forced');
@@ -19,10 +19,10 @@ var thisNumberValue = require('../internals/this-number-value');
19
19
  var trim = require('../internals/string-trim').trim;
20
20
 
21
21
  var NUMBER = 'Number';
22
- var NativeNumber = global[NUMBER];
22
+ var NativeNumber = globalThis[NUMBER];
23
23
  var PureNumberNamespace = path[NUMBER];
24
24
  var NumberPrototype = NativeNumber.prototype;
25
- var TypeError = global.TypeError;
25
+ var TypeError = globalThis.TypeError;
26
26
  var stringSlice = uncurryThis(''.slice);
27
27
  var charCodeAt = uncurryThis(''.charCodeAt);
28
28
 
@@ -58,10 +58,7 @@ $({ target: 'Number', proto: true, forced: FORCED }, {
58
58
  if (f < 0 || f > 20) throw new $RangeError('Incorrect fraction digits');
59
59
  if (ROUNDS_PROPERLY) return nativeToExponential(x, f);
60
60
  var s = '';
61
- var m = '';
62
- var e = 0;
63
- var c = '';
64
- var d = '';
61
+ var m, e, c, d;
65
62
  if (x < 0) {
66
63
  s = '-';
67
64
  x = -x;
@@ -74,9 +71,8 @@ $({ target: 'Number', proto: true, forced: FORCED }, {
74
71
  // TODO: improve accuracy with big fraction digits
75
72
  var l = log10(x);
76
73
  e = floor(l);
77
- var n = 0;
78
74
  var w = pow(10, e - f);
79
- n = round(x / w);
75
+ var n = round(x / w);
80
76
  if (2 * x >= (2 * n + 1) * w) {
81
77
  n += 1;
82
78
  }
@@ -8,7 +8,7 @@ var toPropertyKey = require('../internals/to-property-key');
8
8
  var iterate = require('../internals/iterate');
9
9
  var fails = require('../internals/fails');
10
10
 
11
- // eslint-disable-next-line es/no-object-map-groupby -- testing
11
+ // eslint-disable-next-line es/no-object-groupby -- testing
12
12
  var nativeGroupBy = Object.groupBy;
13
13
  var create = getBuiltIn('Object', 'create');
14
14
  var push = uncurryThis([].push);
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var IS_PURE = require('../internals/is-pure');
4
- var IS_NODE = require('../internals/engine-is-node');
5
- var global = require('../internals/global');
4
+ var IS_NODE = require('../internals/environment-is-node');
5
+ var globalThis = require('../internals/global-this');
6
6
  var call = require('../internals/function-call');
7
7
  var defineBuiltIn = require('../internals/define-built-in');
8
8
  var setPrototypeOf = require('../internals/object-set-prototype-of');
@@ -32,13 +32,13 @@ var setInternalState = InternalStateModule.set;
32
32
  var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;
33
33
  var PromiseConstructor = NativePromiseConstructor;
34
34
  var PromisePrototype = NativePromisePrototype;
35
- var TypeError = global.TypeError;
36
- var document = global.document;
37
- var process = global.process;
35
+ var TypeError = globalThis.TypeError;
36
+ var document = globalThis.document;
37
+ var process = globalThis.process;
38
38
  var newPromiseCapability = newPromiseCapabilityModule.f;
39
39
  var newGenericPromiseCapability = newPromiseCapability;
40
40
 
41
- var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);
41
+ var DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent);
42
42
  var UNHANDLED_REJECTION = 'unhandledrejection';
43
43
  var REJECTION_HANDLED = 'rejectionhandled';
44
44
  var PENDING = 0;
@@ -111,14 +111,14 @@ var dispatchEvent = function (name, promise, reason) {
111
111
  event.promise = promise;
112
112
  event.reason = reason;
113
113
  event.initEvent(name, false, true);
114
- global.dispatchEvent(event);
114
+ globalThis.dispatchEvent(event);
115
115
  } else event = { promise: promise, reason: reason };
116
- if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);
116
+ if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event);
117
117
  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);
118
118
  };
119
119
 
120
120
  var onUnhandled = function (state) {
121
- call(task, global, function () {
121
+ call(task, globalThis, function () {
122
122
  var promise = state.facade;
123
123
  var value = state.value;
124
124
  var IS_UNHANDLED = isUnhandled(state);
@@ -141,7 +141,7 @@ var isUnhandled = function (state) {
141
141
  };
142
142
 
143
143
  var onHandleUnhandled = function (state) {
144
- call(task, global, function () {
144
+ call(task, globalThis, function () {
145
145
  var promise = state.facade;
146
146
  if (IS_NODE) {
147
147
  process.emit('rejectionHandled', promise);
@@ -220,7 +220,7 @@ if (FORCED_PROMISE_CONSTRUCTOR) {
220
220
  reactions: new Queue(),
221
221
  rejection: false,
222
222
  state: PENDING,
223
- value: undefined
223
+ value: null
224
224
  });
225
225
  };
226
226
 
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var global = require('../internals/global');
3
+ var globalThis = require('../internals/global-this');
4
4
  var setToStringTag = require('../internals/set-to-string-tag');
5
5
 
6
6
  $({ global: true }, { Reflect: {} });
7
7
 
8
8
  // Reflect[@@toStringTag] property
9
9
  // https://tc39.es/ecma262/#sec-reflect-@@tostringtag
10
- setToStringTag(global.Reflect, 'Reflect', true);
10
+ setToStringTag(globalThis.Reflect, 'Reflect', true);
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  var DESCRIPTORS = require('../internals/descriptors');
3
- var global = require('../internals/global');
3
+ var globalThis = require('../internals/global-this');
4
4
  var uncurryThis = require('../internals/function-uncurry-this');
5
5
  var isForced = require('../internals/is-forced');
6
6
  var inheritIfRequired = require('../internals/inherit-if-required');
@@ -23,9 +23,9 @@ var UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');
23
23
  var UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');
24
24
 
25
25
  var MATCH = wellKnownSymbol('match');
26
- var NativeRegExp = global.RegExp;
26
+ var NativeRegExp = globalThis.RegExp;
27
27
  var RegExpPrototype = NativeRegExp.prototype;
28
- var SyntaxError = global.SyntaxError;
28
+ var SyntaxError = globalThis.SyntaxError;
29
29
  var exec = uncurryThis(RegExpPrototype.exec);
30
30
  var charAt = uncurryThis(''.charAt);
31
31
  var replace = uncurryThis(''.replace);
@@ -46,6 +46,7 @@ var BASE_FORCED = DESCRIPTORS &&
46
46
  (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {
47
47
  re2[MATCH] = false;
48
48
  // RegExp constructor can alter flags and IsRegExp works correct with @@match
49
+ // eslint-disable-next-line sonar/inconsistent-function-call -- required for testing
49
50
  return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i';
50
51
  }));
51
52
 
@@ -95,11 +96,15 @@ var handleNCG = function (string) {
95
96
  brackets = true;
96
97
  break;
97
98
  case chr === '(':
99
+ result += chr;
100
+ // ignore non-capturing groups
101
+ if (stringSlice(string, index + 1, index + 3) === '?:') {
102
+ continue;
103
+ }
98
104
  if (exec(IS_NCG, stringSlice(string, index + 1))) {
99
105
  index += 2;
100
106
  ncg = true;
101
107
  }
102
- result += chr;
103
108
  groupid++;
104
109
  continue;
105
110
  case chr === '>' && ncg:
@@ -185,7 +190,7 @@ if (isForced('RegExp', BASE_FORCED)) {
185
190
 
186
191
  RegExpPrototype.constructor = RegExpWrapper;
187
192
  RegExpWrapper.prototype = RegExpPrototype;
188
- defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true });
193
+ defineBuiltIn(globalThis, 'RegExp', RegExpWrapper, { constructor: true });
189
194
  }
190
195
 
191
196
  // https://tc39.es/ecma262/#sec-get-regexp-@@species
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
- var global = require('../internals/global');
2
+ var globalThis = require('../internals/global-this');
3
3
  var DESCRIPTORS = require('../internals/descriptors');
4
4
  var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
5
5
  var regExpFlags = require('../internals/regexp-flags');
6
6
  var fails = require('../internals/fails');
7
7
 
8
8
  // babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError
9
- var RegExp = global.RegExp;
9
+ var RegExp = globalThis.RegExp;
10
10
  var RegExpPrototype = RegExp.prototype;
11
11
 
12
12
  var FORCED = DESCRIPTORS && fails(function () {
@@ -9,7 +9,7 @@ var fails = require('../internals/fails');
9
9
  var charAt = uncurryThis(''.charAt);
10
10
 
11
11
  var FORCED = fails(function () {
12
- // eslint-disable-next-line es/no-array-string-prototype-at -- safe
12
+ // eslint-disable-next-line es/no-string-prototype-at -- safe
13
13
  return '𠮷'.at(-2) !== '\uD842';
14
14
  });
15
15
 
@@ -25,8 +25,7 @@ var max = Math.max;
25
25
  $({ target: 'String', proto: true }, {
26
26
  replaceAll: function replaceAll(searchValue, replaceValue) {
27
27
  var O = requireObjectCoercible(this);
28
- var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;
29
- var position = 0;
28
+ var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, position, replacement;
30
29
  var endOfLastMatch = 0;
31
30
  var result = '';
32
31
  if (!isNullOrUndefined(searchValue)) {
@@ -36,11 +35,8 @@ $({ target: 'String', proto: true }, {
36
35
  if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes');
37
36
  }
38
37
  replacer = getMethod(searchValue, REPLACE);
39
- if (replacer) {
40
- return call(replacer, searchValue, O, replaceValue);
41
- } else if (IS_PURE && IS_REG_EXP) {
42
- return replace(toString(O), searchValue, replaceValue);
43
- }
38
+ if (replacer) return call(replacer, searchValue, O, replaceValue);
39
+ if (IS_PURE && IS_REG_EXP) return replace(toString(O), searchValue, replaceValue);
44
40
  }
45
41
  string = toString(O);
46
42
  searchString = toString(searchValue);