core-js 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 (334) 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-buffer-view-core.js +3 -2
  81. package/internals/array-buffer.js +29 -16
  82. package/internals/array-from-async.js +1 -1
  83. package/internals/array-from.js +6 -2
  84. package/internals/array-group-by.js +6 -3
  85. package/internals/array-iteration-from-last.js +1 -1
  86. package/internals/array-iteration.js +5 -4
  87. package/internals/array-last-index-of.js +2 -1
  88. package/internals/array-reduce.js +3 -0
  89. package/internals/array-slice-simple.js +17 -0
  90. package/internals/array-slice.js +3 -0
  91. package/internals/array-sort.js +10 -11
  92. package/internals/array-species-constructor.js +2 -0
  93. package/internals/array-unique-by.js +13 -9
  94. package/internals/async-from-sync-iterator.js +4 -3
  95. package/internals/async-iterator-create-proxy.js +4 -3
  96. package/internals/async-iterator-iteration.js +5 -2
  97. package/internals/classof-raw.js +5 -2
  98. package/internals/classof.js +3 -0
  99. package/internals/clear-error-stack.js +20 -0
  100. package/internals/collection-add-all.js +3 -2
  101. package/internals/collection-delete-all.js +3 -2
  102. package/internals/collection-from.js +7 -4
  103. package/internals/collection-of.js +3 -4
  104. package/internals/collection-strong.js +11 -9
  105. package/internals/collection-weak.js +10 -6
  106. package/internals/collection.js +8 -7
  107. package/internals/composite-key.js +9 -2
  108. package/internals/create-html.js +3 -1
  109. package/internals/date-to-iso-string.js +23 -13
  110. package/internals/date-to-primitive.js +3 -0
  111. package/internals/define-iterator.js +2 -1
  112. package/internals/engine-v8-version.js +10 -4
  113. package/internals/entry-unbind.js +3 -5
  114. package/internals/error-stack-installable.js +10 -0
  115. package/internals/export.js +1 -1
  116. package/internals/fix-regexp-well-known-symbol-logic.js +5 -3
  117. package/internals/flatten-into-array.js +4 -1
  118. package/internals/function-apply.js +9 -0
  119. package/internals/function-bind-context.js +5 -17
  120. package/internals/function-bind.js +15 -9
  121. package/internals/function-call.js +5 -0
  122. package/internals/function-uncurry-this.js +12 -0
  123. package/internals/get-async-iterator.js +2 -1
  124. package/internals/get-iterator.js +7 -2
  125. package/internals/get-map-iterator.js +3 -1
  126. package/internals/get-set-iterator.js +3 -1
  127. package/internals/get-substitution.js +10 -7
  128. package/internals/has-own-property.js +3 -2
  129. package/internals/host-report-errors.js +1 -1
  130. package/internals/ieee754.js +24 -6
  131. package/internals/indexed-object.js +5 -2
  132. package/internals/inspect-source.js +3 -2
  133. package/internals/install-error-cause.js +1 -1
  134. package/internals/internal-metadata.js +4 -7
  135. package/internals/internal-state.js +9 -7
  136. package/internals/is-callable.js +1 -1
  137. package/internals/is-constructor.js +6 -4
  138. package/internals/is-iterable.js +4 -2
  139. package/internals/is-object.js +1 -1
  140. package/internals/is-symbol.js +6 -2
  141. package/internals/iterate.js +14 -6
  142. package/internals/iterator-close.js +2 -1
  143. package/internals/iterator-create-proxy.js +4 -3
  144. package/internals/map-emplace.js +8 -3
  145. package/internals/map-upsert.js +12 -4
  146. package/internals/math-scale.js +9 -12
  147. package/internals/microtask.js +6 -4
  148. package/internals/normalize-string-argument.js +5 -0
  149. package/internals/not-a-regexp.js +3 -0
  150. package/internals/number-parse-float.js +8 -6
  151. package/internals/number-parse-int.js +4 -2
  152. package/internals/numeric-range-iterator.js +4 -0
  153. package/internals/object-assign.js +5 -2
  154. package/internals/object-define-properties.js +3 -1
  155. package/internals/object-define-property.js +2 -0
  156. package/internals/object-get-own-property-descriptor.js +2 -1
  157. package/internals/object-get-own-property-names-external.js +4 -4
  158. package/internals/object-get-prototype-of.js +2 -1
  159. package/internals/object-is-extensible.js +16 -0
  160. package/internals/object-is-prototype-of.js +3 -0
  161. package/internals/object-keys-internal.js +5 -2
  162. package/internals/object-set-prototype-of.js +4 -3
  163. package/internals/object-to-array.js +7 -3
  164. package/internals/ordinary-to-primitive.js +7 -3
  165. package/internals/own-keys.js +4 -1
  166. package/internals/reflect-metadata.js +9 -3
  167. package/internals/regexp-exec-abstract.js +6 -2
  168. package/internals/regexp-exec.js +20 -16
  169. package/internals/regexp-sticky-helpers.js +14 -2
  170. package/internals/require-object-coercible.js +4 -0
  171. package/internals/set-global.js +4 -2
  172. package/internals/shared.js +1 -1
  173. package/internals/string-multibyte.js +13 -4
  174. package/internals/string-pad.js +6 -3
  175. package/internals/string-punycode-to-ascii.js +34 -20
  176. package/internals/string-repeat.js +3 -0
  177. package/internals/string-trim.js +4 -2
  178. package/internals/task.js +11 -11
  179. package/internals/this-number-value.js +2 -4
  180. package/internals/to-index.js +3 -0
  181. package/internals/to-object.js +3 -0
  182. package/internals/to-offset.js +3 -0
  183. package/internals/to-positive-integer.js +3 -0
  184. package/internals/to-primitive.js +4 -1
  185. package/internals/to-property-key.js +1 -1
  186. package/internals/to-string.js +3 -0
  187. package/internals/try-to-string.js +4 -0
  188. package/internals/typed-array-constructor.js +10 -6
  189. package/internals/typed-array-from.js +4 -3
  190. package/internals/uid.js +4 -1
  191. package/internals/well-known-symbol.js +5 -1
  192. package/modules/es.aggregate-error.js +27 -11
  193. package/modules/es.array-buffer.slice.js +8 -4
  194. package/modules/es.array.concat.js +2 -0
  195. package/modules/es.array.index-of.js +7 -5
  196. package/modules/es.array.join.js +3 -2
  197. package/modules/es.array.of.js +3 -1
  198. package/modules/es.array.reduce.js +2 -1
  199. package/modules/es.array.reverse.js +3 -2
  200. package/modules/es.array.slice.js +4 -2
  201. package/modules/es.array.sort.js +7 -4
  202. package/modules/es.array.splice.js +2 -0
  203. package/modules/es.date.get-year.js +3 -2
  204. package/modules/es.date.now.js +6 -1
  205. package/modules/es.date.set-year.js +6 -4
  206. package/modules/es.date.to-primitive.js +2 -1
  207. package/modules/es.date.to-string.js +5 -4
  208. package/modules/es.escape.js +12 -5
  209. package/modules/es.function.has-instance.js +3 -2
  210. package/modules/es.function.name.js +5 -3
  211. package/modules/es.json.stringify.js +18 -7
  212. package/modules/es.map.js +1 -1
  213. package/modules/es.number.constructor.js +12 -7
  214. package/modules/es.number.to-fixed.js +19 -13
  215. package/modules/es.number.to-precision.js +6 -5
  216. package/modules/es.object.is-extensible.js +4 -10
  217. package/modules/es.object.is-frozen.js +6 -2
  218. package/modules/es.object.is-sealed.js +6 -2
  219. package/modules/es.promise.all-settled.js +2 -2
  220. package/modules/es.promise.any.js +5 -4
  221. package/modules/es.promise.js +22 -18
  222. package/modules/es.reflect.apply.js +4 -10
  223. package/modules/es.reflect.construct.js +10 -5
  224. package/modules/es.reflect.get.js +2 -1
  225. package/modules/es.reflect.is-extensible.js +2 -4
  226. package/modules/es.reflect.set.js +2 -1
  227. package/modules/es.regexp.constructor.js +26 -16
  228. package/modules/es.regexp.dot-all.js +5 -1
  229. package/modules/es.regexp.flags.js +4 -2
  230. package/modules/es.regexp.sticky.js +7 -3
  231. package/modules/es.regexp.test.js +7 -3
  232. package/modules/es.regexp.to-string.js +8 -5
  233. package/modules/es.set.js +1 -1
  234. package/modules/es.string.at-alternative.js +4 -1
  235. package/modules/es.string.ends-with.js +6 -4
  236. package/modules/es.string.from-code-point.js +7 -4
  237. package/modules/es.string.includes.js +8 -2
  238. package/modules/es.string.match-all.js +25 -19
  239. package/modules/es.string.match.js +2 -1
  240. package/modules/es.string.raw.js +6 -6
  241. package/modules/es.string.replace-all.js +19 -13
  242. package/modules/es.string.replace.js +19 -12
  243. package/modules/es.string.search.js +2 -1
  244. package/modules/es.string.split.js +23 -16
  245. package/modules/es.string.starts-with.js +6 -4
  246. package/modules/es.string.substr.js +3 -2
  247. package/modules/es.symbol.description.js +20 -12
  248. package/modules/es.symbol.js +34 -21
  249. package/modules/es.typed-array.copy-within.js +4 -2
  250. package/modules/es.typed-array.fill.js +9 -2
  251. package/modules/es.typed-array.iterator.js +7 -6
  252. package/modules/es.typed-array.join.js +3 -3
  253. package/modules/es.typed-array.last-index-of.js +3 -2
  254. package/modules/es.typed-array.reduce-right.js +2 -1
  255. package/modules/es.typed-array.reduce.js +2 -1
  256. package/modules/es.typed-array.set.js +2 -0
  257. package/modules/es.typed-array.slice.js +2 -2
  258. package/modules/es.typed-array.sort.js +13 -28
  259. package/modules/es.typed-array.to-locale-string.js +7 -2
  260. package/modules/es.typed-array.to-string.js +3 -2
  261. package/modules/es.unescape.js +14 -9
  262. package/modules/es.weak-map.js +15 -15
  263. package/modules/esnext.array.is-template-object.js +1 -1
  264. package/modules/esnext.async-iterator.as-indexed-pairs.js +2 -1
  265. package/modules/esnext.async-iterator.constructor.js +1 -1
  266. package/modules/esnext.async-iterator.drop.js +2 -1
  267. package/modules/esnext.async-iterator.filter.js +2 -1
  268. package/modules/esnext.async-iterator.flat-map.js +3 -2
  269. package/modules/esnext.async-iterator.from.js +4 -4
  270. package/modules/esnext.async-iterator.map.js +2 -1
  271. package/modules/esnext.async-iterator.reduce.js +4 -1
  272. package/modules/esnext.async-iterator.take.js +4 -2
  273. package/modules/esnext.composite-key.js +5 -1
  274. package/modules/esnext.composite-symbol.js +3 -2
  275. package/modules/esnext.iterator.as-indexed-pairs.js +2 -1
  276. package/modules/esnext.iterator.constructor.js +1 -1
  277. package/modules/esnext.iterator.drop.js +4 -2
  278. package/modules/esnext.iterator.filter.js +2 -1
  279. package/modules/esnext.iterator.flat-map.js +7 -3
  280. package/modules/esnext.iterator.from.js +4 -4
  281. package/modules/esnext.iterator.map.js +2 -1
  282. package/modules/esnext.iterator.reduce.js +3 -0
  283. package/modules/esnext.iterator.take.js +2 -1
  284. package/modules/esnext.map.delete-all.js +2 -4
  285. package/modules/esnext.map.emplace.js +2 -2
  286. package/modules/esnext.map.every.js +1 -1
  287. package/modules/esnext.map.filter.js +5 -4
  288. package/modules/esnext.map.find-key.js +1 -1
  289. package/modules/esnext.map.find.js +1 -1
  290. package/modules/esnext.map.group-by.js +6 -2
  291. package/modules/esnext.map.includes.js +1 -1
  292. package/modules/esnext.map.key-by.js +2 -1
  293. package/modules/esnext.map.map-keys.js +5 -4
  294. package/modules/esnext.map.map-values.js +5 -4
  295. package/modules/esnext.map.reduce.js +3 -0
  296. package/modules/esnext.map.some.js +1 -1
  297. package/modules/esnext.map.update-or-insert.js +2 -2
  298. package/modules/esnext.map.update.js +11 -4
  299. package/modules/esnext.map.upsert.js +2 -2
  300. package/modules/esnext.math.seeded-prng.js +3 -1
  301. package/modules/esnext.number.from-string.js +12 -3
  302. package/modules/esnext.observable.js +14 -9
  303. package/modules/esnext.reflect.get-metadata-keys.js +5 -10
  304. package/modules/esnext.set.add-all.js +2 -4
  305. package/modules/esnext.set.delete-all.js +2 -4
  306. package/modules/esnext.set.difference.js +3 -2
  307. package/modules/esnext.set.every.js +1 -1
  308. package/modules/esnext.set.filter.js +4 -3
  309. package/modules/esnext.set.find.js +1 -1
  310. package/modules/esnext.set.intersection.js +3 -2
  311. package/modules/esnext.set.is-disjoint-from.js +3 -2
  312. package/modules/esnext.set.is-subset-of.js +3 -2
  313. package/modules/esnext.set.is-superset-of.js +3 -2
  314. package/modules/esnext.set.join.js +9 -4
  315. package/modules/esnext.set.map.js +5 -4
  316. package/modules/esnext.set.reduce.js +3 -0
  317. package/modules/esnext.set.some.js +1 -1
  318. package/modules/esnext.set.symmetric-difference.js +3 -2
  319. package/modules/esnext.typed-array.from-async.js +0 -1
  320. package/modules/esnext.typed-array.unique-by.js +4 -2
  321. package/modules/esnext.weak-map.delete-all.js +2 -4
  322. package/modules/esnext.weak-map.emplace.js +2 -2
  323. package/modules/esnext.weak-map.upsert.js +2 -2
  324. package/modules/esnext.weak-set.add-all.js +2 -4
  325. package/modules/esnext.weak-set.delete-all.js +2 -4
  326. package/modules/web.timers.js +5 -4
  327. package/modules/web.url-search-params.js +122 -104
  328. package/modules/web.url.js +664 -628
  329. package/modules/web.url.to-json.js +2 -1
  330. package/package.json +2 -2
  331. package/stable/instance/entries.js +6 -4
  332. package/stable/instance/for-each.js +6 -4
  333. package/stable/instance/keys.js +6 -4
  334. 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,12 +1,14 @@
1
1
  'use strict';
2
+ var uncurryThis = require('../internals/function-uncurry-this');
2
3
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
- var $copyWithin = require('../internals/array-copy-within');
4
+ var $ArrayCopyWithin = require('../internals/array-copy-within');
4
5
 
6
+ var u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);
5
7
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
6
8
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
7
9
 
8
10
  // `%TypedArray%.prototype.copyWithin` method
9
11
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin
10
12
  exportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {
11
- return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
13
+ return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
12
14
  });
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
+ var call = require('../internals/function-call');
3
4
  var $fill = require('../internals/array-fill');
4
5
 
5
6
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
@@ -7,7 +8,13 @@ var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
7
8
 
8
9
  // `%TypedArray%.prototype.fill` method
9
10
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill
10
- // eslint-disable-next-line no-unused-vars -- required for `.length`
11
11
  exportTypedArrayMethod('fill', function fill(value /* , start, end */) {
12
- return $fill.apply(aTypedArray(this), arguments);
12
+ var length = arguments.length;
13
+ return call(
14
+ $fill,
15
+ aTypedArray(this),
16
+ value,
17
+ length > 1 ? arguments[1] : undefined,
18
+ length > 2 ? arguments[2] : undefined
19
+ );
13
20
  });
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  var global = require('../internals/global');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
3
4
  var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;
4
5
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
5
6
  var ArrayIterators = require('../modules/es.array.iterator');
@@ -7,9 +8,9 @@ var wellKnownSymbol = require('../internals/well-known-symbol');
7
8
 
8
9
  var ITERATOR = wellKnownSymbol('iterator');
9
10
  var Uint8Array = global.Uint8Array;
10
- var arrayValues = ArrayIterators.values;
11
- var arrayKeys = ArrayIterators.keys;
12
- var arrayEntries = ArrayIterators.entries;
11
+ var arrayValues = uncurryThis(ArrayIterators.values);
12
+ var arrayKeys = uncurryThis(ArrayIterators.keys);
13
+ var arrayEntries = uncurryThis(ArrayIterators.entries);
13
14
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
14
15
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
15
16
  var nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];
@@ -17,18 +18,18 @@ var nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];
17
18
  var PROPER_ARRAY_VALUES_NAME = !!nativeTypedArrayIterator && nativeTypedArrayIterator.name === 'values';
18
19
 
19
20
  var typedArrayValues = function values() {
20
- return arrayValues.call(aTypedArray(this));
21
+ return arrayValues(aTypedArray(this));
21
22
  };
22
23
 
23
24
  // `%TypedArray%.prototype.entries` method
24
25
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries
25
26
  exportTypedArrayMethod('entries', function entries() {
26
- return arrayEntries.call(aTypedArray(this));
27
+ return arrayEntries(aTypedArray(this));
27
28
  });
28
29
  // `%TypedArray%.prototype.keys` method
29
30
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys
30
31
  exportTypedArrayMethod('keys', function keys() {
31
- return arrayKeys.call(aTypedArray(this));
32
+ return arrayKeys(aTypedArray(this));
32
33
  });
33
34
  // `%TypedArray%.prototype.values` method
34
35
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.values
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
3
4
 
4
5
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
5
6
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
6
- var $join = [].join;
7
+ var $join = uncurryThis([].join);
7
8
 
8
9
  // `%TypedArray%.prototype.join` method
9
10
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.join
10
- // eslint-disable-next-line no-unused-vars -- required for `.length`
11
11
  exportTypedArrayMethod('join', function join(separator) {
12
- return $join.apply(aTypedArray(this), arguments);
12
+ return $join(aTypedArray(this), separator);
13
13
  });
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
+ var apply = require('../internals/function-apply');
3
4
  var $lastIndexOf = require('../internals/array-last-index-of');
4
5
 
5
6
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
@@ -7,7 +8,7 @@ var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
7
8
 
8
9
  // `%TypedArray%.prototype.lastIndexOf` method
9
10
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof
10
- // eslint-disable-next-line no-unused-vars -- required for `.length`
11
11
  exportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {
12
- return $lastIndexOf.apply(aTypedArray(this), arguments);
12
+ var length = arguments.length;
13
+ return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);
13
14
  });
@@ -8,5 +8,6 @@ var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
8
8
  // `%TypedArray%.prototype.reduceRicht` method
9
9
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright
10
10
  exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {
11
- return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
11
+ var length = arguments.length;
12
+ return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);
12
13
  });
@@ -8,5 +8,6 @@ var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
8
8
  // `%TypedArray%.prototype.reduce` method
9
9
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce
10
10
  exportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {
11
- return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
11
+ var length = arguments.length;
12
+ return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);
12
13
  });
@@ -1,10 +1,12 @@
1
1
  'use strict';
2
+ var global = require('../internals/global');
2
3
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
4
  var lengthOfArrayLike = require('../internals/length-of-array-like');
4
5
  var toOffset = require('../internals/to-offset');
5
6
  var toObject = require('../internals/to-object');
6
7
  var fails = require('../internals/fails');
7
8
 
9
+ var RangeError = global.RangeError;
8
10
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
9
11
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
10
12
 
@@ -2,10 +2,10 @@
2
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
3
  var typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');
4
4
  var fails = require('../internals/fails');
5
+ var arraySlice = require('../internals/array-slice');
5
6
 
6
7
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
7
8
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
8
- var $slice = [].slice;
9
9
 
10
10
  var FORCED = fails(function () {
11
11
  // eslint-disable-next-line es/no-typed-arrays -- required for testing
@@ -15,7 +15,7 @@ var FORCED = fails(function () {
15
15
  // `%TypedArray%.prototype.slice` method
16
16
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice
17
17
  exportTypedArrayMethod('slice', function slice(start, end) {
18
- var list = $slice.call(aTypedArray(this), start, end);
18
+ var list = arraySlice(aTypedArray(this), start, end);
19
19
  var C = typedArraySpeciesConstructor(this);
20
20
  var index = 0;
21
21
  var length = list.length;
@@ -1,28 +1,29 @@
1
1
  'use strict';
2
- var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
2
  var global = require('../internals/global');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
4
4
  var fails = require('../internals/fails');
5
5
  var aCallable = require('../internals/a-callable');
6
- var lengthOfArrayLike = require('../internals/length-of-array-like');
7
6
  var internalSort = require('../internals/array-sort');
7
+ var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
8
8
  var FF = require('../internals/engine-ff-version');
9
9
  var IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');
10
10
  var V8 = require('../internals/engine-v8-version');
11
11
  var WEBKIT = require('../internals/engine-webkit-version');
12
12
 
13
+ var Array = global.Array;
13
14
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
14
15
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
15
16
  var Uint16Array = global.Uint16Array;
16
- var nativeSort = Uint16Array && Uint16Array.prototype.sort;
17
+ var un$Sort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);
17
18
 
18
19
  // WebKit
19
- var ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !fails(function () {
20
- var array = new Uint16Array(2);
21
- array.sort(null);
22
- array.sort({});
23
- });
20
+ var ACCEPT_INCORRECT_ARGUMENTS = !!un$Sort && !(fails(function () {
21
+ un$Sort(new Uint16Array(2), null);
22
+ }) && fails(function () {
23
+ un$Sort(new Uint16Array(2), {});
24
+ }));
24
25
 
25
- var STABLE_SORT = !!nativeSort && !fails(function () {
26
+ var STABLE_SORT = !!un$Sort && !fails(function () {
26
27
  // feature detection can be too slow, so check engines versions
27
28
  if (V8) return V8 < 74;
28
29
  if (FF) return FF < 67;
@@ -39,7 +40,7 @@ var STABLE_SORT = !!nativeSort && !fails(function () {
39
40
  expected[index] = index - 2 * mod + 3;
40
41
  }
41
42
 
42
- array.sort(function (a, b) {
43
+ un$Sort(array, function (a, b) {
43
44
  return (a / 4 | 0) - (b / 4 | 0);
44
45
  });
45
46
 
@@ -63,24 +64,8 @@ var getSortCompare = function (comparefn) {
63
64
  // `%TypedArray%.prototype.sort` method
64
65
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort
65
66
  exportTypedArrayMethod('sort', function sort(comparefn) {
66
- var array = this;
67
67
  if (comparefn !== undefined) aCallable(comparefn);
68
- if (STABLE_SORT) return nativeSort.call(array, comparefn);
69
-
70
- aTypedArray(array);
71
- var arrayLength = lengthOfArrayLike(array);
72
- var items = Array(arrayLength);
73
- var index;
74
-
75
- for (index = 0; index < arrayLength; index++) {
76
- items[index] = array[index];
77
- }
78
-
79
- items = internalSort(array, getSortCompare(comparefn));
80
-
81
- for (index = 0; index < arrayLength; index++) {
82
- array[index] = items[index];
83
- }
68
+ if (STABLE_SORT) return un$Sort(this, comparefn);
84
69
 
85
- return array;
70
+ return internalSort(aTypedArray(this), getSortCompare(comparefn));
86
71
  }, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);
@@ -1,13 +1,14 @@
1
1
  'use strict';
2
2
  var global = require('../internals/global');
3
+ var apply = require('../internals/function-apply');
3
4
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
4
5
  var fails = require('../internals/fails');
6
+ var arraySlice = require('../internals/array-slice');
5
7
 
6
8
  var Int8Array = global.Int8Array;
7
9
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
8
10
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
9
11
  var $toLocaleString = [].toLocaleString;
10
- var $slice = [].slice;
11
12
 
12
13
  // iOS Safari 6.x fails here
13
14
  var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {
@@ -23,5 +24,9 @@ var FORCED = fails(function () {
23
24
  // `%TypedArray%.prototype.toLocaleString` method
24
25
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring
25
26
  exportTypedArrayMethod('toLocaleString', function toLocaleString() {
26
- return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);
27
+ return apply(
28
+ $toLocaleString,
29
+ TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),
30
+ arraySlice(arguments)
31
+ );
27
32
  }, FORCED);
@@ -2,15 +2,16 @@
2
2
  var exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;
3
3
  var fails = require('../internals/fails');
4
4
  var global = require('../internals/global');
5
+ var uncurryThis = require('../internals/function-uncurry-this');
5
6
 
6
7
  var Uint8Array = global.Uint8Array;
7
8
  var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};
8
9
  var arrayToString = [].toString;
9
- var arrayJoin = [].join;
10
+ var join = uncurryThis([].join);
10
11
 
11
12
  if (fails(function () { arrayToString.call({}); })) {
12
13
  arrayToString = function toString() {
13
- return arrayJoin.call(this);
14
+ return join(this);
14
15
  };
15
16
  }
16
17
 
@@ -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) {