core-js 3.18.0 → 3.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/configurator.js +7 -3
  2. package/es/date/to-primitive.js +2 -3
  3. package/es/date/to-string.js +2 -4
  4. package/es/instance/at.js +6 -5
  5. package/es/instance/bind.js +3 -2
  6. package/es/instance/code-point-at.js +4 -3
  7. package/es/instance/concat.js +3 -2
  8. package/es/instance/copy-within.js +3 -2
  9. package/es/instance/ends-with.js +4 -3
  10. package/es/instance/entries.js +3 -2
  11. package/es/instance/every.js +3 -2
  12. package/es/instance/fill.js +3 -2
  13. package/es/instance/filter.js +3 -2
  14. package/es/instance/find-index.js +3 -2
  15. package/es/instance/find.js +3 -2
  16. package/es/instance/flags.js +2 -1
  17. package/es/instance/flat-map.js +3 -2
  18. package/es/instance/flat.js +3 -2
  19. package/es/instance/for-each.js +3 -2
  20. package/es/instance/includes.js +6 -5
  21. package/es/instance/index-of.js +3 -2
  22. package/es/instance/keys.js +3 -2
  23. package/es/instance/last-index-of.js +3 -2
  24. package/es/instance/map.js +3 -2
  25. package/es/instance/match-all.js +4 -3
  26. package/es/instance/pad-end.js +4 -3
  27. package/es/instance/pad-start.js +4 -3
  28. package/es/instance/reduce-right.js +3 -2
  29. package/es/instance/reduce.js +3 -2
  30. package/es/instance/repeat.js +4 -3
  31. package/es/instance/replace-all.js +4 -3
  32. package/es/instance/reverse.js +3 -2
  33. package/es/instance/slice.js +3 -2
  34. package/es/instance/some.js +3 -2
  35. package/es/instance/sort.js +3 -2
  36. package/es/instance/splice.js +3 -2
  37. package/es/instance/starts-with.js +4 -3
  38. package/es/instance/trim-end.js +4 -3
  39. package/es/instance/trim-left.js +4 -3
  40. package/es/instance/trim-right.js +4 -3
  41. package/es/instance/trim-start.js +4 -3
  42. package/es/instance/trim.js +4 -3
  43. package/es/instance/values.js +3 -2
  44. package/es/json/stringify.js +4 -3
  45. package/es/promise/all-settled.js +2 -1
  46. package/es/promise/any.js +2 -1
  47. package/es/regexp/flags.js +3 -4
  48. package/es/regexp/match.js +2 -1
  49. package/es/regexp/replace.js +2 -1
  50. package/es/regexp/search.js +2 -1
  51. package/es/regexp/split.js +2 -1
  52. package/es/regexp/test.js +2 -3
  53. package/es/regexp/to-string.js +2 -3
  54. package/es/string/iterator.js +2 -5
  55. package/features/instance/at.js +6 -5
  56. package/features/instance/code-points.js +4 -3
  57. package/features/instance/filter-out.js +3 -2
  58. package/features/instance/filter-reject.js +3 -2
  59. package/features/instance/find-last-index.js +3 -2
  60. package/features/instance/find-last.js +3 -2
  61. package/features/instance/group-by.js +3 -2
  62. package/features/instance/unique-by.js +3 -2
  63. package/features/map/from.js +3 -2
  64. package/features/map/group-by.js +2 -1
  65. package/features/map/key-by.js +2 -1
  66. package/features/map/of.js +3 -2
  67. package/features/promise/try.js +2 -1
  68. package/features/set/from.js +3 -2
  69. package/features/set/of.js +3 -2
  70. package/features/typed-array/methods.js +2 -0
  71. package/features/weak-map/from.js +3 -2
  72. package/features/weak-map/of.js +3 -2
  73. package/features/weak-set/from.js +3 -2
  74. package/features/weak-set/of.js +3 -2
  75. package/internals/a-callable.js +3 -0
  76. package/internals/a-constructor.js +3 -0
  77. package/internals/a-possible-prototype.js +5 -1
  78. package/internals/an-instance.js +8 -3
  79. package/internals/an-object.js +4 -0
  80. package/internals/array-buffer-native.js +1 -1
  81. package/internals/array-buffer-view-core.js +11 -10
  82. package/internals/array-buffer.js +31 -18
  83. package/internals/array-copy-within.js +2 -2
  84. package/internals/array-fill.js +2 -2
  85. package/internals/array-from-async.js +14 -10
  86. package/internals/array-from.js +8 -4
  87. package/internals/array-group-by.js +8 -5
  88. package/internals/array-includes.js +2 -2
  89. package/internals/array-iteration-from-last.js +3 -3
  90. package/internals/array-iteration.js +7 -6
  91. package/internals/array-last-index-of.js +6 -5
  92. package/internals/array-reduce.js +5 -2
  93. package/internals/array-slice.js +3 -0
  94. package/internals/array-sort.js +10 -11
  95. package/internals/array-species-constructor.js +2 -0
  96. package/internals/array-unique-by.js +15 -11
  97. package/internals/async-from-sync-iterator.js +4 -3
  98. package/internals/async-iterator-create-proxy.js +4 -3
  99. package/internals/async-iterator-iteration.js +6 -2
  100. package/internals/classof-raw.js +5 -2
  101. package/internals/classof.js +3 -0
  102. package/internals/clear-error-stack.js +20 -0
  103. package/internals/collection-add-all.js +3 -2
  104. package/internals/collection-delete-all.js +3 -2
  105. package/internals/collection-from.js +7 -4
  106. package/internals/collection-of.js +3 -4
  107. package/internals/collection-strong.js +11 -9
  108. package/internals/collection-weak.js +13 -9
  109. package/internals/collection.js +8 -7
  110. package/internals/composite-key.js +9 -2
  111. package/internals/copy-constructor-properties.js +2 -2
  112. package/internals/create-html.js +3 -1
  113. package/internals/date-to-iso-string.js +23 -13
  114. package/internals/date-to-primitive.js +3 -0
  115. package/internals/define-iterator.js +2 -1
  116. package/internals/define-well-known-symbol.js +2 -2
  117. package/internals/engine-v8-version.js +10 -4
  118. package/internals/entry-unbind.js +3 -5
  119. package/internals/error-stack-installable.js +10 -0
  120. package/internals/export.js +1 -1
  121. package/internals/fix-regexp-well-known-symbol-logic.js +5 -3
  122. package/internals/flatten-into-array.js +8 -4
  123. package/internals/function-apply.js +9 -0
  124. package/internals/function-bind-context.js +5 -17
  125. package/internals/function-bind.js +15 -9
  126. package/internals/function-call.js +5 -0
  127. package/internals/function-name.js +2 -2
  128. package/internals/function-uncurry-this.js +12 -0
  129. package/internals/get-async-iterator.js +2 -1
  130. package/internals/get-iterator.js +7 -2
  131. package/internals/get-map-iterator.js +3 -1
  132. package/internals/get-set-iterator.js +3 -1
  133. package/internals/get-substitution.js +10 -7
  134. package/internals/has-own-property.js +10 -0
  135. package/internals/host-report-errors.js +1 -1
  136. package/internals/ieee754.js +4 -1
  137. package/internals/indexed-object.js +5 -2
  138. package/internals/inspect-source.js +3 -2
  139. package/internals/install-error-cause.js +10 -0
  140. package/internals/internal-metadata.js +7 -6
  141. package/internals/internal-state.js +13 -11
  142. package/internals/is-callable.js +2 -2
  143. package/internals/is-constructor.js +6 -4
  144. package/internals/is-data-descriptor.js +2 -2
  145. package/internals/is-integral-number.js +10 -0
  146. package/internals/is-iterable.js +4 -2
  147. package/internals/is-object.js +1 -1
  148. package/internals/is-symbol.js +6 -2
  149. package/internals/iterate.js +16 -8
  150. package/internals/iterator-close.js +2 -1
  151. package/internals/iterator-create-proxy.js +4 -3
  152. package/internals/length-of-array-like.js +7 -0
  153. package/internals/map-emplace.js +8 -3
  154. package/internals/map-upsert.js +12 -4
  155. package/internals/math-scale.js +9 -12
  156. package/internals/microtask.js +6 -4
  157. package/internals/normalize-string-argument.js +5 -0
  158. package/internals/not-a-regexp.js +3 -0
  159. package/internals/number-parse-float.js +8 -6
  160. package/internals/number-parse-int.js +4 -2
  161. package/internals/numeric-range-iterator.js +4 -0
  162. package/internals/object-assign.js +5 -2
  163. package/internals/object-define-properties.js +3 -1
  164. package/internals/object-define-property.js +2 -0
  165. package/internals/object-get-own-property-descriptor.js +3 -2
  166. package/internals/object-get-own-property-names-external.js +4 -4
  167. package/internals/object-get-prototype-of.js +4 -3
  168. package/internals/object-is-prototype-of.js +3 -0
  169. package/internals/object-iterator.js +2 -2
  170. package/internals/object-keys-internal.js +7 -4
  171. package/internals/object-set-prototype-of.js +4 -3
  172. package/internals/object-to-array.js +7 -3
  173. package/internals/ordinary-to-primitive.js +7 -3
  174. package/internals/own-keys.js +4 -1
  175. package/internals/redefine.js +2 -2
  176. package/internals/reflect-metadata.js +9 -3
  177. package/internals/regexp-exec-abstract.js +6 -2
  178. package/internals/regexp-exec.js +19 -14
  179. package/internals/require-object-coercible.js +4 -0
  180. package/internals/set-global.js +4 -2
  181. package/internals/set-to-string-tag.js +2 -2
  182. package/internals/shared.js +1 -1
  183. package/internals/string-multibyte.js +15 -7
  184. package/internals/string-pad-webkit-bug.js +0 -1
  185. package/internals/string-pad.js +7 -4
  186. package/internals/string-punycode-to-ascii.js +26 -14
  187. package/internals/string-repeat.js +5 -2
  188. package/internals/string-trim.js +4 -2
  189. package/internals/task.js +11 -11
  190. package/internals/this-number-value.js +2 -4
  191. package/internals/to-absolute-index.js +2 -2
  192. package/internals/to-index.js +5 -2
  193. package/internals/to-integer-or-infinity.js +10 -0
  194. package/internals/to-length.js +2 -2
  195. package/internals/to-object.js +3 -0
  196. package/internals/to-offset.js +3 -0
  197. package/internals/to-positive-integer.js +5 -2
  198. package/internals/to-primitive.js +4 -1
  199. package/internals/to-property-key.js +1 -1
  200. package/internals/to-string.js +3 -0
  201. package/internals/try-to-string.js +4 -0
  202. package/internals/typed-array-constructor.js +18 -14
  203. package/internals/typed-array-from.js +6 -5
  204. package/internals/uid.js +4 -1
  205. package/internals/well-known-symbol.js +8 -4
  206. package/modules/es.aggregate-error.js +24 -11
  207. package/modules/es.array-buffer.slice.js +8 -4
  208. package/modules/es.array.at.js +4 -4
  209. package/modules/es.array.concat.js +4 -2
  210. package/modules/es.array.flat-map.js +2 -2
  211. package/modules/es.array.flat.js +4 -4
  212. package/modules/es.array.index-of.js +7 -5
  213. package/modules/es.array.join.js +3 -2
  214. package/modules/es.array.of.js +3 -1
  215. package/modules/es.array.reduce.js +2 -1
  216. package/modules/es.array.reverse.js +3 -2
  217. package/modules/es.array.slice.js +6 -4
  218. package/modules/es.array.sort.js +9 -6
  219. package/modules/es.array.splice.js +6 -4
  220. package/modules/es.date.get-year.js +3 -2
  221. package/modules/es.date.now.js +6 -1
  222. package/modules/es.date.set-year.js +8 -6
  223. package/modules/es.date.to-primitive.js +2 -1
  224. package/modules/es.date.to-string.js +5 -4
  225. package/modules/es.escape.js +12 -5
  226. package/modules/es.function.has-instance.js +3 -2
  227. package/modules/es.function.name.js +4 -2
  228. package/modules/es.json.stringify.js +18 -7
  229. package/modules/es.map.js +1 -1
  230. package/modules/es.number.constructor.js +25 -19
  231. package/modules/es.number.is-integer.js +2 -2
  232. package/modules/es.number.is-safe-integer.js +2 -2
  233. package/modules/es.number.to-fixed.js +21 -15
  234. package/modules/es.number.to-precision.js +6 -5
  235. package/modules/es.object.has-own.js +1 -1
  236. package/modules/es.promise.all-settled.js +2 -2
  237. package/modules/es.promise.any.js +5 -4
  238. package/modules/es.promise.js +22 -18
  239. package/modules/es.reflect.apply.js +4 -10
  240. package/modules/es.reflect.construct.js +10 -5
  241. package/modules/es.reflect.get.js +2 -1
  242. package/modules/es.reflect.set.js +2 -1
  243. package/modules/es.regexp.constructor.js +25 -16
  244. package/modules/es.regexp.dot-all.js +5 -1
  245. package/modules/es.regexp.flags.js +4 -2
  246. package/modules/es.regexp.sticky.js +5 -1
  247. package/modules/es.regexp.test.js +7 -3
  248. package/modules/es.regexp.to-string.js +8 -5
  249. package/modules/es.set.js +1 -1
  250. package/modules/es.string.at-alternative.js +7 -5
  251. package/modules/es.string.ends-with.js +7 -5
  252. package/modules/es.string.from-code-point.js +7 -4
  253. package/modules/es.string.includes.js +8 -2
  254. package/modules/es.string.match-all.js +25 -19
  255. package/modules/es.string.match.js +2 -1
  256. package/modules/es.string.raw.js +9 -8
  257. package/modules/es.string.replace-all.js +19 -13
  258. package/modules/es.string.replace.js +21 -14
  259. package/modules/es.string.search.js +2 -1
  260. package/modules/es.string.split.js +23 -16
  261. package/modules/es.string.starts-with.js +6 -4
  262. package/modules/es.string.substr.js +10 -6
  263. package/modules/es.symbol.description.js +22 -14
  264. package/modules/es.symbol.js +47 -33
  265. package/modules/es.typed-array.at.js +4 -4
  266. package/modules/es.typed-array.copy-within.js +4 -2
  267. package/modules/es.typed-array.fill.js +9 -2
  268. package/modules/es.typed-array.iterator.js +7 -6
  269. package/modules/es.typed-array.join.js +3 -3
  270. package/modules/es.typed-array.last-index-of.js +3 -2
  271. package/modules/es.typed-array.reduce-right.js +2 -1
  272. package/modules/es.typed-array.reduce.js +2 -1
  273. package/modules/es.typed-array.set.js +4 -2
  274. package/modules/es.typed-array.slice.js +2 -2
  275. package/modules/es.typed-array.sort.js +13 -28
  276. package/modules/es.typed-array.to-locale-string.js +7 -2
  277. package/modules/es.typed-array.to-string.js +3 -2
  278. package/modules/es.unescape.js +14 -9
  279. package/modules/es.weak-map.js +14 -13
  280. package/modules/esnext.array.is-template-object.js +1 -1
  281. package/modules/esnext.array.last-index.js +2 -2
  282. package/modules/esnext.array.last-item.js +3 -3
  283. package/modules/esnext.async-iterator.as-indexed-pairs.js +2 -1
  284. package/modules/esnext.async-iterator.constructor.js +4 -4
  285. package/modules/esnext.async-iterator.drop.js +2 -1
  286. package/modules/esnext.async-iterator.filter.js +2 -1
  287. package/modules/esnext.async-iterator.flat-map.js +3 -2
  288. package/modules/esnext.async-iterator.from.js +4 -4
  289. package/modules/esnext.async-iterator.map.js +2 -1
  290. package/modules/esnext.async-iterator.reduce.js +4 -1
  291. package/modules/esnext.async-iterator.take.js +4 -2
  292. package/modules/esnext.composite-key.js +5 -1
  293. package/modules/esnext.composite-symbol.js +3 -2
  294. package/modules/esnext.iterator.as-indexed-pairs.js +2 -1
  295. package/modules/esnext.iterator.constructor.js +4 -4
  296. package/modules/esnext.iterator.drop.js +4 -2
  297. package/modules/esnext.iterator.filter.js +2 -1
  298. package/modules/esnext.iterator.flat-map.js +7 -3
  299. package/modules/esnext.iterator.from.js +4 -4
  300. package/modules/esnext.iterator.map.js +2 -1
  301. package/modules/esnext.iterator.reduce.js +3 -0
  302. package/modules/esnext.iterator.take.js +2 -1
  303. package/modules/esnext.map.delete-all.js +2 -4
  304. package/modules/esnext.map.emplace.js +2 -2
  305. package/modules/esnext.map.every.js +1 -1
  306. package/modules/esnext.map.filter.js +5 -4
  307. package/modules/esnext.map.find-key.js +1 -1
  308. package/modules/esnext.map.find.js +1 -1
  309. package/modules/esnext.map.group-by.js +6 -2
  310. package/modules/esnext.map.includes.js +1 -1
  311. package/modules/esnext.map.key-by.js +2 -1
  312. package/modules/esnext.map.map-keys.js +5 -4
  313. package/modules/esnext.map.map-values.js +5 -4
  314. package/modules/esnext.map.reduce.js +3 -0
  315. package/modules/esnext.map.some.js +1 -1
  316. package/modules/esnext.map.update-or-insert.js +2 -2
  317. package/modules/esnext.map.update.js +11 -4
  318. package/modules/esnext.map.upsert.js +2 -2
  319. package/modules/esnext.math.seeded-prng.js +3 -1
  320. package/modules/esnext.number.from-string.js +14 -5
  321. package/modules/esnext.observable.js +14 -9
  322. package/modules/esnext.reflect.get-metadata-keys.js +5 -10
  323. package/modules/esnext.set.add-all.js +2 -4
  324. package/modules/esnext.set.delete-all.js +2 -4
  325. package/modules/esnext.set.difference.js +3 -2
  326. package/modules/esnext.set.every.js +1 -1
  327. package/modules/esnext.set.filter.js +4 -3
  328. package/modules/esnext.set.find.js +1 -1
  329. package/modules/esnext.set.intersection.js +3 -2
  330. package/modules/esnext.set.is-disjoint-from.js +3 -2
  331. package/modules/esnext.set.is-subset-of.js +3 -2
  332. package/modules/esnext.set.is-superset-of.js +3 -2
  333. package/modules/esnext.set.join.js +9 -4
  334. package/modules/esnext.set.map.js +5 -4
  335. package/modules/esnext.set.reduce.js +3 -0
  336. package/modules/esnext.set.some.js +1 -1
  337. package/modules/esnext.set.symmetric-difference.js +3 -2
  338. package/modules/esnext.typed-array.from-async.js +9 -3
  339. package/modules/esnext.typed-array.unique-by.js +4 -2
  340. package/modules/esnext.weak-map.delete-all.js +2 -4
  341. package/modules/esnext.weak-map.emplace.js +2 -2
  342. package/modules/esnext.weak-map.upsert.js +2 -2
  343. package/modules/esnext.weak-set.add-all.js +2 -4
  344. package/modules/esnext.weak-set.delete-all.js +2 -4
  345. package/modules/web.dom-collections.for-each.js +3 -1
  346. package/modules/web.timers.js +5 -4
  347. package/modules/web.url-search-params.js +63 -54
  348. package/modules/web.url.js +112 -98
  349. package/modules/web.url.to-json.js +2 -1
  350. package/package.json +2 -2
  351. package/postinstall.js +1 -1
  352. package/stable/instance/entries.js +6 -4
  353. package/stable/instance/for-each.js +6 -4
  354. package/stable/instance/keys.js +6 -4
  355. package/stable/instance/values.js +6 -4
  356. package/internals/has.js +0 -7
  357. package/internals/is-integer.js +0 -9
  358. package/internals/to-integer.js +0 -8
@@ -1,24 +1,32 @@
1
1
  'use strict';
2
+ var global = require('../internals/global');
3
+ var call = require('../internals/function-call');
4
+ var aCallable = require('../internals/a-callable');
2
5
  var isCallable = require('../internals/is-callable');
3
6
  var anObject = require('../internals/an-object');
4
7
 
8
+ var TypeError = global.TypeError;
9
+
5
10
  // `Map.prototype.upsert` method
6
11
  // https://github.com/thumbsupep/proposal-upsert
7
12
  module.exports = function upsert(key, updateFn /* , insertFn */) {
8
13
  var map = anObject(this);
14
+ var get = aCallable(map.get);
15
+ var has = aCallable(map.has);
16
+ var set = aCallable(map.set);
9
17
  var insertFn = arguments.length > 2 ? arguments[2] : undefined;
10
18
  var value;
11
19
  if (!isCallable(updateFn) && !isCallable(insertFn)) {
12
20
  throw TypeError('At least one callback required');
13
21
  }
14
- if (map.has(key)) {
15
- value = map.get(key);
22
+ if (call(has, map, key)) {
23
+ value = call(get, map, key);
16
24
  if (isCallable(updateFn)) {
17
25
  value = updateFn(value);
18
- map.set(key, value);
26
+ call(set, map, key, value);
19
27
  }
20
28
  } else if (isCallable(insertFn)) {
21
29
  value = insertFn();
22
- map.set(key, value);
30
+ call(set, map, key, value);
23
31
  } return value;
24
32
  };
@@ -1,16 +1,13 @@
1
1
  // `Math.scale` method implementation
2
2
  // https://rwaldron.github.io/proposal-math-extensions/
3
3
  module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {
4
- if (
5
- arguments.length === 0
6
- /* eslint-disable no-self-compare -- NaN check */
7
- || x != x
8
- || inLow != inLow
9
- || inHigh != inHigh
10
- || outLow != outLow
11
- || outHigh != outHigh
12
- /* eslint-enable no-self-compare -- NaN check */
13
- ) return NaN;
14
- if (x === Infinity || x === -Infinity) return x;
15
- return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow;
4
+ var nx = +x;
5
+ var nInLow = +inLow;
6
+ var nInHigh = +inHigh;
7
+ var nOutLow = +outLow;
8
+ var nOutHigh = +outHigh;
9
+ // eslint-disable-next-line no-self-compare -- NaN check
10
+ if (nx != nx || nInLow != nInLow || nInHigh != nInHigh || nOutLow != nOutLow || nOutHigh != nOutHigh) return NaN;
11
+ if (nx === Infinity || nx === -Infinity) return nx;
12
+ return (nx - nInLow) * (nOutHigh - nOutLow) / (nInHigh - nInLow) + nOutLow;
16
13
  };
@@ -1,4 +1,5 @@
1
1
  var global = require('../internals/global');
2
+ var bind = require('../internals/function-bind-context');
2
3
  var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
3
4
  var macrotask = require('../internals/task').set;
4
5
  var IS_IOS = require('../internals/engine-is-ios');
@@ -50,9 +51,9 @@ if (!queueMicrotask) {
50
51
  promise = Promise.resolve(undefined);
51
52
  // workaround of WebKit ~ iOS Safari 10.1 bug
52
53
  promise.constructor = Promise;
53
- then = promise.then;
54
+ then = bind(promise.then, promise);
54
55
  notify = function () {
55
- then.call(promise, flush);
56
+ then(flush);
56
57
  };
57
58
  // Node.js without promises
58
59
  } else if (IS_NODE) {
@@ -66,9 +67,10 @@ if (!queueMicrotask) {
66
67
  // - onreadystatechange
67
68
  // - setTimeout
68
69
  } else {
70
+ // strange IE + webpack dev server bug - use .bind(global)
71
+ macrotask = bind(macrotask, global);
69
72
  notify = function () {
70
- // strange IE + webpack dev server bug - use .call(global)
71
- macrotask.call(global, flush);
73
+ macrotask(flush);
72
74
  };
73
75
  }
74
76
  }
@@ -0,0 +1,5 @@
1
+ var toString = require('../internals/to-string');
2
+
3
+ module.exports = function (argument, $default) {
4
+ return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);
5
+ };
@@ -1,5 +1,8 @@
1
+ var global = require('../internals/global');
1
2
  var isRegExp = require('../internals/is-regexp');
2
3
 
4
+ var TypeError = global.TypeError;
5
+
3
6
  module.exports = function (it) {
4
7
  if (isRegExp(it)) {
5
8
  throw TypeError("The method doesn't accept regular expressions");
@@ -1,20 +1,22 @@
1
1
  var global = require('../internals/global');
2
2
  var fails = require('../internals/fails');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
3
4
  var toString = require('../internals/to-string');
4
5
  var trim = require('../internals/string-trim').trim;
5
6
  var whitespaces = require('../internals/whitespaces');
6
7
 
7
- var $parseFloat = global.parseFloat;
8
+ var charAt = uncurryThis(''.charAt);
9
+ var n$ParseFloat = global.parseFloat;
8
10
  var Symbol = global.Symbol;
9
11
  var ITERATOR = Symbol && Symbol.iterator;
10
- var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity
12
+ var FORCED = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity
11
13
  // MS Edge 18- broken with boxed symbols
12
- || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));
14
+ || (ITERATOR && !fails(function () { n$ParseFloat(Object(ITERATOR)); }));
13
15
 
14
16
  // `parseFloat` method
15
17
  // https://tc39.es/ecma262/#sec-parsefloat-string
16
18
  module.exports = FORCED ? function parseFloat(string) {
17
19
  var trimmedString = trim(toString(string));
18
- var result = $parseFloat(trimmedString);
19
- return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;
20
- } : $parseFloat;
20
+ var result = n$ParseFloat(trimmedString);
21
+ return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;
22
+ } : n$ParseFloat;
@@ -1,5 +1,6 @@
1
1
  var global = require('../internals/global');
2
2
  var fails = require('../internals/fails');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
3
4
  var toString = require('../internals/to-string');
4
5
  var trim = require('../internals/string-trim').trim;
5
6
  var whitespaces = require('../internals/whitespaces');
@@ -7,7 +8,8 @@ var whitespaces = require('../internals/whitespaces');
7
8
  var $parseInt = global.parseInt;
8
9
  var Symbol = global.Symbol;
9
10
  var ITERATOR = Symbol && Symbol.iterator;
10
- var hex = /^[+-]?0[Xx]/;
11
+ var hex = /^[+-]?0x/i;
12
+ var exec = uncurryThis(hex.exec);
11
13
  var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22
12
14
  // MS Edge 18- broken with boxed symbols
13
15
  || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));
@@ -16,5 +18,5 @@ var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x1
16
18
  // https://tc39.es/ecma262/#sec-parseint-string-radix
17
19
  module.exports = FORCED ? function parseInt(string, radix) {
18
20
  var S = trim(toString(string));
19
- return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));
21
+ return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));
20
22
  } : $parseInt;
@@ -1,4 +1,5 @@
1
1
  'use strict';
2
+ var global = require('../internals/global');
2
3
  var InternalStateModule = require('../internals/internal-state');
3
4
  var createIteratorConstructor = require('../internals/create-iterator-constructor');
4
5
  var isObject = require('../internals/is-object');
@@ -11,6 +12,9 @@ var NUMERIC_RANGE_ITERATOR = 'NumericRangeIterator';
11
12
  var setInternalState = InternalStateModule.set;
12
13
  var getInternalState = InternalStateModule.getterFor(NUMERIC_RANGE_ITERATOR);
13
14
 
15
+ var RangeError = global.RangeError;
16
+ var TypeError = global.TypeError;
17
+
14
18
  var $RangeIterator = createIteratorConstructor(function NumericRangeIterator(start, end, option, type, zero, one) {
15
19
  if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) {
16
20
  throw new TypeError(INCORRECT_RANGE);
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
  var DESCRIPTORS = require('../internals/descriptors');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
4
+ var call = require('../internals/function-call');
3
5
  var fails = require('../internals/fails');
4
6
  var objectKeys = require('../internals/object-keys');
5
7
  var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
@@ -11,6 +13,7 @@ var IndexedObject = require('../internals/indexed-object');
11
13
  var $assign = Object.assign;
12
14
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
13
15
  var defineProperty = Object.defineProperty;
16
+ var concat = uncurryThis([].concat);
14
17
 
15
18
  // `Object.assign` method
16
19
  // https://tc39.es/ecma262/#sec-object.assign
@@ -42,13 +45,13 @@ module.exports = !$assign || fails(function () {
42
45
  var propertyIsEnumerable = propertyIsEnumerableModule.f;
43
46
  while (argumentsLength > index) {
44
47
  var S = IndexedObject(arguments[index++]);
45
- var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);
48
+ var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);
46
49
  var length = keys.length;
47
50
  var j = 0;
48
51
  var key;
49
52
  while (length > j) {
50
53
  key = keys[j++];
51
- if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];
54
+ if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];
52
55
  }
53
56
  } return T;
54
57
  } : $assign;
@@ -1,6 +1,7 @@
1
1
  var DESCRIPTORS = require('../internals/descriptors');
2
2
  var definePropertyModule = require('../internals/object-define-property');
3
3
  var anObject = require('../internals/an-object');
4
+ var toIndexedObject = require('../internals/to-indexed-object');
4
5
  var objectKeys = require('../internals/object-keys');
5
6
 
6
7
  // `Object.defineProperties` method
@@ -8,10 +9,11 @@ var objectKeys = require('../internals/object-keys');
8
9
  // eslint-disable-next-line es/no-object-defineproperties -- safe
9
10
  module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
10
11
  anObject(O);
12
+ var props = toIndexedObject(Properties);
11
13
  var keys = objectKeys(Properties);
12
14
  var length = keys.length;
13
15
  var index = 0;
14
16
  var key;
15
- while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);
17
+ while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);
16
18
  return O;
17
19
  };
@@ -1,8 +1,10 @@
1
+ var global = require('../internals/global');
1
2
  var DESCRIPTORS = require('../internals/descriptors');
2
3
  var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
3
4
  var anObject = require('../internals/an-object');
4
5
  var toPropertyKey = require('../internals/to-property-key');
5
6
 
7
+ var TypeError = global.TypeError;
6
8
  // eslint-disable-next-line es/no-object-defineproperty -- safe
7
9
  var $defineProperty = Object.defineProperty;
8
10
 
@@ -1,9 +1,10 @@
1
1
  var DESCRIPTORS = require('../internals/descriptors');
2
+ var call = require('../internals/function-call');
2
3
  var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
3
4
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
4
5
  var toIndexedObject = require('../internals/to-indexed-object');
5
6
  var toPropertyKey = require('../internals/to-property-key');
6
- var has = require('../internals/has');
7
+ var hasOwn = require('../internals/has-own-property');
7
8
  var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
8
9
 
9
10
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
@@ -17,5 +18,5 @@ exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDes
17
18
  if (IE8_DOM_DEFINE) try {
18
19
  return $getOwnPropertyDescriptor(O, P);
19
20
  } catch (error) { /* empty */ }
20
- if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
21
+ if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);
21
22
  };
@@ -1,8 +1,8 @@
1
1
  /* eslint-disable es/no-object-getownpropertynames -- safe */
2
+ var classof = require('../internals/classof-raw');
2
3
  var toIndexedObject = require('../internals/to-indexed-object');
3
4
  var $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;
4
-
5
- var toString = {}.toString;
5
+ var arraySlice = require('../internals/array-slice');
6
6
 
7
7
  var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
8
8
  ? Object.getOwnPropertyNames(window) : [];
@@ -11,13 +11,13 @@ var getWindowNames = function (it) {
11
11
  try {
12
12
  return $getOwnPropertyNames(it);
13
13
  } catch (error) {
14
- return windowNames.slice();
14
+ return arraySlice(windowNames);
15
15
  }
16
16
  };
17
17
 
18
18
  // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
19
19
  module.exports.f = function getOwnPropertyNames(it) {
20
- return windowNames && toString.call(it) == '[object Window]'
20
+ return windowNames && classof(it) == 'Window'
21
21
  ? getWindowNames(it)
22
22
  : $getOwnPropertyNames(toIndexedObject(it));
23
23
  };
@@ -1,18 +1,19 @@
1
- var has = require('../internals/has');
1
+ var global = require('../internals/global');
2
+ var hasOwn = require('../internals/has-own-property');
2
3
  var isCallable = require('../internals/is-callable');
3
4
  var toObject = require('../internals/to-object');
4
5
  var sharedKey = require('../internals/shared-key');
5
6
  var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');
6
7
 
7
8
  var IE_PROTO = sharedKey('IE_PROTO');
9
+ var Object = global.Object;
8
10
  var ObjectPrototype = Object.prototype;
9
11
 
10
12
  // `Object.getPrototypeOf` method
11
13
  // https://tc39.es/ecma262/#sec-object.getprototypeof
12
- // eslint-disable-next-line es/no-object-getprototypeof -- safe
13
14
  module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
14
15
  var object = toObject(O);
15
- if (has(object, IE_PROTO)) return object[IE_PROTO];
16
+ if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
16
17
  var constructor = object.constructor;
17
18
  if (isCallable(constructor) && object instanceof constructor) {
18
19
  return constructor.prototype;
@@ -0,0 +1,3 @@
1
+ var uncurryThis = require('../internals/function-uncurry-this');
2
+
3
+ module.exports = uncurryThis({}.isPrototypeOf);
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  var InternalStateModule = require('../internals/internal-state');
3
3
  var createIteratorConstructor = require('../internals/create-iterator-constructor');
4
- var has = require('../internals/has');
4
+ var hasOwn = require('../internals/has-own-property');
5
5
  var objectKeys = require('../internals/object-keys');
6
6
  var toObject = require('../internals/to-object');
7
7
 
@@ -28,7 +28,7 @@ module.exports = createIteratorConstructor(function ObjectIterator(source, mode)
28
28
  }
29
29
  var key = keys[state.index++];
30
30
  var object = state.object;
31
- if (!has(object, key)) continue;
31
+ if (!hasOwn(object, key)) continue;
32
32
  switch (state.mode) {
33
33
  case 'keys': return { value: key, done: false };
34
34
  case 'values': return { value: object[key], done: false };
@@ -1,17 +1,20 @@
1
- var has = require('../internals/has');
1
+ var uncurryThis = require('../internals/function-uncurry-this');
2
+ var hasOwn = require('../internals/has-own-property');
2
3
  var toIndexedObject = require('../internals/to-indexed-object');
3
4
  var indexOf = require('../internals/array-includes').indexOf;
4
5
  var hiddenKeys = require('../internals/hidden-keys');
5
6
 
7
+ var push = uncurryThis([].push);
8
+
6
9
  module.exports = function (object, names) {
7
10
  var O = toIndexedObject(object);
8
11
  var i = 0;
9
12
  var result = [];
10
13
  var key;
11
- for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
14
+ for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);
12
15
  // Don't enum bug & hidden keys
13
- while (names.length > i) if (has(O, key = names[i++])) {
14
- ~indexOf(result, key) || result.push(key);
16
+ while (names.length > i) if (hasOwn(O, key = names[i++])) {
17
+ ~indexOf(result, key) || push(result, key);
15
18
  }
16
19
  return result;
17
20
  };
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable no-proto -- safe */
2
+ var uncurryThis = require('../internals/function-uncurry-this');
2
3
  var anObject = require('../internals/an-object');
3
4
  var aPossiblePrototype = require('../internals/a-possible-prototype');
4
5
 
@@ -12,14 +13,14 @@ module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
12
13
  var setter;
13
14
  try {
14
15
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
15
- setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
16
- setter.call(test, []);
16
+ setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);
17
+ setter(test, []);
17
18
  CORRECT_SETTER = test instanceof Array;
18
19
  } catch (error) { /* empty */ }
19
20
  return function setPrototypeOf(O, proto) {
20
21
  anObject(O);
21
22
  aPossiblePrototype(proto);
22
- if (CORRECT_SETTER) setter.call(O, proto);
23
+ if (CORRECT_SETTER) setter(O, proto);
23
24
  else O.__proto__ = proto;
24
25
  return O;
25
26
  };
@@ -1,7 +1,11 @@
1
1
  var DESCRIPTORS = require('../internals/descriptors');
2
+ var uncurryThis = require('../internals/function-uncurry-this');
2
3
  var objectKeys = require('../internals/object-keys');
3
4
  var toIndexedObject = require('../internals/to-indexed-object');
4
- var propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;
5
+ var $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;
6
+
7
+ var propertyIsEnumerable = uncurryThis($propertyIsEnumerable);
8
+ var push = uncurryThis([].push);
5
9
 
6
10
  // `Object.{ entries, values }` methods implementation
7
11
  var createMethod = function (TO_ENTRIES) {
@@ -14,8 +18,8 @@ var createMethod = function (TO_ENTRIES) {
14
18
  var key;
15
19
  while (length > i) {
16
20
  key = keys[i++];
17
- if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {
18
- result.push(TO_ENTRIES ? [key, O[key]] : O[key]);
21
+ if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {
22
+ push(result, TO_ENTRIES ? [key, O[key]] : O[key]);
19
23
  }
20
24
  }
21
25
  return result;
@@ -1,12 +1,16 @@
1
+ var global = require('../internals/global');
2
+ var call = require('../internals/function-call');
1
3
  var isCallable = require('../internals/is-callable');
2
4
  var isObject = require('../internals/is-object');
3
5
 
6
+ var TypeError = global.TypeError;
7
+
4
8
  // `OrdinaryToPrimitive` abstract operation
5
9
  // https://tc39.es/ecma262/#sec-ordinarytoprimitive
6
10
  module.exports = function (input, pref) {
7
11
  var fn, val;
8
- if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;
9
- if (isCallable(fn = input.valueOf) && !isObject(val = fn.call(input))) return val;
10
- if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;
12
+ if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
13
+ if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;
14
+ if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
11
15
  throw TypeError("Can't convert object to primitive value");
12
16
  };
@@ -1,11 +1,14 @@
1
1
  var getBuiltIn = require('../internals/get-built-in');
2
+ var uncurryThis = require('../internals/function-uncurry-this');
2
3
  var getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');
3
4
  var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
4
5
  var anObject = require('../internals/an-object');
5
6
 
7
+ var concat = uncurryThis([].concat);
8
+
6
9
  // all object keys, includes non-enumerable and symbols
7
10
  module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
8
11
  var keys = getOwnPropertyNamesModule.f(anObject(it));
9
12
  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
10
- return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
13
+ return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;
11
14
  };
@@ -1,6 +1,6 @@
1
1
  var global = require('../internals/global');
2
2
  var isCallable = require('../internals/is-callable');
3
- var has = require('../internals/has');
3
+ var hasOwn = require('../internals/has-own-property');
4
4
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
5
5
  var setGlobal = require('../internals/set-global');
6
6
  var inspectSource = require('../internals/inspect-source');
@@ -21,7 +21,7 @@ var TEMPLATE = String(String).split('String');
21
21
  if (String(name).slice(0, 7) === 'Symbol(') {
22
22
  name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']';
23
23
  }
24
- if (!has(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
24
+ if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
25
25
  createNonEnumerableProperty(value, 'name', name);
26
26
  }
27
27
  state = enforceInternalState(value);
@@ -1,8 +1,14 @@
1
1
  // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
2
- var Map = require('../modules/es.map');
3
- var WeakMap = require('../modules/es.weak-map');
2
+ require('../modules/es.map');
3
+ require('../modules/es.weak-map');
4
+ var getBuiltIn = require('../internals/get-built-in');
5
+ var uncurryThis = require('../internals/function-uncurry-this');
4
6
  var shared = require('../internals/shared');
5
7
 
8
+ var Map = getBuiltIn('Map');
9
+ var WeakMap = getBuiltIn('WeakMap');
10
+ var push = uncurryThis([].push);
11
+
6
12
  var metadata = shared('metadata');
7
13
  var store = metadata.store || (metadata.store = new WeakMap());
8
14
 
@@ -36,7 +42,7 @@ var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {
36
42
  var ordinaryOwnMetadataKeys = function (target, targetKey) {
37
43
  var metadataMap = getOrCreateMetadataMap(target, targetKey, false);
38
44
  var keys = [];
39
- if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });
45
+ if (metadataMap) metadataMap.forEach(function (_, key) { push(keys, key); });
40
46
  return keys;
41
47
  };
42
48
 
@@ -1,17 +1,21 @@
1
+ var global = require('../internals/global');
2
+ var call = require('../internals/function-call');
1
3
  var anObject = require('../internals/an-object');
2
4
  var isCallable = require('../internals/is-callable');
3
5
  var classof = require('../internals/classof-raw');
4
6
  var regexpExec = require('../internals/regexp-exec');
5
7
 
8
+ var TypeError = global.TypeError;
9
+
6
10
  // `RegExpExec` abstract operation
7
11
  // https://tc39.es/ecma262/#sec-regexpexec
8
12
  module.exports = function (R, S) {
9
13
  var exec = R.exec;
10
14
  if (isCallable(exec)) {
11
- var result = exec.call(R, S);
15
+ var result = call(exec, R, S);
12
16
  if (result !== null) anObject(result);
13
17
  return result;
14
18
  }
15
- if (classof(R) === 'RegExp') return regexpExec.call(R, S);
19
+ if (classof(R) === 'RegExp') return call(regexpExec, R, S);
16
20
  throw TypeError('RegExp#exec called on incompatible receiver');
17
21
  };
@@ -1,6 +1,8 @@
1
1
  'use strict';
2
2
  /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
3
3
  /* eslint-disable regexp/no-useless-quantifier -- testing */
4
+ var call = require('../internals/function-call');
5
+ var uncurryThis = require('../internals/function-uncurry-this');
4
6
  var toString = require('../internals/to-string');
5
7
  var regexpFlags = require('../internals/regexp-flags');
6
8
  var stickyHelpers = require('../internals/regexp-sticky-helpers');
@@ -10,16 +12,19 @@ var getInternalState = require('../internals/internal-state').get;
10
12
  var UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');
11
13
  var UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');
12
14
 
13
- var nativeExec = RegExp.prototype.exec;
14
15
  var nativeReplace = shared('native-string-replace', String.prototype.replace);
15
-
16
+ var nativeExec = RegExp.prototype.exec;
16
17
  var patchedExec = nativeExec;
18
+ var charAt = uncurryThis(''.charAt);
19
+ var indexOf = uncurryThis(''.indexOf);
20
+ var replace = uncurryThis(''.replace);
21
+ var stringSlice = uncurryThis(''.slice);
17
22
 
18
23
  var UPDATES_LAST_INDEX_WRONG = (function () {
19
24
  var re1 = /a/;
20
25
  var re2 = /b*/g;
21
- nativeExec.call(re1, 'a');
22
- nativeExec.call(re2, 'a');
26
+ call(nativeExec, re1, 'a');
27
+ call(nativeExec, re2, 'a');
23
28
  return re1.lastIndex !== 0 || re2.lastIndex !== 0;
24
29
  })();
25
30
 
@@ -41,27 +46,27 @@ if (PATCH) {
41
46
 
42
47
  if (raw) {
43
48
  raw.lastIndex = re.lastIndex;
44
- result = patchedExec.call(raw, str);
49
+ result = call(patchedExec, raw, str);
45
50
  re.lastIndex = raw.lastIndex;
46
51
  return result;
47
52
  }
48
53
 
49
54
  var groups = state.groups;
50
55
  var sticky = UNSUPPORTED_Y && re.sticky;
51
- var flags = regexpFlags.call(re);
56
+ var flags = call(regexpFlags, re);
52
57
  var source = re.source;
53
58
  var charsAdded = 0;
54
59
  var strCopy = str;
55
60
 
56
61
  if (sticky) {
57
- flags = flags.replace('y', '');
58
- if (flags.indexOf('g') === -1) {
62
+ flags = replace(flags, 'y', '');
63
+ if (indexOf(flags, 'g') === -1) {
59
64
  flags += 'g';
60
65
  }
61
66
 
62
- strCopy = str.slice(re.lastIndex);
67
+ strCopy = stringSlice(str, re.lastIndex);
63
68
  // Support anchored sticky behavior.
64
- if (re.lastIndex > 0 && (!re.multiline || re.multiline && str.charAt(re.lastIndex - 1) !== '\n')) {
69
+ if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\n')) {
65
70
  source = '(?: ' + source + ')';
66
71
  strCopy = ' ' + strCopy;
67
72
  charsAdded++;
@@ -76,12 +81,12 @@ if (PATCH) {
76
81
  }
77
82
  if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
78
83
 
79
- match = nativeExec.call(sticky ? reCopy : re, strCopy);
84
+ match = call(nativeExec, sticky ? reCopy : re, strCopy);
80
85
 
81
86
  if (sticky) {
82
87
  if (match) {
83
- match.input = match.input.slice(charsAdded);
84
- match[0] = match[0].slice(charsAdded);
88
+ match.input = stringSlice(match.input, charsAdded);
89
+ match[0] = stringSlice(match[0], charsAdded);
85
90
  match.index = re.lastIndex;
86
91
  re.lastIndex += match[0].length;
87
92
  } else re.lastIndex = 0;
@@ -91,7 +96,7 @@ if (PATCH) {
91
96
  if (NPCG_INCLUDED && match && match.length > 1) {
92
97
  // Fix browsers whose `exec` methods don't consistently return `undefined`
93
98
  // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
94
- nativeReplace.call(match[0], reCopy, function () {
99
+ call(nativeReplace, match[0], reCopy, function () {
95
100
  for (i = 1; i < arguments.length - 2; i++) {
96
101
  if (arguments[i] === undefined) match[i] = undefined;
97
102
  }
@@ -1,3 +1,7 @@
1
+ var global = require('../internals/global');
2
+
3
+ var TypeError = global.TypeError;
4
+
1
5
  // `RequireObjectCoercible` abstract operation
2
6
  // https://tc39.es/ecma262/#sec-requireobjectcoercible
3
7
  module.exports = function (it) {
@@ -1,9 +1,11 @@
1
1
  var global = require('../internals/global');
2
2
 
3
+ // eslint-disable-next-line es/no-object-defineproperty -- safe
4
+ var defineProperty = Object.defineProperty;
5
+
3
6
  module.exports = function (key, value) {
4
7
  try {
5
- // eslint-disable-next-line es/no-object-defineproperty -- safe
6
- Object.defineProperty(global, key, { value: value, configurable: true, writable: true });
8
+ defineProperty(global, key, { value: value, configurable: true, writable: true });
7
9
  } catch (error) {
8
10
  global[key] = value;
9
11
  } return value;