core-js 3.17.3 → 3.18.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 (162) hide show
  1. package/es/promise/all-settled.js +2 -1
  2. package/es/promise/any.js +2 -1
  3. package/features/array/from-async.js +8 -0
  4. package/features/array/index.js +2 -0
  5. package/features/index.js +2 -0
  6. package/features/map/from.js +2 -1
  7. package/features/map/group-by.js +2 -1
  8. package/features/map/key-by.js +2 -1
  9. package/features/map/of.js +2 -1
  10. package/features/promise/try.js +2 -1
  11. package/features/set/from.js +2 -1
  12. package/features/set/of.js +2 -1
  13. package/features/typed-array/from-async.js +1 -0
  14. package/features/typed-array/index.js +2 -0
  15. package/features/weak-map/from.js +2 -1
  16. package/features/weak-map/of.js +2 -1
  17. package/features/weak-set/from.js +2 -1
  18. package/features/weak-set/of.js +2 -1
  19. package/internals/a-callable.js +8 -0
  20. package/internals/a-constructor.js +8 -0
  21. package/internals/a-possible-prototype.js +4 -5
  22. package/internals/an-instance.js +2 -3
  23. package/internals/an-object.js +4 -4
  24. package/internals/array-buffer-view-core.js +5 -4
  25. package/internals/array-buffer.js +7 -1
  26. package/internals/array-from-async.js +32 -0
  27. package/internals/array-from.js +6 -5
  28. package/internals/array-reduce.js +2 -2
  29. package/internals/array-species-constructor.js +3 -2
  30. package/internals/array-unique-by.js +3 -3
  31. package/internals/async-from-sync-iterator.js +2 -2
  32. package/internals/async-iterator-create-proxy.js +5 -4
  33. package/internals/async-iterator-iteration.js +26 -15
  34. package/internals/async-iterator-prototype.js +5 -4
  35. package/internals/classof.js +2 -1
  36. package/internals/collection-add-all.js +2 -2
  37. package/internals/collection-delete-all.js +2 -2
  38. package/internals/collection-from.js +4 -3
  39. package/internals/collection.js +2 -1
  40. package/internals/define-iterator.js +20 -12
  41. package/internals/export.js +1 -0
  42. package/internals/function-bind-context.js +2 -2
  43. package/internals/function-bind.js +2 -2
  44. package/internals/function-name.js +17 -0
  45. package/internals/get-async-iterator.js +2 -5
  46. package/internals/get-built-in.js +3 -2
  47. package/internals/get-iterator-method.js +3 -2
  48. package/internals/get-iterator.js +5 -5
  49. package/internals/get-method.js +4 -3
  50. package/internals/inherit-if-required.js +2 -1
  51. package/internals/inspect-source.js +2 -1
  52. package/internals/is-array.js +2 -2
  53. package/internals/is-callable.js +5 -0
  54. package/internals/is-constructor.js +41 -0
  55. package/internals/is-forced.js +2 -1
  56. package/internals/is-object.js +3 -1
  57. package/internals/is-symbol.js +2 -1
  58. package/internals/iterate.js +1 -1
  59. package/internals/iterator-close.js +3 -2
  60. package/internals/iterator-create-proxy.js +8 -7
  61. package/internals/iterators-core.js +4 -3
  62. package/internals/map-upsert.js +4 -3
  63. package/internals/native-weak-map.js +2 -1
  64. package/internals/new-promise-capability.js +3 -3
  65. package/internals/number-parse-float.js +6 -1
  66. package/internals/number-parse-int.js +6 -1
  67. package/internals/object-get-prototype-of.js +7 -5
  68. package/internals/ordinary-to-primitive.js +4 -3
  69. package/internals/redefine.js +12 -6
  70. package/internals/regexp-exec-abstract.js +8 -13
  71. package/internals/regexp-unsupported-dot-all.js +1 -1
  72. package/internals/regexp-unsupported-ncg.js +1 -1
  73. package/internals/shared.js +1 -1
  74. package/internals/species-constructor.js +2 -2
  75. package/internals/string-trim-forced.js +4 -1
  76. package/internals/task.js +3 -2
  77. package/internals/to-primitive.js +3 -2
  78. package/internals/to-string.js +2 -2
  79. package/internals/try-to-string.js +7 -0
  80. package/internals/typed-array-from.js +4 -2
  81. package/modules/es.array.flat-map.js +2 -2
  82. package/modules/es.array.of.js +2 -1
  83. package/modules/es.array.slice.js +3 -2
  84. package/modules/es.array.sort.js +2 -2
  85. package/modules/es.date.to-primitive.js +2 -2
  86. package/modules/es.function.has-instance.js +2 -1
  87. package/modules/es.function.name.js +2 -1
  88. package/modules/es.object.define-getter.js +2 -2
  89. package/modules/es.object.define-setter.js +2 -2
  90. package/modules/es.parse-float.js +3 -3
  91. package/modules/es.parse-int.js +3 -3
  92. package/modules/es.promise.all-settled.js +2 -2
  93. package/modules/es.promise.any.js +2 -2
  94. package/modules/es.promise.finally.js +3 -2
  95. package/modules/es.promise.js +10 -9
  96. package/modules/es.reflect.apply.js +2 -2
  97. package/modules/es.reflect.construct.js +3 -3
  98. package/modules/es.regexp.test.js +4 -4
  99. package/modules/es.regexp.to-string.js +2 -1
  100. package/modules/es.string.match-all.js +6 -16
  101. package/modules/es.string.match.js +3 -2
  102. package/modules/es.string.raw.js +9 -4
  103. package/modules/es.string.replace-all.js +5 -3
  104. package/modules/es.string.replace.js +5 -3
  105. package/modules/es.string.search.js +3 -2
  106. package/modules/es.string.split.js +3 -2
  107. package/modules/es.string.trim-end.js +1 -1
  108. package/modules/es.string.trim-start.js +1 -1
  109. package/modules/es.symbol.description.js +2 -1
  110. package/modules/es.symbol.js +6 -3
  111. package/modules/es.typed-array.iterator.js +4 -4
  112. package/modules/es.typed-array.sort.js +2 -2
  113. package/modules/esnext.aggregate-error.js +1 -1
  114. package/modules/esnext.array.from-async.js +8 -0
  115. package/modules/esnext.async-iterator.filter.js +2 -2
  116. package/modules/esnext.async-iterator.flat-map.js +3 -3
  117. package/modules/esnext.async-iterator.from.js +4 -6
  118. package/modules/esnext.async-iterator.map.js +2 -2
  119. package/modules/esnext.async-iterator.reduce.js +3 -3
  120. package/modules/esnext.async-iterator.to-array.js +1 -1
  121. package/modules/esnext.global-this.js +1 -1
  122. package/modules/esnext.iterator.constructor.js +2 -1
  123. package/modules/esnext.iterator.every.js +2 -2
  124. package/modules/esnext.iterator.filter.js +2 -2
  125. package/modules/esnext.iterator.find.js +2 -2
  126. package/modules/esnext.iterator.flat-map.js +4 -4
  127. package/modules/esnext.iterator.from.js +2 -4
  128. package/modules/esnext.iterator.map.js +2 -2
  129. package/modules/esnext.iterator.reduce.js +2 -2
  130. package/modules/esnext.iterator.some.js +2 -2
  131. package/modules/esnext.map.filter.js +2 -2
  132. package/modules/esnext.map.group-by.js +9 -7
  133. package/modules/esnext.map.key-by.js +3 -3
  134. package/modules/esnext.map.key-of.js +1 -1
  135. package/modules/esnext.map.map-keys.js +2 -2
  136. package/modules/esnext.map.map-values.js +2 -2
  137. package/modules/esnext.map.merge.js +2 -2
  138. package/modules/esnext.map.reduce.js +2 -2
  139. package/modules/esnext.map.update-or-insert.js +1 -1
  140. package/modules/esnext.map.update.js +3 -3
  141. package/modules/esnext.observable.js +16 -14
  142. package/modules/esnext.promise.all-settled.js +1 -1
  143. package/modules/esnext.promise.any.js +1 -1
  144. package/modules/esnext.set.difference.js +2 -2
  145. package/modules/esnext.set.filter.js +2 -2
  146. package/modules/esnext.set.intersection.js +3 -3
  147. package/modules/esnext.set.is-disjoint-from.js +2 -2
  148. package/modules/esnext.set.is-subset-of.js +4 -3
  149. package/modules/esnext.set.is-superset-of.js +2 -2
  150. package/modules/esnext.set.map.js +2 -2
  151. package/modules/esnext.set.reduce.js +2 -2
  152. package/modules/esnext.set.symmetric-difference.js +3 -3
  153. package/modules/esnext.set.union.js +2 -2
  154. package/modules/esnext.string.match-all.js +1 -1
  155. package/modules/esnext.string.replace-all.js +1 -1
  156. package/modules/esnext.typed-array.from-async.js +19 -0
  157. package/modules/web.timers.js +2 -1
  158. package/modules/web.url-search-params.js +6 -5
  159. package/package.json +2 -2
  160. package/proposals/array-from-async.js +3 -0
  161. package/stage/1.js +1 -0
  162. package/internals/a-function.js +0 -5
@@ -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
@@ -1,4 +1,5 @@
1
1
  var has = require('../internals/has');
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 (has(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,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
  };
@@ -1,9 +1,11 @@
1
1
  var global = require('../internals/global');
2
- var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
2
+ var isCallable = require('../internals/is-callable');
3
3
  var has = require('../internals/has');
4
+ var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
4
5
  var setGlobal = require('../internals/set-global');
5
6
  var inspectSource = require('../internals/inspect-source');
6
7
  var InternalStateModule = require('../internals/internal-state');
8
+ var CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;
7
9
 
8
10
  var getInternalState = InternalStateModule.get;
9
11
  var enforceInternalState = InternalStateModule.enforce;
@@ -13,14 +15,18 @@ var TEMPLATE = String(String).split('String');
13
15
  var unsafe = options ? !!options.unsafe : false;
14
16
  var simple = options ? !!options.enumerable : false;
15
17
  var noTargetGet = options ? !!options.noTargetGet : false;
18
+ var name = options && options.name !== undefined ? options.name : key;
16
19
  var state;
17
- if (typeof value == 'function') {
18
- if (typeof key == 'string' && !has(value, 'name')) {
19
- createNonEnumerableProperty(value, 'name', key);
20
+ if (isCallable(value)) {
21
+ if (String(name).slice(0, 7) === 'Symbol(') {
22
+ name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']';
23
+ }
24
+ if (!has(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
25
+ createNonEnumerableProperty(value, 'name', name);
20
26
  }
21
27
  state = enforceInternalState(value);
22
28
  if (!state.source) {
23
- state.source = TEMPLATE.join(typeof key == 'string' ? key : '');
29
+ state.source = TEMPLATE.join(typeof name == 'string' ? name : '');
24
30
  }
25
31
  }
26
32
  if (O === global) {
@@ -36,5 +42,5 @@ var TEMPLATE = String(String).split('String');
36
42
  else createNonEnumerableProperty(O, key, value);
37
43
  // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
38
44
  })(Function.prototype, 'toString', function toString() {
39
- return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
45
+ return isCallable(this) && getInternalState(this).source || inspectSource(this);
40
46
  });
@@ -1,22 +1,17 @@
1
- var classof = require('./classof-raw');
2
- var regexpExec = require('./regexp-exec');
1
+ var anObject = require('../internals/an-object');
2
+ var isCallable = require('../internals/is-callable');
3
+ var classof = require('../internals/classof-raw');
4
+ var regexpExec = require('../internals/regexp-exec');
3
5
 
4
6
  // `RegExpExec` abstract operation
5
7
  // https://tc39.es/ecma262/#sec-regexpexec
6
8
  module.exports = function (R, S) {
7
9
  var exec = R.exec;
8
- if (typeof exec === 'function') {
10
+ if (isCallable(exec)) {
9
11
  var result = exec.call(R, S);
10
- if (typeof result !== 'object') {
11
- throw TypeError('RegExp exec method returned something other than an Object or null');
12
- }
12
+ if (result !== null) anObject(result);
13
13
  return result;
14
14
  }
15
-
16
- if (classof(R) !== 'RegExp') {
17
- throw TypeError('RegExp#exec called on incompatible receiver');
18
- }
19
-
20
- return regexpExec.call(R, S);
15
+ if (classof(R) === 'RegExp') return regexpExec.call(R, S);
16
+ throw TypeError('RegExp#exec called on incompatible receiver');
21
17
  };
22
-
@@ -1,4 +1,4 @@
1
- var fails = require('./fails');
1
+ var fails = require('../internals/fails');
2
2
  var global = require('../internals/global');
3
3
 
4
4
  // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError
@@ -1,4 +1,4 @@
1
- var fails = require('./fails');
1
+ var fails = require('../internals/fails');
2
2
  var global = require('../internals/global');
3
3
 
4
4
  // babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError
@@ -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.17.3',
7
+ version: '3.18.0',
8
8
  mode: IS_PURE ? 'pure' : 'global',
9
9
  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
10
10
  });
@@ -1,5 +1,5 @@
1
1
  var anObject = require('../internals/an-object');
2
- var aFunction = require('../internals/a-function');
2
+ var aConstructor = require('../internals/a-constructor');
3
3
  var wellKnownSymbol = require('../internals/well-known-symbol');
4
4
 
5
5
  var SPECIES = wellKnownSymbol('species');
@@ -9,5 +9,5 @@ var SPECIES = wellKnownSymbol('species');
9
9
  module.exports = function (O, defaultConstructor) {
10
10
  var C = anObject(O).constructor;
11
11
  var S;
12
- return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);
12
+ return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);
13
13
  };
@@ -1,3 +1,4 @@
1
+ var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;
1
2
  var fails = require('../internals/fails');
2
3
  var whitespaces = require('../internals/whitespaces');
3
4
 
@@ -7,6 +8,8 @@ var non = '\u200B\u0085\u180E';
7
8
  // of whitespaces and has a correct name
8
9
  module.exports = function (METHOD_NAME) {
9
10
  return fails(function () {
10
- return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;
11
+ return !!whitespaces[METHOD_NAME]()
12
+ || non[METHOD_NAME]() !== non
13
+ || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);
11
14
  });
12
15
  };
package/internals/task.js CHANGED
@@ -1,4 +1,5 @@
1
1
  var global = require('../internals/global');
2
+ var isCallable = require('../internals/is-callable');
2
3
  var fails = require('../internals/fails');
3
4
  var bind = require('../internals/function-bind-context');
4
5
  var html = require('../internals/html');
@@ -54,7 +55,7 @@ if (!set || !clear) {
54
55
  while (argumentsLength > i) args.push(arguments[i++]);
55
56
  queue[++counter] = function () {
56
57
  // eslint-disable-next-line no-new-func -- spec requirement
57
- (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);
58
+ (isCallable(fn) ? fn : Function(fn)).apply(undefined, args);
58
59
  };
59
60
  defer(counter);
60
61
  return counter;
@@ -83,7 +84,7 @@ if (!set || !clear) {
83
84
  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
84
85
  } else if (
85
86
  global.addEventListener &&
86
- typeof postMessage == 'function' &&
87
+ isCallable(global.postMessage) &&
87
88
  !global.importScripts &&
88
89
  location && location.protocol !== 'file:' &&
89
90
  !fails(post)
@@ -1,5 +1,6 @@
1
1
  var isObject = require('../internals/is-object');
2
2
  var isSymbol = require('../internals/is-symbol');
3
+ var getMethod = require('../internals/get-method');
3
4
  var ordinaryToPrimitive = require('../internals/ordinary-to-primitive');
4
5
  var wellKnownSymbol = require('../internals/well-known-symbol');
5
6
 
@@ -9,9 +10,9 @@ var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
9
10
  // https://tc39.es/ecma262/#sec-toprimitive
10
11
  module.exports = function (input, pref) {
11
12
  if (!isObject(input) || isSymbol(input)) return input;
12
- var exoticToPrim = input[TO_PRIMITIVE];
13
+ var exoticToPrim = getMethod(input, TO_PRIMITIVE);
13
14
  var result;
14
- if (exoticToPrim !== undefined) {
15
+ if (exoticToPrim) {
15
16
  if (pref === undefined) pref = 'default';
16
17
  result = exoticToPrim.call(input, pref);
17
18
  if (!isObject(result) || isSymbol(result)) return result;
@@ -1,6 +1,6 @@
1
- var isSymbol = require('../internals/is-symbol');
1
+ var classof = require('../internals/classof');
2
2
 
3
3
  module.exports = function (argument) {
4
- if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a string');
4
+ if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');
5
5
  return String(argument);
6
6
  };
@@ -0,0 +1,7 @@
1
+ module.exports = function (argument) {
2
+ try {
3
+ return String(argument);
4
+ } catch (error) {
5
+ return 'Object';
6
+ }
7
+ };
@@ -1,3 +1,4 @@
1
+ var aConstructor = require('../internals/a-constructor');
1
2
  var toObject = require('../internals/to-object');
2
3
  var toLength = require('../internals/to-length');
3
4
  var getIterator = require('../internals/get-iterator');
@@ -7,13 +8,14 @@ var bind = require('../internals/function-bind-context');
7
8
  var aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;
8
9
 
9
10
  module.exports = function from(source /* , mapfn, thisArg */) {
11
+ var C = aConstructor(this);
10
12
  var O = toObject(source);
11
13
  var argumentsLength = arguments.length;
12
14
  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
13
15
  var mapping = mapfn !== undefined;
14
16
  var iteratorMethod = getIteratorMethod(O);
15
17
  var i, length, result, step, iterator, next;
16
- if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {
18
+ if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {
17
19
  iterator = getIterator(O, iteratorMethod);
18
20
  next = iterator.next;
19
21
  O = [];
@@ -25,7 +27,7 @@ module.exports = function from(source /* , mapfn, thisArg */) {
25
27
  mapfn = bind(mapfn, arguments[2], 2);
26
28
  }
27
29
  length = toLength(O.length);
28
- result = new (aTypedArrayConstructor(this))(length);
30
+ result = new (aTypedArrayConstructor(C))(length);
29
31
  for (i = 0; length > i; i++) {
30
32
  result[i] = mapping ? mapfn(O[i], i) : O[i];
31
33
  }
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var flattenIntoArray = require('../internals/flatten-into-array');
4
+ var aCallable = require('../internals/a-callable');
4
5
  var toObject = require('../internals/to-object');
5
6
  var toLength = require('../internals/to-length');
6
- var aFunction = require('../internals/a-function');
7
7
  var arraySpeciesCreate = require('../internals/array-species-create');
8
8
 
9
9
  // `Array.prototype.flatMap` method
@@ -13,7 +13,7 @@ $({ target: 'Array', proto: true }, {
13
13
  var O = toObject(this);
14
14
  var sourceLen = toLength(O.length);
15
15
  var A;
16
- aFunction(callbackfn);
16
+ aCallable(callbackfn);
17
17
  A = arraySpeciesCreate(O, 0);
18
18
  A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
19
19
  return A;
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var fails = require('../internals/fails');
4
+ var isConstructor = require('../internals/is-constructor');
4
5
  var createProperty = require('../internals/create-property');
5
6
 
6
7
  var ISNT_GENERIC = fails(function () {
@@ -16,7 +17,7 @@ $({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {
16
17
  of: function of(/* ...args */) {
17
18
  var index = 0;
18
19
  var argumentsLength = arguments.length;
19
- var result = new (typeof this == 'function' ? this : Array)(argumentsLength);
20
+ var result = new (isConstructor(this) ? this : Array)(argumentsLength);
20
21
  while (argumentsLength > index) createProperty(result, index, arguments[index++]);
21
22
  result.length = argumentsLength;
22
23
  return result;
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var isObject = require('../internals/is-object');
4
3
  var isArray = require('../internals/is-array');
4
+ var isConstructor = require('../internals/is-constructor');
5
+ var isObject = require('../internals/is-object');
5
6
  var toAbsoluteIndex = require('../internals/to-absolute-index');
6
7
  var toLength = require('../internals/to-length');
7
8
  var toIndexedObject = require('../internals/to-indexed-object');
@@ -29,7 +30,7 @@ $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
29
30
  if (isArray(O)) {
30
31
  Constructor = O.constructor;
31
32
  // cross-realm fallback
32
- if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {
33
+ if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {
33
34
  Constructor = undefined;
34
35
  } else if (isObject(Constructor)) {
35
36
  Constructor = Constructor[SPECIES];
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var aFunction = require('../internals/a-function');
3
+ var aCallable = require('../internals/a-callable');
4
4
  var toObject = require('../internals/to-object');
5
5
  var toLength = require('../internals/to-length');
6
6
  var toString = require('../internals/to-string');
@@ -76,7 +76,7 @@ var getSortCompare = function (comparefn) {
76
76
  // https://tc39.es/ecma262/#sec-array.prototype.sort
77
77
  $({ target: 'Array', proto: true, forced: FORCED }, {
78
78
  sort: function sort(comparefn) {
79
- if (comparefn !== undefined) aFunction(comparefn);
79
+ if (comparefn !== undefined) aCallable(comparefn);
80
80
 
81
81
  var array = toObject(this);
82
82
 
@@ -1,4 +1,4 @@
1
- var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
1
+ var redefine = require('../internals/redefine');
2
2
  var dateToPrimitive = require('../internals/date-to-primitive');
3
3
  var wellKnownSymbol = require('../internals/well-known-symbol');
4
4
 
@@ -8,5 +8,5 @@ var DatePrototype = Date.prototype;
8
8
  // `Date.prototype[@@toPrimitive]` method
9
9
  // https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive
10
10
  if (!(TO_PRIMITIVE in DatePrototype)) {
11
- createNonEnumerableProperty(DatePrototype, TO_PRIMITIVE, dateToPrimitive);
11
+ redefine(DatePrototype, TO_PRIMITIVE, dateToPrimitive);
12
12
  }
@@ -1,4 +1,5 @@
1
1
  'use strict';
2
+ var isCallable = require('../internals/is-callable');
2
3
  var isObject = require('../internals/is-object');
3
4
  var definePropertyModule = require('../internals/object-define-property');
4
5
  var getPrototypeOf = require('../internals/object-get-prototype-of');
@@ -11,7 +12,7 @@ var FunctionPrototype = Function.prototype;
11
12
  // https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance
12
13
  if (!(HAS_INSTANCE in FunctionPrototype)) {
13
14
  definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {
14
- if (typeof this != 'function' || !isObject(O)) return false;
15
+ if (!isCallable(this) || !isObject(O)) return false;
15
16
  if (!isObject(this.prototype)) return O instanceof this;
16
17
  // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
17
18
  while (O = getPrototypeOf(O)) if (this.prototype === O) return true;
@@ -1,4 +1,5 @@
1
1
  var DESCRIPTORS = require('../internals/descriptors');
2
+ var FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;
2
3
  var defineProperty = require('../internals/object-define-property').f;
3
4
 
4
5
  var FunctionPrototype = Function.prototype;
@@ -8,7 +9,7 @@ var NAME = 'name';
8
9
 
9
10
  // Function instances `.name` property
10
11
  // https://tc39.es/ecma262/#sec-function-instances-name
11
- if (DESCRIPTORS && !(NAME in FunctionPrototype)) {
12
+ if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {
12
13
  defineProperty(FunctionPrototype, NAME, {
13
14
  configurable: true,
14
15
  get: function () {
@@ -2,8 +2,8 @@
2
2
  var $ = require('../internals/export');
3
3
  var DESCRIPTORS = require('../internals/descriptors');
4
4
  var FORCED = require('../internals/object-prototype-accessors-forced');
5
+ var aCallable = require('../internals/a-callable');
5
6
  var toObject = require('../internals/to-object');
6
- var aFunction = require('../internals/a-function');
7
7
  var definePropertyModule = require('../internals/object-define-property');
8
8
 
9
9
  // `Object.prototype.__defineGetter__` method
@@ -11,7 +11,7 @@ var definePropertyModule = require('../internals/object-define-property');
11
11
  if (DESCRIPTORS) {
12
12
  $({ target: 'Object', proto: true, forced: FORCED }, {
13
13
  __defineGetter__: function __defineGetter__(P, getter) {
14
- definePropertyModule.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });
14
+ definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true });
15
15
  }
16
16
  });
17
17
  }
@@ -2,8 +2,8 @@
2
2
  var $ = require('../internals/export');
3
3
  var DESCRIPTORS = require('../internals/descriptors');
4
4
  var FORCED = require('../internals/object-prototype-accessors-forced');
5
+ var aCallable = require('../internals/a-callable');
5
6
  var toObject = require('../internals/to-object');
6
- var aFunction = require('../internals/a-function');
7
7
  var definePropertyModule = require('../internals/object-define-property');
8
8
 
9
9
  // `Object.prototype.__defineSetter__` method
@@ -11,7 +11,7 @@ var definePropertyModule = require('../internals/object-define-property');
11
11
  if (DESCRIPTORS) {
12
12
  $({ target: 'Object', proto: true, forced: FORCED }, {
13
13
  __defineSetter__: function __defineSetter__(P, setter) {
14
- definePropertyModule.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });
14
+ definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true });
15
15
  }
16
16
  });
17
17
  }
@@ -1,8 +1,8 @@
1
1
  var $ = require('../internals/export');
2
- var parseFloatImplementation = require('../internals/number-parse-float');
2
+ var $parseFloat = require('../internals/number-parse-float');
3
3
 
4
4
  // `parseFloat` method
5
5
  // https://tc39.es/ecma262/#sec-parsefloat-string
6
- $({ global: true, forced: parseFloat != parseFloatImplementation }, {
7
- parseFloat: parseFloatImplementation
6
+ $({ global: true, forced: parseFloat != $parseFloat }, {
7
+ parseFloat: $parseFloat
8
8
  });
@@ -1,8 +1,8 @@
1
1
  var $ = require('../internals/export');
2
- var parseIntImplementation = require('../internals/number-parse-int');
2
+ var $parseInt = require('../internals/number-parse-int');
3
3
 
4
4
  // `parseInt` method
5
5
  // https://tc39.es/ecma262/#sec-parseint-string-radix
6
- $({ global: true, forced: parseInt != parseIntImplementation }, {
7
- parseInt: parseIntImplementation
6
+ $({ global: true, forced: parseInt != $parseInt }, {
7
+ parseInt: $parseInt
8
8
  });
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var aFunction = require('../internals/a-function');
3
+ var aCallable = require('../internals/a-callable');
4
4
  var newPromiseCapabilityModule = require('../internals/new-promise-capability');
5
5
  var perform = require('../internals/perform');
6
6
  var iterate = require('../internals/iterate');
@@ -14,7 +14,7 @@ $({ target: 'Promise', stat: true }, {
14
14
  var resolve = capability.resolve;
15
15
  var reject = capability.reject;
16
16
  var result = perform(function () {
17
- var promiseResolve = aFunction(C.resolve);
17
+ var promiseResolve = aCallable(C.resolve);
18
18
  var values = [];
19
19
  var counter = 0;
20
20
  var remaining = 1;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var aFunction = require('../internals/a-function');
3
+ var aCallable = require('../internals/a-callable');
4
4
  var getBuiltIn = require('../internals/get-built-in');
5
5
  var newPromiseCapabilityModule = require('../internals/new-promise-capability');
6
6
  var perform = require('../internals/perform');
@@ -17,7 +17,7 @@ $({ target: 'Promise', stat: true }, {
17
17
  var resolve = capability.resolve;
18
18
  var reject = capability.reject;
19
19
  var result = perform(function () {
20
- var promiseResolve = aFunction(C.resolve);
20
+ var promiseResolve = aCallable(C.resolve);
21
21
  var errors = [];
22
22
  var counter = 0;
23
23
  var remaining = 1;
@@ -4,6 +4,7 @@ var IS_PURE = require('../internals/is-pure');
4
4
  var NativePromise = require('../internals/native-promise-constructor');
5
5
  var fails = require('../internals/fails');
6
6
  var getBuiltIn = require('../internals/get-built-in');
7
+ var isCallable = require('../internals/is-callable');
7
8
  var speciesConstructor = require('../internals/species-constructor');
8
9
  var promiseResolve = require('../internals/promise-resolve');
9
10
  var redefine = require('../internals/redefine');
@@ -18,7 +19,7 @@ var NON_GENERIC = !!NativePromise && fails(function () {
18
19
  $({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
19
20
  'finally': function (onFinally) {
20
21
  var C = speciesConstructor(this, getBuiltIn('Promise'));
21
- var isFunction = typeof onFinally == 'function';
22
+ var isFunction = isCallable(onFinally);
22
23
  return this.then(
23
24
  isFunction ? function (x) {
24
25
  return promiseResolve(C, onFinally()).then(function () { return x; });
@@ -31,7 +32,7 @@ $({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
31
32
  });
32
33
 
33
34
  // makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`
34
- if (!IS_PURE && typeof NativePromise == 'function') {
35
+ if (!IS_PURE && isCallable(NativePromise)) {
35
36
  var method = getBuiltIn('Promise').prototype['finally'];
36
37
  if (NativePromise.prototype['finally'] !== method) {
37
38
  redefine(NativePromise.prototype, 'finally', method, { unsafe: true });