core-js 3.6.5 → 3.8.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 (404) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -2
  3. package/es/aggregate-error.js +6 -0
  4. package/es/array/virtual/filter-out.js +4 -0
  5. package/es/index.js +33 -29
  6. package/es/instance/replace-all.js +9 -0
  7. package/es/object/index.js +2 -1
  8. package/es/object/to-string.js +3 -2
  9. package/es/promise/all-settled.js +2 -0
  10. package/es/promise/any.js +14 -0
  11. package/es/promise/index.js +4 -2
  12. package/es/reflect/index.js +1 -0
  13. package/es/reflect/to-string-tag.js +3 -0
  14. package/es/string/index.js +1 -0
  15. package/es/string/replace-all.js +4 -0
  16. package/es/string/virtual/index.js +1 -0
  17. package/es/string/virtual/replace-all.js +4 -0
  18. package/es/symbol/index.js +2 -1
  19. package/es/symbol/to-string-tag.js +2 -1
  20. package/features/aggregate-error.js +4 -4
  21. package/features/array/at.js +4 -0
  22. package/features/array/filter-out.js +4 -0
  23. package/features/array/index.js +4 -0
  24. package/features/array/unique-by.js +5 -0
  25. package/features/array/virtual/at.js +4 -0
  26. package/features/array/virtual/filter-out.js +4 -0
  27. package/features/array/virtual/index.js +3 -0
  28. package/features/array/virtual/unique-by.js +5 -0
  29. package/features/bigint/index.js +4 -0
  30. package/features/bigint/range.js +4 -0
  31. package/features/instance/at.js +7 -3
  32. package/features/instance/filter-out.js +8 -0
  33. package/features/instance/replace-all.js +2 -8
  34. package/features/instance/unique-by.js +8 -0
  35. package/features/map/emplace.js +5 -0
  36. package/features/map/index.js +2 -0
  37. package/features/number/index.js +1 -0
  38. package/features/number/range.js +4 -0
  39. package/features/promise/any.js +4 -9
  40. package/features/reflect/to-string-tag.js +3 -0
  41. package/features/string/index.js +2 -0
  42. package/features/string/replace-all.js +4 -2
  43. package/features/string/virtual/index.js +2 -0
  44. package/features/string/virtual/replace-all.js +4 -2
  45. package/features/typed-array/at.js +1 -0
  46. package/features/typed-array/filter-out.js +1 -0
  47. package/features/typed-array/index.js +2 -0
  48. package/features/weak-map/emplace.js +5 -0
  49. package/features/weak-map/index.js +2 -0
  50. package/internals/add-to-unscopables.js +1 -1
  51. package/internals/advance-string-index.js +1 -1
  52. package/internals/array-buffer-view-core.js +13 -2
  53. package/internals/array-copy-within.js +1 -1
  54. package/internals/array-fill.js +1 -1
  55. package/internals/array-for-each.js +1 -1
  56. package/internals/array-from.js +1 -1
  57. package/internals/array-includes.js +2 -2
  58. package/internals/array-iteration.js +18 -11
  59. package/internals/array-last-index-of.js +1 -1
  60. package/internals/array-reduce.js +2 -2
  61. package/internals/array-species-create.js +1 -1
  62. package/internals/async-iterator-iteration.js +25 -6
  63. package/internals/call-with-safe-iteration-closing.js +2 -2
  64. package/internals/collection-from.js +5 -5
  65. package/internals/collection-strong.js +1 -1
  66. package/internals/collection-weak.js +1 -1
  67. package/internals/collection.js +1 -1
  68. package/internals/correct-is-regexp-logic.js +2 -2
  69. package/internals/create-html.js +1 -1
  70. package/internals/date-to-iso-string.js +1 -1
  71. package/internals/descriptors.js +1 -1
  72. package/internals/engine-is-node.js +4 -0
  73. package/internals/engine-is-webos-webkit.js +3 -0
  74. package/internals/function-bind.js +1 -1
  75. package/internals/get-substitution.js +40 -0
  76. package/internals/global.js +1 -1
  77. package/internals/internal-state.js +4 -1
  78. package/internals/is-array.js +1 -1
  79. package/internals/is-integer.js +1 -1
  80. package/internals/is-regexp.js +1 -1
  81. package/internals/iterate.js +26 -11
  82. package/internals/iterator-close.js +8 -0
  83. package/internals/iterators-core.js +1 -1
  84. package/internals/map-emplace.js +13 -0
  85. package/internals/math-expm1.js +1 -1
  86. package/internals/math-fround.js +1 -1
  87. package/internals/math-log1p.js +1 -1
  88. package/internals/math-sign.js +1 -1
  89. package/internals/microtask.js +10 -8
  90. package/internals/number-is-finite.js +1 -1
  91. package/internals/number-parse-float.js +1 -1
  92. package/internals/number-parse-int.js +1 -1
  93. package/internals/object-assign.js +1 -1
  94. package/internals/object-create.js +1 -1
  95. package/internals/object-define-properties.js +1 -1
  96. package/internals/object-define-property.js +1 -1
  97. package/internals/object-get-own-property-descriptor.js +1 -1
  98. package/internals/object-get-own-property-names.js +1 -1
  99. package/internals/object-get-prototype-of.js +1 -1
  100. package/internals/object-keys.js +1 -1
  101. package/internals/object-property-is-enumerable.js +1 -1
  102. package/internals/object-set-prototype-of.js +1 -1
  103. package/internals/object-to-array.js +2 -2
  104. package/internals/object-to-string.js +1 -1
  105. package/internals/range-iterator.js +102 -0
  106. package/internals/redefine.js +8 -2
  107. package/internals/regexp-exec-abstract.js +1 -1
  108. package/internals/regexp-flags.js +1 -1
  109. package/internals/require-object-coercible.js +1 -1
  110. package/internals/same-value-zero.js +1 -1
  111. package/internals/same-value.js +1 -1
  112. package/internals/shared.js +2 -2
  113. package/internals/species-constructor.js +1 -1
  114. package/internals/string-multibyte.js +1 -1
  115. package/internals/string-pad.js +2 -2
  116. package/internals/string-repeat.js +1 -1
  117. package/internals/string-trim.js +3 -3
  118. package/internals/task.js +4 -4
  119. package/internals/this-number-value.js +1 -1
  120. package/internals/to-index.js +1 -1
  121. package/internals/to-integer.js +1 -1
  122. package/internals/to-length.js +1 -1
  123. package/internals/to-object.js +1 -1
  124. package/internals/to-primitive.js +1 -1
  125. package/modules/es.aggregate-error.js +34 -0
  126. package/modules/es.array-buffer.constructor.js +1 -1
  127. package/modules/es.array-buffer.is-view.js +1 -1
  128. package/modules/es.array-buffer.slice.js +1 -1
  129. package/modules/es.array.concat.js +1 -1
  130. package/modules/es.array.copy-within.js +2 -2
  131. package/modules/es.array.every.js +1 -1
  132. package/modules/es.array.fill.js +2 -2
  133. package/modules/es.array.filter.js +1 -1
  134. package/modules/es.array.find-index.js +2 -2
  135. package/modules/es.array.find.js +2 -2
  136. package/modules/es.array.flat-map.js +1 -1
  137. package/modules/es.array.flat.js +1 -1
  138. package/modules/es.array.for-each.js +1 -1
  139. package/modules/es.array.from.js +1 -1
  140. package/modules/es.array.includes.js +2 -2
  141. package/modules/es.array.index-of.js +1 -1
  142. package/modules/es.array.is-array.js +1 -1
  143. package/modules/es.array.iterator.js +9 -9
  144. package/modules/es.array.join.js +1 -1
  145. package/modules/es.array.last-index-of.js +1 -1
  146. package/modules/es.array.map.js +1 -1
  147. package/modules/es.array.of.js +1 -1
  148. package/modules/es.array.reduce-right.js +7 -2
  149. package/modules/es.array.reduce.js +7 -2
  150. package/modules/es.array.reverse.js +1 -1
  151. package/modules/es.array.slice.js +1 -1
  152. package/modules/es.array.some.js +1 -1
  153. package/modules/es.array.sort.js +1 -1
  154. package/modules/es.array.species.js +1 -1
  155. package/modules/es.array.splice.js +1 -1
  156. package/modules/es.array.unscopables.flat-map.js +1 -0
  157. package/modules/es.array.unscopables.flat.js +1 -0
  158. package/modules/es.data-view.js +1 -1
  159. package/modules/es.date.now.js +1 -1
  160. package/modules/es.date.to-iso-string.js +1 -1
  161. package/modules/es.date.to-json.js +1 -1
  162. package/modules/es.date.to-primitive.js +1 -1
  163. package/modules/es.date.to-string.js +1 -1
  164. package/modules/es.function.bind.js +1 -1
  165. package/modules/es.function.has-instance.js +1 -1
  166. package/modules/es.function.name.js +1 -1
  167. package/modules/es.global-this.js +1 -1
  168. package/modules/es.json.stringify.js +2 -0
  169. package/modules/es.json.to-string-tag.js +1 -1
  170. package/modules/es.map.js +1 -1
  171. package/modules/es.math.acosh.js +1 -1
  172. package/modules/es.math.asinh.js +1 -1
  173. package/modules/es.math.atanh.js +1 -1
  174. package/modules/es.math.cbrt.js +1 -1
  175. package/modules/es.math.clz32.js +1 -1
  176. package/modules/es.math.cosh.js +1 -1
  177. package/modules/es.math.expm1.js +1 -1
  178. package/modules/es.math.fround.js +1 -1
  179. package/modules/es.math.hypot.js +1 -1
  180. package/modules/es.math.imul.js +1 -1
  181. package/modules/es.math.log10.js +1 -1
  182. package/modules/es.math.log1p.js +1 -1
  183. package/modules/es.math.log2.js +1 -1
  184. package/modules/es.math.sign.js +1 -1
  185. package/modules/es.math.sinh.js +1 -1
  186. package/modules/es.math.tanh.js +1 -1
  187. package/modules/es.math.to-string-tag.js +1 -1
  188. package/modules/es.math.trunc.js +1 -1
  189. package/modules/es.number.constructor.js +5 -3
  190. package/modules/es.number.epsilon.js +1 -1
  191. package/modules/es.number.is-finite.js +1 -1
  192. package/modules/es.number.is-integer.js +1 -1
  193. package/modules/es.number.is-nan.js +1 -1
  194. package/modules/es.number.is-safe-integer.js +1 -1
  195. package/modules/es.number.max-safe-integer.js +1 -1
  196. package/modules/es.number.min-safe-integer.js +1 -1
  197. package/modules/es.number.parse-float.js +1 -1
  198. package/modules/es.number.parse-int.js +1 -1
  199. package/modules/es.number.to-fixed.js +1 -1
  200. package/modules/es.number.to-precision.js +1 -1
  201. package/modules/es.object.assign.js +1 -1
  202. package/modules/es.object.create.js +1 -1
  203. package/modules/es.object.define-getter.js +1 -1
  204. package/modules/es.object.define-properties.js +1 -1
  205. package/modules/es.object.define-property.js +1 -1
  206. package/modules/es.object.define-setter.js +1 -1
  207. package/modules/es.object.entries.js +1 -1
  208. package/modules/es.object.freeze.js +1 -1
  209. package/modules/es.object.from-entries.js +1 -1
  210. package/modules/es.object.get-own-property-descriptor.js +1 -1
  211. package/modules/es.object.get-own-property-descriptors.js +1 -1
  212. package/modules/es.object.get-own-property-names.js +1 -1
  213. package/modules/es.object.get-prototype-of.js +1 -1
  214. package/modules/es.object.is-extensible.js +1 -1
  215. package/modules/es.object.is-frozen.js +1 -1
  216. package/modules/es.object.is-sealed.js +1 -1
  217. package/modules/es.object.is.js +1 -1
  218. package/modules/es.object.keys.js +1 -1
  219. package/modules/es.object.lookup-getter.js +1 -1
  220. package/modules/es.object.lookup-setter.js +1 -1
  221. package/modules/es.object.prevent-extensions.js +1 -1
  222. package/modules/es.object.seal.js +1 -1
  223. package/modules/es.object.set-prototype-of.js +1 -1
  224. package/modules/es.object.to-string.js +1 -1
  225. package/modules/es.object.values.js +1 -1
  226. package/modules/es.parse-float.js +1 -1
  227. package/modules/es.parse-int.js +1 -1
  228. package/modules/es.promise.all-settled.js +3 -3
  229. package/modules/es.promise.any.js +46 -0
  230. package/modules/es.promise.finally.js +1 -1
  231. package/modules/es.promise.js +33 -31
  232. package/modules/es.reflect.apply.js +1 -1
  233. package/modules/es.reflect.construct.js +1 -1
  234. package/modules/es.reflect.define-property.js +1 -1
  235. package/modules/es.reflect.delete-property.js +1 -1
  236. package/modules/es.reflect.get-own-property-descriptor.js +1 -1
  237. package/modules/es.reflect.get-prototype-of.js +1 -1
  238. package/modules/es.reflect.get.js +1 -1
  239. package/modules/es.reflect.has.js +1 -1
  240. package/modules/es.reflect.is-extensible.js +1 -1
  241. package/modules/es.reflect.own-keys.js +1 -1
  242. package/modules/es.reflect.prevent-extensions.js +1 -1
  243. package/modules/es.reflect.set-prototype-of.js +1 -1
  244. package/modules/es.reflect.set.js +4 -3
  245. package/modules/es.reflect.to-string-tag.js +9 -0
  246. package/modules/es.regexp.constructor.js +2 -2
  247. package/modules/es.regexp.exec.js +2 -0
  248. package/modules/es.regexp.flags.js +1 -1
  249. package/modules/es.regexp.sticky.js +1 -0
  250. package/modules/es.regexp.test.js +2 -0
  251. package/modules/es.regexp.to-string.js +1 -1
  252. package/modules/es.set.js +1 -1
  253. package/modules/es.string.anchor.js +1 -1
  254. package/modules/es.string.big.js +1 -1
  255. package/modules/es.string.blink.js +1 -1
  256. package/modules/es.string.bold.js +1 -1
  257. package/modules/es.string.code-point-at.js +1 -1
  258. package/modules/es.string.ends-with.js +1 -1
  259. package/modules/es.string.fixed.js +1 -1
  260. package/modules/es.string.fontcolor.js +1 -1
  261. package/modules/es.string.fontsize.js +1 -1
  262. package/modules/es.string.from-code-point.js +1 -1
  263. package/modules/es.string.includes.js +1 -1
  264. package/modules/es.string.italics.js +1 -1
  265. package/modules/es.string.iterator.js +2 -2
  266. package/modules/es.string.link.js +1 -1
  267. package/modules/es.string.match-all.js +1 -1
  268. package/modules/es.string.match.js +2 -2
  269. package/modules/es.string.pad-end.js +1 -1
  270. package/modules/es.string.pad-start.js +1 -1
  271. package/modules/es.string.raw.js +1 -1
  272. package/modules/es.string.repeat.js +1 -1
  273. package/modules/es.string.replace-all.js +67 -0
  274. package/modules/es.string.replace.js +3 -40
  275. package/modules/es.string.search.js +2 -2
  276. package/modules/es.string.small.js +1 -1
  277. package/modules/es.string.split.js +2 -2
  278. package/modules/es.string.starts-with.js +1 -1
  279. package/modules/es.string.strike.js +1 -1
  280. package/modules/es.string.sub.js +1 -1
  281. package/modules/es.string.sup.js +1 -1
  282. package/modules/es.string.trim-end.js +2 -1
  283. package/modules/es.string.trim-start.js +2 -1
  284. package/modules/es.string.trim.js +1 -1
  285. package/modules/es.symbol.async-iterator.js +1 -1
  286. package/modules/es.symbol.description.js +1 -1
  287. package/modules/es.symbol.has-instance.js +1 -1
  288. package/modules/es.symbol.is-concat-spreadable.js +1 -1
  289. package/modules/es.symbol.iterator.js +1 -1
  290. package/modules/es.symbol.js +12 -12
  291. package/modules/es.symbol.match-all.js +1 -0
  292. package/modules/es.symbol.match.js +1 -1
  293. package/modules/es.symbol.replace.js +1 -1
  294. package/modules/es.symbol.search.js +1 -1
  295. package/modules/es.symbol.species.js +1 -1
  296. package/modules/es.symbol.split.js +1 -1
  297. package/modules/es.symbol.to-primitive.js +1 -1
  298. package/modules/es.symbol.to-string-tag.js +1 -1
  299. package/modules/es.symbol.unscopables.js +1 -1
  300. package/modules/es.typed-array.copy-within.js +1 -1
  301. package/modules/es.typed-array.every.js +1 -1
  302. package/modules/es.typed-array.fill.js +1 -1
  303. package/modules/es.typed-array.filter.js +1 -1
  304. package/modules/es.typed-array.find-index.js +1 -1
  305. package/modules/es.typed-array.find.js +1 -1
  306. package/modules/es.typed-array.float32-array.js +1 -1
  307. package/modules/es.typed-array.float64-array.js +1 -1
  308. package/modules/es.typed-array.for-each.js +1 -1
  309. package/modules/es.typed-array.from.js +1 -1
  310. package/modules/es.typed-array.includes.js +1 -1
  311. package/modules/es.typed-array.index-of.js +1 -1
  312. package/modules/es.typed-array.int16-array.js +1 -1
  313. package/modules/es.typed-array.int32-array.js +1 -1
  314. package/modules/es.typed-array.int8-array.js +1 -1
  315. package/modules/es.typed-array.iterator.js +4 -4
  316. package/modules/es.typed-array.join.js +1 -1
  317. package/modules/es.typed-array.last-index-of.js +1 -1
  318. package/modules/es.typed-array.map.js +1 -1
  319. package/modules/es.typed-array.of.js +1 -1
  320. package/modules/es.typed-array.reduce-right.js +1 -1
  321. package/modules/es.typed-array.reduce.js +1 -1
  322. package/modules/es.typed-array.reverse.js +1 -1
  323. package/modules/es.typed-array.set.js +1 -1
  324. package/modules/es.typed-array.slice.js +1 -1
  325. package/modules/es.typed-array.some.js +1 -1
  326. package/modules/es.typed-array.sort.js +1 -1
  327. package/modules/es.typed-array.subarray.js +1 -1
  328. package/modules/es.typed-array.to-locale-string.js +1 -1
  329. package/modules/es.typed-array.to-string.js +1 -1
  330. package/modules/es.typed-array.uint16-array.js +1 -1
  331. package/modules/es.typed-array.uint32-array.js +1 -1
  332. package/modules/es.typed-array.uint8-array.js +1 -1
  333. package/modules/es.typed-array.uint8-clamped-array.js +1 -1
  334. package/modules/es.weak-map.js +1 -1
  335. package/modules/es.weak-set.js +1 -1
  336. package/modules/esnext.aggregate-error.js +2 -45
  337. package/modules/esnext.array.at.js +20 -0
  338. package/modules/esnext.array.filter-out.js +14 -0
  339. package/modules/esnext.array.unique-by.js +38 -0
  340. package/modules/esnext.async-iterator.take.js +12 -3
  341. package/modules/esnext.bigint.range.js +14 -0
  342. package/modules/esnext.iterator.every.js +3 -3
  343. package/modules/esnext.iterator.find.js +3 -3
  344. package/modules/esnext.iterator.flat-map.js +21 -15
  345. package/modules/esnext.iterator.for-each.js +1 -1
  346. package/modules/esnext.iterator.reduce.js +1 -1
  347. package/modules/esnext.iterator.some.js +3 -3
  348. package/modules/esnext.iterator.take.js +4 -2
  349. package/modules/esnext.iterator.to-array.js +1 -1
  350. package/modules/esnext.map.emplace.js +10 -0
  351. package/modules/esnext.map.every.js +3 -3
  352. package/modules/esnext.map.filter.js +1 -1
  353. package/modules/esnext.map.find-key.js +3 -3
  354. package/modules/esnext.map.find.js +3 -3
  355. package/modules/esnext.map.includes.js +3 -3
  356. package/modules/esnext.map.key-of.js +3 -3
  357. package/modules/esnext.map.map-keys.js +1 -1
  358. package/modules/esnext.map.map-values.js +1 -1
  359. package/modules/esnext.map.merge.js +1 -1
  360. package/modules/esnext.map.reduce.js +1 -1
  361. package/modules/esnext.map.some.js +3 -3
  362. package/modules/esnext.map.update-or-insert.js +1 -1
  363. package/modules/esnext.map.upsert.js +2 -1
  364. package/modules/esnext.number.range.js +11 -0
  365. package/modules/esnext.observable.js +3 -3
  366. package/modules/esnext.promise.any.js +2 -46
  367. package/modules/esnext.reflect.get-metadata-keys.js +1 -1
  368. package/modules/esnext.set.every.js +3 -3
  369. package/modules/esnext.set.filter.js +1 -1
  370. package/modules/esnext.set.find.js +3 -3
  371. package/modules/esnext.set.is-disjoint-from.js +3 -3
  372. package/modules/esnext.set.is-subset-of.js +3 -3
  373. package/modules/esnext.set.is-superset-of.js +3 -3
  374. package/modules/esnext.set.join.js +1 -1
  375. package/modules/esnext.set.map.js +1 -1
  376. package/modules/esnext.set.reduce.js +1 -1
  377. package/modules/esnext.set.some.js +3 -3
  378. package/modules/esnext.set.union.js +1 -1
  379. package/modules/esnext.string.at-alternative.js +23 -0
  380. package/modules/esnext.string.at.js +6 -1
  381. package/modules/esnext.string.replace-all.js +2 -50
  382. package/modules/esnext.typed-array.at.js +17 -0
  383. package/modules/esnext.typed-array.filter-out.js +20 -0
  384. package/modules/esnext.weak-map.emplace.js +10 -0
  385. package/modules/esnext.weak-map.upsert.js +3 -2
  386. package/modules/web.queue-microtask.js +2 -3
  387. package/modules/web.url-search-params.js +1 -1
  388. package/package.json +1 -1
  389. package/proposals/array-filtering.js +3 -0
  390. package/proposals/array-unique.js +3 -0
  391. package/proposals/efficient-64-bit-arithmetic.js +1 -0
  392. package/proposals/map-upsert.js +4 -0
  393. package/proposals/number-range.js +3 -0
  394. package/proposals/object-iteration.js +1 -0
  395. package/proposals/relative-indexing-method.js +5 -0
  396. package/stable/aggregate-error.js +6 -0
  397. package/stable/instance/replace-all.js +3 -0
  398. package/stable/promise/any.js +3 -0
  399. package/stable/reflect/to-string-tag.js +3 -0
  400. package/stable/string/replace-all.js +3 -0
  401. package/stable/string/virtual/replace-all.js +3 -0
  402. package/stage/1.js +3 -0
  403. package/stage/3.js +1 -2
  404. package/stage/4.js +2 -0
@@ -7,7 +7,7 @@ var STRICT_METHOD = arrayMethodIsStrict('forEach');
7
7
  var USES_TO_LENGTH = arrayMethodUsesToLength('forEach');
8
8
 
9
9
  // `Array.prototype.forEach` method implementation
10
- // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
10
+ // https://tc39.es/ecma262/#sec-array.prototype.foreach
11
11
  module.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {
12
12
  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
13
13
  } : [].forEach;
@@ -8,7 +8,7 @@ var createProperty = require('../internals/create-property');
8
8
  var getIteratorMethod = require('../internals/get-iterator-method');
9
9
 
10
10
  // `Array.from` method implementation
11
- // https://tc39.github.io/ecma262/#sec-array.from
11
+ // https://tc39.es/ecma262/#sec-array.from
12
12
  module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
13
13
  var O = toObject(arrayLike);
14
14
  var C = typeof this == 'function' ? this : Array;
@@ -24,9 +24,9 @@ var createMethod = function (IS_INCLUDES) {
24
24
 
25
25
  module.exports = {
26
26
  // `Array.prototype.includes` method
27
- // https://tc39.github.io/ecma262/#sec-array.prototype.includes
27
+ // https://tc39.es/ecma262/#sec-array.prototype.includes
28
28
  includes: createMethod(true),
29
29
  // `Array.prototype.indexOf` method
30
- // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
30
+ // https://tc39.es/ecma262/#sec-array.prototype.indexof
31
31
  indexOf: createMethod(false)
32
32
  };
@@ -6,13 +6,14 @@ var arraySpeciesCreate = require('../internals/array-species-create');
6
6
 
7
7
  var push = [].push;
8
8
 
9
- // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation
9
+ // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation
10
10
  var createMethod = function (TYPE) {
11
11
  var IS_MAP = TYPE == 1;
12
12
  var IS_FILTER = TYPE == 2;
13
13
  var IS_SOME = TYPE == 3;
14
14
  var IS_EVERY = TYPE == 4;
15
15
  var IS_FIND_INDEX = TYPE == 6;
16
+ var IS_FILTER_OUT = TYPE == 7;
16
17
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
17
18
  return function ($this, callbackfn, that, specificCreate) {
18
19
  var O = toObject($this);
@@ -21,7 +22,7 @@ var createMethod = function (TYPE) {
21
22
  var length = toLength(self.length);
22
23
  var index = 0;
23
24
  var create = specificCreate || arraySpeciesCreate;
24
- var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
25
+ var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;
25
26
  var value, result;
26
27
  for (;length > index; index++) if (NO_HOLES || index in self) {
27
28
  value = self[index];
@@ -33,7 +34,10 @@ var createMethod = function (TYPE) {
33
34
  case 5: return value; // find
34
35
  case 6: return index; // findIndex
35
36
  case 2: push.call(target, value); // filter
36
- } else if (IS_EVERY) return false; // every
37
+ } else switch (TYPE) {
38
+ case 4: return false; // every
39
+ case 7: push.call(target, value); // filterOut
40
+ }
37
41
  }
38
42
  }
39
43
  return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
@@ -42,24 +46,27 @@ var createMethod = function (TYPE) {
42
46
 
43
47
  module.exports = {
44
48
  // `Array.prototype.forEach` method
45
- // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
49
+ // https://tc39.es/ecma262/#sec-array.prototype.foreach
46
50
  forEach: createMethod(0),
47
51
  // `Array.prototype.map` method
48
- // https://tc39.github.io/ecma262/#sec-array.prototype.map
52
+ // https://tc39.es/ecma262/#sec-array.prototype.map
49
53
  map: createMethod(1),
50
54
  // `Array.prototype.filter` method
51
- // https://tc39.github.io/ecma262/#sec-array.prototype.filter
55
+ // https://tc39.es/ecma262/#sec-array.prototype.filter
52
56
  filter: createMethod(2),
53
57
  // `Array.prototype.some` method
54
- // https://tc39.github.io/ecma262/#sec-array.prototype.some
58
+ // https://tc39.es/ecma262/#sec-array.prototype.some
55
59
  some: createMethod(3),
56
60
  // `Array.prototype.every` method
57
- // https://tc39.github.io/ecma262/#sec-array.prototype.every
61
+ // https://tc39.es/ecma262/#sec-array.prototype.every
58
62
  every: createMethod(4),
59
63
  // `Array.prototype.find` method
60
- // https://tc39.github.io/ecma262/#sec-array.prototype.find
64
+ // https://tc39.es/ecma262/#sec-array.prototype.find
61
65
  find: createMethod(5),
62
66
  // `Array.prototype.findIndex` method
63
- // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
64
- findIndex: createMethod(6)
67
+ // https://tc39.es/ecma262/#sec-array.prototype.findIndex
68
+ findIndex: createMethod(6),
69
+ // `Array.prototype.filterOut` method
70
+ // https://github.com/tc39/proposal-array-filtering
71
+ filterOut: createMethod(7)
65
72
  };
@@ -14,7 +14,7 @@ var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0
14
14
  var FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;
15
15
 
16
16
  // `Array.prototype.lastIndexOf` method implementation
17
- // https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof
17
+ // https://tc39.es/ecma262/#sec-array.prototype.lastindexof
18
18
  module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
19
19
  // convert -0 to +0
20
20
  if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;
@@ -32,9 +32,9 @@ var createMethod = function (IS_RIGHT) {
32
32
 
33
33
  module.exports = {
34
34
  // `Array.prototype.reduce` method
35
- // https://tc39.github.io/ecma262/#sec-array.prototype.reduce
35
+ // https://tc39.es/ecma262/#sec-array.prototype.reduce
36
36
  left: createMethod(false),
37
37
  // `Array.prototype.reduceRight` method
38
- // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright
38
+ // https://tc39.es/ecma262/#sec-array.prototype.reduceright
39
39
  right: createMethod(true)
40
40
  };
@@ -5,7 +5,7 @@ var wellKnownSymbol = require('../internals/well-known-symbol');
5
5
  var SPECIES = wellKnownSymbol('species');
6
6
 
7
7
  // `ArraySpeciesCreate` abstract operation
8
- // https://tc39.github.io/ecma262/#sec-arrayspeciescreate
8
+ // https://tc39.es/ecma262/#sec-arrayspeciescreate
9
9
  module.exports = function (originalArray, length) {
10
10
  var C;
11
11
  if (isArray(originalArray)) {
@@ -19,6 +19,25 @@ var createMethod = function (TYPE) {
19
19
  if (!IS_TO_ARRAY) aFunction(fn);
20
20
 
21
21
  return new Promise(function (resolve, reject) {
22
+ var closeIteration = function (method, argument) {
23
+ try {
24
+ var returnMethod = iterator['return'];
25
+ if (returnMethod !== undefined) {
26
+ return Promise.resolve(returnMethod.call(iterator)).then(function () {
27
+ method(argument);
28
+ }, function (error) {
29
+ reject(error);
30
+ });
31
+ }
32
+ } catch (error2) {
33
+ return reject(error2);
34
+ } method(argument);
35
+ };
36
+
37
+ var onError = function (error) {
38
+ closeIteration(reject, error);
39
+ };
40
+
22
41
  var loop = function () {
23
42
  try {
24
43
  Promise.resolve(anObject(next.call(iterator))).then(function (step) {
@@ -35,16 +54,16 @@ var createMethod = function (TYPE) {
35
54
  if (IS_FOR_EACH) {
36
55
  loop();
37
56
  } else if (IS_EVERY) {
38
- result ? loop() : resolve(false);
57
+ result ? loop() : closeIteration(resolve, false);
39
58
  } else {
40
- result ? resolve(IS_SOME || value) : loop();
59
+ result ? closeIteration(resolve, IS_SOME || value) : loop();
41
60
  }
42
- }, reject);
61
+ }, onError);
43
62
  }
44
63
  }
45
- } catch (err) { reject(err); }
46
- }, reject);
47
- } catch (error) { reject(error); }
64
+ } catch (error) { onError(error); }
65
+ }, onError);
66
+ } catch (error2) { onError(error2); }
48
67
  };
49
68
 
50
69
  loop();
@@ -1,4 +1,5 @@
1
1
  var anObject = require('../internals/an-object');
2
+ var iteratorClose = require('../internals/iterator-close');
2
3
 
3
4
  // call something on iterator step with safe closing on error
4
5
  module.exports = function (iterator, fn, value, ENTRIES) {
@@ -6,8 +7,7 @@ module.exports = function (iterator, fn, value, ENTRIES) {
6
7
  return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
7
8
  // 7.4.6 IteratorClose(iterator, completion)
8
9
  } catch (error) {
9
- var returnMethod = iterator['return'];
10
- if (returnMethod !== undefined) anObject(returnMethod.call(iterator));
10
+ iteratorClose(iterator);
11
11
  throw error;
12
12
  }
13
13
  };
@@ -7,20 +7,20 @@ var iterate = require('../internals/iterate');
7
7
  module.exports = function from(source /* , mapFn, thisArg */) {
8
8
  var length = arguments.length;
9
9
  var mapFn = length > 1 ? arguments[1] : undefined;
10
- var mapping, A, n, boundFunction;
10
+ var mapping, array, n, boundFunction;
11
11
  aFunction(this);
12
12
  mapping = mapFn !== undefined;
13
13
  if (mapping) aFunction(mapFn);
14
14
  if (source == undefined) return new this();
15
- A = [];
15
+ array = [];
16
16
  if (mapping) {
17
17
  n = 0;
18
18
  boundFunction = bind(mapFn, length > 2 ? arguments[2] : undefined, 2);
19
19
  iterate(source, function (nextItem) {
20
- A.push(boundFunction(nextItem, n++));
20
+ array.push(boundFunction(nextItem, n++));
21
21
  });
22
22
  } else {
23
- iterate(source, A.push, A);
23
+ iterate(source, array.push, { that: array });
24
24
  }
25
- return new this(A);
25
+ return new this(array);
26
26
  };
@@ -26,7 +26,7 @@ module.exports = {
26
26
  size: 0
27
27
  });
28
28
  if (!DESCRIPTORS) that.size = 0;
29
- if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);
29
+ if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
30
30
  });
31
31
 
32
32
  var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
@@ -61,7 +61,7 @@ module.exports = {
61
61
  id: id++,
62
62
  frozen: undefined
63
63
  });
64
- if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);
64
+ if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
65
65
  });
66
66
 
67
67
  var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
@@ -69,7 +69,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
69
69
  Constructor = wrapper(function (dummy, iterable) {
70
70
  anInstance(dummy, Constructor, CONSTRUCTOR_NAME);
71
71
  var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);
72
- if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);
72
+ if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
73
73
  return that;
74
74
  });
75
75
  Constructor.prototype = NativePrototype;
@@ -6,10 +6,10 @@ module.exports = function (METHOD_NAME) {
6
6
  var regexp = /./;
7
7
  try {
8
8
  '/./'[METHOD_NAME](regexp);
9
- } catch (e) {
9
+ } catch (error1) {
10
10
  try {
11
11
  regexp[MATCH] = false;
12
12
  return '/./'[METHOD_NAME](regexp);
13
- } catch (f) { /* empty */ }
13
+ } catch (error2) { /* empty */ }
14
14
  } return false;
15
15
  };
@@ -3,7 +3,7 @@ var requireObjectCoercible = require('../internals/require-object-coercible');
3
3
  var quot = /"/g;
4
4
 
5
5
  // B.2.3.2.1 CreateHTML(string, tag, attribute, value)
6
- // https://tc39.github.io/ecma262/#sec-createhtml
6
+ // https://tc39.es/ecma262/#sec-createhtml
7
7
  module.exports = function (string, tag, attribute, value) {
8
8
  var S = String(requireObjectCoercible(string));
9
9
  var p1 = '<' + tag;
@@ -8,7 +8,7 @@ var getTime = DatePrototype.getTime;
8
8
  var nativeDateToISOString = DatePrototype.toISOString;
9
9
 
10
10
  // `Date.prototype.toISOString` method implementation
11
- // https://tc39.github.io/ecma262/#sec-date.prototype.toisostring
11
+ // https://tc39.es/ecma262/#sec-date.prototype.toisostring
12
12
  // PhantomJS / old WebKit fails here:
13
13
  module.exports = (fails(function () {
14
14
  return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';
@@ -1,6 +1,6 @@
1
1
  var fails = require('../internals/fails');
2
2
 
3
- // Thank's IE8 for his funny defineProperty
3
+ // Detect IE8's incomplete defineProperty implementation
4
4
  module.exports = !fails(function () {
5
5
  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
6
6
  });
@@ -0,0 +1,4 @@
1
+ var classof = require('../internals/classof-raw');
2
+ var global = require('../internals/global');
3
+
4
+ module.exports = classof(global.process) == 'process';
@@ -0,0 +1,3 @@
1
+ var userAgent = require('../internals/engine-user-agent');
2
+
3
+ module.exports = /web0s(?!.*chrome)/i.test(userAgent);
@@ -14,7 +14,7 @@ var construct = function (C, argsLength, args) {
14
14
  };
15
15
 
16
16
  // `Function.prototype.bind` method implementation
17
- // https://tc39.github.io/ecma262/#sec-function.prototype.bind
17
+ // https://tc39.es/ecma262/#sec-function.prototype.bind
18
18
  module.exports = Function.bind || function bind(that /* , ...args */) {
19
19
  var fn = aFunction(this);
20
20
  var partArgs = slice.call(arguments, 1);
@@ -0,0 +1,40 @@
1
+ var toObject = require('../internals/to-object');
2
+
3
+ var floor = Math.floor;
4
+ var replace = ''.replace;
5
+ var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g;
6
+ var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g;
7
+
8
+ // https://tc39.es/ecma262/#sec-getsubstitution
9
+ module.exports = function (matched, str, position, captures, namedCaptures, replacement) {
10
+ var tailPos = position + matched.length;
11
+ var m = captures.length;
12
+ var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
13
+ if (namedCaptures !== undefined) {
14
+ namedCaptures = toObject(namedCaptures);
15
+ symbols = SUBSTITUTION_SYMBOLS;
16
+ }
17
+ return replace.call(replacement, symbols, function (match, ch) {
18
+ var capture;
19
+ switch (ch.charAt(0)) {
20
+ case '$': return '$';
21
+ case '&': return matched;
22
+ case '`': return str.slice(0, position);
23
+ case "'": return str.slice(tailPos);
24
+ case '<':
25
+ capture = namedCaptures[ch.slice(1, -1)];
26
+ break;
27
+ default: // \d\d?
28
+ var n = +ch;
29
+ if (n === 0) return match;
30
+ if (n > m) {
31
+ var f = floor(n / 10);
32
+ if (f === 0) return match;
33
+ if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
34
+ return match;
35
+ }
36
+ capture = captures[n - 1];
37
+ }
38
+ return capture === undefined ? '' : capture;
39
+ });
40
+ };
@@ -10,4 +10,4 @@ module.exports =
10
10
  check(typeof self == 'object' && self) ||
11
11
  check(typeof global == 'object' && global) ||
12
12
  // eslint-disable-next-line no-new-func
13
- Function('return this')();
13
+ (function () { return this; })() || Function('return this')();
@@ -3,6 +3,7 @@ var global = require('../internals/global');
3
3
  var isObject = require('../internals/is-object');
4
4
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
5
5
  var objectHas = require('../internals/has');
6
+ var shared = require('../internals/shared-store');
6
7
  var sharedKey = require('../internals/shared-key');
7
8
  var hiddenKeys = require('../internals/hidden-keys');
8
9
 
@@ -23,11 +24,12 @@ var getterFor = function (TYPE) {
23
24
  };
24
25
 
25
26
  if (NATIVE_WEAK_MAP) {
26
- var store = new WeakMap();
27
+ var store = shared.state || (shared.state = new WeakMap());
27
28
  var wmget = store.get;
28
29
  var wmhas = store.has;
29
30
  var wmset = store.set;
30
31
  set = function (it, metadata) {
32
+ metadata.facade = it;
31
33
  wmset.call(store, it, metadata);
32
34
  return metadata;
33
35
  };
@@ -41,6 +43,7 @@ if (NATIVE_WEAK_MAP) {
41
43
  var STATE = sharedKey('state');
42
44
  hiddenKeys[STATE] = true;
43
45
  set = function (it, metadata) {
46
+ metadata.facade = it;
44
47
  createNonEnumerableProperty(it, STATE, metadata);
45
48
  return metadata;
46
49
  };
@@ -1,7 +1,7 @@
1
1
  var classof = require('../internals/classof-raw');
2
2
 
3
3
  // `IsArray` abstract operation
4
- // https://tc39.github.io/ecma262/#sec-isarray
4
+ // https://tc39.es/ecma262/#sec-isarray
5
5
  module.exports = Array.isArray || function isArray(arg) {
6
6
  return classof(arg) == 'Array';
7
7
  };
@@ -3,7 +3,7 @@ var isObject = require('../internals/is-object');
3
3
  var floor = Math.floor;
4
4
 
5
5
  // `Number.isInteger` method implementation
6
- // https://tc39.github.io/ecma262/#sec-number.isinteger
6
+ // https://tc39.es/ecma262/#sec-number.isinteger
7
7
  module.exports = function isInteger(it) {
8
8
  return !isObject(it) && isFinite(it) && floor(it) === it;
9
9
  };
@@ -5,7 +5,7 @@ var wellKnownSymbol = require('../internals/well-known-symbol');
5
5
  var MATCH = wellKnownSymbol('match');
6
6
 
7
7
  // `IsRegExp` abstract operation
8
- // https://tc39.github.io/ecma262/#sec-isregexp
8
+ // https://tc39.es/ecma262/#sec-isregexp
9
9
  module.exports = function (it) {
10
10
  var isRegExp;
11
11
  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');
@@ -3,17 +3,33 @@ var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
3
3
  var toLength = require('../internals/to-length');
4
4
  var bind = require('../internals/function-bind-context');
5
5
  var getIteratorMethod = require('../internals/get-iterator-method');
6
- var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
6
+ var iteratorClose = require('../internals/iterator-close');
7
7
 
8
8
  var Result = function (stopped, result) {
9
9
  this.stopped = stopped;
10
10
  this.result = result;
11
11
  };
12
12
 
13
- var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {
14
- var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);
13
+ module.exports = function (iterable, unboundFunction, options) {
14
+ var that = options && options.that;
15
+ var AS_ENTRIES = !!(options && options.AS_ENTRIES);
16
+ var IS_ITERATOR = !!(options && options.IS_ITERATOR);
17
+ var INTERRUPTED = !!(options && options.INTERRUPTED);
18
+ var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);
15
19
  var iterator, iterFn, index, length, result, next, step;
16
20
 
21
+ var stop = function (condition) {
22
+ if (iterator) iteratorClose(iterator);
23
+ return new Result(true, condition);
24
+ };
25
+
26
+ var callFn = function (value) {
27
+ if (AS_ENTRIES) {
28
+ anObject(value);
29
+ return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
30
+ } return INTERRUPTED ? fn(value, stop) : fn(value);
31
+ };
32
+
17
33
  if (IS_ITERATOR) {
18
34
  iterator = iterable;
19
35
  } else {
@@ -22,9 +38,7 @@ var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITER
22
38
  // optimisation for array iterators
23
39
  if (isArrayIteratorMethod(iterFn)) {
24
40
  for (index = 0, length = toLength(iterable.length); length > index; index++) {
25
- result = AS_ENTRIES
26
- ? boundFunction(anObject(step = iterable[index])[0], step[1])
27
- : boundFunction(iterable[index]);
41
+ result = callFn(iterable[index]);
28
42
  if (result && result instanceof Result) return result;
29
43
  } return new Result(false);
30
44
  }
@@ -33,11 +47,12 @@ var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITER
33
47
 
34
48
  next = iterator.next;
35
49
  while (!(step = next.call(iterator)).done) {
36
- result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);
50
+ try {
51
+ result = callFn(step.value);
52
+ } catch (error) {
53
+ iteratorClose(iterator);
54
+ throw error;
55
+ }
37
56
  if (typeof result == 'object' && result && result instanceof Result) return result;
38
57
  } return new Result(false);
39
58
  };
40
-
41
- iterate.stop = function (result) {
42
- return new Result(true, result);
43
- };
@@ -0,0 +1,8 @@
1
+ var anObject = require('../internals/an-object');
2
+
3
+ module.exports = function (iterator) {
4
+ var returnMethod = iterator['return'];
5
+ if (returnMethod !== undefined) {
6
+ return anObject(returnMethod.call(iterator)).value;
7
+ }
8
+ };
@@ -11,7 +11,7 @@ var BUGGY_SAFARI_ITERATORS = false;
11
11
  var returnThis = function () { return this; };
12
12
 
13
13
  // `%IteratorPrototype%` object
14
- // https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object
14
+ // https://tc39.es/ecma262/#sec-%iteratorprototype%-object
15
15
  var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
16
16
 
17
17
  if ([].keys) {
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+ var anObject = require('../internals/an-object');
3
+
4
+ // `Map.prototype.emplace` method
5
+ // https://github.com/thumbsupep/proposal-upsert
6
+ module.exports = function emplace(key, handler) {
7
+ var map = anObject(this);
8
+ var value = (map.has(key) && 'update' in handler)
9
+ ? handler.update(map.get(key), key, map)
10
+ : handler.insert(key, map);
11
+ map.set(key, value);
12
+ return value;
13
+ };
@@ -2,7 +2,7 @@ var nativeExpm1 = Math.expm1;
2
2
  var exp = Math.exp;
3
3
 
4
4
  // `Math.expm1` method implementation
5
- // https://tc39.github.io/ecma262/#sec-math.expm1
5
+ // https://tc39.es/ecma262/#sec-math.expm1
6
6
  module.exports = (!nativeExpm1
7
7
  // Old FF bug
8
8
  || nativeExpm1(10) > 22025.465794806719 || nativeExpm1(10) < 22025.4657948067165168
@@ -12,7 +12,7 @@ var roundTiesToEven = function (n) {
12
12
  };
13
13
 
14
14
  // `Math.fround` method implementation
15
- // https://tc39.github.io/ecma262/#sec-math.fround
15
+ // https://tc39.es/ecma262/#sec-math.fround
16
16
  module.exports = Math.fround || function fround(x) {
17
17
  var $abs = abs(x);
18
18
  var $sign = sign(x);
@@ -1,7 +1,7 @@
1
1
  var log = Math.log;
2
2
 
3
3
  // `Math.log1p` method implementation
4
- // https://tc39.github.io/ecma262/#sec-math.log1p
4
+ // https://tc39.es/ecma262/#sec-math.log1p
5
5
  module.exports = Math.log1p || function log1p(x) {
6
6
  return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);
7
7
  };
@@ -1,5 +1,5 @@
1
1
  // `Math.sign` method implementation
2
- // https://tc39.github.io/ecma262/#sec-math.sign
2
+ // https://tc39.es/ecma262/#sec-math.sign
3
3
  module.exports = Math.sign || function sign(x) {
4
4
  // eslint-disable-next-line no-self-compare
5
5
  return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
@@ -1,13 +1,14 @@
1
1
  var global = require('../internals/global');
2
2
  var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
3
- var classof = require('../internals/classof-raw');
4
3
  var macrotask = require('../internals/task').set;
5
4
  var IS_IOS = require('../internals/engine-is-ios');
5
+ var IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');
6
+ var IS_NODE = require('../internals/engine-is-node');
6
7
 
7
8
  var MutationObserver = global.MutationObserver || global.WebKitMutationObserver;
9
+ var document = global.document;
8
10
  var process = global.process;
9
11
  var Promise = global.Promise;
10
- var IS_NODE = classof(process) == 'process';
11
12
  // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`
12
13
  var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');
13
14
  var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;
@@ -33,13 +34,9 @@ if (!queueMicrotask) {
33
34
  if (parent) parent.enter();
34
35
  };
35
36
 
36
- // Node.js
37
- if (IS_NODE) {
38
- notify = function () {
39
- process.nextTick(flush);
40
- };
41
37
  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339
42
- } else if (MutationObserver && !IS_IOS) {
38
+ // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898
39
+ if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {
43
40
  toggle = true;
44
41
  node = document.createTextNode('');
45
42
  new MutationObserver(flush).observe(node, { characterData: true });
@@ -54,6 +51,11 @@ if (!queueMicrotask) {
54
51
  notify = function () {
55
52
  then.call(promise, flush);
56
53
  };
54
+ // Node.js without promises
55
+ } else if (IS_NODE) {
56
+ notify = function () {
57
+ process.nextTick(flush);
58
+ };
57
59
  // for other environments - macrotask based on:
58
60
  // - setImmediate
59
61
  // - MessageChannel
@@ -3,7 +3,7 @@ var global = require('../internals/global');
3
3
  var globalIsFinite = global.isFinite;
4
4
 
5
5
  // `Number.isFinite` method
6
- // https://tc39.github.io/ecma262/#sec-number.isfinite
6
+ // https://tc39.es/ecma262/#sec-number.isfinite
7
7
  module.exports = Number.isFinite || function isFinite(it) {
8
8
  return typeof it == 'number' && globalIsFinite(it);
9
9
  };
@@ -6,7 +6,7 @@ var $parseFloat = global.parseFloat;
6
6
  var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;
7
7
 
8
8
  // `parseFloat` method
9
- // https://tc39.github.io/ecma262/#sec-parsefloat-string
9
+ // https://tc39.es/ecma262/#sec-parsefloat-string
10
10
  module.exports = FORCED ? function parseFloat(string) {
11
11
  var trimmedString = trim(String(string));
12
12
  var result = $parseFloat(trimmedString);