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
@@ -1,9 +1,14 @@
1
1
  var $ = require('../internals/export');
2
+ var global = require('../internals/global');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
4
+
5
+ var Date = global.Date;
6
+ var getTime = uncurryThis(Date.prototype.getTime);
2
7
 
3
8
  // `Date.now` method
4
9
  // https://tc39.es/ecma262/#sec-date.now
5
10
  $({ target: 'Date', stat: true }, {
6
11
  now: function now() {
7
- return new Date().getTime();
12
+ return getTime(new Date());
8
13
  }
9
14
  });
@@ -1,18 +1,20 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
3
4
  var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
4
5
 
5
- var getTime = Date.prototype.getTime;
6
- var setFullYear = Date.prototype.setFullYear;
6
+ var DatePrototype = Date.prototype;
7
+ var getTime = uncurryThis(DatePrototype.getTime);
8
+ var setFullYear = uncurryThis(DatePrototype.setFullYear);
7
9
 
8
10
  // `Date.prototype.setYear` method
9
11
  // https://tc39.es/ecma262/#sec-date.prototype.setyear
10
12
  $({ target: 'Date', proto: true }, {
11
13
  setYear: function setYear(year) {
12
14
  // validate
13
- getTime.call(this);
15
+ getTime(this);
14
16
  var yi = toIntegerOrInfinity(year);
15
17
  var yyyy = 0 <= yi && yi <= 99 ? yi + 1900 : yi;
16
- return setFullYear.call(this, yyyy);
18
+ return setFullYear(this, yyyy);
17
19
  }
18
20
  });
@@ -1,3 +1,4 @@
1
+ var hasOwn = require('../internals/has-own-property');
1
2
  var redefine = require('../internals/redefine');
2
3
  var dateToPrimitive = require('../internals/date-to-primitive');
3
4
  var wellKnownSymbol = require('../internals/well-known-symbol');
@@ -7,6 +8,6 @@ var DatePrototype = Date.prototype;
7
8
 
8
9
  // `Date.prototype[@@toPrimitive]` method
9
10
  // https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive
10
- if (!(TO_PRIMITIVE in DatePrototype)) {
11
+ if (!hasOwn(DatePrototype, TO_PRIMITIVE)) {
11
12
  redefine(DatePrototype, TO_PRIMITIVE, dateToPrimitive);
12
13
  }
@@ -1,17 +1,18 @@
1
+ var uncurryThis = require('../internals/function-uncurry-this');
1
2
  var redefine = require('../internals/redefine');
2
3
 
3
4
  var DatePrototype = Date.prototype;
4
5
  var INVALID_DATE = 'Invalid Date';
5
6
  var TO_STRING = 'toString';
6
- var nativeDateToString = DatePrototype[TO_STRING];
7
- var getTime = DatePrototype.getTime;
7
+ var un$DateToString = uncurryThis(DatePrototype[TO_STRING]);
8
+ var getTime = uncurryThis(DatePrototype.getTime);
8
9
 
9
10
  // `Date.prototype.toString` method
10
11
  // https://tc39.es/ecma262/#sec-date.prototype.tostring
11
12
  if (String(new Date(NaN)) != INVALID_DATE) {
12
13
  redefine(DatePrototype, TO_STRING, function toString() {
13
- var value = getTime.call(this);
14
+ var value = getTime(this);
14
15
  // eslint-disable-next-line no-self-compare -- NaN check
15
- return value === value ? nativeDateToString.call(this) : INVALID_DATE;
16
+ return value === value ? un$DateToString(this) : INVALID_DATE;
16
17
  });
17
18
  }
@@ -1,11 +1,18 @@
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
 
6
+ var charAt = uncurryThis(''.charAt);
7
+ var charCodeAt = uncurryThis(''.charCodeAt);
8
+ var exec = uncurryThis(/./.exec);
9
+ var numberToString = uncurryThis(1.0.toString);
10
+ var toUpperCase = uncurryThis(''.toUpperCase);
11
+
5
12
  var raw = /[\w*+\-./@]/;
6
13
 
7
14
  var hex = function (code, length) {
8
- var result = code.toString(16);
15
+ var result = numberToString(code, 16);
9
16
  while (result.length < length) result = '0' + result;
10
17
  return result;
11
18
  };
@@ -20,15 +27,15 @@ $({ global: true }, {
20
27
  var index = 0;
21
28
  var chr, code;
22
29
  while (index < length) {
23
- chr = str.charAt(index++);
24
- if (raw.test(chr)) {
30
+ chr = charAt(str, index++);
31
+ if (exec(raw, chr)) {
25
32
  result += chr;
26
33
  } else {
27
- code = chr.charCodeAt(0);
34
+ code = charCodeAt(chr, 0);
28
35
  if (code < 256) {
29
36
  result += '%' + hex(code, 2);
30
37
  } else {
31
- result += '%u' + hex(code, 4).toUpperCase();
38
+ result += '%u' + toUpperCase(hex(code, 4));
32
39
  }
33
40
  }
34
41
  } return result;
@@ -13,9 +13,10 @@ var FunctionPrototype = Function.prototype;
13
13
  if (!(HAS_INSTANCE in FunctionPrototype)) {
14
14
  definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {
15
15
  if (!isCallable(this) || !isObject(O)) return false;
16
- if (!isObject(this.prototype)) return O instanceof this;
16
+ var P = this.prototype;
17
+ if (!isObject(P)) return O instanceof this;
17
18
  // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
18
- while (O = getPrototypeOf(O)) if (this.prototype === O) return true;
19
+ while (O = getPrototypeOf(O)) if (P === O) return true;
19
20
  return false;
20
21
  } });
21
22
  }
@@ -1,10 +1,12 @@
1
1
  var DESCRIPTORS = require('../internals/descriptors');
2
2
  var FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;
3
+ var uncurryThis = require('../internals/function-uncurry-this');
3
4
  var defineProperty = require('../internals/object-define-property').f;
4
5
 
5
6
  var FunctionPrototype = Function.prototype;
6
- var FunctionPrototypeToString = FunctionPrototype.toString;
7
- var nameRE = /^\s*function ([^ (]*)/;
7
+ var functionToString = uncurryThis(FunctionPrototype.toString);
8
+ var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/;
9
+ var regExpExec = uncurryThis(nameRE.exec);
8
10
  var NAME = 'name';
9
11
 
10
12
  // Function instances `.name` property
@@ -14,7 +16,7 @@ if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {
14
16
  configurable: true,
15
17
  get: function () {
16
18
  try {
17
- return FunctionPrototypeToString.call(this).match(nameRE)[1];
19
+ return regExpExec(nameRE, functionToString(this))[1];
18
20
  } catch (error) {
19
21
  return '';
20
22
  }
@@ -1,17 +1,27 @@
1
1
  var $ = require('../internals/export');
2
+ var global = require('../internals/global');
2
3
  var getBuiltIn = require('../internals/get-built-in');
4
+ var apply = require('../internals/function-apply');
5
+ var uncurryThis = require('../internals/function-uncurry-this');
3
6
  var fails = require('../internals/fails');
4
7
 
8
+ var Array = global.Array;
5
9
  var $stringify = getBuiltIn('JSON', 'stringify');
6
- var re = /[\uD800-\uDFFF]/g;
10
+ var exec = uncurryThis(/./.exec);
11
+ var charAt = uncurryThis(''.charAt);
12
+ var charCodeAt = uncurryThis(''.charCodeAt);
13
+ var replace = uncurryThis(''.replace);
14
+ var numberToString = uncurryThis(1.0.toString);
15
+
16
+ var tester = /[\uD800-\uDFFF]/g;
7
17
  var low = /^[\uD800-\uDBFF]$/;
8
18
  var hi = /^[\uDC00-\uDFFF]$/;
9
19
 
10
20
  var fix = function (match, offset, string) {
11
- var prev = string.charAt(offset - 1);
12
- var next = string.charAt(offset + 1);
13
- if ((low.test(match) && !hi.test(next)) || (hi.test(match) && !low.test(prev))) {
14
- return '\\u' + match.charCodeAt(0).toString(16);
21
+ var prev = charAt(string, offset - 1);
22
+ var next = charAt(string, offset + 1);
23
+ if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {
24
+ return '\\u' + numberToString(charCodeAt(match, 0), 16);
15
25
  } return match;
16
26
  };
17
27
 
@@ -27,8 +37,9 @@ if ($stringify) {
27
37
  $({ target: 'JSON', stat: true, forced: FORCED }, {
28
38
  // eslint-disable-next-line no-unused-vars -- required for `.length`
29
39
  stringify: function stringify(it, replacer, space) {
30
- var result = $stringify.apply(null, arguments);
31
- return typeof result == 'string' ? result.replace(re, fix) : result;
40
+ for (var i = 0, l = arguments.length, args = Array(l); i < l; i++) args[i] = arguments[i];
41
+ var result = apply($stringify, null, args);
42
+ return typeof result == 'string' ? replace(result, tester, fix) : result;
32
43
  }
33
44
  });
34
45
  }
package/modules/es.map.js CHANGED
@@ -4,6 +4,6 @@ var collectionStrong = require('../internals/collection-strong');
4
4
 
5
5
  // `Map` constructor
6
6
  // https://tc39.es/ecma262/#sec-map-objects
7
- module.exports = collection('Map', function (init) {
7
+ collection('Map', function (init) {
8
8
  return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };
9
9
  }, collectionStrong);
@@ -1,10 +1,12 @@
1
1
  'use strict';
2
2
  var DESCRIPTORS = require('../internals/descriptors');
3
3
  var global = require('../internals/global');
4
+ var uncurryThis = require('../internals/function-uncurry-this');
4
5
  var isForced = require('../internals/is-forced');
5
6
  var redefine = require('../internals/redefine');
6
7
  var hasOwn = require('../internals/has-own-property');
7
8
  var inheritIfRequired = require('../internals/inherit-if-required');
9
+ var isPrototypeOf = require('../internals/object-is-prototype-of');
8
10
  var isSymbol = require('../internals/is-symbol');
9
11
  var toPrimitive = require('../internals/to-primitive');
10
12
  var fails = require('../internals/fails');
@@ -17,12 +19,15 @@ var trim = require('../internals/string-trim').trim;
17
19
  var NUMBER = 'Number';
18
20
  var NativeNumber = global[NUMBER];
19
21
  var NumberPrototype = NativeNumber.prototype;
22
+ var TypeError = global.TypeError;
23
+ var arraySlice = uncurryThis(''.slice);
24
+ var charCodeAt = uncurryThis(''.charCodeAt);
20
25
 
21
26
  // `ToNumeric` abstract operation
22
27
  // https://tc39.es/ecma262/#sec-tonumeric
23
28
  var toNumeric = function (value) {
24
29
  var primValue = toPrimitive(value, 'number');
25
- return typeof primValue === 'bigint' ? primValue : toNumber(primValue);
30
+ return typeof primValue == 'bigint' ? primValue : toNumber(primValue);
26
31
  };
27
32
 
28
33
  // `ToNumber` abstract operation
@@ -33,20 +38,20 @@ var toNumber = function (argument) {
33
38
  if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');
34
39
  if (typeof it == 'string' && it.length > 2) {
35
40
  it = trim(it);
36
- first = it.charCodeAt(0);
41
+ first = charCodeAt(it, 0);
37
42
  if (first === 43 || first === 45) {
38
- third = it.charCodeAt(2);
43
+ third = charCodeAt(it, 2);
39
44
  if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix
40
45
  } else if (first === 48) {
41
- switch (it.charCodeAt(1)) {
46
+ switch (charCodeAt(it, 1)) {
42
47
  case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i
43
48
  case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i
44
49
  default: return +it;
45
50
  }
46
- digits = it.slice(2);
51
+ digits = arraySlice(it, 2);
47
52
  length = digits.length;
48
53
  for (index = 0; index < length; index++) {
49
- code = digits.charCodeAt(index);
54
+ code = charCodeAt(digits, index);
50
55
  // parseInt parses a string to a first unavailable symbol
51
56
  // but ToNumber should return NaN if a string contains unavailable symbols
52
57
  if (code < 48 || code > maxCode) return NaN;
@@ -62,7 +67,7 @@ if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumb
62
67
  var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));
63
68
  var dummy = this;
64
69
  // check on 1..constructor(foo) case
65
- return dummy instanceof NumberWrapper && fails(function () { thisNumberValue(dummy); })
70
+ return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })
66
71
  ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;
67
72
  };
68
73
  for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (
@@ -1,12 +1,18 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var global = require('../internals/global');
4
+ var uncurryThis = require('../internals/function-uncurry-this');
3
5
  var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
4
6
  var thisNumberValue = require('../internals/this-number-value');
5
- var repeat = require('../internals/string-repeat');
7
+ var $repeat = require('../internals/string-repeat');
6
8
  var fails = require('../internals/fails');
7
9
 
8
- var nativeToFixed = 1.0.toFixed;
10
+ var RangeError = global.RangeError;
11
+ var String = global.String;
9
12
  var floor = Math.floor;
13
+ var repeat = uncurryThis($repeat);
14
+ var stringSlice = uncurryThis(''.slice);
15
+ var un$ToFixed = uncurryThis(1.0.toFixed);
10
16
 
11
17
  var pow = function (x, n, acc) {
12
18
  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
@@ -51,19 +57,19 @@ var dataToString = function (data) {
51
57
  while (--index >= 0) {
52
58
  if (s !== '' || index === 0 || data[index] !== 0) {
53
59
  var t = String(data[index]);
54
- s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;
60
+ s = s === '' ? t : s + repeat('0', 7 - t.length) + t;
55
61
  }
56
62
  } return s;
57
63
  };
58
64
 
59
- var FORCED = nativeToFixed && (
60
- 0.00008.toFixed(3) !== '0.000' ||
61
- 0.9.toFixed(0) !== '1' ||
62
- 1.255.toFixed(2) !== '1.25' ||
63
- 1000000000000000128.0.toFixed(0) !== '1000000000000000128'
64
- ) || !fails(function () {
65
+ var FORCED = fails(function () {
66
+ return un$ToFixed(0.00008, 3) !== '0.000' ||
67
+ un$ToFixed(0.9, 0) !== '1' ||
68
+ un$ToFixed(1.255, 2) !== '1.25' ||
69
+ un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';
70
+ }) || !fails(function () {
65
71
  // V8 ~ Android 4.3-
66
- nativeToFixed.call({});
72
+ un$ToFixed({});
67
73
  });
68
74
 
69
75
  // `Number.prototype.toFixed` method
@@ -110,14 +116,14 @@ $({ target: 'Number', proto: true, forced: FORCED }, {
110
116
  } else {
111
117
  multiply(data, 0, z);
112
118
  multiply(data, 1 << -e, 0);
113
- result = dataToString(data) + repeat.call('0', fractDigits);
119
+ result = dataToString(data) + repeat('0', fractDigits);
114
120
  }
115
121
  }
116
122
  if (fractDigits > 0) {
117
123
  k = result.length;
118
124
  result = sign + (k <= fractDigits
119
- ? '0.' + repeat.call('0', fractDigits - k) + result
120
- : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));
125
+ ? '0.' + repeat('0', fractDigits - k) + result
126
+ : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));
121
127
  } else {
122
128
  result = sign + result;
123
129
  } return result;
@@ -1,16 +1,17 @@
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 thisNumberValue = require('../internals/this-number-value');
5
6
 
6
- var nativeToPrecision = 1.0.toPrecision;
7
+ var un$ToPrecision = uncurryThis(1.0.toPrecision);
7
8
 
8
9
  var FORCED = fails(function () {
9
10
  // IE7-
10
- return nativeToPrecision.call(1, undefined) !== '1';
11
+ return un$ToPrecision(1, undefined) !== '1';
11
12
  }) || !fails(function () {
12
13
  // V8 ~ Android 4.3-
13
- nativeToPrecision.call({});
14
+ un$ToPrecision({});
14
15
  });
15
16
 
16
17
  // `Number.prototype.toPrecision` method
@@ -18,7 +19,7 @@ var FORCED = fails(function () {
18
19
  $({ target: 'Number', proto: true, forced: FORCED }, {
19
20
  toPrecision: function toPrecision(precision) {
20
21
  return precision === undefined
21
- ? nativeToPrecision.call(thisNumberValue(this))
22
- : nativeToPrecision.call(thisNumberValue(this), precision);
22
+ ? un$ToPrecision(thisNumberValue(this))
23
+ : un$ToPrecision(thisNumberValue(this), precision);
23
24
  }
24
25
  });
@@ -1,15 +1,9 @@
1
1
  var $ = require('../internals/export');
2
- var fails = require('../internals/fails');
3
- var isObject = require('../internals/is-object');
4
-
5
- // eslint-disable-next-line es/no-object-isextensible -- safe
6
- var $isExtensible = Object.isExtensible;
7
- var FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });
2
+ var $isExtensible = require('../internals/object-is-extensible');
8
3
 
9
4
  // `Object.isExtensible` method
10
5
  // https://tc39.es/ecma262/#sec-object.isextensible
11
- $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
12
- isExtensible: function isExtensible(it) {
13
- return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
14
- }
6
+ // eslint-disable-next-line es/no-object-isextensible -- safe
7
+ $({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, {
8
+ isExtensible: $isExtensible
15
9
  });
@@ -1,6 +1,8 @@
1
1
  var $ = require('../internals/export');
2
2
  var fails = require('../internals/fails');
3
3
  var isObject = require('../internals/is-object');
4
+ var classof = require('../internals/classof-raw');
5
+ var ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');
4
6
 
5
7
  // eslint-disable-next-line es/no-object-isfrozen -- safe
6
8
  var $isFrozen = Object.isFrozen;
@@ -8,8 +10,10 @@ var FAILS_ON_PRIMITIVES = fails(function () { $isFrozen(1); });
8
10
 
9
11
  // `Object.isFrozen` method
10
12
  // https://tc39.es/ecma262/#sec-object.isfrozen
11
- $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
13
+ $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE }, {
12
14
  isFrozen: function isFrozen(it) {
13
- return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
15
+ if (!isObject(it)) return true;
16
+ if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return true;
17
+ return $isFrozen ? $isFrozen(it) : false;
14
18
  }
15
19
  });
@@ -1,6 +1,8 @@
1
1
  var $ = require('../internals/export');
2
2
  var fails = require('../internals/fails');
3
3
  var isObject = require('../internals/is-object');
4
+ var classof = require('../internals/classof-raw');
5
+ var ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');
4
6
 
5
7
  // eslint-disable-next-line es/no-object-issealed -- safe
6
8
  var $isSealed = Object.isSealed;
@@ -8,8 +10,10 @@ var FAILS_ON_PRIMITIVES = fails(function () { $isSealed(1); });
8
10
 
9
11
  // `Object.isSealed` method
10
12
  // https://tc39.es/ecma262/#sec-object.issealed
11
- $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
13
+ $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE }, {
12
14
  isSealed: function isSealed(it) {
13
- return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
15
+ if (!isObject(it)) return true;
16
+ if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return true;
17
+ return $isSealed ? $isSealed(it) : false;
14
18
  }
15
19
  });
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var call = require('../internals/function-call');
3
4
  var aCallable = require('../internals/a-callable');
4
5
  var newPromiseCapabilityModule = require('../internals/new-promise-capability');
5
6
  var perform = require('../internals/perform');
@@ -21,9 +22,8 @@ $({ target: 'Promise', stat: true }, {
21
22
  iterate(iterable, function (promise) {
22
23
  var index = counter++;
23
24
  var alreadyCalled = false;
24
- values.push(undefined);
25
25
  remaining++;
26
- promiseResolve.call(C, promise).then(function (value) {
26
+ call(promiseResolve, C, promise).then(function (value) {
27
27
  if (alreadyCalled) return;
28
28
  alreadyCalled = true;
29
29
  values[index] = { status: 'fulfilled', value: value };
@@ -2,6 +2,7 @@
2
2
  var $ = require('../internals/export');
3
3
  var aCallable = require('../internals/a-callable');
4
4
  var getBuiltIn = require('../internals/get-built-in');
5
+ var call = require('../internals/function-call');
5
6
  var newPromiseCapabilityModule = require('../internals/new-promise-capability');
6
7
  var perform = require('../internals/perform');
7
8
  var iterate = require('../internals/iterate');
@@ -13,6 +14,7 @@ var PROMISE_ANY_ERROR = 'No one promise resolved';
13
14
  $({ target: 'Promise', stat: true }, {
14
15
  any: function any(iterable) {
15
16
  var C = this;
17
+ var AggregateError = getBuiltIn('AggregateError');
16
18
  var capability = newPromiseCapabilityModule.f(C);
17
19
  var resolve = capability.resolve;
18
20
  var reject = capability.reject;
@@ -25,9 +27,8 @@ $({ target: 'Promise', stat: true }, {
25
27
  iterate(iterable, function (promise) {
26
28
  var index = counter++;
27
29
  var alreadyRejected = false;
28
- errors.push(undefined);
29
30
  remaining++;
30
- promiseResolve.call(C, promise).then(function (value) {
31
+ call(promiseResolve, C, promise).then(function (value) {
31
32
  if (alreadyRejected || alreadyResolved) return;
32
33
  alreadyResolved = true;
33
34
  resolve(value);
@@ -35,10 +36,10 @@ $({ target: 'Promise', stat: true }, {
35
36
  if (alreadyRejected || alreadyResolved) return;
36
37
  alreadyRejected = true;
37
38
  errors[index] = error;
38
- --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));
39
+ --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));
39
40
  });
40
41
  });
41
- --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));
42
+ --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));
42
43
  });
43
44
  if (result.error) reject(result.value);
44
45
  return capability.promise;