core-js 3.18.3 → 3.19.3

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 +7 -4
  95. package/internals/async-iterator-create-proxy.js +7 -4
  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/create-iterator-constructor.js +2 -2
  110. package/internals/date-to-iso-string.js +23 -13
  111. package/internals/date-to-primitive.js +3 -0
  112. package/internals/define-iterator.js +2 -1
  113. package/internals/engine-v8-version.js +10 -4
  114. package/internals/entry-unbind.js +3 -5
  115. package/internals/error-stack-installable.js +10 -0
  116. package/internals/export.js +1 -1
  117. package/internals/fix-regexp-well-known-symbol-logic.js +5 -3
  118. package/internals/flatten-into-array.js +4 -1
  119. package/internals/function-apply.js +9 -0
  120. package/internals/function-bind-context.js +5 -17
  121. package/internals/function-bind.js +15 -9
  122. package/internals/function-call.js +5 -0
  123. package/internals/function-uncurry-this.js +12 -0
  124. package/internals/get-async-iterator.js +2 -1
  125. package/internals/get-iterator.js +7 -2
  126. package/internals/get-map-iterator.js +3 -1
  127. package/internals/get-set-iterator.js +3 -1
  128. package/internals/get-substitution.js +10 -7
  129. package/internals/has-own-property.js +3 -2
  130. package/internals/host-report-errors.js +1 -1
  131. package/internals/ieee754.js +24 -6
  132. package/internals/indexed-object.js +5 -2
  133. package/internals/inspect-source.js +3 -2
  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 +7 -4
  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 +3 -1
  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 +20 -8
  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 +23 -19
  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 +82 -62
  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 +123 -105
  328. package/modules/web.url.js +661 -625
  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
@@ -1,5 +1,8 @@
1
1
  'use strict';
2
2
  // based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js
3
+ var global = require('../internals/global');
4
+ var uncurryThis = require('../internals/function-uncurry-this');
5
+
3
6
  var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1
4
7
  var base = 36;
5
8
  var tMin = 1;
@@ -13,8 +16,17 @@ var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars
13
16
  var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators
14
17
  var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';
15
18
  var baseMinusTMin = base - tMin;
19
+
20
+ var RangeError = global.RangeError;
21
+ var exec = uncurryThis(regexSeparators.exec);
16
22
  var floor = Math.floor;
17
- var stringFromCharCode = String.fromCharCode;
23
+ var fromCharCode = String.fromCharCode;
24
+ var charCodeAt = uncurryThis(''.charCodeAt);
25
+ var join = uncurryThis([].join);
26
+ var push = uncurryThis([].push);
27
+ var replace = uncurryThis(''.replace);
28
+ var split = uncurryThis(''.split);
29
+ var toLowerCase = uncurryThis(''.toLowerCase);
18
30
 
19
31
  /**
20
32
  * Creates an array containing the numeric code points of each Unicode
@@ -28,20 +40,20 @@ var ucs2decode = function (string) {
28
40
  var counter = 0;
29
41
  var length = string.length;
30
42
  while (counter < length) {
31
- var value = string.charCodeAt(counter++);
43
+ var value = charCodeAt(string, counter++);
32
44
  if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
33
45
  // It's a high surrogate, and there is a next character.
34
- var extra = string.charCodeAt(counter++);
46
+ var extra = charCodeAt(string, counter++);
35
47
  if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.
36
- output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
48
+ push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
37
49
  } else {
38
50
  // It's an unmatched surrogate; only append this code unit, in case the
39
51
  // next code unit is the high surrogate of a surrogate pair.
40
- output.push(value);
52
+ push(output, value);
41
53
  counter--;
42
54
  }
43
55
  } else {
44
- output.push(value);
56
+ push(output, value);
45
57
  }
46
58
  }
47
59
  return output;
@@ -64,8 +76,9 @@ var adapt = function (delta, numPoints, firstTime) {
64
76
  var k = 0;
65
77
  delta = firstTime ? floor(delta / damp) : delta >> 1;
66
78
  delta += floor(delta / numPoints);
67
- for (; delta > baseMinusTMin * tMax >> 1; k += base) {
79
+ while (delta > baseMinusTMin * tMax >> 1) {
68
80
  delta = floor(delta / baseMinusTMin);
81
+ k += base;
69
82
  }
70
83
  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
71
84
  };
@@ -74,7 +87,6 @@ var adapt = function (delta, numPoints, firstTime) {
74
87
  * Converts a string of Unicode symbols (e.g. a domain name label) to a
75
88
  * Punycode string of ASCII-only symbols.
76
89
  */
77
- // eslint-disable-next-line max-statements -- TODO
78
90
  var encode = function (input) {
79
91
  var output = [];
80
92
 
@@ -94,7 +106,7 @@ var encode = function (input) {
94
106
  for (i = 0; i < input.length; i++) {
95
107
  currentValue = input[i];
96
108
  if (currentValue < 0x80) {
97
- output.push(stringFromCharCode(currentValue));
109
+ push(output, fromCharCode(currentValue));
98
110
  }
99
111
  }
100
112
 
@@ -103,7 +115,7 @@ var encode = function (input) {
103
115
 
104
116
  // Finish the basic string with a delimiter unless it's empty.
105
117
  if (basicLength) {
106
- output.push(delimiter);
118
+ push(output, delimiter);
107
119
  }
108
120
 
109
121
  // Main encoding loop:
@@ -134,35 +146,37 @@ var encode = function (input) {
134
146
  if (currentValue == n) {
135
147
  // Represent delta as a generalized variable-length integer.
136
148
  var q = delta;
137
- for (var k = base; /* no condition */; k += base) {
149
+ var k = base;
150
+ while (true) {
138
151
  var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
139
152
  if (q < t) break;
140
153
  var qMinusT = q - t;
141
154
  var baseMinusT = base - t;
142
- output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));
155
+ push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));
143
156
  q = floor(qMinusT / baseMinusT);
157
+ k += base;
144
158
  }
145
159
 
146
- output.push(stringFromCharCode(digitToBasic(q)));
160
+ push(output, fromCharCode(digitToBasic(q)));
147
161
  bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
148
162
  delta = 0;
149
- ++handledCPCount;
163
+ handledCPCount++;
150
164
  }
151
165
  }
152
166
 
153
- ++delta;
154
- ++n;
167
+ delta++;
168
+ n++;
155
169
  }
156
- return output.join('');
170
+ return join(output, '');
157
171
  };
158
172
 
159
173
  module.exports = function (input) {
160
174
  var encoded = [];
161
- var labels = input.toLowerCase().replace(regexSeparators, '\u002E').split('.');
175
+ var labels = split(replace(toLowerCase(input), regexSeparators, '\u002E'), '.');
162
176
  var i, label;
163
177
  for (i = 0; i < labels.length; i++) {
164
178
  label = labels[i];
165
- encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);
179
+ push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);
166
180
  }
167
- return encoded.join('.');
181
+ return join(encoded, '.');
168
182
  };
@@ -1,8 +1,11 @@
1
1
  'use strict';
2
+ var global = require('../internals/global');
2
3
  var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
3
4
  var toString = require('../internals/to-string');
4
5
  var requireObjectCoercible = require('../internals/require-object-coercible');
5
6
 
7
+ var RangeError = global.RangeError;
8
+
6
9
  // `String.prototype.repeat` method implementation
7
10
  // https://tc39.es/ecma262/#sec-string.prototype.repeat
8
11
  module.exports = function repeat(count) {
@@ -1,7 +1,9 @@
1
+ var uncurryThis = require('../internals/function-uncurry-this');
1
2
  var requireObjectCoercible = require('../internals/require-object-coercible');
2
3
  var toString = require('../internals/to-string');
3
4
  var whitespaces = require('../internals/whitespaces');
4
5
 
6
+ var replace = uncurryThis(''.replace);
5
7
  var whitespace = '[' + whitespaces + ']';
6
8
  var ltrim = RegExp('^' + whitespace + whitespace + '*');
7
9
  var rtrim = RegExp(whitespace + whitespace + '*$');
@@ -10,8 +12,8 @@ var rtrim = RegExp(whitespace + whitespace + '*$');
10
12
  var createMethod = function (TYPE) {
11
13
  return function ($this) {
12
14
  var string = toString(requireObjectCoercible($this));
13
- if (TYPE & 1) string = string.replace(ltrim, '');
14
- if (TYPE & 2) string = string.replace(rtrim, '');
15
+ if (TYPE & 1) string = replace(string, ltrim, '');
16
+ if (TYPE & 2) string = replace(string, rtrim, '');
15
17
  return string;
16
18
  };
17
19
  };
package/internals/task.js CHANGED
@@ -1,8 +1,11 @@
1
1
  var global = require('../internals/global');
2
+ var apply = require('../internals/function-apply');
3
+ var bind = require('../internals/function-bind-context');
2
4
  var isCallable = require('../internals/is-callable');
5
+ var hasOwn = require('../internals/has-own-property');
3
6
  var fails = require('../internals/fails');
4
- var bind = require('../internals/function-bind-context');
5
7
  var html = require('../internals/html');
8
+ var arraySlice = require('../internals/array-slice');
6
9
  var createElement = require('../internals/document-create-element');
7
10
  var IS_IOS = require('../internals/engine-is-ios');
8
11
  var IS_NODE = require('../internals/engine-is-node');
@@ -10,8 +13,10 @@ var IS_NODE = require('../internals/engine-is-node');
10
13
  var set = global.setImmediate;
11
14
  var clear = global.clearImmediate;
12
15
  var process = global.process;
13
- var MessageChannel = global.MessageChannel;
14
16
  var Dispatch = global.Dispatch;
17
+ var Function = global.Function;
18
+ var MessageChannel = global.MessageChannel;
19
+ var String = global.String;
15
20
  var counter = 0;
16
21
  var queue = {};
17
22
  var ONREADYSTATECHANGE = 'onreadystatechange';
@@ -23,8 +28,7 @@ try {
23
28
  } catch (error) { /* empty */ }
24
29
 
25
30
  var run = function (id) {
26
- // eslint-disable-next-line no-prototype-builtins -- safe
27
- if (queue.hasOwnProperty(id)) {
31
+ if (hasOwn(queue, id)) {
28
32
  var fn = queue[id];
29
33
  delete queue[id];
30
34
  fn();
@@ -49,13 +53,9 @@ var post = function (id) {
49
53
  // Node.js 0.9+ & IE10+ has setImmediate, otherwise:
50
54
  if (!set || !clear) {
51
55
  set = function setImmediate(fn) {
52
- var args = [];
53
- var argumentsLength = arguments.length;
54
- var i = 1;
55
- while (argumentsLength > i) args.push(arguments[i++]);
56
+ var args = arraySlice(arguments, 1);
56
57
  queue[++counter] = function () {
57
- // eslint-disable-next-line no-new-func -- spec requirement
58
- (isCallable(fn) ? fn : Function(fn)).apply(undefined, args);
58
+ apply(isCallable(fn) ? fn : Function(fn), undefined, args);
59
59
  };
60
60
  defer(counter);
61
61
  return counter;
@@ -79,7 +79,7 @@ if (!set || !clear) {
79
79
  channel = new MessageChannel();
80
80
  port = channel.port2;
81
81
  channel.port1.onmessage = listener;
82
- defer = bind(port.postMessage, port, 1);
82
+ defer = bind(port.postMessage, port);
83
83
  // Browsers with postMessage, skip WebWorkers
84
84
  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
85
85
  } else if (
@@ -1,7 +1,5 @@
1
- var valueOf = 1.0.valueOf;
1
+ var uncurryThis = require('../internals/function-uncurry-this');
2
2
 
3
3
  // `thisNumberValue` abstract operation
4
4
  // https://tc39.es/ecma262/#sec-thisnumbervalue
5
- module.exports = function (value) {
6
- return valueOf.call(value);
7
- };
5
+ module.exports = uncurryThis(1.0.valueOf);
@@ -1,6 +1,9 @@
1
+ var global = require('../internals/global');
1
2
  var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
2
3
  var toLength = require('../internals/to-length');
3
4
 
5
+ var RangeError = global.RangeError;
6
+
4
7
  // `ToIndex` abstract operation
5
8
  // https://tc39.es/ecma262/#sec-toindex
6
9
  module.exports = function (it) {
@@ -1,5 +1,8 @@
1
+ var global = require('../internals/global');
1
2
  var requireObjectCoercible = require('../internals/require-object-coercible');
2
3
 
4
+ var Object = global.Object;
5
+
3
6
  // `ToObject` abstract operation
4
7
  // https://tc39.es/ecma262/#sec-toobject
5
8
  module.exports = function (argument) {
@@ -1,5 +1,8 @@
1
+ var global = require('../internals/global');
1
2
  var toPositiveInteger = require('../internals/to-positive-integer');
2
3
 
4
+ var RangeError = global.RangeError;
5
+
3
6
  module.exports = function (it, BYTES) {
4
7
  var offset = toPositiveInteger(it);
5
8
  if (offset % BYTES) throw RangeError('Wrong offset');
@@ -1,5 +1,8 @@
1
+ var global = require('../internals/global');
1
2
  var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
2
3
 
4
+ var RangeError = global.RangeError;
5
+
3
6
  module.exports = function (it) {
4
7
  var result = toIntegerOrInfinity(it);
5
8
  if (result < 0) throw RangeError("The argument can't be less than 0");
@@ -1,9 +1,12 @@
1
+ var global = require('../internals/global');
2
+ var call = require('../internals/function-call');
1
3
  var isObject = require('../internals/is-object');
2
4
  var isSymbol = require('../internals/is-symbol');
3
5
  var getMethod = require('../internals/get-method');
4
6
  var ordinaryToPrimitive = require('../internals/ordinary-to-primitive');
5
7
  var wellKnownSymbol = require('../internals/well-known-symbol');
6
8
 
9
+ var TypeError = global.TypeError;
7
10
  var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
8
11
 
9
12
  // `ToPrimitive` abstract operation
@@ -14,7 +17,7 @@ module.exports = function (input, pref) {
14
17
  var result;
15
18
  if (exoticToPrim) {
16
19
  if (pref === undefined) pref = 'default';
17
- result = exoticToPrim.call(input, pref);
20
+ result = call(exoticToPrim, input, pref);
18
21
  if (!isObject(result) || isSymbol(result)) return result;
19
22
  throw TypeError("Can't convert object to primitive value");
20
23
  }
@@ -5,5 +5,5 @@ var isSymbol = require('../internals/is-symbol');
5
5
  // https://tc39.es/ecma262/#sec-topropertykey
6
6
  module.exports = function (argument) {
7
7
  var key = toPrimitive(argument, 'string');
8
- return isSymbol(key) ? key : String(key);
8
+ return isSymbol(key) ? key : key + '';
9
9
  };
@@ -1,5 +1,8 @@
1
+ var global = require('../internals/global');
1
2
  var classof = require('../internals/classof');
2
3
 
4
+ var String = global.String;
5
+
3
6
  module.exports = function (argument) {
4
7
  if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');
5
8
  return String(argument);
@@ -1,3 +1,7 @@
1
+ var global = require('../internals/global');
2
+
3
+ var String = global.String;
4
+
1
5
  module.exports = function (argument) {
2
6
  try {
3
7
  return String(argument);
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var global = require('../internals/global');
4
+ var call = require('../internals/function-call');
4
5
  var DESCRIPTORS = require('../internals/descriptors');
5
6
  var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');
6
7
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
@@ -18,6 +19,7 @@ var classof = require('../internals/classof');
18
19
  var isObject = require('../internals/is-object');
19
20
  var isSymbol = require('../internals/is-symbol');
20
21
  var create = require('../internals/object-create');
22
+ var isPrototypeOf = require('../internals/object-is-prototype-of');
21
23
  var setPrototypeOf = require('../internals/object-set-prototype-of');
22
24
  var getOwnPropertyNames = require('../internals/object-get-own-property-names').f;
23
25
  var typedArrayFrom = require('../internals/typed-array-from');
@@ -35,6 +37,7 @@ var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
35
37
  var round = Math.round;
36
38
  var RangeError = global.RangeError;
37
39
  var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
40
+ var ArrayBufferPrototype = ArrayBuffer.prototype;
38
41
  var DataView = ArrayBufferModule.DataView;
39
42
  var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;
40
43
  var TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
@@ -47,9 +50,10 @@ var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';
47
50
  var WRONG_LENGTH = 'Wrong length';
48
51
 
49
52
  var fromList = function (C, list) {
53
+ aTypedArrayConstructor(C);
50
54
  var index = 0;
51
55
  var length = list.length;
52
- var result = new (aTypedArrayConstructor(C))(length);
56
+ var result = new C(length);
53
57
  while (length > index) result[index] = list[index++];
54
58
  return result;
55
59
  };
@@ -62,7 +66,7 @@ var addGetter = function (it, key) {
62
66
 
63
67
  var isArrayBuffer = function (it) {
64
68
  var klass;
65
- return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';
69
+ return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';
66
70
  };
67
71
 
68
72
  var isTypedArrayIndex = function (target, key) {
@@ -147,7 +151,7 @@ if (DESCRIPTORS) {
147
151
 
148
152
  if (!NATIVE_ARRAY_BUFFER_VIEWS) {
149
153
  TypedArrayConstructor = wrapper(function (that, data, offset, $length) {
150
- anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);
154
+ anInstance(that, TypedArrayConstructorPrototype);
151
155
  var index = 0;
152
156
  var byteOffset = 0;
153
157
  var buffer, byteLength, length;
@@ -171,7 +175,7 @@ if (DESCRIPTORS) {
171
175
  } else if (isTypedArray(data)) {
172
176
  return fromList(TypedArrayConstructor, data);
173
177
  } else {
174
- return typedArrayFrom.call(TypedArrayConstructor, data);
178
+ return call(typedArrayFrom, TypedArrayConstructor, data);
175
179
  }
176
180
  setInternalState(that, {
177
181
  buffer: buffer,
@@ -187,7 +191,7 @@ if (DESCRIPTORS) {
187
191
  TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);
188
192
  } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {
189
193
  TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {
190
- anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);
194
+ anInstance(dummy, TypedArrayConstructorPrototype);
191
195
  return inheritIfRequired(function () {
192
196
  if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));
193
197
  if (isArrayBuffer(data)) return $length !== undefined
@@ -196,7 +200,7 @@ if (DESCRIPTORS) {
196
200
  ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))
197
201
  : new NativeTypedArrayConstructor(data);
198
202
  if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);
199
- return typedArrayFrom.call(TypedArrayConstructor, data);
203
+ return call(typedArrayFrom, TypedArrayConstructor, data);
200
204
  }(), dummy, TypedArrayConstructor);
201
205
  });
202
206
 
@@ -1,10 +1,11 @@
1
+ var bind = require('../internals/function-bind-context');
2
+ var call = require('../internals/function-call');
1
3
  var aConstructor = require('../internals/a-constructor');
2
4
  var toObject = require('../internals/to-object');
3
5
  var lengthOfArrayLike = require('../internals/length-of-array-like');
4
6
  var getIterator = require('../internals/get-iterator');
5
7
  var getIteratorMethod = require('../internals/get-iterator-method');
6
8
  var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
7
- var bind = require('../internals/function-bind-context');
8
9
  var aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;
9
10
 
10
11
  module.exports = function from(source /* , mapfn, thisArg */) {
@@ -19,12 +20,12 @@ module.exports = function from(source /* , mapfn, thisArg */) {
19
20
  iterator = getIterator(O, iteratorMethod);
20
21
  next = iterator.next;
21
22
  O = [];
22
- while (!(step = next.call(iterator)).done) {
23
+ while (!(step = call(next, iterator)).done) {
23
24
  O.push(step.value);
24
25
  }
25
26
  }
26
27
  if (mapping && argumentsLength > 2) {
27
- mapfn = bind(mapfn, arguments[2], 2);
28
+ mapfn = bind(mapfn, arguments[2]);
28
29
  }
29
30
  length = lengthOfArrayLike(O);
30
31
  result = new (aTypedArrayConstructor(C))(length);
package/internals/uid.js CHANGED
@@ -1,6 +1,9 @@
1
+ var uncurryThis = require('../internals/function-uncurry-this');
2
+
1
3
  var id = 0;
2
4
  var postfix = Math.random();
5
+ var toString = uncurryThis(1.0.toString);
3
6
 
4
7
  module.exports = function (key) {
5
- return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
8
+ return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);
6
9
  };
@@ -7,14 +7,18 @@ var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');
7
7
 
8
8
  var WellKnownSymbolsStore = shared('wks');
9
9
  var Symbol = global.Symbol;
10
+ var symbolFor = Symbol && Symbol['for'];
10
11
  var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;
11
12
 
12
13
  module.exports = function (name) {
13
14
  if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {
15
+ var description = 'Symbol.' + name;
14
16
  if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {
15
17
  WellKnownSymbolsStore[name] = Symbol[name];
18
+ } else if (USE_SYMBOL_AS_UID && symbolFor) {
19
+ WellKnownSymbolsStore[name] = symbolFor(description);
16
20
  } else {
17
- WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
21
+ WellKnownSymbolsStore[name] = createWellKnownSymbol(description);
18
22
  }
19
23
  } return WellKnownSymbolsStore[name];
20
24
  };
@@ -1,27 +1,39 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var global = require('../internals/global');
4
+ var isPrototypeOf = require('../internals/object-is-prototype-of');
3
5
  var getPrototypeOf = require('../internals/object-get-prototype-of');
4
6
  var setPrototypeOf = require('../internals/object-set-prototype-of');
5
7
  var copyConstructorProperties = require('../internals/copy-constructor-properties');
6
8
  var create = require('../internals/object-create');
7
9
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
8
10
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
11
+ var clearErrorStack = require('../internals/clear-error-stack');
9
12
  var installErrorCause = require('../internals/install-error-cause');
10
13
  var iterate = require('../internals/iterate');
11
- var toString = require('../internals/to-string');
14
+ var normalizeStringArgument = require('../internals/normalize-string-argument');
15
+ var wellKnownSymbol = require('../internals/well-known-symbol');
16
+ var ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');
17
+
18
+ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
19
+ var Error = global.Error;
20
+ var push = [].push;
12
21
 
13
22
  var $AggregateError = function AggregateError(errors, message /* , options */) {
14
- var that = this;
15
23
  var options = arguments.length > 2 ? arguments[2] : undefined;
16
- if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message, options);
24
+ var isInstance = isPrototypeOf(AggregateErrorPrototype, this);
25
+ var that;
17
26
  if (setPrototypeOf) {
18
- // eslint-disable-next-line unicorn/error-message -- expected
19
- that = setPrototypeOf(new Error(undefined), getPrototypeOf(that));
27
+ that = setPrototypeOf(new Error(undefined), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);
28
+ } else {
29
+ that = isInstance ? this : create(AggregateErrorPrototype);
30
+ createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');
20
31
  }
21
- if (message !== undefined) createNonEnumerableProperty(that, 'message', toString(message));
32
+ createNonEnumerableProperty(that, 'message', normalizeStringArgument(message, ''));
33
+ if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));
22
34
  installErrorCause(that, options);
23
35
  var errorsArray = [];
24
- iterate(errors, errorsArray.push, { that: errorsArray });
36
+ iterate(errors, push, { that: errorsArray });
25
37
  createNonEnumerableProperty(that, 'errors', errorsArray);
26
38
  return that;
27
39
  };
@@ -29,7 +41,7 @@ var $AggregateError = function AggregateError(errors, message /* , options */) {
29
41
  if (setPrototypeOf) setPrototypeOf($AggregateError, Error);
30
42
  else copyConstructorProperties($AggregateError, Error);
31
43
 
32
- $AggregateError.prototype = create(Error.prototype, {
44
+ var AggregateErrorPrototype = $AggregateError.prototype = create(Error.prototype, {
33
45
  constructor: createPropertyDescriptor(1, $AggregateError),
34
46
  message: createPropertyDescriptor(1, ''),
35
47
  name: createPropertyDescriptor(1, 'AggregateError')
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
3
4
  var fails = require('../internals/fails');
4
5
  var ArrayBufferModule = require('../internals/array-buffer');
5
6
  var anObject = require('../internals/an-object');
@@ -9,7 +10,10 @@ var speciesConstructor = require('../internals/species-constructor');
9
10
 
10
11
  var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
11
12
  var DataView = ArrayBufferModule.DataView;
12
- var nativeArrayBufferSlice = ArrayBuffer.prototype.slice;
13
+ var DataViewPrototype = DataView.prototype;
14
+ var un$ArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);
15
+ var getUint8 = uncurryThis(DataViewPrototype.getUint8);
16
+ var setUint8 = uncurryThis(DataViewPrototype.setUint8);
13
17
 
14
18
  var INCORRECT_SLICE = fails(function () {
15
19
  return !new ArrayBuffer(2).slice(1, undefined).byteLength;
@@ -19,8 +23,8 @@ var INCORRECT_SLICE = fails(function () {
19
23
  // https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice
20
24
  $({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {
21
25
  slice: function slice(start, end) {
22
- if (nativeArrayBufferSlice !== undefined && end === undefined) {
23
- return nativeArrayBufferSlice.call(anObject(this), start); // FF fix
26
+ if (un$ArrayBufferSlice && end === undefined) {
27
+ return un$ArrayBufferSlice(anObject(this), start); // FF fix
24
28
  }
25
29
  var length = anObject(this).byteLength;
26
30
  var first = toAbsoluteIndex(start, length);
@@ -30,7 +34,7 @@ $({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE },
30
34
  var viewTarget = new DataView(result);
31
35
  var index = 0;
32
36
  while (first < fin) {
33
- viewTarget.setUint8(index++, viewSource.getUint8(first++));
37
+ setUint8(viewTarget, index++, getUint8(viewSource, first++));
34
38
  } return result;
35
39
  }
36
40
  });
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var global = require('../internals/global');
3
4
  var fails = require('../internals/fails');
4
5
  var isArray = require('../internals/is-array');
5
6
  var isObject = require('../internals/is-object');
@@ -14,6 +15,7 @@ var V8_VERSION = require('../internals/engine-v8-version');
14
15
  var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
15
16
  var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
16
17
  var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
18
+ var TypeError = global.TypeError;
17
19
 
18
20
  // We can't use this feature detection in V8 since it causes
19
21
  // deoptimization and serious performance degradation
@@ -1,21 +1,23 @@
1
1
  'use strict';
2
2
  /* eslint-disable es/no-array-prototype-indexof -- required for testing */
3
3
  var $ = require('../internals/export');
4
- var $indexOf = require('../internals/array-includes').indexOf;
4
+ var uncurryThis = require('../internals/function-uncurry-this');
5
+ var $IndexOf = require('../internals/array-includes').indexOf;
5
6
  var arrayMethodIsStrict = require('../internals/array-method-is-strict');
6
7
 
7
- var nativeIndexOf = [].indexOf;
8
+ var un$IndexOf = uncurryThis([].indexOf);
8
9
 
9
- var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;
10
+ var NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0;
10
11
  var STRICT_METHOD = arrayMethodIsStrict('indexOf');
11
12
 
12
13
  // `Array.prototype.indexOf` method
13
14
  // https://tc39.es/ecma262/#sec-array.prototype.indexof
14
15
  $({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {
15
16
  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
17
+ var fromIndex = arguments.length > 1 ? arguments[1] : undefined;
16
18
  return NEGATIVE_ZERO
17
19
  // convert -0 to +0
18
- ? nativeIndexOf.apply(this, arguments) || 0
19
- : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);
20
+ ? un$IndexOf(this, searchElement, fromIndex) || 0
21
+ : $IndexOf(this, searchElement, fromIndex);
20
22
  }
21
23
  });
@@ -1,10 +1,11 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
3
4
  var IndexedObject = require('../internals/indexed-object');
4
5
  var toIndexedObject = require('../internals/to-indexed-object');
5
6
  var arrayMethodIsStrict = require('../internals/array-method-is-strict');
6
7
 
7
- var nativeJoin = [].join;
8
+ var un$Join = uncurryThis([].join);
8
9
 
9
10
  var ES3_STRINGS = IndexedObject != Object;
10
11
  var STRICT_METHOD = arrayMethodIsStrict('join', ',');
@@ -13,6 +14,6 @@ var STRICT_METHOD = arrayMethodIsStrict('join', ',');
13
14
  // https://tc39.es/ecma262/#sec-array.prototype.join
14
15
  $({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {
15
16
  join: function join(separator) {
16
- return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);
17
+ return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);
17
18
  }
18
19
  });
@@ -1,12 +1,14 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var global = require('../internals/global');
3
4
  var fails = require('../internals/fails');
4
5
  var isConstructor = require('../internals/is-constructor');
5
6
  var createProperty = require('../internals/create-property');
6
7
 
8
+ var Array = global.Array;
9
+
7
10
  var ISNT_GENERIC = fails(function () {
8
11
  function F() { /* empty */ }
9
- // eslint-disable-next-line es/no-array-of -- required for testing
10
12
  return !(Array.of.call(F) instanceof F);
11
13
  });
12
14