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
@@ -10,7 +10,7 @@ var $Array = Array;
10
10
  var charAt = uncurryThis(''.charAt);
11
11
  var charCodeAt = uncurryThis(''.charCodeAt);
12
12
  var join = uncurryThis([].join);
13
- // eslint-disable-next-line es/no-string-prototype-iswellformed-towellformed -- safe
13
+ // eslint-disable-next-line es/no-string-prototype-towellformed -- safe
14
14
  var $toWellFormed = ''.toWellFormed;
15
15
  var REPLACEMENT_CHARACTER = '\uFFFD';
16
16
 
@@ -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 uncurryThis = require('../internals/function-uncurry-this');
6
6
  var IS_PURE = require('../internals/is-pure');
@@ -45,11 +45,11 @@ var setInternalState = InternalStateModule.set;
45
45
  var getInternalState = InternalStateModule.getterFor(SYMBOL);
46
46
 
47
47
  var ObjectPrototype = Object[PROTOTYPE];
48
- var $Symbol = global.Symbol;
48
+ var $Symbol = globalThis.Symbol;
49
49
  var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];
50
- var RangeError = global.RangeError;
51
- var TypeError = global.TypeError;
52
- var QObject = global.QObject;
50
+ var RangeError = globalThis.RangeError;
51
+ var TypeError = globalThis.TypeError;
52
+ var QObject = globalThis.QObject;
53
53
  var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
54
54
  var nativeDefineProperty = definePropertyModule.f;
55
55
  var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
@@ -168,7 +168,7 @@ if (!NATIVE_SYMBOL) {
168
168
  var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);
169
169
  var tag = uid(description);
170
170
  var setter = function (value) {
171
- var $this = this === undefined ? global : this;
171
+ var $this = this === undefined ? globalThis : this;
172
172
  if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);
173
173
  if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;
174
174
  var descriptor = createPropertyDescriptor(1, value);
@@ -3,7 +3,7 @@
3
3
  'use strict';
4
4
  var $ = require('../internals/export');
5
5
  var DESCRIPTORS = require('../internals/descriptors');
6
- var global = require('../internals/global');
6
+ var globalThis = require('../internals/global-this');
7
7
  var uncurryThis = require('../internals/function-uncurry-this');
8
8
  var hasOwn = require('../internals/has-own-property');
9
9
  var isCallable = require('../internals/is-callable');
@@ -12,7 +12,7 @@ var toString = require('../internals/to-string');
12
12
  var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
13
13
  var copyConstructorProperties = require('../internals/copy-constructor-properties');
14
14
 
15
- var NativeSymbol = global.Symbol;
15
+ var NativeSymbol = globalThis.Symbol;
16
16
  var SymbolPrototype = NativeSymbol && NativeSymbol.prototype;
17
17
 
18
18
  if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||
@@ -24,6 +24,7 @@ if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototy
24
24
  var SymbolWrapper = function Symbol() {
25
25
  var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);
26
26
  var result = isPrototypeOf(SymbolPrototype, this)
27
+ // eslint-disable-next-line sonar/inconsistent-function-call -- ok
27
28
  ? new NativeSymbol(description)
28
29
  // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
29
30
  : description === undefined ? NativeSymbol() : NativeSymbol(description);
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
- var global = require('../internals/global');
2
+ var globalThis = require('../internals/global-this');
3
3
  var fails = require('../internals/fails');
4
4
  var uncurryThis = require('../internals/function-uncurry-this');
5
5
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
@@ -7,7 +7,7 @@ var ArrayIterators = require('../modules/es.array.iterator');
7
7
  var wellKnownSymbol = require('../internals/well-known-symbol');
8
8
 
9
9
  var ITERATOR = wellKnownSymbol('iterator');
10
- var Uint8Array = global.Uint8Array;
10
+ var Uint8Array = globalThis.Uint8Array;
11
11
  var arrayValues = uncurryThis(ArrayIterators.values);
12
12
  var arrayKeys = uncurryThis(ArrayIterators.keys);
13
13
  var arrayEntries = uncurryThis(ArrayIterators.entries);
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
- var global = require('../internals/global');
2
+ var globalThis = require('../internals/global-this');
3
3
  var call = require('../internals/function-call');
4
4
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
5
5
  var lengthOfArrayLike = require('../internals/length-of-array-like');
@@ -7,8 +7,8 @@ var toOffset = require('../internals/to-offset');
7
7
  var toIndexedObject = require('../internals/to-object');
8
8
  var fails = require('../internals/fails');
9
9
 
10
- var RangeError = global.RangeError;
11
- var Int8Array = global.Int8Array;
10
+ var RangeError = globalThis.RangeError;
11
+ var Int8Array = globalThis.Int8Array;
12
12
  var Int8ArrayPrototype = Int8Array && Int8Array.prototype;
13
13
  var $set = Int8ArrayPrototype && Int8ArrayPrototype.set;
14
14
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
- var global = require('../internals/global');
2
+ var globalThis = require('../internals/global-this');
3
3
  var uncurryThis = require('../internals/function-uncurry-this-clause');
4
4
  var fails = require('../internals/fails');
5
5
  var aCallable = require('../internals/a-callable');
6
6
  var internalSort = require('../internals/array-sort');
7
7
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
8
- var FF = require('../internals/engine-ff-version');
9
- var IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');
10
- var V8 = require('../internals/engine-v8-version');
11
- var WEBKIT = require('../internals/engine-webkit-version');
8
+ var FF = require('../internals/environment-ff-version');
9
+ var IE_OR_EDGE = require('../internals/environment-is-ie-or-edge');
10
+ var V8 = require('../internals/environment-v8-version');
11
+ var WEBKIT = require('../internals/environment-webkit-version');
12
12
 
13
13
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
14
14
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
15
- var Uint16Array = global.Uint16Array;
15
+ var Uint16Array = globalThis.Uint16Array;
16
16
  var nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);
17
17
 
18
18
  // WebKit
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
- var global = require('../internals/global');
2
+ var globalThis = require('../internals/global-this');
3
3
  var apply = require('../internals/function-apply');
4
4
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
5
5
  var fails = require('../internals/fails');
6
6
  var arraySlice = require('../internals/array-slice');
7
7
 
8
- var Int8Array = global.Int8Array;
8
+ var Int8Array = globalThis.Int8Array;
9
9
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
10
10
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
11
11
  var $toLocaleString = [].toLocaleString;
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
  var exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;
3
3
  var fails = require('../internals/fails');
4
- var global = require('../internals/global');
4
+ var globalThis = require('../internals/global-this');
5
5
  var uncurryThis = require('../internals/function-uncurry-this');
6
6
 
7
- var Uint8Array = global.Uint8Array;
7
+ var Uint8Array = globalThis.Uint8Array;
8
8
  var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};
9
9
  var arrayToString = [].toString;
10
10
  var join = uncurryThis([].join);
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  var FREEZING = require('../internals/freezing');
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 defineBuiltIns = require('../internals/define-built-ins');
6
6
  var InternalMetadataModule = require('../internals/internal-metadata');
@@ -25,7 +25,7 @@ var freeze = $Object.freeze;
25
25
  // eslint-disable-next-line es/no-object-seal -- safe
26
26
  var seal = $Object.seal;
27
27
 
28
- var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
28
+ var IS_IE11 = !globalThis.ActiveXObject && 'ActiveXObject' in globalThis;
29
29
  var InternalWeakMap;
30
30
 
31
31
  var wrapper = function (init) {
@@ -72,14 +72,14 @@ defineBuiltIns(AsyncDisposableStackPrototype, {
72
72
  var loop = function () {
73
73
  if (i) {
74
74
  var disposeMethod = stack[--i];
75
- stack[i] = undefined;
75
+ stack[i] = null;
76
76
  try {
77
77
  Promise.resolve(disposeMethod()).then(loop, handleError);
78
78
  } catch (error) {
79
79
  handleError(error);
80
80
  }
81
81
  } else {
82
- internalState.stack = undefined;
82
+ internalState.stack = null;
83
83
  thrown ? reject(suppressed) : resolve(undefined);
84
84
  }
85
85
  };
@@ -56,7 +56,7 @@ defineBuiltIns(DisposableStackPrototype, {
56
56
  var suppressed;
57
57
  while (i) {
58
58
  var disposeMethod = stack[--i];
59
- stack[i] = undefined;
59
+ stack[i] = null;
60
60
  try {
61
61
  disposeMethod();
62
62
  } catch (errorResult) {
@@ -68,7 +68,7 @@ defineBuiltIns(DisposableStackPrototype, {
68
68
  }
69
69
  }
70
70
  }
71
- internalState.stack = undefined;
71
+ internalState.stack = null;
72
72
  if (thrown) throw suppressed;
73
73
  },
74
74
  use: function use(value) {
@@ -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 anInstance = require('../internals/an-instance');
5
5
  var anObject = require('../internals/an-object');
6
6
  var isCallable = require('../internals/is-callable');
@@ -19,7 +19,7 @@ var ITERATOR = 'Iterator';
19
19
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
20
20
 
21
21
  var $TypeError = TypeError;
22
- var NativeIterator = global[ITERATOR];
22
+ var NativeIterator = globalThis[ITERATOR];
23
23
 
24
24
  // FF56- have non-standard global helper `Iterator`
25
25
  var FORCED = IS_PURE
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var DESCRIPTORS = require('../internals/descriptors');
4
- var global = require('../internals/global');
4
+ var globalThis = require('../internals/global-this');
5
5
  var getBuiltIn = require('../internals/get-built-in');
6
6
  var uncurryThis = require('../internals/function-uncurry-this');
7
7
  var call = require('../internals/function-call');
@@ -16,9 +16,9 @@ var fails = require('../internals/fails');
16
16
  var parseJSONString = require('../internals/parse-json-string');
17
17
  var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');
18
18
 
19
- var JSON = global.JSON;
20
- var Number = global.Number;
21
- var SyntaxError = global.SyntaxError;
19
+ var JSON = globalThis.JSON;
20
+ var Number = globalThis.Number;
21
+ var SyntaxError = globalThis.SyntaxError;
22
22
  var nativeParse = JSON && JSON.parse;
23
23
  var enumerableOwnProperties = getBuiltIn('Object', 'keys');
24
24
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
@@ -30,7 +30,7 @@ var push = uncurryThis([].push);
30
30
 
31
31
  var IS_DIGIT = /^\d$/;
32
32
  var IS_NON_ZERO_DIGIT = /^[1-9]$/;
33
- var IS_NUMBER_START = /^(?:-|\d)$/;
33
+ var IS_NUMBER_START = /^[\d-]$/;
34
34
  var IS_WHITESPACE = /^[\t\n\r ]$/;
35
35
 
36
36
  var PRIMITIVE = 0;
@@ -195,9 +195,9 @@ Context.prototype = {
195
195
  var i = startIndex;
196
196
  if (at(source, i) === '-') i++;
197
197
  if (at(source, i) === '0') i++;
198
- else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, ++i);
198
+ else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, i + 1);
199
199
  else throw new SyntaxError('Failed to parse number at: ' + i);
200
- if (at(source, i) === '.') i = this.skip(IS_DIGIT, ++i);
200
+ if (at(source, i) === '.') i = this.skip(IS_DIGIT, i + 1);
201
201
  if (at(source, i) === 'e' || at(source, i) === 'E') {
202
202
  i++;
203
203
  if (at(source, i) === '+' || at(source, i) === '-') i++;
@@ -22,13 +22,15 @@ var create = getBuiltIn('Object', 'create');
22
22
  var freeze = getBuiltIn('Object', 'freeze');
23
23
  var at = uncurryThis(''.charAt);
24
24
  var slice = uncurryThis(''.slice);
25
- var exec = uncurryThis(/./.exec);
26
25
  var push = uncurryThis([].push);
27
26
 
28
27
  var MARK = uid();
29
28
  var MARK_LENGTH = MARK.length;
30
29
  var ERROR_MESSAGE = 'Unacceptable as raw JSON';
31
- var IS_WHITESPACE = /^[\t\n\r ]$/;
30
+
31
+ var isWhitespace = function (it) {
32
+ return it === ' ' || it === '\t' || it === '\n' || it === '\r';
33
+ };
32
34
 
33
35
  // `JSON.parse` method
34
36
  // https://tc39.es/proposal-json-parse-with-source/#sec-json.israwjson
@@ -36,7 +38,7 @@ var IS_WHITESPACE = /^[\t\n\r ]$/;
36
38
  $({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {
37
39
  rawJSON: function rawJSON(text) {
38
40
  var jsonString = toString(text);
39
- if (jsonString === '' || exec(IS_WHITESPACE, at(jsonString, 0)) || exec(IS_WHITESPACE, at(jsonString, jsonString.length - 1))) {
41
+ if (jsonString === '' || isWhitespace(at(jsonString, 0)) || isWhitespace(at(jsonString, jsonString.length - 1))) {
40
42
  throw new $SyntaxError(ERROR_MESSAGE);
41
43
  }
42
44
  var parsed = parse(jsonString);
@@ -30,8 +30,8 @@ var getSubscriptionObserverInternalState = getterFor(SUBSCRIPTION_OBSERVER);
30
30
 
31
31
  var SubscriptionState = function (observer) {
32
32
  this.observer = anObject(observer);
33
- this.cleanup = undefined;
34
- this.subscriptionObserver = undefined;
33
+ this.cleanup = null;
34
+ this.subscriptionObserver = null;
35
35
  };
36
36
 
37
37
  SubscriptionState.prototype = {
@@ -39,7 +39,7 @@ SubscriptionState.prototype = {
39
39
  clean: function () {
40
40
  var cleanup = this.cleanup;
41
41
  if (cleanup) {
42
- this.cleanup = undefined;
42
+ this.cleanup = null;
43
43
  try {
44
44
  cleanup();
45
45
  } catch (error) {
@@ -53,10 +53,10 @@ SubscriptionState.prototype = {
53
53
  var subscriptionObserver = this.subscriptionObserver;
54
54
  subscription.closed = true;
55
55
  if (subscriptionObserver) subscriptionObserver.closed = true;
56
- } this.observer = undefined;
56
+ } this.observer = null;
57
57
  },
58
58
  isClosed: function () {
59
- return this.observer === undefined;
59
+ return this.observer === null;
60
60
  }
61
61
  };
62
62
 
@@ -1,16 +1,28 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var globalThis = require('../internals/global-this');
3
4
  var apply = require('../internals/function-apply');
4
5
  var slice = require('../internals/array-slice');
5
6
  var newPromiseCapabilityModule = require('../internals/new-promise-capability');
6
7
  var aCallable = require('../internals/a-callable');
7
8
  var perform = require('../internals/perform');
8
9
 
10
+ var Promise = globalThis.Promise;
11
+
12
+ var ACCEPT_ARGUMENTS = false;
13
+ // Avoiding the use of polyfills of the previous iteration of this proposal
14
+ // that does not accept arguments of the callback
15
+ var FORCED = !Promise || !Promise['try'] || perform(function () {
16
+ Promise['try'](function (argument) {
17
+ ACCEPT_ARGUMENTS = argument === 8;
18
+ }, 8);
19
+ }).error || !ACCEPT_ARGUMENTS;
20
+
9
21
  // `Promise.try` method
10
22
  // https://github.com/tc39/proposal-promise-try
11
- $({ target: 'Promise', stat: true, forced: true }, {
23
+ $({ target: 'Promise', stat: true, forced: FORCED }, {
12
24
  'try': function (callbackfn /* , ...args */) {
13
- var args = slice(arguments, 1);
25
+ var args = arguments.length > 1 ? slice(arguments, 1) : [];
14
26
  var promiseCapability = newPromiseCapabilityModule.f(this);
15
27
  var result = perform(function () {
16
28
  return apply(aCallable(callbackfn), undefined, args);
@@ -1,25 +1,70 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var uncurryThis = require('../internals/function-uncurry-this');
4
- var toString = require('../internals/to-string');
4
+ var aString = require('../internals/a-string');
5
+ var hasOwn = require('../internals/has-own-property');
5
6
  var padStart = require('../internals/string-pad').start;
6
7
  var WHITESPACES = require('../internals/whitespaces');
7
8
 
9
+ var $Array = Array;
10
+ var $escape = RegExp.escape;
11
+ var charAt = uncurryThis(''.charAt);
8
12
  var charCodeAt = uncurryThis(''.charCodeAt);
9
- var replace = uncurryThis(''.replace);
10
13
  var numberToString = uncurryThis(1.1.toString);
11
- var NEED_ESCAPING = RegExp('[!"#$%&\'()*+,\\-./:;<=>?@[\\\\\\]^`{|}~' + WHITESPACES + ']', 'g');
14
+ var join = uncurryThis([].join);
15
+ var FIRST_DIGIT_OR_ASCII = /^[0-9a-z]/i;
16
+ var SYNTAX_SOLIDUS = /^[$()*+./?[\\\]^{|}]/;
17
+ var OTHER_PUNCTUATORS_AND_WHITESPACES = RegExp('^[!"#%&\',\\-:;<=>@`~' + WHITESPACES + ']');
18
+ var exec = uncurryThis(FIRST_DIGIT_OR_ASCII.exec);
19
+
20
+ var ControlEscape = {
21
+ '\u0009': 't',
22
+ '\u000A': 'n',
23
+ '\u000B': 'v',
24
+ '\u000C': 'f',
25
+ '\u000D': 'r'
26
+ };
27
+
28
+ var escapeChar = function (chr) {
29
+ var hex = numberToString(charCodeAt(chr, 0), 16);
30
+ return hex.length < 3 ? '\\x' + padStart(hex, 2, '0') : '\\u' + padStart(hex, 4, '0');
31
+ };
32
+
33
+ // Avoiding the use of polyfills of the previous iteration of this proposal
34
+ var FORCED = !$escape || $escape('ab') !== '\\x61b';
12
35
 
13
36
  // `RegExp.escape` method
14
37
  // https://github.com/tc39/proposal-regex-escaping
15
- $({ target: 'RegExp', stat: true, forced: true }, {
38
+ $({ target: 'RegExp', stat: true, forced: FORCED }, {
16
39
  escape: function escape(S) {
17
- var str = toString(S);
18
- var firstCode = charCodeAt(str, 0);
19
- // escape first DecimalDigit
20
- return (firstCode > 47 && firstCode < 58 ? '\\x3' : '') + replace(str, NEED_ESCAPING, function (match) {
21
- var hex = numberToString(charCodeAt(match, 0), 16);
22
- return hex.length < 3 ? '\\x' + padStart(hex, 2, '0') : '\\u' + padStart(hex, 4, '0');
23
- });
40
+ aString(S);
41
+ var length = S.length;
42
+ var result = $Array(length);
43
+
44
+ for (var i = 0; i < length; i++) {
45
+ var chr = charAt(S, i);
46
+ if (i === 0 && exec(FIRST_DIGIT_OR_ASCII, chr)) {
47
+ result[i] = escapeChar(chr);
48
+ } else if (hasOwn(ControlEscape, chr)) {
49
+ result[i] = '\\' + ControlEscape[chr];
50
+ } else if (exec(SYNTAX_SOLIDUS, chr)) {
51
+ result[i] = '\\' + chr;
52
+ } else if (exec(OTHER_PUNCTUATORS_AND_WHITESPACES, chr)) {
53
+ result[i] = escapeChar(chr);
54
+ } else {
55
+ var charCode = charCodeAt(chr, 0);
56
+ // single UTF-16 code unit
57
+ if ((charCode & 0xF800) !== 0xD800) result[i] = chr;
58
+ // unpaired surrogate
59
+ else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = escapeChar(chr);
60
+ // surrogate pair
61
+ else {
62
+ result[i] = chr;
63
+ result[++i] = charAt(S, i);
64
+ }
65
+ }
66
+ }
67
+
68
+ return join(result, '');
24
69
  }
25
70
  });
@@ -86,6 +86,7 @@ var dedentStringsArray = function (template) {
86
86
  lines[lines.length - 2] = '';
87
87
  lines[lines.length - 1] = '';
88
88
  }
89
+ // eslint-disable-next-line sonar/no-redundant-assignments -- false positive, https://github.com/SonarSource/SonarJS/issues/4767
89
90
  for (var j = 2; j < lines.length; j += 2) {
90
91
  var text = lines[j];
91
92
  var lineContainsTemplateExpression = j + 1 === lines.length && !lastSplit;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var globalThis = require('../internals/global');
3
+ var globalThis = require('../internals/global-this');
4
4
  var isPrototypeOf = require('../internals/object-is-prototype-of');
5
5
  var getPrototypeOf = require('../internals/object-get-prototype-of');
6
6
  var setPrototypeOf = require('../internals/object-set-prototype-of');
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
- var global = require('../internals/global');
2
+ var globalThis = require('../internals/global-this');
3
3
  var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
4
4
  var defineProperty = require('../internals/object-define-property').f;
5
5
  var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
6
6
 
7
- var Symbol = global.Symbol;
7
+ var Symbol = globalThis.Symbol;
8
8
 
9
9
  // `Symbol.asyncDispose` well-known symbol
10
10
  // https://github.com/tc39/proposal-async-explicit-resource-management
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
- var global = require('../internals/global');
2
+ var globalThis = require('../internals/global-this');
3
3
  var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
4
4
  var defineProperty = require('../internals/object-define-property').f;
5
5
  var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
6
6
 
7
- var Symbol = global.Symbol;
7
+ var Symbol = globalThis.Symbol;
8
8
 
9
9
  // `Symbol.dispose` well-known symbol
10
10
  // https://github.com/tc39/proposal-explicit-resource-management
@@ -1,75 +1,16 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var global = require('../internals/global');
4
- var uncurryThis = require('../internals/function-uncurry-this');
5
- var anObjectOrUndefined = require('../internals/an-object-or-undefined');
6
- var aString = require('../internals/a-string');
7
- var hasOwn = require('../internals/has-own-property');
3
+ var globalThis = require('../internals/global-this');
8
4
  var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');
9
- var base64Map = require('../internals/base64-map');
10
- var getAlphabetOption = require('../internals/get-alphabet-option');
5
+ var $fromBase64 = require('../internals/uint8-from-base64');
11
6
 
12
- var base64Alphabet = base64Map.c2i;
13
- var base64UrlAlphabet = base64Map.c2iUrl;
14
-
15
- var Uint8Array = global.Uint8Array;
16
- var SyntaxError = global.SyntaxError;
17
- var charAt = uncurryThis(''.charAt);
18
- var replace = uncurryThis(''.replace);
19
- var stringSlice = uncurryThis(''.slice);
20
- var push = uncurryThis([].push);
21
- var SPACES = /[\t\n\f\r ]/g;
22
- var EXTRA_BITS = 'Extra bits';
7
+ var Uint8Array = globalThis.Uint8Array;
23
8
 
24
9
  // `Uint8Array.fromBase64` method
25
10
  // https://github.com/tc39/proposal-arraybuffer-base64
26
- if (Uint8Array) $({ target: 'Uint8Array', stat: true, forced: true }, {
11
+ if (Uint8Array) $({ target: 'Uint8Array', stat: true }, {
27
12
  fromBase64: function fromBase64(string /* , options */) {
28
- aString(string);
29
- var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;
30
- var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;
31
- var strict = options ? !!options.strict : false;
32
-
33
- var input = strict ? string : replace(string, SPACES, '');
34
-
35
- if (input.length % 4 === 0) {
36
- if (stringSlice(input, -2) === '==') input = stringSlice(input, 0, -2);
37
- else if (stringSlice(input, -1) === '=') input = stringSlice(input, 0, -1);
38
- } else if (strict) throw new SyntaxError('Input is not correctly padded');
39
-
40
- var lastChunkSize = input.length % 4;
41
-
42
- switch (lastChunkSize) {
43
- case 1: throw new SyntaxError('Bad input length');
44
- case 2: input += 'AA'; break;
45
- case 3: input += 'A';
46
- }
47
-
48
- var bytes = [];
49
- var i = 0;
50
- var inputLength = input.length;
51
-
52
- var at = function (shift) {
53
- var chr = charAt(input, i + shift);
54
- if (!hasOwn(alphabet, chr)) throw new SyntaxError('Bad char in input: "' + chr + '"');
55
- return alphabet[chr] << (18 - 6 * shift);
56
- };
57
-
58
- for (; i < inputLength; i += 4) {
59
- var triplet = at(0) + at(1) + at(2) + at(3);
60
- push(bytes, (triplet >> 16) & 255, (triplet >> 8) & 255, triplet & 255);
61
- }
62
-
63
- var byteLength = bytes.length;
64
-
65
- if (lastChunkSize === 2) {
66
- if (strict && bytes[byteLength - 2] !== 0) throw new SyntaxError(EXTRA_BITS);
67
- byteLength -= 2;
68
- } else if (lastChunkSize === 3) {
69
- if (strict && bytes[byteLength - 1] !== 0) throw new SyntaxError(EXTRA_BITS);
70
- byteLength--;
71
- }
72
-
73
- return arrayFromConstructorAndList(Uint8Array, bytes, byteLength);
13
+ var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, null, 0x1FFFFFFFFFFFFF);
14
+ return arrayFromConstructorAndList(Uint8Array, result.bytes);
74
15
  }
75
16
  });
@@ -1,28 +1,13 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var global = require('../internals/global');
4
- var uncurryThis = require('../internals/function-uncurry-this');
3
+ var globalThis = require('../internals/global-this');
5
4
  var aString = require('../internals/a-string');
6
-
7
- var Uint8Array = global.Uint8Array;
8
- var SyntaxError = global.SyntaxError;
9
- var parseInt = global.parseInt;
10
- var NOT_HEX = /[^\da-f]/i;
11
- var exec = uncurryThis(NOT_HEX.exec);
12
- var stringSlice = uncurryThis(''.slice);
5
+ var $fromHex = require('../internals/uint8-from-hex');
13
6
 
14
7
  // `Uint8Array.fromHex` method
15
8
  // https://github.com/tc39/proposal-arraybuffer-base64
16
- if (Uint8Array) $({ target: 'Uint8Array', stat: true, forced: true }, {
9
+ if (globalThis.Uint8Array) $({ target: 'Uint8Array', stat: true }, {
17
10
  fromHex: function fromHex(string) {
18
- aString(string);
19
- var stringLength = string.length;
20
- if (stringLength % 2) throw new SyntaxError('String should have an even number of characters');
21
- if (exec(NOT_HEX, string)) throw new SyntaxError('String should only contain hex characters');
22
- var result = new Uint8Array(stringLength / 2);
23
- for (var i = 0; i < stringLength; i += 2) {
24
- result[i / 2] = parseInt(stringSlice(string, i, i + 2), 16);
25
- }
26
- return result;
11
+ return $fromHex(aString(string)).bytes;
27
12
  }
28
13
  });
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var globalThis = require('../internals/global-this');
4
+ var $fromBase64 = require('../internals/uint8-from-base64');
5
+ var anUint8Array = require('../internals/an-uint8-array');
6
+
7
+ var Uint8Array = globalThis.Uint8Array;
8
+
9
+ // `Uint8Array.prototype.setFromBase64` method
10
+ // https://github.com/tc39/proposal-arraybuffer-base64
11
+ if (Uint8Array) $({ target: 'Uint8Array', proto: true }, {
12
+ setFromBase64: function setFromBase64(string /* , options */) {
13
+ anUint8Array(this);
14
+
15
+ var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, this, this.length);
16
+
17
+ return { read: result.read, written: result.written };
18
+ }
19
+ });