core-js 3.6.1 → 3.6.5

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 (143) hide show
  1. package/LICENSE +1 -1
  2. package/es/regexp/test.js +1 -0
  3. package/es/string/index.js +1 -0
  4. package/es/string/match.js +1 -0
  5. package/es/string/replace.js +1 -0
  6. package/es/string/search.js +1 -0
  7. package/es/string/split.js +1 -0
  8. package/es/symbol/async-iterator.js +1 -1
  9. package/es/symbol/has-instance.js +1 -1
  10. package/es/symbol/is-concat-spreadable.js +1 -1
  11. package/es/symbol/iterator.js +1 -1
  12. package/es/symbol/match-all.js +1 -1
  13. package/es/symbol/match.js +1 -1
  14. package/es/symbol/replace.js +1 -1
  15. package/es/symbol/search.js +1 -1
  16. package/es/symbol/species.js +1 -1
  17. package/es/symbol/split.js +1 -1
  18. package/es/symbol/to-primitive.js +1 -1
  19. package/es/symbol/to-string-tag.js +1 -1
  20. package/es/symbol/unscopables.js +1 -1
  21. package/features/symbol/async-dispose.js +1 -1
  22. package/features/symbol/dispose.js +1 -1
  23. package/features/symbol/observable.js +1 -1
  24. package/features/symbol/pattern-match.js +1 -1
  25. package/features/symbol/replace-all.js +1 -1
  26. package/internals/array-buffer-native.js +1 -0
  27. package/internals/array-buffer-view-core.js +1 -9
  28. package/internals/array-buffer.js +13 -3
  29. package/internals/array-for-each.js +6 -2
  30. package/internals/array-from.js +7 -8
  31. package/internals/array-iteration.js +1 -1
  32. package/internals/array-last-index-of.js +7 -3
  33. package/internals/array-method-has-species-support.js +1 -1
  34. package/internals/{sloppy-array-method.js → array-method-is-strict.js} +1 -1
  35. package/internals/array-method-uses-to-length.js +27 -0
  36. package/internals/{create-async-iterator-proxy.js → async-iterator-create-proxy.js} +0 -0
  37. package/internals/collection-from.js +1 -1
  38. package/internals/collection-strong.js +1 -1
  39. package/internals/define-well-known-symbol.js +1 -1
  40. package/internals/descriptors.js +1 -1
  41. package/internals/{is-ios.js → engine-is-ios.js} +1 -1
  42. package/internals/{user-agent.js → engine-user-agent.js} +0 -0
  43. package/internals/{v8-version.js → engine-v8-version.js} +1 -1
  44. package/internals/entry-unbind.js +1 -1
  45. package/internals/fix-regexp-well-known-symbol-logic.js +20 -2
  46. package/internals/flatten-into-array.js +1 -1
  47. package/internals/{bind-context.js → function-bind-context.js} +0 -0
  48. package/internals/iterate.js +1 -1
  49. package/internals/{create-iterator-proxy.js → iterator-create-proxy.js} +0 -0
  50. package/internals/microtask.js +1 -1
  51. package/internals/{parse-float.js → number-parse-float.js} +4 -4
  52. package/internals/{parse-int.js → number-parse-int.js} +4 -4
  53. package/internals/{forced-object-prototype-accessors-methods.js → object-prototype-accessors-forced.js} +0 -0
  54. package/internals/shared.js +2 -2
  55. package/internals/{forced-string-html-method.js → string-html-forced.js} +0 -0
  56. package/internals/{webkit-string-pad-bug.js → string-pad-webkit-bug.js} +1 -1
  57. package/internals/{punycode-to-ascii.js → string-punycode-to-ascii.js} +0 -0
  58. package/internals/{forced-string-trim-method.js → string-trim-forced.js} +0 -0
  59. package/internals/task.js +9 -3
  60. package/internals/typed-array-constructor.js +1 -1
  61. package/internals/{typed-arrays-constructors-requires-wrappers.js → typed-array-constructors-require-wrappers.js} +0 -0
  62. package/internals/typed-array-from.js +1 -1
  63. package/internals/{wrapped-well-known-symbol.js → well-known-symbol-wrapped.js} +0 -0
  64. package/modules/es.array.concat.js +1 -1
  65. package/modules/es.array.every.js +6 -2
  66. package/modules/es.array.filter.js +2 -4
  67. package/modules/es.array.find-index.js +4 -1
  68. package/modules/es.array.find.js +4 -1
  69. package/modules/es.array.includes.js +4 -1
  70. package/modules/es.array.index-of.js +5 -3
  71. package/modules/es.array.join.js +3 -3
  72. package/modules/es.array.map.js +2 -4
  73. package/modules/es.array.reduce-right.js +7 -2
  74. package/modules/es.array.reduce.js +6 -2
  75. package/modules/es.array.slice.js +6 -2
  76. package/modules/es.array.some.js +6 -2
  77. package/modules/es.array.sort.js +3 -3
  78. package/modules/es.array.splice.js +5 -1
  79. package/modules/es.data-view.js +1 -1
  80. package/modules/es.number.parse-float.js +1 -1
  81. package/modules/es.number.parse-int.js +1 -1
  82. package/modules/es.object.define-getter.js +1 -1
  83. package/modules/es.object.define-setter.js +1 -1
  84. package/modules/es.object.lookup-getter.js +1 -1
  85. package/modules/es.object.lookup-setter.js +1 -1
  86. package/modules/es.parse-float.js +1 -1
  87. package/modules/es.parse-int.js +1 -1
  88. package/modules/es.promise.js +1 -1
  89. package/modules/es.regexp.test.js +2 -0
  90. package/modules/es.string.anchor.js +1 -1
  91. package/modules/es.string.big.js +1 -1
  92. package/modules/es.string.blink.js +1 -1
  93. package/modules/es.string.bold.js +1 -1
  94. package/modules/es.string.fixed.js +1 -1
  95. package/modules/es.string.fontcolor.js +1 -1
  96. package/modules/es.string.fontsize.js +1 -1
  97. package/modules/es.string.italics.js +1 -1
  98. package/modules/es.string.link.js +1 -1
  99. package/modules/es.string.pad-end.js +1 -1
  100. package/modules/es.string.pad-start.js +1 -1
  101. package/modules/es.string.replace.js +8 -1
  102. package/modules/es.string.small.js +1 -1
  103. package/modules/es.string.strike.js +1 -1
  104. package/modules/es.string.sub.js +1 -1
  105. package/modules/es.string.sup.js +1 -1
  106. package/modules/es.string.trim-end.js +1 -1
  107. package/modules/es.string.trim-start.js +1 -1
  108. package/modules/es.string.trim.js +1 -1
  109. package/modules/es.symbol.js +1 -1
  110. package/modules/es.typed-array.from.js +1 -1
  111. package/modules/es.typed-array.of.js +1 -1
  112. package/modules/esnext.async-iterator.as-indexed-pairs.js +1 -1
  113. package/modules/esnext.async-iterator.drop.js +1 -1
  114. package/modules/esnext.async-iterator.filter.js +1 -1
  115. package/modules/esnext.async-iterator.flat-map.js +1 -1
  116. package/modules/esnext.async-iterator.from.js +1 -1
  117. package/modules/esnext.async-iterator.map.js +1 -1
  118. package/modules/esnext.async-iterator.take.js +1 -1
  119. package/modules/esnext.iterator.as-indexed-pairs.js +1 -1
  120. package/modules/esnext.iterator.drop.js +1 -1
  121. package/modules/esnext.iterator.filter.js +1 -1
  122. package/modules/esnext.iterator.flat-map.js +1 -1
  123. package/modules/esnext.iterator.from.js +1 -1
  124. package/modules/esnext.iterator.map.js +1 -1
  125. package/modules/esnext.iterator.take.js +1 -1
  126. package/modules/esnext.map.every.js +1 -1
  127. package/modules/esnext.map.filter.js +1 -1
  128. package/modules/esnext.map.find-key.js +1 -1
  129. package/modules/esnext.map.find.js +1 -1
  130. package/modules/esnext.map.map-keys.js +1 -1
  131. package/modules/esnext.map.map-values.js +1 -1
  132. package/modules/esnext.map.some.js +1 -1
  133. package/modules/esnext.number.from-string.js +1 -1
  134. package/modules/esnext.set.every.js +1 -1
  135. package/modules/esnext.set.filter.js +1 -1
  136. package/modules/esnext.set.find.js +1 -1
  137. package/modules/esnext.set.map.js +1 -1
  138. package/modules/esnext.set.some.js +1 -1
  139. package/modules/web.timers.js +1 -1
  140. package/modules/web.url-search-params.js +1 -1
  141. package/modules/web.url.js +2 -2
  142. package/package.json +1 -1
  143. package/postinstall.js +3 -1
package/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014-2019 Denis Pushkarev
1
+ Copyright (c) 2014-2020 Denis Pushkarev
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
package/es/regexp/test.js CHANGED
@@ -1,3 +1,4 @@
1
+ require('../../modules/es.regexp.exec');
1
2
  require('../../modules/es.regexp.test');
2
3
 
3
4
  module.exports = function (re, string) {
@@ -1,3 +1,4 @@
1
+ require('../../modules/es.regexp.exec');
1
2
  require('../../modules/es.string.from-code-point');
2
3
  require('../../modules/es.string.raw');
3
4
  require('../../modules/es.string.code-point-at');
@@ -1,3 +1,4 @@
1
+ require('../../modules/es.regexp.exec');
1
2
  require('../../modules/es.string.match');
2
3
  var entryUnbind = require('../../internals/entry-unbind');
3
4
 
@@ -1,3 +1,4 @@
1
+ require('../../modules/es.regexp.exec');
1
2
  require('../../modules/es.string.replace');
2
3
  var entryUnbind = require('../../internals/entry-unbind');
3
4
 
@@ -1,3 +1,4 @@
1
+ require('../../modules/es.regexp.exec');
1
2
  require('../../modules/es.string.search');
2
3
  var entryUnbind = require('../../internals/entry-unbind');
3
4
 
@@ -1,3 +1,4 @@
1
+ require('../../modules/es.regexp.exec');
1
2
  require('../../modules/es.string.split');
2
3
  var entryUnbind = require('../../internals/entry-unbind');
3
4
 
@@ -1,4 +1,4 @@
1
1
  require('../../modules/es.symbol.async-iterator');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('asyncIterator');
@@ -1,5 +1,5 @@
1
1
  require('../../modules/es.symbol.has-instance');
2
2
  require('../../modules/es.function.has-instance');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('hasInstance');
@@ -1,5 +1,5 @@
1
1
  require('../../modules/es.symbol.is-concat-spreadable');
2
2
  require('../../modules/es.array.concat');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('isConcatSpreadable');
@@ -1,6 +1,6 @@
1
1
  require('../../modules/es.symbol.iterator');
2
2
  require('../../modules/es.string.iterator');
3
3
  require('../../modules/web.dom-collections.iterator');
4
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
4
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
5
5
 
6
6
  module.exports = WrappedWellKnownSymbolModule.f('iterator');
@@ -1,5 +1,5 @@
1
1
  require('../../modules/es.symbol.match-all');
2
2
  require('../../modules/es.string.match-all');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('matchAll');
@@ -1,5 +1,5 @@
1
1
  require('../../modules/es.symbol.match');
2
2
  require('../../modules/es.string.match');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('match');
@@ -1,5 +1,5 @@
1
1
  require('../../modules/es.symbol.replace');
2
2
  require('../../modules/es.string.replace');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('replace');
@@ -1,5 +1,5 @@
1
1
  require('../../modules/es.symbol.search');
2
2
  require('../../modules/es.string.search');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('search');
@@ -1,4 +1,4 @@
1
1
  require('../../modules/es.symbol.species');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('species');
@@ -1,5 +1,5 @@
1
1
  require('../../modules/es.symbol.split');
2
2
  require('../../modules/es.string.split');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('split');
@@ -1,4 +1,4 @@
1
1
  require('../../modules/es.symbol.to-primitive');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('toPrimitive');
@@ -2,6 +2,6 @@ require('../../modules/es.symbol.to-string-tag');
2
2
  require('../../modules/es.object.to-string');
3
3
  require('../../modules/es.math.to-string-tag');
4
4
  require('../../modules/es.json.to-string-tag');
5
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
5
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
6
6
 
7
7
  module.exports = WrappedWellKnownSymbolModule.f('toStringTag');
@@ -1,4 +1,4 @@
1
1
  require('../../modules/es.symbol.unscopables');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('unscopables');
@@ -1,4 +1,4 @@
1
1
  require('../../modules/esnext.symbol.async-dispose');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('asyncDispose');
@@ -1,4 +1,4 @@
1
1
  require('../../modules/esnext.symbol.dispose');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('dispose');
@@ -1,4 +1,4 @@
1
1
  require('../../modules/esnext.symbol.observable');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('observable');
@@ -1,4 +1,4 @@
1
1
  require('../../modules/esnext.symbol.pattern-match');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('patternMatch');
@@ -1,5 +1,5 @@
1
1
  // TODO: Remove from `core-js@4`
2
2
  require('../../modules/esnext.symbol.replace-all');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('replaceAll');
@@ -0,0 +1 @@
1
+ module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';
@@ -1,4 +1,5 @@
1
1
  'use strict';
2
+ var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');
2
3
  var DESCRIPTORS = require('../internals/descriptors');
3
4
  var global = require('../internals/global');
4
5
  var isObject = require('../internals/is-object');
@@ -12,8 +13,6 @@ var setPrototypeOf = require('../internals/object-set-prototype-of');
12
13
  var wellKnownSymbol = require('../internals/well-known-symbol');
13
14
  var uid = require('../internals/uid');
14
15
 
15
- var DataView = global.DataView;
16
- var DataViewPrototype = DataView && DataView.prototype;
17
16
  var Int8Array = global.Int8Array;
18
17
  var Int8ArrayPrototype = Int8Array && Int8Array.prototype;
19
18
  var Uint8ClampedArray = global.Uint8ClampedArray;
@@ -25,7 +24,6 @@ var isPrototypeOf = ObjectPrototype.isPrototypeOf;
25
24
 
26
25
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
27
26
  var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');
28
- var NATIVE_ARRAY_BUFFER = !!(global.ArrayBuffer && DataView);
29
27
  // Fixing native typed arrays in Opera Presto crashes the browser, see #595
30
28
  var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';
31
29
  var TYPED_ARRAY_TAG_REQIRED = false;
@@ -144,13 +142,7 @@ if (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {
144
142
  }
145
143
  }
146
144
 
147
- // WebKit bug - the same parent prototype for typed arrays and data view
148
- if (NATIVE_ARRAY_BUFFER && setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {
149
- setPrototypeOf(DataViewPrototype, ObjectPrototype);
150
- }
151
-
152
145
  module.exports = {
153
- NATIVE_ARRAY_BUFFER: NATIVE_ARRAY_BUFFER,
154
146
  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,
155
147
  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,
156
148
  aTypedArray: aTypedArray,
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  var global = require('../internals/global');
3
3
  var DESCRIPTORS = require('../internals/descriptors');
4
- var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER;
4
+ var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');
5
5
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
6
6
  var redefineAll = require('../internals/redefine-all');
7
7
  var fails = require('../internals/fails');
@@ -10,6 +10,8 @@ var toInteger = require('../internals/to-integer');
10
10
  var toLength = require('../internals/to-length');
11
11
  var toIndex = require('../internals/to-index');
12
12
  var IEEE754 = require('../internals/ieee754');
13
+ var getPrototypeOf = require('../internals/object-get-prototype-of');
14
+ var setPrototypeOf = require('../internals/object-set-prototype-of');
13
15
  var getOwnPropertyNames = require('../internals/object-get-own-property-names').f;
14
16
  var defineProperty = require('../internals/object-define-property').f;
15
17
  var arrayFill = require('../internals/array-fill');
@@ -26,6 +28,8 @@ var WRONG_INDEX = 'Wrong index';
26
28
  var NativeArrayBuffer = global[ARRAY_BUFFER];
27
29
  var $ArrayBuffer = NativeArrayBuffer;
28
30
  var $DataView = global[DATA_VIEW];
31
+ var $DataViewPrototype = $DataView && $DataView[PROTOTYPE];
32
+ var ObjectPrototype = Object.prototype;
29
33
  var RangeError = global.RangeError;
30
34
 
31
35
  var packIEEE754 = IEEE754.pack;
@@ -192,12 +196,18 @@ if (!NATIVE_ARRAY_BUFFER) {
192
196
  }
193
197
  ArrayBufferPrototype.constructor = $ArrayBuffer;
194
198
  }
199
+
200
+ // WebKit bug - the same parent prototype for typed arrays and data view
201
+ if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {
202
+ setPrototypeOf($DataViewPrototype, ObjectPrototype);
203
+ }
204
+
195
205
  // iOS Safari 7.x bug
196
206
  var testView = new $DataView(new $ArrayBuffer(2));
197
- var nativeSetInt8 = $DataView[PROTOTYPE].setInt8;
207
+ var nativeSetInt8 = $DataViewPrototype.setInt8;
198
208
  testView.setInt8(0, 2147483648);
199
209
  testView.setInt8(1, 2147483649);
200
- if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataView[PROTOTYPE], {
210
+ if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {
201
211
  setInt8: function setInt8(byteOffset, value) {
202
212
  nativeSetInt8.call(this, byteOffset, value << 24 >> 24);
203
213
  },
@@ -1,9 +1,13 @@
1
1
  'use strict';
2
2
  var $forEach = require('../internals/array-iteration').forEach;
3
- var sloppyArrayMethod = require('../internals/sloppy-array-method');
3
+ var arrayMethodIsStrict = require('../internals/array-method-is-strict');
4
+ var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
5
+
6
+ var STRICT_METHOD = arrayMethodIsStrict('forEach');
7
+ var USES_TO_LENGTH = arrayMethodUsesToLength('forEach');
4
8
 
5
9
  // `Array.prototype.forEach` method implementation
6
10
  // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
7
- module.exports = sloppyArrayMethod('forEach') ? function forEach(callbackfn /* , thisArg */) {
11
+ module.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {
8
12
  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
9
13
  } : [].forEach;
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
- var bind = require('../internals/bind-context');
2
+ var bind = require('../internals/function-bind-context');
3
3
  var toObject = require('../internals/to-object');
4
4
  var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
5
5
  var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
@@ -15,9 +15,9 @@ module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undef
15
15
  var argumentsLength = arguments.length;
16
16
  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
17
17
  var mapping = mapfn !== undefined;
18
- var index = 0;
19
18
  var iteratorMethod = getIteratorMethod(O);
20
- var length, result, step, iterator, next;
19
+ var index = 0;
20
+ var length, result, step, iterator, next, value;
21
21
  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
22
22
  // if the target is not iterable or it's an array with the default iterator - use a simple case
23
23
  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {
@@ -25,16 +25,15 @@ module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undef
25
25
  next = iterator.next;
26
26
  result = new C();
27
27
  for (;!(step = next.call(iterator)).done; index++) {
28
- createProperty(result, index, mapping
29
- ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true)
30
- : step.value
31
- );
28
+ value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
29
+ createProperty(result, index, value);
32
30
  }
33
31
  } else {
34
32
  length = toLength(O.length);
35
33
  result = new C(length);
36
34
  for (;length > index; index++) {
37
- createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
35
+ value = mapping ? mapfn(O[index], index) : O[index];
36
+ createProperty(result, index, value);
38
37
  }
39
38
  }
40
39
  result.length = index;
@@ -1,4 +1,4 @@
1
- var bind = require('../internals/bind-context');
1
+ var bind = require('../internals/function-bind-context');
2
2
  var IndexedObject = require('../internals/indexed-object');
3
3
  var toObject = require('../internals/to-object');
4
4
  var toLength = require('../internals/to-length');
@@ -2,16 +2,20 @@
2
2
  var toIndexedObject = require('../internals/to-indexed-object');
3
3
  var toInteger = require('../internals/to-integer');
4
4
  var toLength = require('../internals/to-length');
5
- var sloppyArrayMethod = require('../internals/sloppy-array-method');
5
+ var arrayMethodIsStrict = require('../internals/array-method-is-strict');
6
+ var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
6
7
 
7
8
  var min = Math.min;
8
9
  var nativeLastIndexOf = [].lastIndexOf;
9
10
  var NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;
10
- var SLOPPY_METHOD = sloppyArrayMethod('lastIndexOf');
11
+ var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');
12
+ // For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method
13
+ var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
14
+ var FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;
11
15
 
12
16
  // `Array.prototype.lastIndexOf` method implementation
13
17
  // https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof
14
- module.exports = (NEGATIVE_ZERO || SLOPPY_METHOD) ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
18
+ module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
15
19
  // convert -0 to +0
16
20
  if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;
17
21
  var O = toIndexedObject(this);
@@ -1,6 +1,6 @@
1
1
  var fails = require('../internals/fails');
2
2
  var wellKnownSymbol = require('../internals/well-known-symbol');
3
- var V8_VERSION = require('../internals/v8-version');
3
+ var V8_VERSION = require('../internals/engine-v8-version');
4
4
 
5
5
  var SPECIES = wellKnownSymbol('species');
6
6
 
@@ -3,7 +3,7 @@ var fails = require('../internals/fails');
3
3
 
4
4
  module.exports = function (METHOD_NAME, argument) {
5
5
  var method = [][METHOD_NAME];
6
- return !method || !fails(function () {
6
+ return !!method && fails(function () {
7
7
  // eslint-disable-next-line no-useless-call,no-throw-literal
8
8
  method.call(null, argument || function () { throw 1; }, 1);
9
9
  });
@@ -0,0 +1,27 @@
1
+ var DESCRIPTORS = require('../internals/descriptors');
2
+ var fails = require('../internals/fails');
3
+ var has = require('../internals/has');
4
+
5
+ var defineProperty = Object.defineProperty;
6
+ var cache = {};
7
+
8
+ var thrower = function (it) { throw it; };
9
+
10
+ module.exports = function (METHOD_NAME, options) {
11
+ if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];
12
+ if (!options) options = {};
13
+ var method = [][METHOD_NAME];
14
+ var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;
15
+ var argument0 = has(options, 0) ? options[0] : thrower;
16
+ var argument1 = has(options, 1) ? options[1] : undefined;
17
+
18
+ return cache[METHOD_NAME] = !!method && !fails(function () {
19
+ if (ACCESSORS && !DESCRIPTORS) return true;
20
+ var O = { length: -1 };
21
+
22
+ if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });
23
+ else O[1] = 1;
24
+
25
+ method.call(O, argument0, argument1);
26
+ });
27
+ };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  // https://tc39.github.io/proposal-setmap-offrom/
3
3
  var aFunction = require('../internals/a-function');
4
- var bind = require('../internals/bind-context');
4
+ var bind = require('../internals/function-bind-context');
5
5
  var iterate = require('../internals/iterate');
6
6
 
7
7
  module.exports = function from(source /* , mapFn, thisArg */) {
@@ -2,7 +2,7 @@
2
2
  var defineProperty = require('../internals/object-define-property').f;
3
3
  var create = require('../internals/object-create');
4
4
  var redefineAll = require('../internals/redefine-all');
5
- var bind = require('../internals/bind-context');
5
+ var bind = require('../internals/function-bind-context');
6
6
  var anInstance = require('../internals/an-instance');
7
7
  var iterate = require('../internals/iterate');
8
8
  var defineIterator = require('../internals/define-iterator');
@@ -1,6 +1,6 @@
1
1
  var path = require('../internals/path');
2
2
  var has = require('../internals/has');
3
- var wrappedWellKnownSymbolModule = require('../internals/wrapped-well-known-symbol');
3
+ var wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');
4
4
  var defineProperty = require('../internals/object-define-property').f;
5
5
 
6
6
  module.exports = function (NAME) {
@@ -2,5 +2,5 @@ var fails = require('../internals/fails');
2
2
 
3
3
  // Thank's IE8 for his funny defineProperty
4
4
  module.exports = !fails(function () {
5
- return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
5
+ return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
6
6
  });
@@ -1,3 +1,3 @@
1
- var userAgent = require('../internals/user-agent');
1
+ var userAgent = require('../internals/engine-user-agent');
2
2
 
3
3
  module.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);
@@ -1,5 +1,5 @@
1
1
  var global = require('../internals/global');
2
- var userAgent = require('../internals/user-agent');
2
+ var userAgent = require('../internals/engine-user-agent');
3
3
 
4
4
  var process = global.process;
5
5
  var versions = process && process.versions;
@@ -1,5 +1,5 @@
1
1
  var global = require('../internals/global');
2
- var bind = require('../internals/bind-context');
2
+ var bind = require('../internals/function-bind-context');
3
3
 
4
4
  var call = Function.call;
5
5
 
@@ -1,4 +1,6 @@
1
1
  'use strict';
2
+ // TODO: Remove from `core-js@4` since it's moved to entry points
3
+ require('../modules/es.regexp.exec');
2
4
  var redefine = require('../internals/redefine');
3
5
  var fails = require('../internals/fails');
4
6
  var wellKnownSymbol = require('../internals/well-known-symbol');
@@ -26,6 +28,15 @@ var REPLACE_KEEPS_$0 = (function () {
26
28
  return 'a'.replace(/./, '$0') === '$0';
27
29
  })();
28
30
 
31
+ var REPLACE = wellKnownSymbol('replace');
32
+ // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
33
+ var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
34
+ if (/./[REPLACE]) {
35
+ return /./[REPLACE]('a', '$0') === '';
36
+ }
37
+ return false;
38
+ })();
39
+
29
40
  // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
30
41
  // Weex JS has frozen built-in prototypes, so use try / catch wrapper
31
42
  var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
@@ -73,7 +84,11 @@ module.exports = function (KEY, length, exec, sham) {
73
84
  if (
74
85
  !DELEGATES_TO_SYMBOL ||
75
86
  !DELEGATES_TO_EXEC ||
76
- (KEY === 'replace' && !(REPLACE_SUPPORTS_NAMED_GROUPS && REPLACE_KEEPS_$0)) ||
87
+ (KEY === 'replace' && !(
88
+ REPLACE_SUPPORTS_NAMED_GROUPS &&
89
+ REPLACE_KEEPS_$0 &&
90
+ !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
91
+ )) ||
77
92
  (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
78
93
  ) {
79
94
  var nativeRegExpMethod = /./[SYMBOL];
@@ -88,7 +103,10 @@ module.exports = function (KEY, length, exec, sham) {
88
103
  return { done: true, value: nativeMethod.call(str, regexp, arg2) };
89
104
  }
90
105
  return { done: false };
91
- }, { REPLACE_KEEPS_$0: REPLACE_KEEPS_$0 });
106
+ }, {
107
+ REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,
108
+ REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
109
+ });
92
110
  var stringMethod = methods[0];
93
111
  var regexMethod = methods[1];
94
112
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  var isArray = require('../internals/is-array');
3
3
  var toLength = require('../internals/to-length');
4
- var bind = require('../internals/bind-context');
4
+ var bind = require('../internals/function-bind-context');
5
5
 
6
6
  // `FlattenIntoArray` abstract operation
7
7
  // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
@@ -1,7 +1,7 @@
1
1
  var anObject = require('../internals/an-object');
2
2
  var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
3
3
  var toLength = require('../internals/to-length');
4
- var bind = require('../internals/bind-context');
4
+ var bind = require('../internals/function-bind-context');
5
5
  var getIteratorMethod = require('../internals/get-iterator-method');
6
6
  var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
7
7
 
@@ -2,7 +2,7 @@ var global = require('../internals/global');
2
2
  var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
3
3
  var classof = require('../internals/classof-raw');
4
4
  var macrotask = require('../internals/task').set;
5
- var IS_IOS = require('../internals/is-ios');
5
+ var IS_IOS = require('../internals/engine-is-ios');
6
6
 
7
7
  var MutationObserver = global.MutationObserver || global.WebKitMutationObserver;
8
8
  var process = global.process;
@@ -2,13 +2,13 @@ var global = require('../internals/global');
2
2
  var trim = require('../internals/string-trim').trim;
3
3
  var whitespaces = require('../internals/whitespaces');
4
4
 
5
- var nativeParseFloat = global.parseFloat;
6
- var FORCED = 1 / nativeParseFloat(whitespaces + '-0') !== -Infinity;
5
+ var $parseFloat = global.parseFloat;
6
+ var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;
7
7
 
8
8
  // `parseFloat` method
9
9
  // https://tc39.github.io/ecma262/#sec-parsefloat-string
10
10
  module.exports = FORCED ? function parseFloat(string) {
11
11
  var trimmedString = trim(String(string));
12
- var result = nativeParseFloat(trimmedString);
12
+ var result = $parseFloat(trimmedString);
13
13
  return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;
14
- } : nativeParseFloat;
14
+ } : $parseFloat;
@@ -2,13 +2,13 @@ var global = require('../internals/global');
2
2
  var trim = require('../internals/string-trim').trim;
3
3
  var whitespaces = require('../internals/whitespaces');
4
4
 
5
- var nativeParseInt = global.parseInt;
5
+ var $parseInt = global.parseInt;
6
6
  var hex = /^[+-]?0[Xx]/;
7
- var FORCED = nativeParseInt(whitespaces + '08') !== 8 || nativeParseInt(whitespaces + '0x16') !== 22;
7
+ var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;
8
8
 
9
9
  // `parseInt` method
10
10
  // https://tc39.github.io/ecma262/#sec-parseint-string-radix
11
11
  module.exports = FORCED ? function parseInt(string, radix) {
12
12
  var S = trim(String(string));
13
- return nativeParseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));
14
- } : nativeParseInt;
13
+ return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));
14
+ } : $parseInt;
@@ -4,7 +4,7 @@ var store = require('../internals/shared-store');
4
4
  (module.exports = function (key, value) {
5
5
  return store[key] || (store[key] = value !== undefined ? value : {});
6
6
  })('versions', []).push({
7
- version: '3.6.1',
7
+ version: '3.6.5',
8
8
  mode: IS_PURE ? 'pure' : 'global',
9
- copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
9
+ copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
10
10
  });