core-js-pure 3.18.2 → 3.19.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 (293) hide show
  1. package/es/date/to-primitive.js +2 -3
  2. package/es/date/to-string.js +2 -4
  3. package/es/instance/at.js +6 -5
  4. package/es/instance/bind.js +3 -2
  5. package/es/instance/code-point-at.js +4 -3
  6. package/es/instance/concat.js +3 -2
  7. package/es/instance/copy-within.js +3 -2
  8. package/es/instance/ends-with.js +4 -3
  9. package/es/instance/entries.js +3 -2
  10. package/es/instance/every.js +3 -2
  11. package/es/instance/fill.js +3 -2
  12. package/es/instance/filter.js +3 -2
  13. package/es/instance/find-index.js +3 -2
  14. package/es/instance/find.js +3 -2
  15. package/es/instance/flags.js +2 -1
  16. package/es/instance/flat-map.js +3 -2
  17. package/es/instance/flat.js +3 -2
  18. package/es/instance/for-each.js +3 -2
  19. package/es/instance/includes.js +6 -5
  20. package/es/instance/index-of.js +3 -2
  21. package/es/instance/keys.js +3 -2
  22. package/es/instance/last-index-of.js +3 -2
  23. package/es/instance/map.js +3 -2
  24. package/es/instance/match-all.js +4 -3
  25. package/es/instance/pad-end.js +4 -3
  26. package/es/instance/pad-start.js +4 -3
  27. package/es/instance/reduce-right.js +3 -2
  28. package/es/instance/reduce.js +3 -2
  29. package/es/instance/repeat.js +4 -3
  30. package/es/instance/replace-all.js +4 -3
  31. package/es/instance/reverse.js +3 -2
  32. package/es/instance/slice.js +3 -2
  33. package/es/instance/some.js +3 -2
  34. package/es/instance/sort.js +3 -2
  35. package/es/instance/splice.js +3 -2
  36. package/es/instance/starts-with.js +4 -3
  37. package/es/instance/trim-end.js +4 -3
  38. package/es/instance/trim-left.js +4 -3
  39. package/es/instance/trim-right.js +4 -3
  40. package/es/instance/trim-start.js +4 -3
  41. package/es/instance/trim.js +4 -3
  42. package/es/instance/values.js +3 -2
  43. package/es/json/stringify.js +4 -3
  44. package/es/promise/all-settled.js +2 -1
  45. package/es/promise/any.js +2 -1
  46. package/es/regexp/flags.js +3 -4
  47. package/es/regexp/match.js +2 -1
  48. package/es/regexp/replace.js +2 -1
  49. package/es/regexp/search.js +2 -1
  50. package/es/regexp/split.js +2 -1
  51. package/es/regexp/test.js +2 -3
  52. package/es/regexp/to-string.js +2 -3
  53. package/es/string/iterator.js +2 -5
  54. package/features/instance/at.js +6 -5
  55. package/features/instance/code-points.js +4 -3
  56. package/features/instance/filter-out.js +3 -2
  57. package/features/instance/filter-reject.js +3 -2
  58. package/features/instance/find-last-index.js +3 -2
  59. package/features/instance/find-last.js +3 -2
  60. package/features/instance/group-by.js +3 -2
  61. package/features/instance/unique-by.js +3 -2
  62. package/features/map/from.js +3 -2
  63. package/features/map/group-by.js +2 -1
  64. package/features/map/key-by.js +2 -1
  65. package/features/map/of.js +3 -2
  66. package/features/promise/try.js +2 -1
  67. package/features/set/from.js +3 -2
  68. package/features/set/of.js +3 -2
  69. package/features/weak-map/from.js +3 -2
  70. package/features/weak-map/of.js +3 -2
  71. package/features/weak-set/from.js +3 -2
  72. package/features/weak-set/of.js +3 -2
  73. package/internals/a-callable.js +3 -0
  74. package/internals/a-constructor.js +3 -0
  75. package/internals/a-possible-prototype.js +5 -1
  76. package/internals/an-instance.js +8 -3
  77. package/internals/an-object.js +4 -0
  78. package/internals/array-buffer-native.js +1 -1
  79. package/internals/array-buffer-non-extensible.js +10 -0
  80. package/internals/array-from-async.js +1 -1
  81. package/internals/array-from.js +6 -2
  82. package/internals/array-group-by.js +6 -3
  83. package/internals/array-iteration-from-last.js +1 -1
  84. package/internals/array-iteration.js +5 -4
  85. package/internals/array-last-index-of.js +2 -1
  86. package/internals/array-reduce.js +3 -0
  87. package/internals/array-slice-simple.js +17 -0
  88. package/internals/array-slice.js +3 -0
  89. package/internals/array-sort.js +10 -11
  90. package/internals/array-species-constructor.js +2 -0
  91. package/internals/array-unique-by.js +13 -9
  92. package/internals/async-from-sync-iterator.js +4 -3
  93. package/internals/async-iterator-create-proxy.js +4 -3
  94. package/internals/async-iterator-iteration.js +5 -2
  95. package/internals/classof-raw.js +5 -2
  96. package/internals/classof.js +3 -0
  97. package/internals/clear-error-stack.js +20 -0
  98. package/internals/collection-add-all.js +3 -2
  99. package/internals/collection-delete-all.js +3 -2
  100. package/internals/collection-from.js +7 -4
  101. package/internals/collection-of.js +3 -4
  102. package/internals/collection-strong.js +11 -9
  103. package/internals/collection-weak.js +10 -6
  104. package/internals/collection.js +5 -3
  105. package/internals/composite-key.js +9 -2
  106. package/internals/create-html.js +3 -1
  107. package/internals/date-to-iso-string.js +23 -13
  108. package/internals/date-to-primitive.js +3 -0
  109. package/internals/define-iterator.js +2 -1
  110. package/internals/engine-v8-version.js +10 -4
  111. package/internals/error-stack-installable.js +10 -0
  112. package/internals/export.js +6 -4
  113. package/internals/flatten-into-array.js +4 -1
  114. package/internals/function-apply.js +9 -0
  115. package/internals/function-bind-context.js +5 -17
  116. package/internals/function-bind.js +15 -9
  117. package/internals/function-call.js +5 -0
  118. package/internals/function-uncurry-this.js +12 -0
  119. package/internals/get-async-iterator.js +2 -1
  120. package/internals/get-iterator.js +7 -2
  121. package/internals/get-substitution.js +10 -7
  122. package/internals/has-own-property.js +3 -2
  123. package/internals/host-report-errors.js +1 -1
  124. package/internals/ieee754.js +24 -6
  125. package/internals/indexed-object.js +5 -2
  126. package/internals/inspect-source.js +3 -2
  127. package/internals/install-error-cause.js +1 -1
  128. package/internals/internal-metadata.js +4 -7
  129. package/internals/internal-state.js +9 -7
  130. package/internals/is-callable.js +1 -1
  131. package/internals/is-constructor.js +6 -4
  132. package/internals/is-iterable.js +4 -2
  133. package/internals/is-object.js +1 -1
  134. package/internals/is-symbol.js +6 -2
  135. package/internals/iterate.js +14 -6
  136. package/internals/iterator-close.js +2 -1
  137. package/internals/iterator-create-proxy.js +4 -3
  138. package/internals/map-emplace.js +8 -3
  139. package/internals/map-upsert.js +12 -4
  140. package/internals/math-scale.js +9 -12
  141. package/internals/microtask.js +6 -4
  142. package/internals/normalize-string-argument.js +5 -0
  143. package/internals/not-a-regexp.js +3 -0
  144. package/internals/number-parse-float.js +8 -6
  145. package/internals/number-parse-int.js +4 -2
  146. package/internals/numeric-range-iterator.js +4 -0
  147. package/internals/object-assign.js +5 -2
  148. package/internals/object-define-properties.js +3 -1
  149. package/internals/object-define-property.js +2 -0
  150. package/internals/object-get-own-property-descriptor.js +2 -1
  151. package/internals/object-get-own-property-names-external.js +4 -4
  152. package/internals/object-get-prototype-of.js +2 -1
  153. package/internals/object-is-extensible.js +16 -0
  154. package/internals/object-is-prototype-of.js +3 -0
  155. package/internals/object-keys-internal.js +5 -2
  156. package/internals/object-set-prototype-of.js +4 -3
  157. package/internals/object-to-array.js +7 -3
  158. package/internals/ordinary-to-primitive.js +7 -3
  159. package/internals/own-keys.js +4 -1
  160. package/internals/reflect-metadata.js +9 -3
  161. package/internals/regexp-exec-abstract.js +6 -2
  162. package/internals/require-object-coercible.js +4 -0
  163. package/internals/set-global.js +4 -2
  164. package/internals/shared.js +1 -1
  165. package/internals/string-multibyte.js +13 -4
  166. package/internals/string-pad.js +6 -3
  167. package/internals/string-punycode-to-ascii.js +34 -20
  168. package/internals/string-repeat.js +3 -0
  169. package/internals/string-trim.js +4 -2
  170. package/internals/task.js +11 -11
  171. package/internals/this-number-value.js +2 -4
  172. package/internals/to-index.js +3 -0
  173. package/internals/to-object.js +3 -0
  174. package/internals/to-positive-integer.js +3 -0
  175. package/internals/to-primitive.js +4 -1
  176. package/internals/to-property-key.js +1 -1
  177. package/internals/to-string.js +3 -0
  178. package/internals/try-to-string.js +4 -0
  179. package/internals/uid.js +4 -1
  180. package/internals/well-known-symbol.js +5 -1
  181. package/modules/es.aggregate-error.js +27 -11
  182. package/modules/es.array.concat.js +2 -0
  183. package/modules/es.array.index-of.js +7 -5
  184. package/modules/es.array.join.js +3 -2
  185. package/modules/es.array.of.js +3 -1
  186. package/modules/es.array.reduce.js +2 -1
  187. package/modules/es.array.reverse.js +3 -2
  188. package/modules/es.array.slice.js +4 -2
  189. package/modules/es.array.sort.js +7 -4
  190. package/modules/es.array.splice.js +2 -0
  191. package/modules/es.date.get-year.js +3 -2
  192. package/modules/es.date.now.js +6 -1
  193. package/modules/es.date.set-year.js +6 -4
  194. package/modules/es.date.to-json.js +3 -2
  195. package/modules/es.escape.js +12 -5
  196. package/modules/es.function.has-instance.js +3 -2
  197. package/modules/es.json.stringify.js +18 -7
  198. package/modules/es.map.js +1 -1
  199. package/modules/es.number.to-fixed.js +19 -13
  200. package/modules/es.number.to-precision.js +6 -5
  201. package/modules/es.object.is-extensible.js +4 -10
  202. package/modules/es.object.is-frozen.js +6 -2
  203. package/modules/es.object.is-sealed.js +6 -2
  204. package/modules/es.promise.all-settled.js +2 -2
  205. package/modules/es.promise.any.js +5 -4
  206. package/modules/es.promise.js +22 -18
  207. package/modules/es.reflect.apply.js +4 -10
  208. package/modules/es.reflect.construct.js +10 -5
  209. package/modules/es.reflect.get.js +2 -1
  210. package/modules/es.reflect.is-extensible.js +2 -4
  211. package/modules/es.reflect.set.js +2 -1
  212. package/modules/es.set.js +1 -1
  213. package/modules/es.string.at-alternative.js +4 -1
  214. package/modules/es.string.ends-with.js +6 -4
  215. package/modules/es.string.from-code-point.js +7 -4
  216. package/modules/es.string.includes.js +8 -2
  217. package/modules/es.string.match-all.js +25 -19
  218. package/modules/es.string.raw.js +6 -6
  219. package/modules/es.string.replace-all.js +19 -13
  220. package/modules/es.string.starts-with.js +6 -4
  221. package/modules/es.string.substr.js +3 -2
  222. package/modules/es.symbol.js +34 -21
  223. package/modules/es.unescape.js +14 -9
  224. package/modules/es.weak-map.js +15 -15
  225. package/modules/esnext.array.is-template-object.js +1 -1
  226. package/modules/esnext.async-iterator.as-indexed-pairs.js +2 -1
  227. package/modules/esnext.async-iterator.constructor.js +1 -1
  228. package/modules/esnext.async-iterator.drop.js +2 -1
  229. package/modules/esnext.async-iterator.filter.js +2 -1
  230. package/modules/esnext.async-iterator.flat-map.js +3 -2
  231. package/modules/esnext.async-iterator.from.js +4 -4
  232. package/modules/esnext.async-iterator.map.js +2 -1
  233. package/modules/esnext.async-iterator.reduce.js +4 -1
  234. package/modules/esnext.async-iterator.take.js +4 -2
  235. package/modules/esnext.composite-key.js +5 -1
  236. package/modules/esnext.composite-symbol.js +3 -2
  237. package/modules/esnext.iterator.as-indexed-pairs.js +2 -1
  238. package/modules/esnext.iterator.constructor.js +1 -1
  239. package/modules/esnext.iterator.drop.js +4 -2
  240. package/modules/esnext.iterator.filter.js +2 -1
  241. package/modules/esnext.iterator.flat-map.js +7 -3
  242. package/modules/esnext.iterator.from.js +4 -4
  243. package/modules/esnext.iterator.map.js +2 -1
  244. package/modules/esnext.iterator.reduce.js +3 -0
  245. package/modules/esnext.iterator.take.js +2 -1
  246. package/modules/esnext.map.delete-all.js +2 -4
  247. package/modules/esnext.map.emplace.js +2 -2
  248. package/modules/esnext.map.every.js +1 -1
  249. package/modules/esnext.map.filter.js +5 -4
  250. package/modules/esnext.map.find-key.js +1 -1
  251. package/modules/esnext.map.find.js +1 -1
  252. package/modules/esnext.map.group-by.js +6 -2
  253. package/modules/esnext.map.includes.js +1 -1
  254. package/modules/esnext.map.key-by.js +2 -1
  255. package/modules/esnext.map.map-keys.js +5 -4
  256. package/modules/esnext.map.map-values.js +5 -4
  257. package/modules/esnext.map.reduce.js +3 -0
  258. package/modules/esnext.map.some.js +1 -1
  259. package/modules/esnext.map.update-or-insert.js +2 -2
  260. package/modules/esnext.map.update.js +11 -4
  261. package/modules/esnext.map.upsert.js +2 -2
  262. package/modules/esnext.math.seeded-prng.js +3 -1
  263. package/modules/esnext.number.from-string.js +12 -3
  264. package/modules/esnext.observable.js +14 -9
  265. package/modules/esnext.reflect.get-metadata-keys.js +5 -10
  266. package/modules/esnext.set.add-all.js +2 -4
  267. package/modules/esnext.set.delete-all.js +2 -4
  268. package/modules/esnext.set.difference.js +3 -2
  269. package/modules/esnext.set.every.js +1 -1
  270. package/modules/esnext.set.filter.js +4 -3
  271. package/modules/esnext.set.find.js +1 -1
  272. package/modules/esnext.set.intersection.js +3 -2
  273. package/modules/esnext.set.is-disjoint-from.js +3 -2
  274. package/modules/esnext.set.is-subset-of.js +3 -2
  275. package/modules/esnext.set.is-superset-of.js +3 -2
  276. package/modules/esnext.set.join.js +9 -4
  277. package/modules/esnext.set.map.js +5 -4
  278. package/modules/esnext.set.reduce.js +3 -0
  279. package/modules/esnext.set.some.js +1 -1
  280. package/modules/esnext.set.symmetric-difference.js +3 -2
  281. package/modules/esnext.weak-map.delete-all.js +2 -4
  282. package/modules/esnext.weak-map.emplace.js +2 -2
  283. package/modules/esnext.weak-map.upsert.js +2 -2
  284. package/modules/esnext.weak-set.add-all.js +2 -4
  285. package/modules/esnext.weak-set.delete-all.js +2 -4
  286. package/modules/web.timers.js +5 -4
  287. package/modules/web.url-search-params.js +122 -104
  288. package/modules/web.url.js +664 -628
  289. package/package.json +2 -2
  290. package/stable/instance/entries.js +6 -4
  291. package/stable/instance/for-each.js +6 -4
  292. package/stable/instance/keys.js +6 -4
  293. package/stable/instance/values.js +6 -4
@@ -2,6 +2,9 @@
2
2
  var $ = require('../internals/export');
3
3
  var global = require('../internals/global');
4
4
  var getBuiltIn = require('../internals/get-built-in');
5
+ var apply = require('../internals/function-apply');
6
+ var call = require('../internals/function-call');
7
+ var uncurryThis = require('../internals/function-uncurry-this');
5
8
  var IS_PURE = require('../internals/is-pure');
6
9
  var DESCRIPTORS = require('../internals/descriptors');
7
10
  var NATIVE_SYMBOL = require('../internals/native-symbol');
@@ -10,6 +13,7 @@ var hasOwn = require('../internals/has-own-property');
10
13
  var isArray = require('../internals/is-array');
11
14
  var isCallable = require('../internals/is-callable');
12
15
  var isObject = require('../internals/is-object');
16
+ var isPrototypeOf = require('../internals/object-is-prototype-of');
13
17
  var isSymbol = require('../internals/is-symbol');
14
18
  var anObject = require('../internals/an-object');
15
19
  var toObject = require('../internals/to-object');
@@ -25,6 +29,7 @@ var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-
25
29
  var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
26
30
  var definePropertyModule = require('../internals/object-define-property');
27
31
  var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
32
+ var arraySlice = require('../internals/array-slice');
28
33
  var redefine = require('../internals/redefine');
29
34
  var shared = require('../internals/shared');
30
35
  var sharedKey = require('../internals/shared-key');
@@ -41,21 +46,28 @@ var HIDDEN = sharedKey('hidden');
41
46
  var SYMBOL = 'Symbol';
42
47
  var PROTOTYPE = 'prototype';
43
48
  var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
49
+
44
50
  var setInternalState = InternalStateModule.set;
45
51
  var getInternalState = InternalStateModule.getterFor(SYMBOL);
52
+
46
53
  var ObjectPrototype = Object[PROTOTYPE];
47
54
  var $Symbol = global.Symbol;
55
+ var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];
56
+ var TypeError = global.TypeError;
57
+ var QObject = global.QObject;
48
58
  var $stringify = getBuiltIn('JSON', 'stringify');
49
59
  var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
50
60
  var nativeDefineProperty = definePropertyModule.f;
51
61
  var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
52
62
  var nativePropertyIsEnumerable = propertyIsEnumerableModule.f;
63
+ var push = uncurryThis([].push);
64
+
53
65
  var AllSymbols = shared('symbols');
54
66
  var ObjectPrototypeSymbols = shared('op-symbols');
55
67
  var StringToSymbolRegistry = shared('string-to-symbol-registry');
56
68
  var SymbolToStringRegistry = shared('symbol-to-string-registry');
57
69
  var WellKnownSymbolsStore = shared('wks');
58
- var QObject = global.QObject;
70
+
59
71
  // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
60
72
  var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
61
73
 
@@ -74,7 +86,7 @@ var setSymbolDescriptor = DESCRIPTORS && fails(function () {
74
86
  } : nativeDefineProperty;
75
87
 
76
88
  var wrap = function (tag, description) {
77
- var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);
89
+ var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);
78
90
  setInternalState(symbol, {
79
91
  type: SYMBOL,
80
92
  tag: tag,
@@ -105,7 +117,7 @@ var $defineProperties = function defineProperties(O, Properties) {
105
117
  var properties = toIndexedObject(Properties);
106
118
  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
107
119
  $forEach(keys, function (key) {
108
- if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);
120
+ if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);
109
121
  });
110
122
  return O;
111
123
  };
@@ -116,7 +128,7 @@ var $create = function create(O, Properties) {
116
128
 
117
129
  var $propertyIsEnumerable = function propertyIsEnumerable(V) {
118
130
  var P = toPropertyKey(V);
119
- var enumerable = nativePropertyIsEnumerable.call(this, P);
131
+ var enumerable = call(nativePropertyIsEnumerable, this, P);
120
132
  if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;
121
133
  return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]
122
134
  ? enumerable : true;
@@ -137,7 +149,7 @@ var $getOwnPropertyNames = function getOwnPropertyNames(O) {
137
149
  var names = nativeGetOwnPropertyNames(toIndexedObject(O));
138
150
  var result = [];
139
151
  $forEach(names, function (key) {
140
- if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) result.push(key);
152
+ if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);
141
153
  });
142
154
  return result;
143
155
  };
@@ -148,7 +160,7 @@ var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
148
160
  var result = [];
149
161
  $forEach(names, function (key) {
150
162
  if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {
151
- result.push(AllSymbols[key]);
163
+ push(result, AllSymbols[key]);
152
164
  }
153
165
  });
154
166
  return result;
@@ -158,11 +170,11 @@ var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
158
170
  // https://tc39.es/ecma262/#sec-symbol-constructor
159
171
  if (!NATIVE_SYMBOL) {
160
172
  $Symbol = function Symbol() {
161
- if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');
173
+ if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');
162
174
  var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);
163
175
  var tag = uid(description);
164
176
  var setter = function (value) {
165
- if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);
177
+ if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);
166
178
  if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
167
179
  setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));
168
180
  };
@@ -170,7 +182,9 @@ if (!NATIVE_SYMBOL) {
170
182
  return wrap(tag, description);
171
183
  };
172
184
 
173
- redefine($Symbol[PROTOTYPE], 'toString', function toString() {
185
+ SymbolPrototype = $Symbol[PROTOTYPE];
186
+
187
+ redefine(SymbolPrototype, 'toString', function toString() {
174
188
  return getInternalState(this).tag;
175
189
  });
176
190
 
@@ -190,7 +204,7 @@ if (!NATIVE_SYMBOL) {
190
204
 
191
205
  if (DESCRIPTORS) {
192
206
  // https://github.com/tc39/proposal-Symbol-description
193
- nativeDefineProperty($Symbol[PROTOTYPE], 'description', {
207
+ nativeDefineProperty(SymbolPrototype, 'description', {
194
208
  configurable: true,
195
209
  get: function description() {
196
210
  return getInternalState(this).description;
@@ -279,28 +293,27 @@ if ($stringify) {
279
293
  $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {
280
294
  // eslint-disable-next-line no-unused-vars -- required for `.length`
281
295
  stringify: function stringify(it, replacer, space) {
282
- var args = [it];
283
- var index = 1;
284
- var $replacer;
285
- while (arguments.length > index) args.push(arguments[index++]);
286
- $replacer = replacer;
296
+ var args = arraySlice(arguments);
297
+ var $replacer = replacer;
287
298
  if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
288
299
  if (!isArray(replacer)) replacer = function (key, value) {
289
- if (isCallable($replacer)) value = $replacer.call(this, key, value);
300
+ if (isCallable($replacer)) value = call($replacer, this, key, value);
290
301
  if (!isSymbol(value)) return value;
291
302
  };
292
303
  args[1] = replacer;
293
- return $stringify.apply(null, args);
304
+ return apply($stringify, null, args);
294
305
  }
295
306
  });
296
307
  }
297
308
 
298
309
  // `Symbol.prototype[@@toPrimitive]` method
299
310
  // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive
300
- if (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {
301
- var valueOf = $Symbol[PROTOTYPE].valueOf;
302
- redefine($Symbol[PROTOTYPE], TO_PRIMITIVE, function () {
303
- return valueOf.apply(this, arguments);
311
+ if (!SymbolPrototype[TO_PRIMITIVE]) {
312
+ var valueOf = SymbolPrototype.valueOf;
313
+ // eslint-disable-next-line no-unused-vars -- required for .length
314
+ redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {
315
+ // TODO: improve hint logic
316
+ return call(valueOf, this);
304
317
  });
305
318
  }
306
319
  // `Symbol.prototype[@@toStringTag]` property
@@ -1,8 +1,13 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
3
4
  var toString = require('../internals/to-string');
4
5
 
5
6
  var fromCharCode = String.fromCharCode;
7
+ var charAt = uncurryThis(''.charAt);
8
+ var exec = uncurryThis(/./.exec);
9
+ var stringSlice = uncurryThis(''.slice);
10
+
6
11
  var hex2 = /^[\da-f]{2}$/i;
7
12
  var hex4 = /^[\da-f]{4}$/i;
8
13
 
@@ -14,21 +19,21 @@ $({ global: true }, {
14
19
  var result = '';
15
20
  var length = str.length;
16
21
  var index = 0;
17
- var chr, slice;
22
+ var chr, part;
18
23
  while (index < length) {
19
- chr = str.charAt(index++);
24
+ chr = charAt(str, index++);
20
25
  if (chr === '%') {
21
- if (str.charAt(index) === 'u') {
22
- slice = str.slice(index + 1, index + 5);
23
- if (hex4.test(slice)) {
24
- result += fromCharCode(parseInt(slice, 16));
26
+ if (charAt(str, index) === 'u') {
27
+ part = stringSlice(str, index + 1, index + 5);
28
+ if (exec(hex4, part)) {
29
+ result += fromCharCode(parseInt(part, 16));
25
30
  index += 5;
26
31
  continue;
27
32
  }
28
33
  } else {
29
- slice = str.slice(index, index + 2);
30
- if (hex2.test(slice)) {
31
- result += fromCharCode(parseInt(slice, 16));
34
+ part = stringSlice(str, index, index + 2);
35
+ if (exec(hex2, part)) {
36
+ result += fromCharCode(parseInt(part, 16));
32
37
  index += 2;
33
38
  continue;
34
39
  }
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
  var global = require('../internals/global');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
3
4
  var redefineAll = require('../internals/redefine-all');
4
5
  var InternalMetadataModule = require('../internals/internal-metadata');
5
6
  var collection = require('../internals/collection');
6
7
  var collectionWeak = require('../internals/collection-weak');
7
8
  var isObject = require('../internals/is-object');
9
+ var isExtensible = require('../internals/object-is-extensible');
8
10
  var enforceIternalState = require('../internals/internal-state').enforce;
9
11
  var NATIVE_WEAK_MAP = require('../internals/native-weak-map');
10
12
 
11
13
  var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
12
- // eslint-disable-next-line es/no-object-isextensible -- safe
13
- var isExtensible = Object.isExtensible;
14
14
  var InternalWeakMap;
15
15
 
16
16
  var wrapper = function (init) {
@@ -21,7 +21,7 @@ var wrapper = function (init) {
21
21
 
22
22
  // `WeakMap` constructor
23
23
  // https://tc39.es/ecma262/#sec-weakmap-constructor
24
- var $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);
24
+ var $WeakMap = collection('WeakMap', wrapper, collectionWeak);
25
25
 
26
26
  // IE11 WeakMap frozen keys fix
27
27
  // We can't use feature detection because it crash some old IE builds
@@ -30,38 +30,38 @@ if (NATIVE_WEAK_MAP && IS_IE11) {
30
30
  InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);
31
31
  InternalMetadataModule.enable();
32
32
  var WeakMapPrototype = $WeakMap.prototype;
33
- var nativeDelete = WeakMapPrototype['delete'];
34
- var nativeHas = WeakMapPrototype.has;
35
- var nativeGet = WeakMapPrototype.get;
36
- var nativeSet = WeakMapPrototype.set;
33
+ var nativeDelete = uncurryThis(WeakMapPrototype['delete']);
34
+ var nativeHas = uncurryThis(WeakMapPrototype.has);
35
+ var nativeGet = uncurryThis(WeakMapPrototype.get);
36
+ var nativeSet = uncurryThis(WeakMapPrototype.set);
37
37
  redefineAll(WeakMapPrototype, {
38
38
  'delete': function (key) {
39
39
  if (isObject(key) && !isExtensible(key)) {
40
40
  var state = enforceIternalState(this);
41
41
  if (!state.frozen) state.frozen = new InternalWeakMap();
42
- return nativeDelete.call(this, key) || state.frozen['delete'](key);
43
- } return nativeDelete.call(this, key);
42
+ return nativeDelete(this, key) || state.frozen['delete'](key);
43
+ } return nativeDelete(this, key);
44
44
  },
45
45
  has: function has(key) {
46
46
  if (isObject(key) && !isExtensible(key)) {
47
47
  var state = enforceIternalState(this);
48
48
  if (!state.frozen) state.frozen = new InternalWeakMap();
49
- return nativeHas.call(this, key) || state.frozen.has(key);
50
- } return nativeHas.call(this, key);
49
+ return nativeHas(this, key) || state.frozen.has(key);
50
+ } return nativeHas(this, key);
51
51
  },
52
52
  get: function get(key) {
53
53
  if (isObject(key) && !isExtensible(key)) {
54
54
  var state = enforceIternalState(this);
55
55
  if (!state.frozen) state.frozen = new InternalWeakMap();
56
- return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);
57
- } return nativeGet.call(this, key);
56
+ return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);
57
+ } return nativeGet(this, key);
58
58
  },
59
59
  set: function set(key, value) {
60
60
  if (isObject(key) && !isExtensible(key)) {
61
61
  var state = enforceIternalState(this);
62
62
  if (!state.frozen) state.frozen = new InternalWeakMap();
63
- nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);
64
- } else nativeSet.call(this, key, value);
63
+ nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);
64
+ } else nativeSet(this, key, value);
65
65
  return this;
66
66
  }
67
67
  });
@@ -11,7 +11,7 @@ var isFrozenStringArray = function (array, allowUndefined) {
11
11
  var element;
12
12
  while (index < length) {
13
13
  element = array[index++];
14
- if (!(typeof element === 'string' || (allowUndefined && typeof element === 'undefined'))) {
14
+ if (!(typeof element == 'string' || (allowUndefined && typeof element == 'undefined'))) {
15
15
  return false;
16
16
  }
17
17
  } return length !== 0;
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var apply = require('../internals/function-apply');
4
5
  var anObject = require('../internals/an-object');
5
6
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
6
7
 
@@ -8,7 +9,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
8
9
  var state = this;
9
10
  var iterator = state.iterator;
10
11
 
11
- return Promise.resolve(anObject(state.next.apply(iterator, args))).then(function (step) {
12
+ return Promise.resolve(anObject(apply(state.next, iterator, args))).then(function (step) {
12
13
  if (anObject(step).done) {
13
14
  state.done = true;
14
15
  return { done: true, value: undefined };
@@ -11,7 +11,7 @@ var IS_PURE = require('../internals/is-pure');
11
11
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
12
12
 
13
13
  var AsyncIteratorConstructor = function AsyncIterator() {
14
- anInstance(this, AsyncIteratorConstructor);
14
+ anInstance(this, AsyncIteratorPrototype);
15
15
  };
16
16
 
17
17
  AsyncIteratorConstructor.prototype = AsyncIteratorPrototype;
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var apply = require('../internals/function-apply');
4
5
  var anObject = require('../internals/an-object');
5
6
  var toPositiveInteger = require('../internals/to-positive-integer');
6
7
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
@@ -12,7 +13,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
12
13
  var loop = function () {
13
14
  try {
14
15
  Promise.resolve(
15
- anObject(state.next.apply(state.iterator, state.remaining ? [] : args))
16
+ anObject(apply(state.next, state.iterator, state.remaining ? [] : args))
16
17
  ).then(function (step) {
17
18
  try {
18
19
  if (anObject(step).done) {
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var apply = require('../internals/function-apply');
4
5
  var aCallable = require('../internals/a-callable');
5
6
  var anObject = require('../internals/an-object');
6
7
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
@@ -12,7 +13,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
12
13
  return new Promise(function (resolve, reject) {
13
14
  var loop = function () {
14
15
  try {
15
- Promise.resolve(anObject(state.next.apply(state.iterator, args))).then(function (step) {
16
+ Promise.resolve(anObject(apply(state.next, state.iterator, args))).then(function (step) {
16
17
  try {
17
18
  if (anObject(step).done) {
18
19
  state.done = true;
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var call = require('../internals/function-call');
4
5
  var aCallable = require('../internals/a-callable');
5
6
  var anObject = require('../internals/an-object');
6
7
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
@@ -14,7 +15,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
14
15
  return new Promise(function (resolve, reject) {
15
16
  var outerLoop = function () {
16
17
  try {
17
- Promise.resolve(anObject(state.next.call(state.iterator))).then(function (step) {
18
+ Promise.resolve(anObject(call(state.next, state.iterator))).then(function (step) {
18
19
  try {
19
20
  if (anObject(step).done) {
20
21
  state.done = true;
@@ -36,7 +37,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
36
37
  var innerLoop = function () {
37
38
  if (innerIterator = state.innerIterator) {
38
39
  try {
39
- Promise.resolve(anObject(state.innerNext.call(innerIterator))).then(function (result) {
40
+ Promise.resolve(anObject(call(state.innerNext, innerIterator))).then(function (result) {
40
41
  try {
41
42
  if (anObject(result).done) {
42
43
  state.innerIterator = state.innerNext = null;
@@ -1,7 +1,9 @@
1
1
  // https://github.com/tc39/proposal-iterator-helpers
2
2
  var $ = require('../internals/export');
3
+ var apply = require('../internals/function-apply');
3
4
  var anObject = require('../internals/an-object');
4
5
  var toObject = require('../internals/to-object');
6
+ var isPrototypeOf = require('../internals/object-is-prototype-of');
5
7
  var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
6
8
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
7
9
  var getAsyncIterator = require('../internals/get-async-iterator');
@@ -13,10 +15,8 @@ var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
13
15
 
14
16
  var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
15
17
 
16
- var isPrototypeOf = {}.isPrototypeOf;
17
-
18
18
  var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
19
- return anObject(this.next.apply(this.iterator, args));
19
+ return anObject(apply(this.next, this.iterator, args));
20
20
  }, true);
21
21
 
22
22
  $({ target: 'AsyncIterator', stat: true }, {
@@ -26,7 +26,7 @@ $({ target: 'AsyncIterator', stat: true }, {
26
26
  var iterator;
27
27
  if (usingIterator) {
28
28
  iterator = getAsyncIterator(object, usingIterator);
29
- if (isPrototypeOf.call(AsyncIteratorPrototype, iterator)) return iterator;
29
+ if (isPrototypeOf(AsyncIteratorPrototype, iterator)) return iterator;
30
30
  }
31
31
  if (iterator === undefined) {
32
32
  usingIterator = getIteratorMethod(object);
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var apply = require('../internals/function-apply');
4
5
  var aCallable = require('../internals/a-callable');
5
6
  var anObject = require('../internals/an-object');
6
7
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
@@ -9,7 +10,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
9
10
  var state = this;
10
11
  var mapper = state.mapper;
11
12
 
12
- return Promise.resolve(anObject(state.next.apply(state.iterator, args))).then(function (step) {
13
+ return Promise.resolve(anObject(apply(state.next, state.iterator, args))).then(function (step) {
13
14
  if (anObject(step).done) {
14
15
  state.done = true;
15
16
  return { done: true, value: undefined };
@@ -1,11 +1,14 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var global = require('../internals/global');
5
+ var call = require('../internals/function-call');
4
6
  var aCallable = require('../internals/a-callable');
5
7
  var anObject = require('../internals/an-object');
6
8
  var getBuiltIn = require('../internals/get-built-in');
7
9
 
8
10
  var Promise = getBuiltIn('Promise');
11
+ var TypeError = global.TypeError;
9
12
 
10
13
  $({ target: 'AsyncIterator', proto: true, real: true }, {
11
14
  reduce: function reduce(reducer /* , initialValue */) {
@@ -18,7 +21,7 @@ $({ target: 'AsyncIterator', proto: true, real: true }, {
18
21
  return new Promise(function (resolve, reject) {
19
22
  var loop = function () {
20
23
  try {
21
- Promise.resolve(anObject(next.call(iterator))).then(function (step) {
24
+ Promise.resolve(anObject(call(next, iterator))).then(function (step) {
22
25
  try {
23
26
  if (anObject(step).done) {
24
27
  noInitial ? reject(TypeError('Reduce of empty iterator with no initial value')) : resolve(accumulator);
@@ -1,6 +1,8 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var apply = require('../internals/function-apply');
5
+ var call = require('../internals/function-call');
4
6
  var anObject = require('../internals/an-object');
5
7
  var toPositiveInteger = require('../internals/to-positive-integer');
6
8
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
@@ -13,12 +15,12 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
13
15
  this.done = true;
14
16
  returnMethod = iterator['return'];
15
17
  if (returnMethod !== undefined) {
16
- return Promise.resolve(returnMethod.call(iterator)).then(function () {
18
+ return Promise.resolve(call(returnMethod, iterator)).then(function () {
17
19
  return result;
18
20
  });
19
21
  }
20
22
  return result;
21
- } return this.next.apply(iterator, args);
23
+ } return apply(this.next, iterator, args);
22
24
  });
23
25
 
24
26
  $({ target: 'AsyncIterator', proto: true, real: true }, {
@@ -1,8 +1,12 @@
1
1
  var $ = require('../internals/export');
2
+ var global = require('../internals/global');
3
+ var apply = require('../internals/function-apply');
2
4
  var getCompositeKeyNode = require('../internals/composite-key');
3
5
  var getBuiltIn = require('../internals/get-built-in');
4
6
  var create = require('../internals/object-create');
5
7
 
8
+ var Object = global.Object;
9
+
6
10
  var initializer = function () {
7
11
  var freeze = getBuiltIn('Object', 'freeze');
8
12
  return freeze ? freeze(create(null)) : create(null);
@@ -11,6 +15,6 @@ var initializer = function () {
11
15
  // https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey
12
16
  $({ global: true }, {
13
17
  compositeKey: function compositeKey() {
14
- return getCompositeKeyNode.apply(Object, arguments).get('object', initializer);
18
+ return apply(getCompositeKeyNode, Object, arguments).get('object', initializer);
15
19
  }
16
20
  });
@@ -1,11 +1,12 @@
1
1
  var $ = require('../internals/export');
2
2
  var getCompositeKeyNode = require('../internals/composite-key');
3
3
  var getBuiltIn = require('../internals/get-built-in');
4
+ var apply = require('../internals/function-apply');
4
5
 
5
6
  // https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey
6
7
  $({ global: true }, {
7
8
  compositeSymbol: function compositeSymbol() {
8
- if (arguments.length === 1 && typeof arguments[0] === 'string') return getBuiltIn('Symbol')['for'](arguments[0]);
9
- return getCompositeKeyNode.apply(null, arguments).get('symbol', getBuiltIn('Symbol'));
9
+ if (arguments.length == 1 && typeof arguments[0] == 'string') return getBuiltIn('Symbol')['for'](arguments[0]);
10
+ return apply(getCompositeKeyNode, null, arguments).get('symbol', getBuiltIn('Symbol'));
10
11
  }
11
12
  });
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var apply = require('../internals/function-apply');
4
5
  var anObject = require('../internals/an-object');
5
6
  var createIteratorProxy = require('../internals/iterator-create-proxy');
6
7
 
7
8
  var IteratorProxy = createIteratorProxy(function (args) {
8
- var result = anObject(this.next.apply(this.iterator, args));
9
+ var result = anObject(apply(this.next, this.iterator, args));
9
10
  var done = this.done = !!result.done;
10
11
  if (!done) return [this.index++, result.value];
11
12
  });
@@ -23,7 +23,7 @@ var FORCED = IS_PURE
23
23
  || !fails(function () { NativeIterator({}); });
24
24
 
25
25
  var IteratorConstructor = function Iterator() {
26
- anInstance(this, IteratorConstructor);
26
+ anInstance(this, IteratorPrototype);
27
27
  };
28
28
 
29
29
  if (!hasOwn(IteratorPrototype, TO_STRING_TAG)) {
@@ -1,6 +1,8 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var apply = require('../internals/function-apply');
5
+ var call = require('../internals/function-call');
4
6
  var anObject = require('../internals/an-object');
5
7
  var toPositiveInteger = require('../internals/to-positive-integer');
6
8
  var createIteratorProxy = require('../internals/iterator-create-proxy');
@@ -11,11 +13,11 @@ var IteratorProxy = createIteratorProxy(function (args) {
11
13
  var result, done;
12
14
  while (this.remaining) {
13
15
  this.remaining--;
14
- result = anObject(next.call(iterator));
16
+ result = anObject(call(next, iterator));
15
17
  done = this.done = !!result.done;
16
18
  if (done) return;
17
19
  }
18
- result = anObject(next.apply(iterator, args));
20
+ result = anObject(apply(next, iterator, args));
19
21
  done = this.done = !!result.done;
20
22
  if (!done) return result.value;
21
23
  });
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var apply = require('../internals/function-apply');
4
5
  var aCallable = require('../internals/a-callable');
5
6
  var anObject = require('../internals/an-object');
6
7
  var createIteratorProxy = require('../internals/iterator-create-proxy');
@@ -12,7 +13,7 @@ var IteratorProxy = createIteratorProxy(function (args) {
12
13
  var next = this.next;
13
14
  var result, done, value;
14
15
  while (true) {
15
- result = anObject(next.apply(iterator, args));
16
+ result = anObject(apply(next, iterator, args));
16
17
  done = this.done = !!result.done;
17
18
  if (done) return;
18
19
  value = result.value;
@@ -1,12 +1,16 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var global = require('../internals/global');
5
+ var call = require('../internals/function-call');
4
6
  var aCallable = require('../internals/a-callable');
5
7
  var anObject = require('../internals/an-object');
6
8
  var getIteratorMethod = require('../internals/get-iterator-method');
7
9
  var createIteratorProxy = require('../internals/iterator-create-proxy');
8
10
  var iteratorClose = require('../internals/iterator-close');
9
11
 
12
+ var TypeError = global.TypeError;
13
+
10
14
  var IteratorProxy = createIteratorProxy(function () {
11
15
  var iterator = this.iterator;
12
16
  var mapper = this.mapper;
@@ -15,12 +19,12 @@ var IteratorProxy = createIteratorProxy(function () {
15
19
  while (true) {
16
20
  try {
17
21
  if (innerIterator = this.innerIterator) {
18
- result = anObject(this.innerNext.call(innerIterator));
22
+ result = anObject(call(this.innerNext, innerIterator));
19
23
  if (!result.done) return result.value;
20
24
  this.innerIterator = this.innerNext = null;
21
25
  }
22
26
 
23
- result = anObject(this.next.call(iterator));
27
+ result = anObject(call(this.next, iterator));
24
28
 
25
29
  if (this.done = !!result.done) return;
26
30
 
@@ -31,7 +35,7 @@ var IteratorProxy = createIteratorProxy(function () {
31
35
  throw TypeError('.flatMap callback should return an iterable object');
32
36
  }
33
37
 
34
- this.innerIterator = innerIterator = anObject(iteratorMethod.call(mapped));
38
+ this.innerIterator = innerIterator = anObject(call(iteratorMethod, mapped));
35
39
  this.innerNext = aCallable(innerIterator.next);
36
40
  } catch (error) {
37
41
  iteratorClose(iterator, 'throw', error);