core-js 3.8.0 → 3.9.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 (331) hide show
  1. package/LICENSE +1 -1
  2. package/es/json/stringify.js +1 -1
  3. package/es/promise/all-settled.js +2 -0
  4. package/es/promise/any.js +2 -0
  5. package/features/array/find-last-index.js +4 -0
  6. package/features/array/find-last.js +4 -0
  7. package/features/array/index.js +2 -0
  8. package/features/array/virtual/find-last-index.js +4 -0
  9. package/features/array/virtual/find-last.js +4 -0
  10. package/features/array/virtual/index.js +3 -0
  11. package/features/instance/find-last-index.js +8 -0
  12. package/features/instance/find-last.js +8 -0
  13. package/features/typed-array/find-last-index.js +1 -0
  14. package/features/typed-array/find-last.js +1 -0
  15. package/features/typed-array/index.js +4 -0
  16. package/features/typed-array/unique-by.js +2 -0
  17. package/internals/add-to-unscopables.js +1 -1
  18. package/internals/advance-string-index.js +1 -1
  19. package/internals/array-buffer-view-core.js +14 -3
  20. package/internals/array-buffer.js +6 -4
  21. package/internals/array-copy-within.js +1 -1
  22. package/internals/array-fill.js +1 -1
  23. package/internals/array-for-each.js +2 -4
  24. package/internals/array-from.js +1 -1
  25. package/internals/array-includes.js +4 -4
  26. package/internals/array-iteration-from-last.js +34 -0
  27. package/internals/array-iteration.js +7 -7
  28. package/internals/array-last-index-of.js +2 -5
  29. package/internals/array-method-is-strict.js +1 -1
  30. package/internals/array-reduce.js +2 -2
  31. package/internals/array-species-create.js +1 -1
  32. package/internals/array-unique-by.js +32 -0
  33. package/internals/async-iterator-prototype.js +1 -1
  34. package/internals/check-correctness-of-iteration.js +1 -1
  35. package/internals/collection.js +9 -5
  36. package/internals/create-html.js +1 -1
  37. package/internals/date-to-iso-string.js +1 -1
  38. package/internals/descriptors.js +1 -1
  39. package/internals/engine-is-webos-webkit.js +3 -0
  40. package/internals/fix-regexp-well-known-symbol-logic.js +1 -0
  41. package/internals/function-bind.js +2 -2
  42. package/internals/get-map-iterator.js +1 -1
  43. package/internals/get-set-iterator.js +1 -1
  44. package/internals/get-substitution.js +40 -0
  45. package/internals/global.js +2 -2
  46. package/internals/ieee754.js +2 -4
  47. package/internals/indexed-object.js +1 -1
  48. package/internals/is-array.js +1 -1
  49. package/internals/is-integer.js +1 -1
  50. package/internals/is-iterable.js +1 -1
  51. package/internals/is-regexp.js +1 -1
  52. package/internals/iterators-core.js +10 -3
  53. package/internals/math-expm1.js +1 -1
  54. package/internals/math-fround.js +2 -2
  55. package/internals/math-log1p.js +1 -1
  56. package/internals/math-scale.js +2 -2
  57. package/internals/math-sign.js +2 -2
  58. package/internals/microtask.js +3 -1
  59. package/internals/native-symbol.js +1 -1
  60. package/internals/number-is-finite.js +1 -1
  61. package/internals/number-parse-float.js +1 -1
  62. package/internals/number-parse-int.js +1 -1
  63. package/internals/object-assign.js +3 -3
  64. package/internals/object-create.js +2 -2
  65. package/internals/object-define-properties.js +1 -1
  66. package/internals/object-define-property.js +1 -1
  67. package/internals/object-get-own-property-descriptor.js +1 -1
  68. package/internals/object-get-own-property-names.js +1 -1
  69. package/internals/object-get-prototype-of.js +1 -1
  70. package/internals/object-keys.js +1 -1
  71. package/internals/object-property-is-enumerable.js +1 -1
  72. package/internals/object-prototype-accessors-forced.js +1 -1
  73. package/internals/object-set-prototype-of.js +2 -2
  74. package/internals/object-to-array.js +2 -2
  75. package/internals/object-to-string.js +1 -1
  76. package/internals/range-iterator.js +1 -1
  77. package/internals/regexp-exec-abstract.js +1 -1
  78. package/internals/regexp-exec.js +1 -0
  79. package/internals/regexp-flags.js +1 -1
  80. package/internals/require-object-coercible.js +1 -1
  81. package/internals/same-value-zero.js +2 -2
  82. package/internals/same-value.js +2 -2
  83. package/internals/shared.js +2 -2
  84. package/internals/species-constructor.js +1 -1
  85. package/internals/string-multibyte.js +1 -1
  86. package/internals/string-pad-webkit-bug.js +1 -1
  87. package/internals/string-pad.js +2 -2
  88. package/internals/string-punycode-to-ascii.js +1 -1
  89. package/internals/string-repeat.js +1 -1
  90. package/internals/string-trim.js +3 -3
  91. package/internals/task.js +2 -2
  92. package/internals/this-number-value.js +1 -1
  93. package/internals/to-index.js +1 -1
  94. package/internals/to-integer.js +1 -1
  95. package/internals/to-length.js +1 -1
  96. package/internals/to-object.js +1 -1
  97. package/internals/to-primitive.js +1 -1
  98. package/internals/typed-array-constructors-require-wrappers.js +1 -1
  99. package/internals/typed-array-from-species-and-list.js +11 -0
  100. package/internals/use-symbol-as-uid.js +1 -2
  101. package/internals/whitespaces.js +2 -2
  102. package/modules/es.aggregate-error.js +3 -0
  103. package/modules/es.array-buffer.constructor.js +1 -1
  104. package/modules/es.array-buffer.is-view.js +1 -1
  105. package/modules/es.array-buffer.slice.js +1 -1
  106. package/modules/es.array.concat.js +3 -2
  107. package/modules/es.array.copy-within.js +2 -2
  108. package/modules/es.array.every.js +2 -4
  109. package/modules/es.array.fill.js +2 -2
  110. package/modules/es.array.filter.js +2 -5
  111. package/modules/es.array.find-index.js +3 -6
  112. package/modules/es.array.find.js +3 -6
  113. package/modules/es.array.flat-map.js +1 -1
  114. package/modules/es.array.flat.js +1 -1
  115. package/modules/es.array.for-each.js +1 -1
  116. package/modules/es.array.from.js +1 -1
  117. package/modules/es.array.includes.js +3 -6
  118. package/modules/es.array.index-of.js +2 -4
  119. package/modules/es.array.is-array.js +1 -1
  120. package/modules/es.array.iterator.js +9 -9
  121. package/modules/es.array.join.js +1 -1
  122. package/modules/es.array.last-index-of.js +1 -1
  123. package/modules/es.array.map.js +2 -5
  124. package/modules/es.array.of.js +1 -1
  125. package/modules/es.array.reduce-right.js +2 -5
  126. package/modules/es.array.reduce.js +2 -4
  127. package/modules/es.array.reverse.js +2 -2
  128. package/modules/es.array.slice.js +2 -4
  129. package/modules/es.array.some.js +2 -4
  130. package/modules/es.array.sort.js +1 -1
  131. package/modules/es.array.species.js +1 -1
  132. package/modules/es.array.splice.js +2 -4
  133. package/modules/es.array.unscopables.flat-map.js +1 -0
  134. package/modules/es.array.unscopables.flat.js +1 -0
  135. package/modules/es.data-view.js +1 -1
  136. package/modules/es.date.now.js +1 -1
  137. package/modules/es.date.to-iso-string.js +1 -1
  138. package/modules/es.date.to-json.js +2 -2
  139. package/modules/es.date.to-primitive.js +1 -1
  140. package/modules/es.date.to-string.js +2 -2
  141. package/modules/es.function.bind.js +1 -1
  142. package/modules/es.function.has-instance.js +1 -1
  143. package/modules/es.function.name.js +1 -1
  144. package/modules/es.global-this.js +1 -1
  145. package/modules/es.json.stringify.js +3 -1
  146. package/modules/es.json.to-string-tag.js +1 -1
  147. package/modules/es.map.js +1 -1
  148. package/modules/es.math.acosh.js +1 -1
  149. package/modules/es.math.asinh.js +1 -1
  150. package/modules/es.math.atanh.js +1 -1
  151. package/modules/es.math.cbrt.js +1 -1
  152. package/modules/es.math.clz32.js +1 -1
  153. package/modules/es.math.cosh.js +1 -1
  154. package/modules/es.math.expm1.js +1 -1
  155. package/modules/es.math.fround.js +1 -1
  156. package/modules/es.math.hypot.js +3 -2
  157. package/modules/es.math.imul.js +1 -1
  158. package/modules/es.math.log10.js +1 -1
  159. package/modules/es.math.log1p.js +1 -1
  160. package/modules/es.math.log2.js +1 -1
  161. package/modules/es.math.sign.js +1 -1
  162. package/modules/es.math.sinh.js +1 -1
  163. package/modules/es.math.tanh.js +1 -1
  164. package/modules/es.math.to-string-tag.js +1 -1
  165. package/modules/es.math.trunc.js +1 -1
  166. package/modules/es.number.constructor.js +5 -3
  167. package/modules/es.number.epsilon.js +1 -1
  168. package/modules/es.number.is-finite.js +1 -1
  169. package/modules/es.number.is-integer.js +1 -1
  170. package/modules/es.number.is-nan.js +2 -2
  171. package/modules/es.number.is-safe-integer.js +1 -1
  172. package/modules/es.number.max-safe-integer.js +1 -1
  173. package/modules/es.number.min-safe-integer.js +1 -1
  174. package/modules/es.number.parse-float.js +1 -1
  175. package/modules/es.number.parse-int.js +1 -1
  176. package/modules/es.number.to-fixed.js +44 -45
  177. package/modules/es.number.to-precision.js +1 -1
  178. package/modules/es.object.assign.js +1 -1
  179. package/modules/es.object.create.js +1 -1
  180. package/modules/es.object.define-getter.js +1 -1
  181. package/modules/es.object.define-properties.js +1 -1
  182. package/modules/es.object.define-property.js +1 -1
  183. package/modules/es.object.define-setter.js +1 -1
  184. package/modules/es.object.entries.js +1 -1
  185. package/modules/es.object.freeze.js +1 -1
  186. package/modules/es.object.get-own-property-descriptor.js +1 -1
  187. package/modules/es.object.get-own-property-descriptors.js +1 -1
  188. package/modules/es.object.get-own-property-names.js +1 -1
  189. package/modules/es.object.get-prototype-of.js +1 -1
  190. package/modules/es.object.is-extensible.js +1 -1
  191. package/modules/es.object.is-frozen.js +1 -1
  192. package/modules/es.object.is-sealed.js +1 -1
  193. package/modules/es.object.is.js +1 -1
  194. package/modules/es.object.keys.js +1 -1
  195. package/modules/es.object.lookup-getter.js +1 -1
  196. package/modules/es.object.lookup-setter.js +1 -1
  197. package/modules/es.object.prevent-extensions.js +1 -1
  198. package/modules/es.object.seal.js +1 -1
  199. package/modules/es.object.set-prototype-of.js +1 -1
  200. package/modules/es.object.to-string.js +1 -1
  201. package/modules/es.object.values.js +1 -1
  202. package/modules/es.parse-float.js +1 -1
  203. package/modules/es.parse-int.js +1 -1
  204. package/modules/es.promise.all-settled.js +1 -1
  205. package/modules/es.promise.any.js +1 -1
  206. package/modules/es.promise.finally.js +1 -1
  207. package/modules/es.promise.js +8 -8
  208. package/modules/es.reflect.apply.js +1 -1
  209. package/modules/es.reflect.construct.js +1 -1
  210. package/modules/es.reflect.define-property.js +2 -2
  211. package/modules/es.reflect.delete-property.js +1 -1
  212. package/modules/es.reflect.get-own-property-descriptor.js +1 -1
  213. package/modules/es.reflect.get-prototype-of.js +1 -1
  214. package/modules/es.reflect.get.js +1 -1
  215. package/modules/es.reflect.has.js +1 -1
  216. package/modules/es.reflect.is-extensible.js +1 -1
  217. package/modules/es.reflect.own-keys.js +1 -1
  218. package/modules/es.reflect.prevent-extensions.js +1 -1
  219. package/modules/es.reflect.set-prototype-of.js +1 -1
  220. package/modules/es.reflect.set.js +2 -2
  221. package/modules/es.regexp.constructor.js +2 -2
  222. package/modules/es.regexp.exec.js +2 -0
  223. package/modules/es.regexp.flags.js +1 -1
  224. package/modules/es.regexp.sticky.js +1 -0
  225. package/modules/es.regexp.test.js +2 -0
  226. package/modules/es.regexp.to-string.js +1 -1
  227. package/modules/es.set.js +1 -1
  228. package/modules/es.string.anchor.js +1 -1
  229. package/modules/es.string.big.js +1 -1
  230. package/modules/es.string.blink.js +1 -1
  231. package/modules/es.string.bold.js +1 -1
  232. package/modules/es.string.code-point-at.js +1 -1
  233. package/modules/es.string.ends-with.js +1 -1
  234. package/modules/es.string.fixed.js +1 -1
  235. package/modules/es.string.fontcolor.js +1 -1
  236. package/modules/es.string.fontsize.js +1 -1
  237. package/modules/es.string.from-code-point.js +3 -2
  238. package/modules/es.string.includes.js +1 -1
  239. package/modules/es.string.italics.js +1 -1
  240. package/modules/es.string.iterator.js +2 -2
  241. package/modules/es.string.link.js +1 -1
  242. package/modules/es.string.match-all.js +2 -2
  243. package/modules/es.string.match.js +2 -2
  244. package/modules/es.string.pad-end.js +1 -1
  245. package/modules/es.string.pad-start.js +1 -1
  246. package/modules/es.string.raw.js +1 -1
  247. package/modules/es.string.repeat.js +1 -1
  248. package/modules/es.string.replace-all.js +29 -12
  249. package/modules/es.string.replace.js +3 -40
  250. package/modules/es.string.search.js +2 -2
  251. package/modules/es.string.small.js +1 -1
  252. package/modules/es.string.split.js +4 -2
  253. package/modules/es.string.starts-with.js +1 -1
  254. package/modules/es.string.strike.js +1 -1
  255. package/modules/es.string.sub.js +1 -1
  256. package/modules/es.string.sup.js +1 -1
  257. package/modules/es.string.trim-end.js +2 -1
  258. package/modules/es.string.trim-start.js +2 -1
  259. package/modules/es.string.trim.js +1 -1
  260. package/modules/es.symbol.async-iterator.js +1 -1
  261. package/modules/es.symbol.description.js +1 -1
  262. package/modules/es.symbol.has-instance.js +1 -1
  263. package/modules/es.symbol.is-concat-spreadable.js +1 -1
  264. package/modules/es.symbol.iterator.js +1 -1
  265. package/modules/es.symbol.js +13 -13
  266. package/modules/es.symbol.match-all.js +1 -0
  267. package/modules/es.symbol.match.js +1 -1
  268. package/modules/es.symbol.replace.js +1 -1
  269. package/modules/es.symbol.search.js +1 -1
  270. package/modules/es.symbol.species.js +1 -1
  271. package/modules/es.symbol.split.js +1 -1
  272. package/modules/es.symbol.to-primitive.js +1 -1
  273. package/modules/es.symbol.to-string-tag.js +1 -1
  274. package/modules/es.symbol.unscopables.js +1 -1
  275. package/modules/es.typed-array.copy-within.js +1 -1
  276. package/modules/es.typed-array.every.js +1 -1
  277. package/modules/es.typed-array.fill.js +2 -2
  278. package/modules/es.typed-array.filter.js +3 -9
  279. package/modules/es.typed-array.find-index.js +1 -1
  280. package/modules/es.typed-array.find.js +1 -1
  281. package/modules/es.typed-array.float32-array.js +1 -1
  282. package/modules/es.typed-array.float64-array.js +1 -1
  283. package/modules/es.typed-array.for-each.js +1 -1
  284. package/modules/es.typed-array.from.js +1 -1
  285. package/modules/es.typed-array.includes.js +1 -1
  286. package/modules/es.typed-array.index-of.js +1 -1
  287. package/modules/es.typed-array.int16-array.js +1 -1
  288. package/modules/es.typed-array.int32-array.js +1 -1
  289. package/modules/es.typed-array.int8-array.js +1 -1
  290. package/modules/es.typed-array.iterator.js +4 -4
  291. package/modules/es.typed-array.join.js +2 -2
  292. package/modules/es.typed-array.last-index-of.js +2 -2
  293. package/modules/es.typed-array.map.js +1 -1
  294. package/modules/es.typed-array.of.js +1 -1
  295. package/modules/es.typed-array.reduce-right.js +1 -1
  296. package/modules/es.typed-array.reduce.js +1 -1
  297. package/modules/es.typed-array.reverse.js +1 -1
  298. package/modules/es.typed-array.set.js +2 -2
  299. package/modules/es.typed-array.slice.js +2 -2
  300. package/modules/es.typed-array.some.js +1 -1
  301. package/modules/es.typed-array.sort.js +1 -1
  302. package/modules/es.typed-array.subarray.js +1 -1
  303. package/modules/es.typed-array.to-locale-string.js +1 -1
  304. package/modules/es.typed-array.to-string.js +1 -1
  305. package/modules/es.typed-array.uint16-array.js +1 -1
  306. package/modules/es.typed-array.uint32-array.js +1 -1
  307. package/modules/es.typed-array.uint8-array.js +1 -1
  308. package/modules/es.typed-array.uint8-clamped-array.js +1 -1
  309. package/modules/es.weak-map.js +1 -1
  310. package/modules/es.weak-set.js +1 -1
  311. package/modules/esnext.array.find-last-index.js +14 -0
  312. package/modules/esnext.array.find-last.js +14 -0
  313. package/modules/esnext.array.unique-by.js +2 -28
  314. package/modules/esnext.bigint.range.js +1 -1
  315. package/modules/esnext.map.merge.js +1 -1
  316. package/modules/esnext.typed-array.filter-out.js +2 -8
  317. package/modules/esnext.typed-array.find-last-index.js +12 -0
  318. package/modules/esnext.typed-array.find-last.js +12 -0
  319. package/modules/esnext.typed-array.unique-by.js +13 -0
  320. package/modules/web.timers.js +1 -1
  321. package/modules/web.url.js +9 -11
  322. package/package.json +3 -2
  323. package/postinstall.js +2 -2
  324. package/proposals/array-find-from-last.js +5 -0
  325. package/proposals/array-unique.js +1 -0
  326. package/stable/instance/entries.js +1 -1
  327. package/stable/instance/for-each.js +1 -1
  328. package/stable/instance/keys.js +1 -1
  329. package/stable/instance/values.js +1 -1
  330. package/stage/1.js +1 -0
  331. package/internals/array-method-uses-to-length.js +0 -27
@@ -10,9 +10,9 @@ var FORCED = fails(function () {
10
10
  });
11
11
 
12
12
  // `Date.prototype.toJSON` method
13
- // https://tc39.github.io/ecma262/#sec-date.prototype.tojson
13
+ // https://tc39.es/ecma262/#sec-date.prototype.tojson
14
14
  $({ target: 'Date', proto: true, forced: FORCED }, {
15
- // eslint-disable-next-line no-unused-vars
15
+ // eslint-disable-next-line no-unused-vars -- required for `.length`
16
16
  toJSON: function toJSON(key) {
17
17
  var O = toObject(this);
18
18
  var pv = toPrimitive(O);
@@ -6,7 +6,7 @@ var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
6
6
  var DatePrototype = Date.prototype;
7
7
 
8
8
  // `Date.prototype[@@toPrimitive]` method
9
- // https://tc39.github.io/ecma262/#sec-date.prototype-@@toprimitive
9
+ // https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive
10
10
  if (!(TO_PRIMITIVE in DatePrototype)) {
11
11
  createNonEnumerableProperty(DatePrototype, TO_PRIMITIVE, dateToPrimitive);
12
12
  }
@@ -7,11 +7,11 @@ var nativeDateToString = DatePrototype[TO_STRING];
7
7
  var getTime = DatePrototype.getTime;
8
8
 
9
9
  // `Date.prototype.toString` method
10
- // https://tc39.github.io/ecma262/#sec-date.prototype.tostring
10
+ // https://tc39.es/ecma262/#sec-date.prototype.tostring
11
11
  if (new Date(NaN) + '' != INVALID_DATE) {
12
12
  redefine(DatePrototype, TO_STRING, function toString() {
13
13
  var value = getTime.call(this);
14
- // eslint-disable-next-line no-self-compare
14
+ // eslint-disable-next-line no-self-compare -- NaN check
15
15
  return value === value ? nativeDateToString.call(this) : INVALID_DATE;
16
16
  });
17
17
  }
@@ -2,7 +2,7 @@ var $ = require('../internals/export');
2
2
  var bind = require('../internals/function-bind');
3
3
 
4
4
  // `Function.prototype.bind` method
5
- // https://tc39.github.io/ecma262/#sec-function.prototype.bind
5
+ // https://tc39.es/ecma262/#sec-function.prototype.bind
6
6
  $({ target: 'Function', proto: true }, {
7
7
  bind: bind
8
8
  });
@@ -8,7 +8,7 @@ var HAS_INSTANCE = wellKnownSymbol('hasInstance');
8
8
  var FunctionPrototype = Function.prototype;
9
9
 
10
10
  // `Function.prototype[@@hasInstance]` method
11
- // https://tc39.github.io/ecma262/#sec-function.prototype-@@hasinstance
11
+ // https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance
12
12
  if (!(HAS_INSTANCE in FunctionPrototype)) {
13
13
  definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {
14
14
  if (typeof this != 'function' || !isObject(O)) return false;
@@ -7,7 +7,7 @@ var nameRE = /^\s*function ([^ (]*)/;
7
7
  var NAME = 'name';
8
8
 
9
9
  // Function instances `.name` property
10
- // https://tc39.github.io/ecma262/#sec-function-instances-name
10
+ // https://tc39.es/ecma262/#sec-function-instances-name
11
11
  if (DESCRIPTORS && !(NAME in FunctionPrototype)) {
12
12
  defineProperty(FunctionPrototype, NAME, {
13
13
  configurable: true,
@@ -2,7 +2,7 @@ var $ = require('../internals/export');
2
2
  var global = require('../internals/global');
3
3
 
4
4
  // `globalThis` object
5
- // https://github.com/tc39/proposal-global
5
+ // https://tc39.es/ecma262/#sec-globalthis
6
6
  $({ global: true }, {
7
7
  globalThis: global
8
8
  });
@@ -21,9 +21,11 @@ var FORCED = fails(function () {
21
21
  });
22
22
 
23
23
  if ($stringify) {
24
+ // `JSON.stringify` method
25
+ // https://tc39.es/ecma262/#sec-json.stringify
24
26
  // https://github.com/tc39/proposal-well-formed-stringify
25
27
  $({ target: 'JSON', stat: true, forced: FORCED }, {
26
- // eslint-disable-next-line no-unused-vars
28
+ // eslint-disable-next-line no-unused-vars -- required for `.length`
27
29
  stringify: function stringify(it, replacer, space) {
28
30
  var result = $stringify.apply(null, arguments);
29
31
  return typeof result == 'string' ? result.replace(re, fix) : result;
@@ -2,5 +2,5 @@ var global = require('../internals/global');
2
2
  var setToStringTag = require('../internals/set-to-string-tag');
3
3
 
4
4
  // JSON[@@toStringTag] property
5
- // https://tc39.github.io/ecma262/#sec-json-@@tostringtag
5
+ // https://tc39.es/ecma262/#sec-json-@@tostringtag
6
6
  setToStringTag(global.JSON, 'JSON', true);
package/modules/es.map.js CHANGED
@@ -3,7 +3,7 @@ var collection = require('../internals/collection');
3
3
  var collectionStrong = require('../internals/collection-strong');
4
4
 
5
5
  // `Map` constructor
6
- // https://tc39.github.io/ecma262/#sec-map-objects
6
+ // https://tc39.es/ecma262/#sec-map-objects
7
7
  module.exports = collection('Map', function (init) {
8
8
  return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };
9
9
  }, collectionStrong);
@@ -13,7 +13,7 @@ var FORCED = !nativeAcosh
13
13
  || nativeAcosh(Infinity) != Infinity;
14
14
 
15
15
  // `Math.acosh` method
16
- // https://tc39.github.io/ecma262/#sec-math.acosh
16
+ // https://tc39.es/ecma262/#sec-math.acosh
17
17
  $({ target: 'Math', stat: true, forced: FORCED }, {
18
18
  acosh: function acosh(x) {
19
19
  return (x = +x) < 1 ? NaN : x > 94906265.62425156
@@ -9,7 +9,7 @@ function asinh(x) {
9
9
  }
10
10
 
11
11
  // `Math.asinh` method
12
- // https://tc39.github.io/ecma262/#sec-math.asinh
12
+ // https://tc39.es/ecma262/#sec-math.asinh
13
13
  // Tor Browser bug: Math.asinh(0) -> -0
14
14
  $({ target: 'Math', stat: true, forced: !(nativeAsinh && 1 / nativeAsinh(0) > 0) }, {
15
15
  asinh: asinh
@@ -4,7 +4,7 @@ var nativeAtanh = Math.atanh;
4
4
  var log = Math.log;
5
5
 
6
6
  // `Math.atanh` method
7
- // https://tc39.github.io/ecma262/#sec-math.atanh
7
+ // https://tc39.es/ecma262/#sec-math.atanh
8
8
  // Tor Browser bug: Math.atanh(-0) -> 0
9
9
  $({ target: 'Math', stat: true, forced: !(nativeAtanh && 1 / nativeAtanh(-0) < 0) }, {
10
10
  atanh: function atanh(x) {
@@ -5,7 +5,7 @@ var abs = Math.abs;
5
5
  var pow = Math.pow;
6
6
 
7
7
  // `Math.cbrt` method
8
- // https://tc39.github.io/ecma262/#sec-math.cbrt
8
+ // https://tc39.es/ecma262/#sec-math.cbrt
9
9
  $({ target: 'Math', stat: true }, {
10
10
  cbrt: function cbrt(x) {
11
11
  return sign(x = +x) * pow(abs(x), 1 / 3);
@@ -5,7 +5,7 @@ var log = Math.log;
5
5
  var LOG2E = Math.LOG2E;
6
6
 
7
7
  // `Math.clz32` method
8
- // https://tc39.github.io/ecma262/#sec-math.clz32
8
+ // https://tc39.es/ecma262/#sec-math.clz32
9
9
  $({ target: 'Math', stat: true }, {
10
10
  clz32: function clz32(x) {
11
11
  return (x >>>= 0) ? 31 - floor(log(x + 0.5) * LOG2E) : 32;
@@ -6,7 +6,7 @@ var abs = Math.abs;
6
6
  var E = Math.E;
7
7
 
8
8
  // `Math.cosh` method
9
- // https://tc39.github.io/ecma262/#sec-math.cosh
9
+ // https://tc39.es/ecma262/#sec-math.cosh
10
10
  $({ target: 'Math', stat: true, forced: !nativeCosh || nativeCosh(710) === Infinity }, {
11
11
  cosh: function cosh(x) {
12
12
  var t = expm1(abs(x) - 1) + 1;
@@ -2,5 +2,5 @@ var $ = require('../internals/export');
2
2
  var expm1 = require('../internals/math-expm1');
3
3
 
4
4
  // `Math.expm1` method
5
- // https://tc39.github.io/ecma262/#sec-math.expm1
5
+ // https://tc39.es/ecma262/#sec-math.expm1
6
6
  $({ target: 'Math', stat: true, forced: expm1 != Math.expm1 }, { expm1: expm1 });
@@ -2,5 +2,5 @@ var $ = require('../internals/export');
2
2
  var fround = require('../internals/math-fround');
3
3
 
4
4
  // `Math.fround` method
5
- // https://tc39.github.io/ecma262/#sec-math.fround
5
+ // https://tc39.es/ecma262/#sec-math.fround
6
6
  $({ target: 'Math', stat: true }, { fround: fround });
@@ -9,9 +9,10 @@ var sqrt = Math.sqrt;
9
9
  var BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;
10
10
 
11
11
  // `Math.hypot` method
12
- // https://tc39.github.io/ecma262/#sec-math.hypot
12
+ // https://tc39.es/ecma262/#sec-math.hypot
13
13
  $({ target: 'Math', stat: true, forced: BUGGY }, {
14
- hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars
14
+ // eslint-disable-next-line no-unused-vars -- required for `.length`
15
+ hypot: function hypot(value1, value2) {
15
16
  var sum = 0;
16
17
  var i = 0;
17
18
  var aLen = arguments.length;
@@ -8,7 +8,7 @@ var FORCED = fails(function () {
8
8
  });
9
9
 
10
10
  // `Math.imul` method
11
- // https://tc39.github.io/ecma262/#sec-math.imul
11
+ // https://tc39.es/ecma262/#sec-math.imul
12
12
  // some WebKit versions fails with big numbers, some has wrong arity
13
13
  $({ target: 'Math', stat: true, forced: FORCED }, {
14
14
  imul: function imul(x, y) {
@@ -4,7 +4,7 @@ var log = Math.log;
4
4
  var LOG10E = Math.LOG10E;
5
5
 
6
6
  // `Math.log10` method
7
- // https://tc39.github.io/ecma262/#sec-math.log10
7
+ // https://tc39.es/ecma262/#sec-math.log10
8
8
  $({ target: 'Math', stat: true }, {
9
9
  log10: function log10(x) {
10
10
  return log(x) * LOG10E;
@@ -2,5 +2,5 @@ var $ = require('../internals/export');
2
2
  var log1p = require('../internals/math-log1p');
3
3
 
4
4
  // `Math.log1p` method
5
- // https://tc39.github.io/ecma262/#sec-math.log1p
5
+ // https://tc39.es/ecma262/#sec-math.log1p
6
6
  $({ target: 'Math', stat: true }, { log1p: log1p });
@@ -4,7 +4,7 @@ var log = Math.log;
4
4
  var LN2 = Math.LN2;
5
5
 
6
6
  // `Math.log2` method
7
- // https://tc39.github.io/ecma262/#sec-math.log2
7
+ // https://tc39.es/ecma262/#sec-math.log2
8
8
  $({ target: 'Math', stat: true }, {
9
9
  log2: function log2(x) {
10
10
  return log(x) / LN2;
@@ -2,7 +2,7 @@ var $ = require('../internals/export');
2
2
  var sign = require('../internals/math-sign');
3
3
 
4
4
  // `Math.sign` method
5
- // https://tc39.github.io/ecma262/#sec-math.sign
5
+ // https://tc39.es/ecma262/#sec-math.sign
6
6
  $({ target: 'Math', stat: true }, {
7
7
  sign: sign
8
8
  });
@@ -11,7 +11,7 @@ var FORCED = fails(function () {
11
11
  });
12
12
 
13
13
  // `Math.sinh` method
14
- // https://tc39.github.io/ecma262/#sec-math.sinh
14
+ // https://tc39.es/ecma262/#sec-math.sinh
15
15
  // V8 near Chromium 38 has a problem with very small numbers
16
16
  $({ target: 'Math', stat: true, forced: FORCED }, {
17
17
  sinh: function sinh(x) {
@@ -4,7 +4,7 @@ var expm1 = require('../internals/math-expm1');
4
4
  var exp = Math.exp;
5
5
 
6
6
  // `Math.tanh` method
7
- // https://tc39.github.io/ecma262/#sec-math.tanh
7
+ // https://tc39.es/ecma262/#sec-math.tanh
8
8
  $({ target: 'Math', stat: true }, {
9
9
  tanh: function tanh(x) {
10
10
  var a = expm1(x = +x);
@@ -1,5 +1,5 @@
1
1
  var setToStringTag = require('../internals/set-to-string-tag');
2
2
 
3
3
  // Math[@@toStringTag] property
4
- // https://tc39.github.io/ecma262/#sec-math-@@tostringtag
4
+ // https://tc39.es/ecma262/#sec-math-@@tostringtag
5
5
  setToStringTag(Math, 'Math', true);
@@ -4,7 +4,7 @@ var ceil = Math.ceil;
4
4
  var floor = Math.floor;
5
5
 
6
6
  // `Math.trunc` method
7
- // https://tc39.github.io/ecma262/#sec-math.trunc
7
+ // https://tc39.es/ecma262/#sec-math.trunc
8
8
  $({ target: 'Math', stat: true }, {
9
9
  trunc: function trunc(it) {
10
10
  return (it > 0 ? floor : ceil)(it);
@@ -22,7 +22,7 @@ var NumberPrototype = NativeNumber.prototype;
22
22
  var BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;
23
23
 
24
24
  // `ToNumber` abstract operation
25
- // https://tc39.github.io/ecma262/#sec-tonumber
25
+ // https://tc39.es/ecma262/#sec-tonumber
26
26
  var toNumber = function (argument) {
27
27
  var it = toPrimitive(argument, false);
28
28
  var first, third, radix, maxCode, digits, length, index, code;
@@ -51,7 +51,7 @@ var toNumber = function (argument) {
51
51
  };
52
52
 
53
53
  // `Number` constructor
54
- // https://tc39.github.io/ecma262/#sec-number-constructor
54
+ // https://tc39.es/ecma262/#sec-number-constructor
55
55
  if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {
56
56
  var NumberWrapper = function Number(value) {
57
57
  var it = arguments.length < 1 ? 0 : value;
@@ -66,7 +66,9 @@ if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumb
66
66
  'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
67
67
  // ES2015 (in case, if modules with ES2015 Number statics required before):
68
68
  'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
69
- 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
69
+ 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +
70
+ // ESNext
71
+ 'fromString,range'
70
72
  ).split(','), j = 0, key; keys.length > j; j++) {
71
73
  if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {
72
74
  defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));
@@ -1,7 +1,7 @@
1
1
  var $ = require('../internals/export');
2
2
 
3
3
  // `Number.EPSILON` constant
4
- // https://tc39.github.io/ecma262/#sec-number.epsilon
4
+ // https://tc39.es/ecma262/#sec-number.epsilon
5
5
  $({ target: 'Number', stat: true }, {
6
6
  EPSILON: Math.pow(2, -52)
7
7
  });
@@ -2,5 +2,5 @@ var $ = require('../internals/export');
2
2
  var numberIsFinite = require('../internals/number-is-finite');
3
3
 
4
4
  // `Number.isFinite` method
5
- // https://tc39.github.io/ecma262/#sec-number.isfinite
5
+ // https://tc39.es/ecma262/#sec-number.isfinite
6
6
  $({ target: 'Number', stat: true }, { isFinite: numberIsFinite });
@@ -2,7 +2,7 @@ var $ = require('../internals/export');
2
2
  var isInteger = require('../internals/is-integer');
3
3
 
4
4
  // `Number.isInteger` method
5
- // https://tc39.github.io/ecma262/#sec-number.isinteger
5
+ // https://tc39.es/ecma262/#sec-number.isinteger
6
6
  $({ target: 'Number', stat: true }, {
7
7
  isInteger: isInteger
8
8
  });
@@ -1,10 +1,10 @@
1
1
  var $ = require('../internals/export');
2
2
 
3
3
  // `Number.isNaN` method
4
- // https://tc39.github.io/ecma262/#sec-number.isnan
4
+ // https://tc39.es/ecma262/#sec-number.isnan
5
5
  $({ target: 'Number', stat: true }, {
6
6
  isNaN: function isNaN(number) {
7
- // eslint-disable-next-line no-self-compare
7
+ // eslint-disable-next-line no-self-compare -- NaN check
8
8
  return number != number;
9
9
  }
10
10
  });
@@ -4,7 +4,7 @@ var isInteger = require('../internals/is-integer');
4
4
  var abs = Math.abs;
5
5
 
6
6
  // `Number.isSafeInteger` method
7
- // https://tc39.github.io/ecma262/#sec-number.issafeinteger
7
+ // https://tc39.es/ecma262/#sec-number.issafeinteger
8
8
  $({ target: 'Number', stat: true }, {
9
9
  isSafeInteger: function isSafeInteger(number) {
10
10
  return isInteger(number) && abs(number) <= 0x1FFFFFFFFFFFFF;
@@ -1,7 +1,7 @@
1
1
  var $ = require('../internals/export');
2
2
 
3
3
  // `Number.MAX_SAFE_INTEGER` constant
4
- // https://tc39.github.io/ecma262/#sec-number.max_safe_integer
4
+ // https://tc39.es/ecma262/#sec-number.max_safe_integer
5
5
  $({ target: 'Number', stat: true }, {
6
6
  MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF
7
7
  });
@@ -1,7 +1,7 @@
1
1
  var $ = require('../internals/export');
2
2
 
3
3
  // `Number.MIN_SAFE_INTEGER` constant
4
- // https://tc39.github.io/ecma262/#sec-number.min_safe_integer
4
+ // https://tc39.es/ecma262/#sec-number.min_safe_integer
5
5
  $({ target: 'Number', stat: true }, {
6
6
  MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF
7
7
  });
@@ -2,7 +2,7 @@ var $ = require('../internals/export');
2
2
  var parseFloat = require('../internals/number-parse-float');
3
3
 
4
4
  // `Number.parseFloat` method
5
- // https://tc39.github.io/ecma262/#sec-number.parseFloat
5
+ // https://tc39.es/ecma262/#sec-number.parseFloat
6
6
  $({ target: 'Number', stat: true, forced: Number.parseFloat != parseFloat }, {
7
7
  parseFloat: parseFloat
8
8
  });
@@ -2,7 +2,7 @@ var $ = require('../internals/export');
2
2
  var parseInt = require('../internals/number-parse-int');
3
3
 
4
4
  // `Number.parseInt` method
5
- // https://tc39.github.io/ecma262/#sec-number.parseint
5
+ // https://tc39.es/ecma262/#sec-number.parseint
6
6
  $({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, {
7
7
  parseInt: parseInt
8
8
  });
@@ -25,6 +25,37 @@ var log = function (x) {
25
25
  } return n;
26
26
  };
27
27
 
28
+ var multiply = function (data, n, c) {
29
+ var index = -1;
30
+ var c2 = c;
31
+ while (++index < 6) {
32
+ c2 += n * data[index];
33
+ data[index] = c2 % 1e7;
34
+ c2 = floor(c2 / 1e7);
35
+ }
36
+ };
37
+
38
+ var divide = function (data, n) {
39
+ var index = 6;
40
+ var c = 0;
41
+ while (--index >= 0) {
42
+ c += data[index];
43
+ data[index] = floor(c / n);
44
+ c = (c % n) * 1e7;
45
+ }
46
+ };
47
+
48
+ var dataToString = function (data) {
49
+ var index = 6;
50
+ var s = '';
51
+ while (--index >= 0) {
52
+ if (s !== '' || index === 0 || data[index] !== 0) {
53
+ var t = String(data[index]);
54
+ s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;
55
+ }
56
+ } return s;
57
+ };
58
+
28
59
  var FORCED = nativeToFixed && (
29
60
  0.00008.toFixed(3) !== '0.000' ||
30
61
  0.9.toFixed(0) !== '1' ||
@@ -36,9 +67,8 @@ var FORCED = nativeToFixed && (
36
67
  });
37
68
 
38
69
  // `Number.prototype.toFixed` method
39
- // https://tc39.github.io/ecma262/#sec-number.prototype.tofixed
70
+ // https://tc39.es/ecma262/#sec-number.prototype.tofixed
40
71
  $({ target: 'Number', proto: true, forced: FORCED }, {
41
- // eslint-disable-next-line max-statements
42
72
  toFixed: function toFixed(fractionDigits) {
43
73
  var number = thisNumberValue(this);
44
74
  var fractDigits = toInteger(fractionDigits);
@@ -47,39 +77,8 @@ $({ target: 'Number', proto: true, forced: FORCED }, {
47
77
  var result = '0';
48
78
  var e, z, j, k;
49
79
 
50
- var multiply = function (n, c) {
51
- var index = -1;
52
- var c2 = c;
53
- while (++index < 6) {
54
- c2 += n * data[index];
55
- data[index] = c2 % 1e7;
56
- c2 = floor(c2 / 1e7);
57
- }
58
- };
59
-
60
- var divide = function (n) {
61
- var index = 6;
62
- var c = 0;
63
- while (--index >= 0) {
64
- c += data[index];
65
- data[index] = floor(c / n);
66
- c = (c % n) * 1e7;
67
- }
68
- };
69
-
70
- var dataToString = function () {
71
- var index = 6;
72
- var s = '';
73
- while (--index >= 0) {
74
- if (s !== '' || index === 0 || data[index] !== 0) {
75
- var t = String(data[index]);
76
- s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;
77
- }
78
- } return s;
79
- };
80
-
81
80
  if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');
82
- // eslint-disable-next-line no-self-compare
81
+ // eslint-disable-next-line no-self-compare -- NaN check
83
82
  if (number != number) return 'NaN';
84
83
  if (number <= -1e21 || number >= 1e21) return String(number);
85
84
  if (number < 0) {
@@ -92,26 +91,26 @@ $({ target: 'Number', proto: true, forced: FORCED }, {
92
91
  z *= 0x10000000000000;
93
92
  e = 52 - e;
94
93
  if (e > 0) {
95
- multiply(0, z);
94
+ multiply(data, 0, z);
96
95
  j = fractDigits;
97
96
  while (j >= 7) {
98
- multiply(1e7, 0);
97
+ multiply(data, 1e7, 0);
99
98
  j -= 7;
100
99
  }
101
- multiply(pow(10, j, 1), 0);
100
+ multiply(data, pow(10, j, 1), 0);
102
101
  j = e - 1;
103
102
  while (j >= 23) {
104
- divide(1 << 23);
103
+ divide(data, 1 << 23);
105
104
  j -= 23;
106
105
  }
107
- divide(1 << j);
108
- multiply(1, 1);
109
- divide(2);
110
- result = dataToString();
106
+ divide(data, 1 << j);
107
+ multiply(data, 1, 1);
108
+ divide(data, 2);
109
+ result = dataToString(data);
111
110
  } else {
112
- multiply(0, z);
113
- multiply(1 << -e, 0);
114
- result = dataToString() + repeat.call('0', fractDigits);
111
+ multiply(data, 0, z);
112
+ multiply(data, 1 << -e, 0);
113
+ result = dataToString(data) + repeat.call('0', fractDigits);
115
114
  }
116
115
  }
117
116
  if (fractDigits > 0) {
@@ -14,7 +14,7 @@ var FORCED = fails(function () {
14
14
  });
15
15
 
16
16
  // `Number.prototype.toPrecision` method
17
- // https://tc39.github.io/ecma262/#sec-number.prototype.toprecision
17
+ // https://tc39.es/ecma262/#sec-number.prototype.toprecision
18
18
  $({ target: 'Number', proto: true, forced: FORCED }, {
19
19
  toPrecision: function toPrecision(precision) {
20
20
  return precision === undefined
@@ -2,7 +2,7 @@ var $ = require('../internals/export');
2
2
  var assign = require('../internals/object-assign');
3
3
 
4
4
  // `Object.assign` method
5
- // https://tc39.github.io/ecma262/#sec-object.assign
5
+ // https://tc39.es/ecma262/#sec-object.assign
6
6
  $({ target: 'Object', stat: true, forced: Object.assign !== assign }, {
7
7
  assign: assign
8
8
  });
@@ -3,7 +3,7 @@ var DESCRIPTORS = require('../internals/descriptors');
3
3
  var create = require('../internals/object-create');
4
4
 
5
5
  // `Object.create` method
6
- // https://tc39.github.io/ecma262/#sec-object.create
6
+ // https://tc39.es/ecma262/#sec-object.create
7
7
  $({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {
8
8
  create: create
9
9
  });
@@ -7,7 +7,7 @@ var aFunction = require('../internals/a-function');
7
7
  var definePropertyModule = require('../internals/object-define-property');
8
8
 
9
9
  // `Object.prototype.__defineGetter__` method
10
- // https://tc39.github.io/ecma262/#sec-object.prototype.__defineGetter__
10
+ // https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__
11
11
  if (DESCRIPTORS) {
12
12
  $({ target: 'Object', proto: true, forced: FORCED }, {
13
13
  __defineGetter__: function __defineGetter__(P, getter) {
@@ -3,7 +3,7 @@ var DESCRIPTORS = require('../internals/descriptors');
3
3
  var defineProperties = require('../internals/object-define-properties');
4
4
 
5
5
  // `Object.defineProperties` method
6
- // https://tc39.github.io/ecma262/#sec-object.defineproperties
6
+ // https://tc39.es/ecma262/#sec-object.defineproperties
7
7
  $({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {
8
8
  defineProperties: defineProperties
9
9
  });
@@ -3,7 +3,7 @@ var DESCRIPTORS = require('../internals/descriptors');
3
3
  var objectDefinePropertyModile = require('../internals/object-define-property');
4
4
 
5
5
  // `Object.defineProperty` method
6
- // https://tc39.github.io/ecma262/#sec-object.defineproperty
6
+ // https://tc39.es/ecma262/#sec-object.defineproperty
7
7
  $({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {
8
8
  defineProperty: objectDefinePropertyModile.f
9
9
  });
@@ -7,7 +7,7 @@ var aFunction = require('../internals/a-function');
7
7
  var definePropertyModule = require('../internals/object-define-property');
8
8
 
9
9
  // `Object.prototype.__defineSetter__` method
10
- // https://tc39.github.io/ecma262/#sec-object.prototype.__defineSetter__
10
+ // https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__
11
11
  if (DESCRIPTORS) {
12
12
  $({ target: 'Object', proto: true, forced: FORCED }, {
13
13
  __defineSetter__: function __defineSetter__(P, setter) {
@@ -2,7 +2,7 @@ var $ = require('../internals/export');
2
2
  var $entries = require('../internals/object-to-array').entries;
3
3
 
4
4
  // `Object.entries` method
5
- // https://tc39.github.io/ecma262/#sec-object.entries
5
+ // https://tc39.es/ecma262/#sec-object.entries
6
6
  $({ target: 'Object', stat: true }, {
7
7
  entries: function entries(O) {
8
8
  return $entries(O);
@@ -8,7 +8,7 @@ var nativeFreeze = Object.freeze;
8
8
  var FAILS_ON_PRIMITIVES = fails(function () { nativeFreeze(1); });
9
9
 
10
10
  // `Object.freeze` method
11
- // https://tc39.github.io/ecma262/#sec-object.freeze
11
+ // https://tc39.es/ecma262/#sec-object.freeze
12
12
  $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {
13
13
  freeze: function freeze(it) {
14
14
  return nativeFreeze && isObject(it) ? nativeFreeze(onFreeze(it)) : it;