core-js 3.17.2 → 3.18.2

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 (225) hide show
  1. package/configurator.js +7 -3
  2. package/es/promise/all-settled.js +2 -1
  3. package/es/promise/any.js +2 -1
  4. package/features/array/from-async.js +8 -0
  5. package/features/array/index.js +2 -0
  6. package/features/index.js +2 -0
  7. package/features/map/from.js +2 -1
  8. package/features/map/group-by.js +2 -1
  9. package/features/map/key-by.js +2 -1
  10. package/features/map/of.js +2 -1
  11. package/features/promise/try.js +2 -1
  12. package/features/set/from.js +2 -1
  13. package/features/set/of.js +2 -1
  14. package/features/typed-array/from-async.js +1 -0
  15. package/features/typed-array/index.js +2 -0
  16. package/features/typed-array/methods.js +2 -0
  17. package/features/weak-map/from.js +2 -1
  18. package/features/weak-map/of.js +2 -1
  19. package/features/weak-set/from.js +2 -1
  20. package/features/weak-set/of.js +2 -1
  21. package/internals/a-callable.js +8 -0
  22. package/internals/a-constructor.js +8 -0
  23. package/internals/a-possible-prototype.js +4 -5
  24. package/internals/an-instance.js +2 -3
  25. package/internals/an-object.js +4 -4
  26. package/internals/array-buffer-view-core.js +13 -12
  27. package/internals/array-buffer.js +9 -3
  28. package/internals/array-copy-within.js +2 -2
  29. package/internals/array-fill.js +2 -2
  30. package/internals/array-from-async.js +36 -0
  31. package/internals/array-from.js +8 -7
  32. package/internals/array-group-by.js +2 -2
  33. package/internals/array-includes.js +2 -2
  34. package/internals/array-iteration-from-last.js +2 -2
  35. package/internals/array-iteration.js +2 -2
  36. package/internals/array-last-index-of.js +4 -4
  37. package/internals/array-reduce.js +4 -4
  38. package/internals/array-species-constructor.js +3 -2
  39. package/internals/array-unique-by.js +5 -5
  40. package/internals/async-from-sync-iterator.js +4 -4
  41. package/internals/async-iterator-create-proxy.js +7 -6
  42. package/internals/async-iterator-iteration.js +27 -15
  43. package/internals/async-iterator-prototype.js +16 -16
  44. package/internals/classof.js +2 -1
  45. package/internals/collection-add-all.js +2 -2
  46. package/internals/collection-delete-all.js +2 -2
  47. package/internals/collection-from.js +4 -3
  48. package/internals/collection-weak.js +3 -3
  49. package/internals/collection.js +2 -1
  50. package/internals/copy-constructor-properties.js +2 -2
  51. package/internals/define-iterator.js +21 -13
  52. package/internals/define-well-known-symbol.js +2 -2
  53. package/internals/dom-token-list-prototype.js +7 -0
  54. package/internals/export.js +1 -0
  55. package/internals/flatten-into-array.js +4 -3
  56. package/internals/function-bind-context.js +2 -2
  57. package/internals/function-bind.js +2 -2
  58. package/internals/function-name.js +17 -0
  59. package/internals/get-async-iterator.js +2 -5
  60. package/internals/get-built-in.js +3 -2
  61. package/internals/get-iterator-method.js +3 -2
  62. package/internals/get-iterator.js +5 -5
  63. package/internals/get-method.js +4 -3
  64. package/internals/{has.js → has-own-property.js} +2 -0
  65. package/internals/inherit-if-required.js +2 -1
  66. package/internals/inspect-source.js +2 -1
  67. package/internals/install-error-cause.js +10 -0
  68. package/internals/internal-metadata.js +4 -4
  69. package/internals/internal-state.js +4 -4
  70. package/internals/is-array.js +2 -2
  71. package/internals/is-callable.js +5 -0
  72. package/internals/is-constructor.js +41 -0
  73. package/internals/is-data-descriptor.js +2 -2
  74. package/internals/is-forced.js +2 -1
  75. package/internals/is-integral-number.js +10 -0
  76. package/internals/is-object.js +3 -1
  77. package/internals/is-symbol.js +2 -1
  78. package/internals/iterate.js +3 -3
  79. package/internals/iterator-close.js +3 -2
  80. package/internals/iterator-create-proxy.js +10 -9
  81. package/internals/iterators-core.js +8 -6
  82. package/internals/length-of-array-like.js +7 -0
  83. package/internals/map-upsert.js +4 -3
  84. package/internals/native-weak-map.js +2 -1
  85. package/internals/new-promise-capability.js +3 -3
  86. package/internals/number-parse-float.js +6 -1
  87. package/internals/number-parse-int.js +6 -1
  88. package/internals/object-get-own-property-descriptor.js +2 -2
  89. package/internals/object-get-prototype-of.js +8 -6
  90. package/internals/object-iterator.js +2 -2
  91. package/internals/object-keys-internal.js +3 -3
  92. package/internals/ordinary-to-primitive.js +4 -3
  93. package/internals/redefine.js +12 -6
  94. package/internals/regexp-exec-abstract.js +8 -13
  95. package/internals/regexp-unsupported-dot-all.js +1 -1
  96. package/internals/regexp-unsupported-ncg.js +1 -1
  97. package/internals/set-to-string-tag.js +2 -2
  98. package/internals/shared.js +1 -1
  99. package/internals/species-constructor.js +2 -2
  100. package/internals/string-multibyte.js +2 -3
  101. package/internals/string-pad-webkit-bug.js +0 -1
  102. package/internals/string-pad.js +1 -1
  103. package/internals/string-repeat.js +2 -2
  104. package/internals/string-trim-forced.js +4 -1
  105. package/internals/task.js +3 -2
  106. package/internals/to-absolute-index.js +2 -2
  107. package/internals/to-index.js +2 -2
  108. package/internals/to-integer-or-infinity.js +10 -0
  109. package/internals/to-length.js +2 -2
  110. package/internals/to-positive-integer.js +2 -2
  111. package/internals/to-primitive.js +3 -2
  112. package/internals/to-string.js +2 -2
  113. package/internals/try-to-string.js +7 -0
  114. package/internals/typed-array-constructor.js +8 -8
  115. package/internals/typed-array-from.js +6 -4
  116. package/internals/well-known-symbol.js +3 -3
  117. package/modules/es.aggregate-error.js +5 -2
  118. package/modules/es.array.at.js +4 -4
  119. package/modules/es.array.concat.js +2 -2
  120. package/modules/es.array.flat-map.js +4 -4
  121. package/modules/es.array.flat.js +4 -4
  122. package/modules/es.array.of.js +2 -1
  123. package/modules/es.array.slice.js +5 -4
  124. package/modules/es.array.sort.js +4 -4
  125. package/modules/es.array.splice.js +4 -4
  126. package/modules/es.date.set-year.js +2 -2
  127. package/modules/es.date.to-primitive.js +2 -2
  128. package/modules/es.function.has-instance.js +2 -1
  129. package/modules/es.function.name.js +2 -1
  130. package/modules/es.number.constructor.js +15 -14
  131. package/modules/es.number.is-integer.js +2 -2
  132. package/modules/es.number.is-safe-integer.js +2 -2
  133. package/modules/es.number.to-fixed.js +2 -2
  134. package/modules/es.object.define-getter.js +2 -2
  135. package/modules/es.object.define-setter.js +2 -2
  136. package/modules/es.object.has-own.js +1 -1
  137. package/modules/es.parse-float.js +3 -3
  138. package/modules/es.parse-int.js +3 -3
  139. package/modules/es.promise.all-settled.js +2 -2
  140. package/modules/es.promise.any.js +2 -2
  141. package/modules/es.promise.finally.js +3 -2
  142. package/modules/es.promise.js +10 -9
  143. package/modules/es.reflect.apply.js +2 -2
  144. package/modules/es.reflect.construct.js +3 -3
  145. package/modules/es.regexp.constructor.js +2 -2
  146. package/modules/es.regexp.test.js +4 -4
  147. package/modules/es.regexp.to-string.js +2 -1
  148. package/modules/es.string.at-alternative.js +3 -4
  149. package/modules/es.string.ends-with.js +1 -1
  150. package/modules/es.string.match-all.js +6 -16
  151. package/modules/es.string.match.js +3 -2
  152. package/modules/es.string.raw.js +12 -6
  153. package/modules/es.string.replace-all.js +5 -3
  154. package/modules/es.string.replace.js +7 -5
  155. package/modules/es.string.search.js +3 -2
  156. package/modules/es.string.split.js +3 -2
  157. package/modules/es.string.substr.js +7 -4
  158. package/modules/es.string.trim-end.js +1 -1
  159. package/modules/es.string.trim-start.js +1 -1
  160. package/modules/es.symbol.description.js +4 -3
  161. package/modules/es.symbol.js +20 -16
  162. package/modules/es.typed-array.at.js +4 -4
  163. package/modules/es.typed-array.iterator.js +4 -4
  164. package/modules/es.typed-array.set.js +2 -2
  165. package/modules/es.typed-array.sort.js +4 -4
  166. package/modules/esnext.aggregate-error.js +1 -1
  167. package/modules/esnext.array.from-async.js +8 -0
  168. package/modules/esnext.array.last-index.js +2 -2
  169. package/modules/esnext.array.last-item.js +3 -3
  170. package/modules/esnext.async-iterator.constructor.js +3 -3
  171. package/modules/esnext.async-iterator.filter.js +2 -2
  172. package/modules/esnext.async-iterator.flat-map.js +3 -3
  173. package/modules/esnext.async-iterator.from.js +7 -9
  174. package/modules/esnext.async-iterator.map.js +2 -2
  175. package/modules/esnext.async-iterator.reduce.js +3 -3
  176. package/modules/esnext.async-iterator.to-array.js +1 -1
  177. package/modules/esnext.global-this.js +1 -1
  178. package/modules/esnext.iterator.constructor.js +5 -12
  179. package/modules/esnext.iterator.every.js +2 -2
  180. package/modules/esnext.iterator.filter.js +2 -2
  181. package/modules/esnext.iterator.find.js +2 -2
  182. package/modules/esnext.iterator.flat-map.js +4 -4
  183. package/modules/esnext.iterator.from.js +5 -7
  184. package/modules/esnext.iterator.map.js +2 -2
  185. package/modules/esnext.iterator.reduce.js +2 -2
  186. package/modules/esnext.iterator.some.js +2 -2
  187. package/modules/esnext.map.filter.js +2 -2
  188. package/modules/esnext.map.group-by.js +9 -7
  189. package/modules/esnext.map.key-by.js +3 -3
  190. package/modules/esnext.map.key-of.js +1 -1
  191. package/modules/esnext.map.map-keys.js +2 -2
  192. package/modules/esnext.map.map-values.js +2 -2
  193. package/modules/esnext.map.merge.js +2 -2
  194. package/modules/esnext.map.reduce.js +2 -2
  195. package/modules/esnext.map.update-or-insert.js +1 -1
  196. package/modules/esnext.map.update.js +3 -3
  197. package/modules/esnext.number.from-string.js +2 -2
  198. package/modules/esnext.observable.js +16 -14
  199. package/modules/esnext.promise.all-settled.js +1 -1
  200. package/modules/esnext.promise.any.js +1 -1
  201. package/modules/esnext.set.difference.js +2 -2
  202. package/modules/esnext.set.filter.js +2 -2
  203. package/modules/esnext.set.intersection.js +3 -3
  204. package/modules/esnext.set.is-disjoint-from.js +2 -2
  205. package/modules/esnext.set.is-subset-of.js +4 -3
  206. package/modules/esnext.set.is-superset-of.js +2 -2
  207. package/modules/esnext.set.map.js +2 -2
  208. package/modules/esnext.set.reduce.js +2 -2
  209. package/modules/esnext.set.symmetric-difference.js +3 -3
  210. package/modules/esnext.set.union.js +2 -2
  211. package/modules/esnext.string.match-all.js +1 -1
  212. package/modules/esnext.string.replace-all.js +1 -1
  213. package/modules/esnext.typed-array.from-async.js +26 -0
  214. package/modules/web.dom-collections.for-each.js +10 -3
  215. package/modules/web.dom-collections.iterator.js +8 -3
  216. package/modules/web.timers.js +2 -1
  217. package/modules/web.url-search-params.js +7 -6
  218. package/modules/web.url.js +6 -6
  219. package/package.json +2 -2
  220. package/postinstall.js +1 -1
  221. package/proposals/array-from-async.js +3 -0
  222. package/stage/1.js +1 -0
  223. package/internals/a-function.js +0 -5
  224. package/internals/is-integer.js +0 -9
  225. package/internals/to-integer.js +0 -8
@@ -1,5 +1,4 @@
1
1
  var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
2
- var aFunction = require('../internals/a-function');
3
2
  var anObject = require('../internals/an-object');
4
3
  var getIterator = require('../internals/get-iterator');
5
4
  var getMethod = require('../internals/get-method');
@@ -8,8 +7,6 @@ var wellKnownSymbol = require('../internals/well-known-symbol');
8
7
  var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
9
8
 
10
9
  module.exports = function (it, usingIterator) {
11
- var method = arguments.length < 2 ? getMethod(it[ASYNC_ITERATOR]) : usingIterator;
12
- if (method === undefined) {
13
- return new AsyncFromSyncIterator(getIterator(it));
14
- } return anObject(aFunction(method).call(it));
10
+ var method = arguments.length < 2 ? getMethod(it, ASYNC_ITERATOR) : usingIterator;
11
+ return method ? anObject(method.call(it)) : new AsyncFromSyncIterator(getIterator(it));
15
12
  };
@@ -1,7 +1,8 @@
1
1
  var global = require('../internals/global');
2
+ var isCallable = require('../internals/is-callable');
2
3
 
3
- var aFunction = function (variable) {
4
- return typeof variable == 'function' ? variable : undefined;
4
+ var aFunction = function (argument) {
5
+ return isCallable(argument) ? argument : undefined;
5
6
  };
6
7
 
7
8
  module.exports = function (namespace, method) {
@@ -1,11 +1,12 @@
1
1
  var classof = require('../internals/classof');
2
+ var getMethod = require('../internals/get-method');
2
3
  var Iterators = require('../internals/iterators');
3
4
  var wellKnownSymbol = require('../internals/well-known-symbol');
4
5
 
5
6
  var ITERATOR = wellKnownSymbol('iterator');
6
7
 
7
8
  module.exports = function (it) {
8
- if (it != undefined) return it[ITERATOR]
9
- || it['@@iterator']
9
+ if (it != undefined) return getMethod(it, ITERATOR)
10
+ || getMethod(it, '@@iterator')
10
11
  || Iterators[classof(it)];
11
12
  };
@@ -1,9 +1,9 @@
1
+ var aCallable = require('../internals/a-callable');
1
2
  var anObject = require('../internals/an-object');
2
3
  var getIteratorMethod = require('../internals/get-iterator-method');
3
4
 
4
- module.exports = function (it, usingIterator) {
5
- var iteratorMethod = arguments.length < 2 ? getIteratorMethod(it) : usingIterator;
6
- if (typeof iteratorMethod != 'function') {
7
- throw TypeError(String(it) + ' is not iterable');
8
- } return anObject(iteratorMethod.call(it));
5
+ module.exports = function (argument, usingIterator) {
6
+ var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;
7
+ if (aCallable(iteratorMethod)) return anObject(iteratorMethod.call(argument));
8
+ throw TypeError(String(argument) + ' is not iterable');
9
9
  };
@@ -1,7 +1,8 @@
1
- var aFunction = require('../internals/a-function');
1
+ var aCallable = require('../internals/a-callable');
2
2
 
3
3
  // `GetMethod` abstract operation
4
4
  // https://tc39.es/ecma262/#sec-getmethod
5
- module.exports = function (fn) {
6
- return fn == null ? undefined : aFunction(fn);
5
+ module.exports = function (V, P) {
6
+ var func = V[P];
7
+ return func == null ? undefined : aCallable(func);
7
8
  };
@@ -2,6 +2,8 @@ var toObject = require('../internals/to-object');
2
2
 
3
3
  var hasOwnProperty = {}.hasOwnProperty;
4
4
 
5
+ // `HasOwnProperty` abstract operation
6
+ // https://tc39.es/ecma262/#sec-hasownproperty
5
7
  module.exports = Object.hasOwn || function hasOwn(it, key) {
6
8
  return hasOwnProperty.call(toObject(it), key);
7
9
  };
@@ -1,3 +1,4 @@
1
+ var isCallable = require('../internals/is-callable');
1
2
  var isObject = require('../internals/is-object');
2
3
  var setPrototypeOf = require('../internals/object-set-prototype-of');
3
4
 
@@ -8,7 +9,7 @@ module.exports = function ($this, dummy, Wrapper) {
8
9
  // it can work only with native `setPrototypeOf`
9
10
  setPrototypeOf &&
10
11
  // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
11
- typeof (NewTarget = dummy.constructor) == 'function' &&
12
+ isCallable(NewTarget = dummy.constructor) &&
12
13
  NewTarget !== Wrapper &&
13
14
  isObject(NewTargetPrototype = NewTarget.prototype) &&
14
15
  NewTargetPrototype !== Wrapper.prototype
@@ -1,9 +1,10 @@
1
+ var isCallable = require('../internals/is-callable');
1
2
  var store = require('../internals/shared-store');
2
3
 
3
4
  var functionToString = Function.toString;
4
5
 
5
6
  // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
6
- if (typeof store.inspectSource != 'function') {
7
+ if (!isCallable(store.inspectSource)) {
7
8
  store.inspectSource = function (it) {
8
9
  return functionToString.call(it);
9
10
  };
@@ -0,0 +1,10 @@
1
+ var isObject = require('../internals/is-object');
2
+ var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
3
+
4
+ // `InstallErrorCause` abstract operation
5
+ // https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause
6
+ module.exports = function (O, options) {
7
+ if (isObject(options) && 'cause' in options) {
8
+ createNonEnumerableProperty(O, 'cause', O.cause);
9
+ }
10
+ };
@@ -1,7 +1,7 @@
1
1
  var $ = require('../internals/export');
2
2
  var hiddenKeys = require('../internals/hidden-keys');
3
3
  var isObject = require('../internals/is-object');
4
- var has = require('../internals/has');
4
+ var hasOwn = require('../internals/has-own-property');
5
5
  var defineProperty = require('../internals/object-define-property').f;
6
6
  var getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');
7
7
  var getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');
@@ -27,7 +27,7 @@ var setMetadata = function (it) {
27
27
  var fastKey = function (it, create) {
28
28
  // return a primitive with prefix
29
29
  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
30
- if (!has(it, METADATA)) {
30
+ if (!hasOwn(it, METADATA)) {
31
31
  // can't set metadata to uncaught frozen object
32
32
  if (!isExtensible(it)) return 'F';
33
33
  // not necessary to add metadata
@@ -39,7 +39,7 @@ var fastKey = function (it, create) {
39
39
  };
40
40
 
41
41
  var getWeakData = function (it, create) {
42
- if (!has(it, METADATA)) {
42
+ if (!hasOwn(it, METADATA)) {
43
43
  // can't set metadata to uncaught frozen object
44
44
  if (!isExtensible(it)) return true;
45
45
  // not necessary to add metadata
@@ -52,7 +52,7 @@ var getWeakData = function (it, create) {
52
52
 
53
53
  // add metadata on freeze-family methods calling
54
54
  var onFreeze = function (it) {
55
- if (FREEZING && REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);
55
+ if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);
56
56
  return it;
57
57
  };
58
58
 
@@ -2,7 +2,7 @@ var NATIVE_WEAK_MAP = require('../internals/native-weak-map');
2
2
  var global = require('../internals/global');
3
3
  var isObject = require('../internals/is-object');
4
4
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
5
- var objectHas = require('../internals/has');
5
+ var hasOwn = require('../internals/has-own-property');
6
6
  var shared = require('../internals/shared-store');
7
7
  var sharedKey = require('../internals/shared-key');
8
8
  var hiddenKeys = require('../internals/hidden-keys');
@@ -45,16 +45,16 @@ if (NATIVE_WEAK_MAP || shared.state) {
45
45
  var STATE = sharedKey('state');
46
46
  hiddenKeys[STATE] = true;
47
47
  set = function (it, metadata) {
48
- if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
48
+ if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
49
49
  metadata.facade = it;
50
50
  createNonEnumerableProperty(it, STATE, metadata);
51
51
  return metadata;
52
52
  };
53
53
  get = function (it) {
54
- return objectHas(it, STATE) ? it[STATE] : {};
54
+ return hasOwn(it, STATE) ? it[STATE] : {};
55
55
  };
56
56
  has = function (it) {
57
- return objectHas(it, STATE);
57
+ return hasOwn(it, STATE);
58
58
  };
59
59
  }
60
60
 
@@ -3,6 +3,6 @@ var classof = require('../internals/classof-raw');
3
3
  // `IsArray` abstract operation
4
4
  // https://tc39.es/ecma262/#sec-isarray
5
5
  // eslint-disable-next-line es/no-array-isarray -- safe
6
- module.exports = Array.isArray || function isArray(arg) {
7
- return classof(arg) == 'Array';
6
+ module.exports = Array.isArray || function isArray(argument) {
7
+ return classof(argument) == 'Array';
8
8
  };
@@ -0,0 +1,5 @@
1
+ // `IsCallable` abstract operation
2
+ // https://tc39.es/ecma262/#sec-iscallable
3
+ module.exports = function (argument) {
4
+ return typeof argument === 'function';
5
+ };
@@ -0,0 +1,41 @@
1
+ var fails = require('../internals/fails');
2
+ var isCallable = require('../internals/is-callable');
3
+ var classof = require('../internals/classof');
4
+ var getBuiltIn = require('../internals/get-built-in');
5
+ var inspectSource = require('../internals/inspect-source');
6
+
7
+ var empty = [];
8
+ var construct = getBuiltIn('Reflect', 'construct');
9
+ var constructorRegExp = /^\s*(?:class|function)\b/;
10
+ var exec = constructorRegExp.exec;
11
+ var INCORRECT_TO_STRING = !constructorRegExp.exec(function () { /* empty */ });
12
+
13
+ var isConstructorModern = function (argument) {
14
+ if (!isCallable(argument)) return false;
15
+ try {
16
+ construct(Object, empty, argument);
17
+ return true;
18
+ } catch (error) {
19
+ return false;
20
+ }
21
+ };
22
+
23
+ var isConstructorLegacy = function (argument) {
24
+ if (!isCallable(argument)) return false;
25
+ switch (classof(argument)) {
26
+ case 'AsyncFunction':
27
+ case 'GeneratorFunction':
28
+ case 'AsyncGeneratorFunction': return false;
29
+ // we can't check .prototype since constructors produced by .bind haven't it
30
+ } return INCORRECT_TO_STRING || !!exec.call(constructorRegExp, inspectSource(argument));
31
+ };
32
+
33
+ // `IsConstructor` abstract operation
34
+ // https://tc39.es/ecma262/#sec-isconstructor
35
+ module.exports = !construct || fails(function () {
36
+ var called;
37
+ return isConstructorModern(isConstructorModern.call)
38
+ || !isConstructorModern(Object)
39
+ || !isConstructorModern(function () { called = true; })
40
+ || called;
41
+ }) ? isConstructorLegacy : isConstructorModern;
@@ -1,5 +1,5 @@
1
- var has = require('../internals/has');
1
+ var hasOwn = require('../internals/has-own-property');
2
2
 
3
3
  module.exports = function (descriptor) {
4
- return descriptor !== undefined && (has(descriptor, 'value') || has(descriptor, 'writable'));
4
+ return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));
5
5
  };
@@ -1,4 +1,5 @@
1
1
  var fails = require('../internals/fails');
2
+ var isCallable = require('../internals/is-callable');
2
3
 
3
4
  var replacement = /#|\.prototype\./;
4
5
 
@@ -6,7 +7,7 @@ var isForced = function (feature, detection) {
6
7
  var value = data[normalize(feature)];
7
8
  return value == POLYFILL ? true
8
9
  : value == NATIVE ? false
9
- : typeof detection == 'function' ? fails(detection)
10
+ : isCallable(detection) ? fails(detection)
10
11
  : !!detection;
11
12
  };
12
13
 
@@ -0,0 +1,10 @@
1
+ var isObject = require('../internals/is-object');
2
+
3
+ var floor = Math.floor;
4
+
5
+ // `IsIntegralNumber` abstract operation
6
+ // https://tc39.es/ecma262/#sec-isintegralnumber
7
+ // eslint-disable-next-line es/no-number-isinteger -- safe
8
+ module.exports = Number.isInteger || function isInteger(it) {
9
+ return !isObject(it) && isFinite(it) && floor(it) === it;
10
+ };
@@ -1,3 +1,5 @@
1
+ var isCallable = require('../internals/is-callable');
2
+
1
3
  module.exports = function (it) {
2
- return typeof it === 'object' ? it !== null : typeof it === 'function';
4
+ return typeof it === 'object' ? it !== null : isCallable(it);
3
5
  };
@@ -1,3 +1,4 @@
1
+ var isCallable = require('../internals/is-callable');
1
2
  var getBuiltIn = require('../internals/get-built-in');
2
3
  var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');
3
4
 
@@ -5,5 +6,5 @@ module.exports = USE_SYMBOL_AS_UID ? function (it) {
5
6
  return typeof it == 'symbol';
6
7
  } : function (it) {
7
8
  var $Symbol = getBuiltIn('Symbol');
8
- return typeof $Symbol == 'function' && Object(it) instanceof $Symbol;
9
+ return isCallable($Symbol) && Object(it) instanceof $Symbol;
9
10
  };
@@ -1,6 +1,6 @@
1
1
  var anObject = require('../internals/an-object');
2
2
  var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
3
- var toLength = require('../internals/to-length');
3
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
4
4
  var bind = require('../internals/function-bind-context');
5
5
  var getIterator = require('../internals/get-iterator');
6
6
  var getIteratorMethod = require('../internals/get-iterator-method');
@@ -35,10 +35,10 @@ module.exports = function (iterable, unboundFunction, options) {
35
35
  iterator = iterable;
36
36
  } else {
37
37
  iterFn = getIteratorMethod(iterable);
38
- if (typeof iterFn != 'function') throw TypeError('Target is not iterable');
38
+ if (!iterFn) throw TypeError(String(iterable) + ' is not iterable');
39
39
  // optimisation for array iterators
40
40
  if (isArrayIteratorMethod(iterFn)) {
41
- for (index = 0, length = toLength(iterable.length); length > index; index++) {
41
+ for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {
42
42
  result = callFn(iterable[index]);
43
43
  if (result && result instanceof Result) return result;
44
44
  } return new Result(false);
@@ -1,11 +1,12 @@
1
1
  var anObject = require('../internals/an-object');
2
+ var getMethod = require('../internals/get-method');
2
3
 
3
4
  module.exports = function (iterator, kind, value) {
4
5
  var innerResult, innerError;
5
6
  anObject(iterator);
6
7
  try {
7
- innerResult = iterator['return'];
8
- if (innerResult === undefined) {
8
+ innerResult = getMethod(iterator, 'return');
9
+ if (!innerResult) {
9
10
  if (kind === 'throw') throw value;
10
11
  return value;
11
12
  }
@@ -1,12 +1,13 @@
1
1
  'use strict';
2
- var path = require('../internals/path');
3
- var aFunction = require('../internals/a-function');
2
+ var aCallable = require('../internals/a-callable');
4
3
  var anObject = require('../internals/an-object');
5
4
  var create = require('../internals/object-create');
6
5
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
7
6
  var redefineAll = require('../internals/redefine-all');
8
7
  var wellKnownSymbol = require('../internals/well-known-symbol');
9
8
  var InternalStateModule = require('../internals/internal-state');
9
+ var getMethod = require('../internals/get-method');
10
+ var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
10
11
 
11
12
  var setInternalState = InternalStateModule.set;
12
13
  var getInternalState = InternalStateModule.get;
@@ -15,13 +16,13 @@ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
15
16
 
16
17
  module.exports = function (nextHandler, IS_ITERATOR) {
17
18
  var IteratorProxy = function Iterator(state) {
18
- state.next = aFunction(state.iterator.next);
19
+ state.next = aCallable(state.iterator.next);
19
20
  state.done = false;
20
21
  state.ignoreArg = !IS_ITERATOR;
21
22
  setInternalState(this, state);
22
23
  };
23
24
 
24
- IteratorProxy.prototype = redefineAll(create(path.Iterator.prototype), {
25
+ IteratorProxy.prototype = redefineAll(create(IteratorPrototype), {
25
26
  next: function next(arg) {
26
27
  var state = getInternalState(this);
27
28
  var args = arguments.length ? [state.ignoreArg ? undefined : arg] : IS_ITERATOR ? [] : [undefined];
@@ -33,16 +34,16 @@ module.exports = function (nextHandler, IS_ITERATOR) {
33
34
  var state = getInternalState(this);
34
35
  var iterator = state.iterator;
35
36
  state.done = true;
36
- var $$return = iterator['return'];
37
- return { done: true, value: $$return === undefined ? value : anObject($$return.call(iterator, value)).value };
37
+ var $$return = getMethod(iterator, 'return');
38
+ return { done: true, value: $$return ? anObject($$return.call(iterator, value)).value : value };
38
39
  },
39
40
  'throw': function (value) {
40
41
  var state = getInternalState(this);
41
42
  var iterator = state.iterator;
42
43
  state.done = true;
43
- var $$throw = iterator['throw'];
44
- if ($$throw === undefined) throw value;
45
- return $$throw.call(iterator, value);
44
+ var $$throw = getMethod(iterator, 'throw');
45
+ if ($$throw) return $$throw.call(iterator, value);
46
+ throw value;
46
47
  }
47
48
  });
48
49
 
@@ -1,16 +1,15 @@
1
1
  'use strict';
2
2
  var fails = require('../internals/fails');
3
+ var isCallable = require('../internals/is-callable');
4
+ var create = require('../internals/object-create');
3
5
  var getPrototypeOf = require('../internals/object-get-prototype-of');
4
- var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
5
- var has = require('../internals/has');
6
+ var redefine = require('../internals/redefine');
6
7
  var wellKnownSymbol = require('../internals/well-known-symbol');
7
8
  var IS_PURE = require('../internals/is-pure');
8
9
 
9
10
  var ITERATOR = wellKnownSymbol('iterator');
10
11
  var BUGGY_SAFARI_ITERATORS = false;
11
12
 
12
- var returnThis = function () { return this; };
13
-
14
13
  // `%IteratorPrototype%` object
15
14
  // https://tc39.es/ecma262/#sec-%iteratorprototype%-object
16
15
  var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
@@ -33,11 +32,14 @@ var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function ()
33
32
  });
34
33
 
35
34
  if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};
35
+ else if (IS_PURE) IteratorPrototype = create(IteratorPrototype);
36
36
 
37
37
  // `%IteratorPrototype%[@@iterator]()` method
38
38
  // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
39
- if ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {
40
- createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);
39
+ if (!isCallable(IteratorPrototype[ITERATOR])) {
40
+ redefine(IteratorPrototype, ITERATOR, function () {
41
+ return this;
42
+ });
41
43
  }
42
44
 
43
45
  module.exports = {
@@ -0,0 +1,7 @@
1
+ var toLength = require('../internals/to-length');
2
+
3
+ // `LengthOfArrayLike` abstract operation
4
+ // https://tc39.es/ecma262/#sec-lengthofarraylike
5
+ module.exports = function (obj) {
6
+ return toLength(obj.length);
7
+ };
@@ -1,4 +1,5 @@
1
1
  'use strict';
2
+ var isCallable = require('../internals/is-callable');
2
3
  var anObject = require('../internals/an-object');
3
4
 
4
5
  // `Map.prototype.upsert` method
@@ -7,16 +8,16 @@ module.exports = function upsert(key, updateFn /* , insertFn */) {
7
8
  var map = anObject(this);
8
9
  var insertFn = arguments.length > 2 ? arguments[2] : undefined;
9
10
  var value;
10
- if (typeof updateFn != 'function' && typeof insertFn != 'function') {
11
+ if (!isCallable(updateFn) && !isCallable(insertFn)) {
11
12
  throw TypeError('At least one callback required');
12
13
  }
13
14
  if (map.has(key)) {
14
15
  value = map.get(key);
15
- if (typeof updateFn == 'function') {
16
+ if (isCallable(updateFn)) {
16
17
  value = updateFn(value);
17
18
  map.set(key, value);
18
19
  }
19
- } else if (typeof insertFn == 'function') {
20
+ } else if (isCallable(insertFn)) {
20
21
  value = insertFn();
21
22
  map.set(key, value);
22
23
  } return value;
@@ -1,6 +1,7 @@
1
1
  var global = require('../internals/global');
2
+ var isCallable = require('../internals/is-callable');
2
3
  var inspectSource = require('../internals/inspect-source');
3
4
 
4
5
  var WeakMap = global.WeakMap;
5
6
 
6
- module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));
7
+ module.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
- var aFunction = require('../internals/a-function');
2
+ var aCallable = require('../internals/a-callable');
3
3
 
4
4
  var PromiseCapability = function (C) {
5
5
  var resolve, reject;
@@ -8,8 +8,8 @@ var PromiseCapability = function (C) {
8
8
  resolve = $$resolve;
9
9
  reject = $$reject;
10
10
  });
11
- this.resolve = aFunction(resolve);
12
- this.reject = aFunction(reject);
11
+ this.resolve = aCallable(resolve);
12
+ this.reject = aCallable(reject);
13
13
  };
14
14
 
15
15
  // `NewPromiseCapability` abstract operation
@@ -1,10 +1,15 @@
1
1
  var global = require('../internals/global');
2
+ var fails = require('../internals/fails');
2
3
  var toString = require('../internals/to-string');
3
4
  var trim = require('../internals/string-trim').trim;
4
5
  var whitespaces = require('../internals/whitespaces');
5
6
 
6
7
  var $parseFloat = global.parseFloat;
7
- var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;
8
+ var Symbol = global.Symbol;
9
+ var ITERATOR = Symbol && Symbol.iterator;
10
+ var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity
11
+ // MS Edge 18- broken with boxed symbols
12
+ || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));
8
13
 
9
14
  // `parseFloat` method
10
15
  // https://tc39.es/ecma262/#sec-parsefloat-string
@@ -1,11 +1,16 @@
1
1
  var global = require('../internals/global');
2
+ var fails = require('../internals/fails');
2
3
  var toString = require('../internals/to-string');
3
4
  var trim = require('../internals/string-trim').trim;
4
5
  var whitespaces = require('../internals/whitespaces');
5
6
 
6
7
  var $parseInt = global.parseInt;
8
+ var Symbol = global.Symbol;
9
+ var ITERATOR = Symbol && Symbol.iterator;
7
10
  var hex = /^[+-]?0[Xx]/;
8
- var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;
11
+ var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22
12
+ // MS Edge 18- broken with boxed symbols
13
+ || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));
9
14
 
10
15
  // `parseInt` method
11
16
  // https://tc39.es/ecma262/#sec-parseint-string-radix
@@ -3,7 +3,7 @@ var propertyIsEnumerableModule = require('../internals/object-property-is-enumer
3
3
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
4
4
  var toIndexedObject = require('../internals/to-indexed-object');
5
5
  var toPropertyKey = require('../internals/to-property-key');
6
- var has = require('../internals/has');
6
+ var hasOwn = require('../internals/has-own-property');
7
7
  var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
8
8
 
9
9
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
@@ -17,5 +17,5 @@ exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDes
17
17
  if (IE8_DOM_DEFINE) try {
18
18
  return $getOwnPropertyDescriptor(O, P);
19
19
  } catch (error) { /* empty */ }
20
- if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
20
+ if (hasOwn(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
21
21
  };
@@ -1,4 +1,5 @@
1
- var has = require('../internals/has');
1
+ var hasOwn = require('../internals/has-own-property');
2
+ var isCallable = require('../internals/is-callable');
2
3
  var toObject = require('../internals/to-object');
3
4
  var sharedKey = require('../internals/shared-key');
4
5
  var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');
@@ -10,9 +11,10 @@ var ObjectPrototype = Object.prototype;
10
11
  // https://tc39.es/ecma262/#sec-object.getprototypeof
11
12
  // eslint-disable-next-line es/no-object-getprototypeof -- safe
12
13
  module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
13
- O = toObject(O);
14
- if (has(O, IE_PROTO)) return O[IE_PROTO];
15
- if (typeof O.constructor == 'function' && O instanceof O.constructor) {
16
- return O.constructor.prototype;
17
- } return O instanceof Object ? ObjectPrototype : null;
14
+ var object = toObject(O);
15
+ if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
16
+ var constructor = object.constructor;
17
+ if (isCallable(constructor) && object instanceof constructor) {
18
+ return constructor.prototype;
19
+ } return object instanceof Object ? ObjectPrototype : null;
18
20
  };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  var InternalStateModule = require('../internals/internal-state');
3
3
  var createIteratorConstructor = require('../internals/create-iterator-constructor');
4
- var has = require('../internals/has');
4
+ var hasOwn = require('../internals/has-own-property');
5
5
  var objectKeys = require('../internals/object-keys');
6
6
  var toObject = require('../internals/to-object');
7
7
 
@@ -28,7 +28,7 @@ module.exports = createIteratorConstructor(function ObjectIterator(source, mode)
28
28
  }
29
29
  var key = keys[state.index++];
30
30
  var object = state.object;
31
- if (!has(object, key)) continue;
31
+ if (!hasOwn(object, key)) continue;
32
32
  switch (state.mode) {
33
33
  case 'keys': return { value: key, done: false };
34
34
  case 'values': return { value: object[key], done: false };
@@ -1,4 +1,4 @@
1
- var has = require('../internals/has');
1
+ var hasOwn = require('../internals/has-own-property');
2
2
  var toIndexedObject = require('../internals/to-indexed-object');
3
3
  var indexOf = require('../internals/array-includes').indexOf;
4
4
  var hiddenKeys = require('../internals/hidden-keys');
@@ -8,9 +8,9 @@ module.exports = function (object, names) {
8
8
  var i = 0;
9
9
  var result = [];
10
10
  var key;
11
- for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
11
+ for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && result.push(key);
12
12
  // Don't enum bug & hidden keys
13
- while (names.length > i) if (has(O, key = names[i++])) {
13
+ while (names.length > i) if (hasOwn(O, key = names[i++])) {
14
14
  ~indexOf(result, key) || result.push(key);
15
15
  }
16
16
  return result;
@@ -1,11 +1,12 @@
1
+ var isCallable = require('../internals/is-callable');
1
2
  var isObject = require('../internals/is-object');
2
3
 
3
4
  // `OrdinaryToPrimitive` abstract operation
4
5
  // https://tc39.es/ecma262/#sec-ordinarytoprimitive
5
6
  module.exports = function (input, pref) {
6
7
  var fn, val;
7
- if (pref === 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
8
- if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
9
- if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
8
+ if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;
9
+ if (isCallable(fn = input.valueOf) && !isObject(val = fn.call(input))) return val;
10
+ if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;
10
11
  throw TypeError("Can't convert object to primitive value");
11
12
  };