core-js 3.27.2 → 3.28.0

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 (186) hide show
  1. package/README.md +55 -32
  2. package/actual/array/index.js +4 -3
  3. package/actual/array/to-reversed.js +3 -2
  4. package/actual/array/to-sorted.js +3 -3
  5. package/actual/array/to-spliced.js +3 -2
  6. package/actual/array/virtual/index.js +3 -2
  7. package/actual/array/virtual/to-reversed.js +3 -2
  8. package/actual/array/virtual/to-sorted.js +3 -3
  9. package/actual/array/virtual/to-spliced.js +3 -2
  10. package/actual/array/virtual/with.js +3 -2
  11. package/actual/array/with.js +3 -2
  12. package/actual/array-buffer/constructor.js +3 -0
  13. package/actual/array-buffer/detached.js +2 -0
  14. package/actual/array-buffer/index.js +3 -0
  15. package/actual/array-buffer/transfer-to-fixed-length.js +2 -0
  16. package/actual/array-buffer/transfer.js +2 -0
  17. package/actual/json/index.js +6 -0
  18. package/actual/json/is-raw-json.js +4 -0
  19. package/actual/json/parse.js +5 -0
  20. package/actual/json/raw-json.js +6 -0
  21. package/actual/typed-array/index.js +1 -1
  22. package/actual/typed-array/methods.js +1 -1
  23. package/actual/typed-array/to-reversed.js +4 -0
  24. package/actual/typed-array/to-sorted.js +4 -1
  25. package/actual/typed-array/with.js +4 -0
  26. package/es/array/index.js +4 -0
  27. package/es/array/to-reversed.js +4 -0
  28. package/es/array/to-sorted.js +5 -0
  29. package/es/array/to-spliced.js +4 -0
  30. package/es/array/virtual/index.js +4 -0
  31. package/es/array/virtual/to-reversed.js +4 -0
  32. package/es/array/virtual/to-sorted.js +5 -0
  33. package/es/array/virtual/to-spliced.js +4 -0
  34. package/es/array/virtual/with.js +4 -0
  35. package/es/array/with.js +4 -0
  36. package/es/index.js +7 -0
  37. package/es/instance/to-reversed.js +9 -0
  38. package/es/instance/to-sorted.js +9 -0
  39. package/es/instance/to-spliced.js +9 -0
  40. package/es/instance/with.js +9 -0
  41. package/es/typed-array/methods.js +3 -0
  42. package/es/typed-array/to-reversed.js +1 -0
  43. package/es/typed-array/to-sorted.js +2 -0
  44. package/es/typed-array/with.js +1 -0
  45. package/features/array-buffer/detached.js +1 -0
  46. package/features/array-buffer/transfer-to-fixed-length.js +1 -0
  47. package/features/array-buffer/transfer.js +1 -0
  48. package/features/function/demethodize.js +1 -0
  49. package/features/function/virtual/demethodize.js +1 -0
  50. package/features/instance/demethodize.js +1 -0
  51. package/features/iterator/range.js +1 -0
  52. package/features/json/is-raw-json.js +1 -0
  53. package/features/json/parse.js +1 -0
  54. package/features/json/raw-json.js +1 -0
  55. package/features/symbol/is-registered.js +1 -0
  56. package/features/symbol/is-well-known.js +1 -0
  57. package/full/array-buffer/detached.js +3 -0
  58. package/full/array-buffer/transfer-to-fixed-length.js +3 -0
  59. package/full/array-buffer/transfer.js +3 -0
  60. package/full/function/demethodize.js +4 -0
  61. package/full/function/index.js +2 -0
  62. package/full/function/virtual/demethodize.js +4 -0
  63. package/full/function/virtual/index.js +2 -0
  64. package/full/index.js +17 -0
  65. package/full/instance/demethodize.js +9 -0
  66. package/full/iterator/index.js +1 -0
  67. package/full/iterator/range.js +6 -0
  68. package/full/json/is-raw-json.js +3 -0
  69. package/full/json/parse.js +3 -0
  70. package/full/json/raw-json.js +3 -0
  71. package/full/symbol/index.js +2 -0
  72. package/full/symbol/is-registered.js +5 -0
  73. package/full/symbol/is-well-known.js +5 -0
  74. package/internals/{disposable-stack-helpers.js → add-disposable-resource.js} +5 -6
  75. package/internals/array-buffer-byte-length.js +12 -0
  76. package/internals/array-buffer-is-detached.js +14 -0
  77. package/internals/array-buffer-transfer.js +35 -0
  78. package/internals/array-buffer-view-core.js +7 -4
  79. package/internals/array-buffer.js +29 -16
  80. package/internals/async-iterator-create-proxy.js +30 -52
  81. package/internals/collection-strong.js +3 -2
  82. package/internals/engine-is-ios.js +1 -0
  83. package/internals/error-stack-clear.js +1 -0
  84. package/internals/function-bind.js +1 -0
  85. package/internals/function-demethodize.js +7 -0
  86. package/internals/function-uncurry-this-accessor.js +9 -0
  87. package/internals/get-json-replacer-function.js +29 -0
  88. package/internals/get-substitution.js +1 -0
  89. package/internals/is-raw-json.js +8 -0
  90. package/internals/native-raw-json.js +8 -0
  91. package/internals/numeric-range-iterator.js +2 -1
  92. package/internals/object-set-prototype-of.js +2 -3
  93. package/internals/parse-json-string.js +55 -0
  94. package/internals/set-size.js +2 -4
  95. package/internals/set-species.js +2 -3
  96. package/internals/shared.js +2 -2
  97. package/internals/string-trim.js +3 -4
  98. package/internals/structured-clone-proper-transfer.js +17 -0
  99. package/internals/typed-array-constructor.js +8 -4
  100. package/modules/es.array.includes.js +1 -0
  101. package/modules/es.array.to-reversed.js +17 -0
  102. package/modules/es.array.to-sorted.js +24 -0
  103. package/modules/es.array.to-spliced.js +44 -0
  104. package/modules/es.array.with.js +14 -0
  105. package/modules/es.date.get-year.js +1 -0
  106. package/modules/es.function.bind.js +1 -0
  107. package/modules/es.function.name.js +2 -2
  108. package/modules/es.json.stringify.js +7 -7
  109. package/modules/es.symbol.constructor.js +2 -1
  110. package/modules/es.symbol.description.js +2 -2
  111. package/modules/es.typed-array.to-reversed.js +13 -0
  112. package/modules/es.typed-array.to-sorted.js +19 -0
  113. package/modules/es.typed-array.with.js +30 -0
  114. package/modules/esnext.array-buffer.detached.js +15 -0
  115. package/modules/esnext.array-buffer.transfer-to-fixed-length.js +11 -0
  116. package/modules/esnext.array-buffer.transfer.js +11 -0
  117. package/modules/esnext.array.to-reversed.js +2 -17
  118. package/modules/esnext.array.to-sorted.js +2 -24
  119. package/modules/esnext.array.to-spliced.js +2 -44
  120. package/modules/esnext.array.with.js +2 -14
  121. package/modules/esnext.async-disposable-stack.constructor.js +3 -11
  122. package/modules/esnext.async-iterator.constructor.js +1 -1
  123. package/modules/esnext.async-iterator.drop.js +1 -1
  124. package/modules/esnext.async-iterator.every.js +1 -1
  125. package/modules/esnext.async-iterator.filter.js +1 -1
  126. package/modules/esnext.async-iterator.find.js +1 -1
  127. package/modules/esnext.async-iterator.flat-map.js +1 -1
  128. package/modules/esnext.async-iterator.for-each.js +1 -1
  129. package/modules/esnext.async-iterator.from.js +1 -1
  130. package/modules/esnext.async-iterator.map.js +1 -1
  131. package/modules/esnext.async-iterator.reduce.js +1 -1
  132. package/modules/esnext.async-iterator.some.js +1 -1
  133. package/modules/esnext.async-iterator.take.js +1 -1
  134. package/modules/esnext.async-iterator.to-array.js +1 -1
  135. package/modules/esnext.bigint.range.js +1 -0
  136. package/modules/esnext.disposable-stack.constructor.js +3 -11
  137. package/modules/esnext.function.demethodize.js +8 -0
  138. package/modules/esnext.function.un-this.js +5 -7
  139. package/modules/esnext.iterator.range.js +16 -0
  140. package/modules/esnext.iterator.to-async.js +1 -1
  141. package/modules/esnext.json.is-raw-json.js +10 -0
  142. package/modules/esnext.json.parse.js +261 -0
  143. package/modules/esnext.json.raw-json.js +84 -0
  144. package/modules/esnext.number.range.js +1 -0
  145. package/modules/esnext.string.to-well-formed.js +10 -1
  146. package/modules/esnext.suppressed-error.constructor.js +1 -3
  147. package/modules/esnext.symbol.is-registered.js +19 -0
  148. package/modules/esnext.symbol.is-well-known.js +36 -0
  149. package/modules/esnext.typed-array.to-reversed.js +2 -13
  150. package/modules/esnext.typed-array.to-sorted.js +2 -19
  151. package/modules/esnext.typed-array.with.js +2 -30
  152. package/modules/web.atob.js +1 -1
  153. package/modules/web.structured-clone.js +4 -13
  154. package/modules/web.url.constructor.js +4 -2
  155. package/package.json +1 -1
  156. package/postinstall.js +1 -1
  157. package/proposals/array-buffer-transfer.js +3 -0
  158. package/proposals/async-iterator-helpers.js +15 -0
  159. package/proposals/change-array-by-copy-stage-4.js +8 -0
  160. package/proposals/function-demethodize.js +2 -0
  161. package/proposals/function-un-this.js +1 -0
  162. package/proposals/iterator-helpers-stage-3-2.js +14 -0
  163. package/proposals/iterator-range.js +3 -0
  164. package/proposals/json-parse-with-source.js +4 -0
  165. package/proposals/symbol-predicates.js +3 -0
  166. package/stable/array/to-reversed.js +3 -0
  167. package/stable/array/to-sorted.js +3 -0
  168. package/stable/array/to-spliced.js +3 -0
  169. package/stable/array/virtual/to-reversed.js +3 -0
  170. package/stable/array/virtual/to-sorted.js +3 -0
  171. package/stable/array/virtual/to-spliced.js +3 -0
  172. package/stable/array/virtual/with.js +3 -0
  173. package/stable/array/with.js +3 -0
  174. package/stable/index.js +7 -0
  175. package/stable/instance/to-reversed.js +3 -0
  176. package/stable/instance/to-sorted.js +3 -0
  177. package/stable/instance/to-spliced.js +3 -0
  178. package/stable/instance/with.js +3 -0
  179. package/stable/typed-array/to-reversed.js +3 -0
  180. package/stable/typed-array/to-sorted.js +3 -0
  181. package/stable/typed-array/with.js +3 -0
  182. package/stage/0.js +2 -1
  183. package/stage/1.js +2 -1
  184. package/stage/2.js +2 -0
  185. package/stage/3.js +5 -2
  186. package/stage/4.js +1 -0
package/full/index.js CHANGED
@@ -48,9 +48,13 @@ require('../modules/es.array.some');
48
48
  require('../modules/es.array.sort');
49
49
  require('../modules/es.array.species');
50
50
  require('../modules/es.array.splice');
51
+ require('../modules/es.array.to-reversed');
52
+ require('../modules/es.array.to-sorted');
53
+ require('../modules/es.array.to-spliced');
51
54
  require('../modules/es.array.unscopables.flat');
52
55
  require('../modules/es.array.unscopables.flat-map');
53
56
  require('../modules/es.array.unshift');
57
+ require('../modules/es.array.with');
54
58
  require('../modules/es.array-buffer.constructor');
55
59
  require('../modules/es.array-buffer.is-view');
56
60
  require('../modules/es.array-buffer.slice');
@@ -227,7 +231,10 @@ require('../modules/es.typed-array.some');
227
231
  require('../modules/es.typed-array.sort');
228
232
  require('../modules/es.typed-array.subarray');
229
233
  require('../modules/es.typed-array.to-locale-string');
234
+ require('../modules/es.typed-array.to-reversed');
235
+ require('../modules/es.typed-array.to-sorted');
230
236
  require('../modules/es.typed-array.to-string');
237
+ require('../modules/es.typed-array.with');
231
238
  require('../modules/es.unescape');
232
239
  require('../modules/es.weak-map');
233
240
  require('../modules/es.weak-set');
@@ -251,6 +258,9 @@ require('../modules/esnext.array.to-sorted');
251
258
  require('../modules/esnext.array.to-spliced');
252
259
  require('../modules/esnext.array.unique-by');
253
260
  require('../modules/esnext.array.with');
261
+ require('../modules/esnext.array-buffer.detached');
262
+ require('../modules/esnext.array-buffer.transfer');
263
+ require('../modules/esnext.array-buffer.transfer-to-fixed-length');
254
264
  require('../modules/esnext.async-disposable-stack.constructor');
255
265
  require('../modules/esnext.async-iterator.constructor');
256
266
  require('../modules/esnext.async-iterator.as-indexed-pairs');
@@ -272,6 +282,7 @@ require('../modules/esnext.bigint.range');
272
282
  require('../modules/esnext.composite-key');
273
283
  require('../modules/esnext.composite-symbol');
274
284
  require('../modules/esnext.disposable-stack.constructor');
285
+ require('../modules/esnext.function.demethodize');
275
286
  require('../modules/esnext.function.is-callable');
276
287
  require('../modules/esnext.function.is-constructor');
277
288
  require('../modules/esnext.function.un-this');
@@ -288,11 +299,15 @@ require('../modules/esnext.iterator.for-each');
288
299
  require('../modules/esnext.iterator.from');
289
300
  require('../modules/esnext.iterator.indexed');
290
301
  require('../modules/esnext.iterator.map');
302
+ require('../modules/esnext.iterator.range');
291
303
  require('../modules/esnext.iterator.reduce');
292
304
  require('../modules/esnext.iterator.some');
293
305
  require('../modules/esnext.iterator.take');
294
306
  require('../modules/esnext.iterator.to-array');
295
307
  require('../modules/esnext.iterator.to-async');
308
+ require('../modules/esnext.json.is-raw-json');
309
+ require('../modules/esnext.json.parse');
310
+ require('../modules/esnext.json.raw-json');
296
311
  require('../modules/esnext.map.delete-all');
297
312
  require('../modules/esnext.map.emplace');
298
313
  require('../modules/esnext.map.every');
@@ -380,6 +395,8 @@ require('../modules/esnext.string.replace-all');
380
395
  require('../modules/esnext.string.to-well-formed');
381
396
  require('../modules/esnext.symbol.async-dispose');
382
397
  require('../modules/esnext.symbol.dispose');
398
+ require('../modules/esnext.symbol.is-registered');
399
+ require('../modules/esnext.symbol.is-well-known');
383
400
  require('../modules/esnext.symbol.matcher');
384
401
  require('../modules/esnext.symbol.metadata');
385
402
  require('../modules/esnext.symbol.metadata-key');
@@ -0,0 +1,9 @@
1
+ var isPrototypeOf = require('../../internals/object-is-prototype-of');
2
+ var method = require('../function/virtual/demethodize');
3
+
4
+ var FunctionPrototype = Function.prototype;
5
+
6
+ module.exports = function (it) {
7
+ var own = it.demethodize;
8
+ return it === FunctionPrototype || (isPrototypeOf(FunctionPrototype, it) && own === FunctionPrototype.demethodize) ? method : own;
9
+ };
@@ -1,4 +1,5 @@
1
1
  var parent = require('../../actual/iterator');
2
+ require('../../modules/esnext.iterator.range');
2
3
  // TODO: Remove from `core-js@4`
3
4
  require('../../modules/esnext.iterator.as-indexed-pairs');
4
5
  require('../../modules/esnext.iterator.indexed');
@@ -0,0 +1,6 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/esnext.iterator.constructor');
3
+ require('../../modules/esnext.iterator.range');
4
+ var path = require('../../internals/path');
5
+
6
+ module.exports = path.Iterator.range;
@@ -0,0 +1,3 @@
1
+ var parent = require('../../actual/json/is-raw-json');
2
+
3
+ module.exports = parent;
@@ -0,0 +1,3 @@
1
+ var parent = require('../../actual/json/parse');
2
+
3
+ module.exports = parent;
@@ -0,0 +1,3 @@
1
+ var parent = require('../../actual/json/raw-json');
2
+
3
+ module.exports = parent;
@@ -1,5 +1,7 @@
1
1
  var parent = require('../../actual/symbol');
2
2
  require('../../modules/esnext.symbol.async-dispose');
3
+ require('../../modules/esnext.symbol.is-registered');
4
+ require('../../modules/esnext.symbol.is-well-known');
3
5
  require('../../modules/esnext.symbol.matcher');
4
6
  require('../../modules/esnext.symbol.metadata-key');
5
7
  require('../../modules/esnext.symbol.observable');
@@ -0,0 +1,5 @@
1
+ require('../../modules/es.symbol');
2
+ require('../../modules/esnext.symbol.is-registered');
3
+ var path = require('../../internals/path');
4
+
5
+ module.exports = path.Symbol.isRegistered;
@@ -0,0 +1,5 @@
1
+ require('../../modules/es.symbol');
2
+ require('../../modules/esnext.symbol.is-well-known');
3
+ var path = require('../../internals/path');
4
+
5
+ module.exports = path.Symbol.isWellKnown;
@@ -16,11 +16,15 @@ var getDisposeMethod = function (V, hint) {
16
16
  } return getMethod(V, DISPOSE);
17
17
  };
18
18
 
19
+ // `CreateDisposableResource` abstract operation
20
+ // https://tc39.es/proposal-explicit-resource-management/#sec-createdisposableresource
19
21
  var createDisposableResource = function (V, hint, method) {
20
22
  return bind(method || getDisposeMethod(V, hint), V);
21
23
  };
22
24
 
23
- var addDisposableResource = function (disposable, V, hint, method) {
25
+ // `AddDisposableResource` abstract operation
26
+ // https://tc39.es/proposal-explicit-resource-management/#sec-adddisposableresource-disposable-v-hint-disposemethod
27
+ module.exports = function (disposable, V, hint, method) {
24
28
  var resource;
25
29
  if (!method) {
26
30
  if (isNullOrUndefined(V)) return;
@@ -33,8 +37,3 @@ var addDisposableResource = function (disposable, V, hint, method) {
33
37
 
34
38
  push(disposable.stack, resource);
35
39
  };
36
-
37
- module.exports = {
38
- getDisposeMethod: getDisposeMethod,
39
- addDisposableResource: addDisposableResource
40
- };
@@ -0,0 +1,12 @@
1
+ var uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');
2
+ var classof = require('../internals/classof-raw');
3
+
4
+ var $TypeError = TypeError;
5
+
6
+ // Includes
7
+ // - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).
8
+ // - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.
9
+ module.exports = uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {
10
+ if (classof(O) != 'ArrayBuffer') throw $TypeError('ArrayBuffer expected');
11
+ return O.byteLength;
12
+ };
@@ -0,0 +1,14 @@
1
+ var uncurryThis = require('../internals/function-uncurry-this');
2
+ var arrayBufferByteLength = require('../internals/array-buffer-byte-length');
3
+
4
+ var slice = uncurryThis(ArrayBuffer.prototype.slice);
5
+
6
+ module.exports = function (O) {
7
+ if (arrayBufferByteLength(O) !== 0) return false;
8
+ try {
9
+ slice(O, 0, 0);
10
+ return false;
11
+ } catch (error) {
12
+ return true;
13
+ }
14
+ };
@@ -0,0 +1,35 @@
1
+ var global = require('../internals/global');
2
+ var uncurryThis = require('../internals/function-uncurry-this');
3
+ var uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');
4
+ var toIndex = require('../internals/to-index');
5
+ var isDetached = require('../internals/array-buffer-is-detached');
6
+ var arrayBufferByteLength = require('../internals/array-buffer-byte-length');
7
+ var PROPER_TRANSFER = require('../internals/structured-clone-proper-transfer');
8
+
9
+ var TypeError = global.TypeError;
10
+ var structuredClone = global.structuredClone;
11
+ var ArrayBuffer = global.ArrayBuffer;
12
+ var DataView = global.DataView;
13
+ var min = Math.min;
14
+ var ArrayBufferPrototype = ArrayBuffer.prototype;
15
+ var DataViewPrototype = DataView.prototype;
16
+ var slice = uncurryThis(ArrayBufferPrototype.slice);
17
+ var isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');
18
+ var maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');
19
+ var getInt8 = uncurryThis(DataViewPrototype.getInt8);
20
+ var setInt8 = uncurryThis(DataViewPrototype.setInt8);
21
+
22
+ module.exports = PROPER_TRANSFER && function (arrayBuffer, newLength, preserveResizability) {
23
+ var byteLength = arrayBufferByteLength(arrayBuffer);
24
+ var newByteLength = newLength === undefined ? byteLength : min(toIndex(newLength), byteLength);
25
+ var fixedLength = !isResizable || !isResizable(arrayBuffer);
26
+ if (isDetached(arrayBuffer)) throw TypeError('ArrayBuffer is detached');
27
+ var newBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });
28
+ if (byteLength == newByteLength && (preserveResizability || fixedLength)) return newBuffer;
29
+ if (!preserveResizability || fixedLength) return slice(newBuffer, 0, newByteLength);
30
+ var newNewBuffer = new ArrayBuffer(newByteLength, maxByteLength && { maxByteLength: maxByteLength(newBuffer) });
31
+ var a = new DataView(newBuffer);
32
+ var b = new DataView(newNewBuffer);
33
+ for (var i = 0; i < newByteLength; i++) setInt8(b, i, getInt8(a, i));
34
+ return newNewBuffer;
35
+ };
@@ -9,7 +9,7 @@ var classof = require('../internals/classof');
9
9
  var tryToString = require('../internals/try-to-string');
10
10
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
11
11
  var defineBuiltIn = require('../internals/define-built-in');
12
- var defineProperty = require('../internals/object-define-property').f;
12
+ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
13
13
  var isPrototypeOf = require('../internals/object-is-prototype-of');
14
14
  var getPrototypeOf = require('../internals/object-get-prototype-of');
15
15
  var setPrototypeOf = require('../internals/object-set-prototype-of');
@@ -167,9 +167,12 @@ if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !==
167
167
 
168
168
  if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {
169
169
  TYPED_ARRAY_TAG_REQUIRED = true;
170
- defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {
171
- return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;
172
- } });
170
+ defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {
171
+ configurable: true,
172
+ get: function () {
173
+ return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;
174
+ }
175
+ });
173
176
  for (NAME in TypedArrayConstructorsList) if (global[NAME]) {
174
177
  createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);
175
178
  }
@@ -5,6 +5,7 @@ var DESCRIPTORS = require('../internals/descriptors');
5
5
  var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');
6
6
  var FunctionName = require('../internals/function-name');
7
7
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
8
+ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
8
9
  var defineBuiltIns = require('../internals/define-built-ins');
9
10
  var fails = require('../internals/fails');
10
11
  var anInstance = require('../internals/an-instance');
@@ -15,7 +16,6 @@ var IEEE754 = require('../internals/ieee754');
15
16
  var getPrototypeOf = require('../internals/object-get-prototype-of');
16
17
  var setPrototypeOf = require('../internals/object-set-prototype-of');
17
18
  var getOwnPropertyNames = require('../internals/object-get-own-property-names').f;
18
- var defineProperty = require('../internals/object-define-property').f;
19
19
  var arrayFill = require('../internals/array-fill');
20
20
  var arraySlice = require('../internals/array-slice-simple');
21
21
  var setToStringTag = require('../internals/set-to-string-tag');
@@ -23,13 +23,14 @@ var InternalStateModule = require('../internals/internal-state');
23
23
 
24
24
  var PROPER_FUNCTION_NAME = FunctionName.PROPER;
25
25
  var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
26
- var getInternalState = InternalStateModule.get;
27
- var setInternalState = InternalStateModule.set;
28
26
  var ARRAY_BUFFER = 'ArrayBuffer';
29
27
  var DATA_VIEW = 'DataView';
30
28
  var PROTOTYPE = 'prototype';
31
29
  var WRONG_LENGTH = 'Wrong length';
32
30
  var WRONG_INDEX = 'Wrong index';
31
+ var getInternalArrayBufferState = InternalStateModule.getterFor(ARRAY_BUFFER);
32
+ var getInternalDataViewState = InternalStateModule.getterFor(DATA_VIEW);
33
+ var setInternalState = InternalStateModule.set;
33
34
  var NativeArrayBuffer = global[ARRAY_BUFFER];
34
35
  var $ArrayBuffer = NativeArrayBuffer;
35
36
  var ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];
@@ -68,15 +69,20 @@ var packFloat64 = function (number) {
68
69
  return packIEEE754(number, 52, 8);
69
70
  };
70
71
 
71
- var addGetter = function (Constructor, key) {
72
- defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });
72
+ var addGetter = function (Constructor, key, getInternalState) {
73
+ defineBuiltInAccessor(Constructor[PROTOTYPE], key, {
74
+ configurable: true,
75
+ get: function () {
76
+ return getInternalState(this)[key];
77
+ }
78
+ });
73
79
  };
74
80
 
75
81
  var get = function (view, count, index, isLittleEndian) {
76
82
  var intIndex = toIndex(index);
77
- var store = getInternalState(view);
83
+ var store = getInternalDataViewState(view);
78
84
  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);
79
- var bytes = getInternalState(store.buffer).bytes;
85
+ var bytes = store.bytes;
80
86
  var start = intIndex + store.byteOffset;
81
87
  var pack = arraySlice(bytes, start, start + count);
82
88
  return isLittleEndian ? pack : reverse(pack);
@@ -84,9 +90,9 @@ var get = function (view, count, index, isLittleEndian) {
84
90
 
85
91
  var set = function (view, count, index, conversion, value, isLittleEndian) {
86
92
  var intIndex = toIndex(index);
87
- var store = getInternalState(view);
93
+ var store = getInternalDataViewState(view);
88
94
  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);
89
- var bytes = getInternalState(store.buffer).bytes;
95
+ var bytes = store.bytes;
90
96
  var start = intIndex + store.byteOffset;
91
97
  var pack = conversion(+value);
92
98
  for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];
@@ -97,10 +103,14 @@ if (!NATIVE_ARRAY_BUFFER) {
97
103
  anInstance(this, ArrayBufferPrototype);
98
104
  var byteLength = toIndex(length);
99
105
  setInternalState(this, {
106
+ type: ARRAY_BUFFER,
100
107
  bytes: fill(Array(byteLength), 0),
101
108
  byteLength: byteLength
102
109
  });
103
- if (!DESCRIPTORS) this.byteLength = byteLength;
110
+ if (!DESCRIPTORS) {
111
+ this.byteLength = byteLength;
112
+ this.detached = false;
113
+ }
104
114
  };
105
115
 
106
116
  ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];
@@ -108,15 +118,18 @@ if (!NATIVE_ARRAY_BUFFER) {
108
118
  $DataView = function DataView(buffer, byteOffset, byteLength) {
109
119
  anInstance(this, DataViewPrototype);
110
120
  anInstance(buffer, ArrayBufferPrototype);
111
- var bufferLength = getInternalState(buffer).byteLength;
121
+ var bufferState = getInternalArrayBufferState(buffer);
122
+ var bufferLength = bufferState.byteLength;
112
123
  var offset = toIntegerOrInfinity(byteOffset);
113
124
  if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');
114
125
  byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
115
126
  if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);
116
127
  setInternalState(this, {
128
+ type: DATA_VIEW,
117
129
  buffer: buffer,
118
130
  byteLength: byteLength,
119
- byteOffset: offset
131
+ byteOffset: offset,
132
+ bytes: bufferState.bytes
120
133
  });
121
134
  if (!DESCRIPTORS) {
122
135
  this.buffer = buffer;
@@ -128,10 +141,10 @@ if (!NATIVE_ARRAY_BUFFER) {
128
141
  DataViewPrototype = $DataView[PROTOTYPE];
129
142
 
130
143
  if (DESCRIPTORS) {
131
- addGetter($ArrayBuffer, 'byteLength');
132
- addGetter($DataView, 'buffer');
133
- addGetter($DataView, 'byteLength');
134
- addGetter($DataView, 'byteOffset');
144
+ addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState);
145
+ addGetter($DataView, 'buffer', getInternalDataViewState);
146
+ addGetter($DataView, 'byteLength', getInternalDataViewState);
147
+ addGetter($DataView, 'byteOffset', getInternalDataViewState);
135
148
  }
136
149
 
137
150
  defineBuiltIns(DataViewPrototype, {
@@ -37,66 +37,45 @@ var createAsyncIteratorProxyPrototype = function (IS_ITERATOR) {
37
37
  } return { exit: false, value: state };
38
38
  };
39
39
 
40
- var enqueue = function (state, handler) {
41
- var task = function () {
42
- var promise = handler();
43
- if (IS_GENERATOR) {
44
- state.awaiting = promise;
45
- var clean = function () {
46
- if (state.awaiting === promise) state.awaiting = null;
47
- };
48
- promise.then(clean, clean);
49
- } return promise;
50
- };
51
-
52
- return state.awaiting ? state.awaiting = state.awaiting.then(task, task) : task();
53
- };
54
-
55
40
  return defineBuiltIns(create(AsyncIteratorPrototype), {
56
41
  next: function next() {
57
42
  var stateCompletion = getStateOrEarlyExit(this);
58
- var exit = stateCompletion.exit;
59
43
  var state = stateCompletion.value;
60
-
61
- return exit ? state : enqueue(state, function () {
62
- var handlerCompletion = perform(function () {
63
- return anObject(state.nextHandler(Promise));
64
- });
65
- var handlerError = handlerCompletion.error;
66
- var value = handlerCompletion.value;
67
- if (handlerError) state.done = true;
68
- return handlerError ? Promise.reject(value) : Promise.resolve(value);
44
+ if (stateCompletion.exit) return state;
45
+ var handlerCompletion = perform(function () {
46
+ return anObject(state.nextHandler(Promise));
69
47
  });
48
+ var handlerError = handlerCompletion.error;
49
+ var value = handlerCompletion.value;
50
+ if (handlerError) state.done = true;
51
+ return handlerError ? Promise.reject(value) : Promise.resolve(value);
70
52
  },
71
53
  'return': function () {
72
54
  var stateCompletion = getStateOrEarlyExit(this);
73
- var exit = stateCompletion.exit;
74
55
  var state = stateCompletion.value;
75
-
76
- return exit ? state : enqueue(state, function () {
77
- state.done = true;
78
- var iterator = state.iterator;
79
- var returnMethod, result;
80
- var completion = perform(function () {
81
- if (state.inner) try {
82
- iteratorClose(state.inner.iterator, 'normal');
83
- } catch (error) {
84
- return iteratorClose(iterator, 'throw', error);
85
- }
86
- return getMethod(iterator, 'return');
87
- });
88
- returnMethod = result = completion.value;
89
- if (completion.error) return Promise.reject(result);
90
- if (returnMethod === undefined) return Promise.resolve(createIterResultObject(undefined, true));
91
- completion = perform(function () {
92
- return call(returnMethod, iterator);
93
- });
94
- result = completion.value;
95
- if (completion.error) return Promise.reject(result);
96
- return IS_ITERATOR ? Promise.resolve(result) : Promise.resolve(result).then(function (resolved) {
97
- anObject(resolved);
98
- return createIterResultObject(undefined, true);
99
- });
56
+ if (stateCompletion.exit) return state;
57
+ state.done = true;
58
+ var iterator = state.iterator;
59
+ var returnMethod, result;
60
+ var completion = perform(function () {
61
+ if (state.inner) try {
62
+ iteratorClose(state.inner.iterator, 'normal');
63
+ } catch (error) {
64
+ return iteratorClose(iterator, 'throw', error);
65
+ }
66
+ return getMethod(iterator, 'return');
67
+ });
68
+ returnMethod = result = completion.value;
69
+ if (completion.error) return Promise.reject(result);
70
+ if (returnMethod === undefined) return Promise.resolve(createIterResultObject(undefined, true));
71
+ completion = perform(function () {
72
+ return call(returnMethod, iterator);
73
+ });
74
+ result = completion.value;
75
+ if (completion.error) return Promise.reject(result);
76
+ return IS_ITERATOR ? Promise.resolve(result) : Promise.resolve(result).then(function (resolved) {
77
+ anObject(resolved);
78
+ return createIterResultObject(undefined, true);
100
79
  });
101
80
  }
102
81
  });
@@ -117,7 +96,6 @@ module.exports = function (nextHandler, IS_ITERATOR) {
117
96
  state.nextHandler = nextHandler;
118
97
  state.counter = 0;
119
98
  state.done = false;
120
- state.awaiting = null;
121
99
  setInternalState(this, state);
122
100
  };
123
101
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
- var defineProperty = require('../internals/object-define-property').f;
3
2
  var create = require('../internals/object-create');
3
+ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
4
4
  var defineBuiltIns = require('../internals/define-built-ins');
5
5
  var bind = require('../internals/function-bind-context');
6
6
  var anInstance = require('../internals/an-instance');
@@ -152,7 +152,8 @@ module.exports = {
152
152
  return define(this, value = value === 0 ? 0 : value, value);
153
153
  }
154
154
  });
155
- if (DESCRIPTORS) defineProperty(Prototype, 'size', {
155
+ if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {
156
+ configurable: true,
156
157
  get: function () {
157
158
  return getInternalState(this).size;
158
159
  }
@@ -1,3 +1,4 @@
1
1
  var userAgent = require('../internals/engine-user-agent');
2
2
 
3
+ // eslint-disable-next-line redos/no-vulnerable -- safe
3
4
  module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);
@@ -4,6 +4,7 @@ var $Error = Error;
4
4
  var replace = uncurryThis(''.replace);
5
5
 
6
6
  var TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');
7
+ // eslint-disable-next-line redos/no-vulnerable -- safe
7
8
  var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/;
8
9
  var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);
9
10
 
@@ -20,6 +20,7 @@ var construct = function (C, argsLength, args) {
20
20
 
21
21
  // `Function.prototype.bind` method implementation
22
22
  // https://tc39.es/ecma262/#sec-function.prototype.bind
23
+ // eslint-disable-next-line es/no-function-prototype-bind -- detection
23
24
  module.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) {
24
25
  var F = aCallable(this);
25
26
  var Prototype = F.prototype;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+ var uncurryThis = require('../internals/function-uncurry-this');
3
+ var aCallable = require('../internals/a-callable');
4
+
5
+ module.exports = function demethodize() {
6
+ return uncurryThis(aCallable(this));
7
+ };
@@ -0,0 +1,9 @@
1
+ var uncurryThis = require('../internals/function-uncurry-this');
2
+ var aCallable = require('../internals/a-callable');
3
+
4
+ module.exports = function (object, key, method) {
5
+ try {
6
+ // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
7
+ return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));
8
+ } catch (error) { /* empty */ }
9
+ };
@@ -0,0 +1,29 @@
1
+ var uncurryThis = require('../internals/function-uncurry-this');
2
+ var isArray = require('../internals/is-array');
3
+ var isCallable = require('../internals/is-callable');
4
+ var classof = require('../internals/classof-raw');
5
+ var toString = require('../internals/to-string');
6
+
7
+ var push = uncurryThis([].push);
8
+
9
+ module.exports = function (replacer) {
10
+ if (isCallable(replacer)) return replacer;
11
+ if (!isArray(replacer)) return;
12
+ var rawLength = replacer.length;
13
+ var keys = [];
14
+ for (var i = 0; i < rawLength; i++) {
15
+ var element = replacer[i];
16
+ if (typeof element == 'string') push(keys, element);
17
+ else if (typeof element == 'number' || classof(element) == 'Number' || classof(element) == 'String') push(keys, toString(element));
18
+ }
19
+ var keysLength = keys.length;
20
+ var root = true;
21
+ return function (key, value) {
22
+ if (root) {
23
+ root = false;
24
+ return value;
25
+ }
26
+ if (isArray(this)) return value;
27
+ for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;
28
+ };
29
+ };
@@ -5,6 +5,7 @@ var floor = Math.floor;
5
5
  var charAt = uncurryThis(''.charAt);
6
6
  var replace = uncurryThis(''.replace);
7
7
  var stringSlice = uncurryThis(''.slice);
8
+ // eslint-disable-next-line redos/no-vulnerable -- safe
8
9
  var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g;
9
10
  var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g;
10
11
 
@@ -0,0 +1,8 @@
1
+ var isObject = require('../internals/is-object');
2
+ var getInternalState = require('../internals/internal-state').get;
3
+
4
+ module.exports = function isRawJSON(O) {
5
+ if (!isObject(O)) return false;
6
+ var state = getInternalState(O);
7
+ return !!state && state.type === 'RawJSON';
8
+ };
@@ -0,0 +1,8 @@
1
+ /* eslint-disable es/no-json -- safe */
2
+ var fails = require('../internals/fails');
3
+
4
+ module.exports = !fails(function () {
5
+ var unsafeInt = '9007199254740993';
6
+ var raw = JSON.rawJSON(unsafeInt);
7
+ return !JSON.isRawJSON(raw) || JSON.stringify(raw) !== unsafeInt;
8
+ });
@@ -7,7 +7,7 @@ var isObject = require('../internals/is-object');
7
7
  var defineProperties = require('../internals/object-define-properties').f;
8
8
  var DESCRIPTORS = require('../internals/descriptors');
9
9
 
10
- var INCORRECT_RANGE = 'Incorrect Number.range arguments';
10
+ var INCORRECT_RANGE = 'Incorrect Iterator.range arguments';
11
11
  var NUMERIC_RANGE_ITERATOR = 'NumericRangeIterator';
12
12
 
13
13
  var setInternalState = InternalStateModule.set;
@@ -17,6 +17,7 @@ var $RangeError = RangeError;
17
17
  var $TypeError = TypeError;
18
18
 
19
19
  var $RangeIterator = createIteratorConstructor(function NumericRangeIterator(start, end, option, type, zero, one) {
20
+ // TODO: Drop the first `typeof` check after removing lagacy methods in `core-js@4`
20
21
  if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) {
21
22
  throw $TypeError(INCORRECT_RANGE);
22
23
  }
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable no-proto -- safe */
2
- var uncurryThis = require('../internals/function-uncurry-this');
2
+ var uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');
3
3
  var anObject = require('../internals/an-object');
4
4
  var aPossiblePrototype = require('../internals/a-possible-prototype');
5
5
 
@@ -12,8 +12,7 @@ module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
12
12
  var test = {};
13
13
  var setter;
14
14
  try {
15
- // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
16
- setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);
15
+ setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');
17
16
  setter(test, []);
18
17
  CORRECT_SETTER = test instanceof Array;
19
18
  } catch (error) { /* empty */ }