-
Notifications
You must be signed in to change notification settings - Fork 0
[Snyk] Upgrade core-js from 3.12.0 to 3.44.0 #499
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Snyk has created this PR to upgrade core-js from 3.12.0 to 3.44.0. See this package in npm: core-js See this project in Snyk: https://app.snyk.io/org/newtonombese1/project/2d91292c-60d2-4a88-81bb-1a1c40995cf5?utm_source=github&utm_medium=referral&page=upgrade-pr
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @nejidevelops, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
I've initiated an automated dependency upgrade for core-js from version 3.12.0 to 3.44.0. This significant update aims to modernize our project's JavaScript polyfills, ensuring compatibility with the latest ECMAScript features and providing numerous bug fixes and performance enhancements. Keeping this dependency current is crucial for maintaining application stability and security.
Highlights
- Core-js Version Upgrade: Upgraded the core-js library from version 3.12.0 (as indicated by Snyk) to 3.44.0. The package.json file specifically updates the dependency from ^3.6.4 to ^3.44.0.
- Extensive Feature Additions: This upgrade incorporates polyfills for 88 minor versions worth of new ECMAScript proposals, including Explicit Resource Management, Array.fromAsync, Error.isError, Iterator helpers, new Set methods, RegExp.escape, Promise.try, Math.f16round, Map upsert, and URL.parse.
- Improved Stability and Compatibility: The update brings a vast array of bug fixes, performance optimizations, and enhanced compatibility across various JavaScript engines and environments (e.g., V8, WebKit, Firefox, Node.js, Deno, Bun), addressing many known issues.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
Feature | Command | Description |
---|---|---|
Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/
folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments or fill out our survey to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request, automatically generated by Snyk, upgrades core-js
from ^3.6.4
to ^3.44.0
. This is a significant version jump that brings in many new features and bug fixes as detailed in the release notes. My review focuses on ensuring the stability of the project after such a large upgrade. I've suggested pinning the dependency to an exact version to prevent any potential issues from future automatic minor updates.
@@ -25,7 +25,7 @@ | |||
"@ngrx/store": "^12.1.0", | |||
"@ngrx/store-devtools": "^12.1.0", | |||
"bulma": "^0.9.2", | |||
"core-js": "^3.6.4", | |||
"core-js": "^3.44.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given the large jump from ^3.6.4
to ^3.44.0
(88 minor versions according to the PR description), it would be safer to pin the dependency to an exact version. This will prevent any unexpected issues from future minor releases of core-js
being pulled in automatically. Pinning the version ensures that the build remains stable and predictable.
"core-js": "3.44.0",
Snyk has created this PR to upgrade core-js from 3.12.0 to 3.44.0.
ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.
The recommended version is 88 versions ahead of your current version.
The recommended version was released a month ago.
Release notes
Package name: core-js
Uint8Array
to / from base64 and hex stage 3 proposal:Uint8Array.fromHex
andUint8Array.prototype.{ setFromBase64, toBase64, toHex }
, thanks @ brc-ddGet
inIterator.zipKeyed
, following tc39/proposal-joint-iteration#43Iterator
sequencing stage 2.7 proposal:Iterator.concat
no longer reusesIteratorResult
object of concatenated iterators, following tc39/proposal-iterator-sequencing#26Iterator
chunking stage 2 proposal:Iterator.prototype.sliding
Number.prototype.clamp
stage 2 proposal:clamp
no longer throws an error onNaN
asmin
ormax
, following tc39/proposal-math-clamp#d2387791c265edf66fbe2455eab919016717ce6fSet.prototype.{ symmetricDifference, union }
detectionIterator
methods/full/{ instance, number/virtual }/clamp
entriesIterator
helpers marked as fixed and updated following the latest spec changes in Safari 26.0Set.prototype.{ difference, symmetricDifference, union }
marked as fixed in Safari 26.0SuppressedError
marked as fixed in FF141Error.isError
marked as fixed in Node 24.3setImmediate
andclearImmediate
marked as available from Deno 2.4Math.sumPrecise
marked as shipped in Bun 1.2.18%TypedArray%.prototype.with
marked as fixed in Bun 1.2.18Symbol.dispose
Symbol.asyncDispose
SuppressedError
DisposableStack
DisposableStack.prototype.dispose
DisposableStack.prototype.use
DisposableStack.prototype.adopt
DisposableStack.prototype.defer
DisposableStack.prototype.move
DisposableStack.prototype[@@ dispose]
AsyncDisposableStack
AsyncDisposableStack.prototype.disposeAsync
AsyncDisposableStack.prototype.use
AsyncDisposableStack.prototype.adopt
AsyncDisposableStack.prototype.defer
AsyncDisposableStack.prototype.move
AsyncDisposableStack.prototype[@@ asyncDispose]
Iterator.prototype[@@ dispose]
AsyncIterator.prototype[@@ asyncDispose]
es.
namespace module,/es/
and/stable/
namespaces entriesArray.fromAsync
proposal:Array.fromAsync
es.
namespace module,/es/
and/stable/
namespaces entriesError.isError
proposal:Error.isError
es.
namespace module,/es/
and/stable/
namespaces entriesIterator.zip
Iterator.zipKeyed
Iterator
chunking stage 2 proposal:Iterator.prototype.chunks
Iterator.prototype.windows
Number.prototype.clamp
proposal:Number.prototype.clamp
Math.clamp
was replaced withNumber.prototype.clamp
RangeError
ifmin <= max
or+0
min and-0
max, tc39/proposal-math-clamp/#22flags
getter PR. Native methods are not fixed, only own implementation updated for:RegExp.prototype[@@ match]
RegExp.prototype[@@ replace]
RegExp
flags in polyfills of some methods in engines without proper support ofRegExp.prototype.flags
and without polyfill of this getterthis
is updated whileSet.prototype.difference
is being executedthis
in the following methods:Set.prototype.symmetricDifference
Set.prototype.union
Iterator.prototype.drop
Iterator.prototype.filter
Iterator.prototype.flatMap
Iterator.prototype.map
Iterator.from
when underlying iterator'sreturn
method isnull
Array.prototype.with
when index coercion failsTypedArray.prototype.with
should truncate negative fractional index to zero, but instead throws an errorPromise
polyfill in the pure version/iterator/flat-map
entriesError.isError
marked not supported in Node because of a bugSet.prototype.difference
marked as not supported in Safari and supported only from Bun 1.2.5 because of a bugSet.prototype.{ symmetricDifference, union }
marked as not supported in Safari and supported only from Bun 1.2.5 because of a bugIterator.from
marked as not supported in Safari and supported only from Bun 1.2.5 because of a bugIterator
helpers marked as implemented from FF141Array.prototype.with
marked as supported only from FF140 because it throws an incorrect exception when index coercion failsTypedArray.prototype.with
marked as unsupported in Bun and Safari because it should truncate negative fractional index to zero, but instead throws an errorDisposableStack
andAsyncDisposableStack
marked as shipped in FF141 (SuppressedError
has a bug)AsyncDisposableStack
bugs marked as fixed in Deno 2.3.2SuppressedError
bugs (extra arguments support and arity) marked as fixed in Bun 1.2.15Map
upsert proposal:WeakMap.prototype.getOrInsertComputed
updated following tc39/proposal-upsert#79Map.prototype.getOrInsert
Map.prototype.getOrInsertComputed
WeakMap.prototype.getOrInsert
WeakMap.prototype.getOrInsertComputed
Symbol
methods forRegExp
on primitive values following tc39/ecma262#3009:core-js
implementationsString.prototype.matchAll
String.prototype.match
String.prototype.replaceAll
String.prototype.replace
String.prototype.search
String.prototype.split
Uint8Array.prototype.setFromBase64
bug in some of Linux builds of WebKitIterator.prototype.drop
Iterator.prototype.every
Iterator.prototype.filter
Iterator.prototype.find
Iterator.prototype.flatMap
Iterator.prototype.forEach
Iterator.prototype.map
Iterator.prototype.reduce
Iterator.prototype.some
Iterator.prototype.take
AsyncIterator
helpersArray.fromAsync
(due to the lack of async feature detection capability - temporarily, only in owncore-js
implementation)AsyncIterator.from
Iterator.prototype.toAsync
undefined
initial parameter inIterator.prototype.reduce
(see WebKit bug)core-js-compat
andcore-js-builder
API:'intersect'
support fortargets.esmodules
(Babel 7 behavior)targets.esmodules: true
(Babel 7 behavior)RegExp.escape
marked as shipped from V8 ~ Chromium 136Error.isError
marked as shipped from FF138Iterator
helpers proposal features marked as supported from Deno 1.38.1 since it seems they were disabled in 1.38.0Iterator.prototype.{ drop, reduce, take }
methods marked as fixed in Bun 1.2.11RegExp.escape
proposal:RegExp.escape
es.
namespace module,/es/
and/stable/
namespaces entriesFloat16
proposal:Math.f16round
DataView.prototype.getFloat16
DataView.prototype.setFloat16
es.
namespace modules,/es/
and/stable/
namespaces entriesMath.clamp
stage 1 proposal:Math.clamp
Math
extensions proposal, February 2025 TC39 meetingAsyncDisposableStack
bug, tc39/proposal-explicit-resource-management/256DisposableStack
,SuppressedError
andIterator.prototype[@@ dispose]
marked as shipped from V8 ~ Chromium 134Error.isError
added and marked as shipped from V8 ~ Chromium 134Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
marked as shipped from V8 ~ Chromium 135Iterator
helpers proposal features marked as shipped from Safari 18.4JSON.parse
source text access proposal features marked as shipped from Safari 18.4Math.sumPrecise
marked as shipped from FF137Error.isError
stage 3 proposal:Error.isError
.sham
Iterator
sequencing stage 2.7 proposal:IteratorResult
objects when possible, tc39/proposal-iterator-sequencing/17, tc39/proposal-iterator-sequencing/18, December 2024 TC39 meetingSet
methodsDataView.prototype.{ getFloat16, setFloat16 }
performance, #1379, thanks @ LeviPesin%TypedArray%.prototype.toSpliced
Math.scale
) available on globalRegExp.escape
marked as shipped from Safari 18.2Promise.try
marked as shipped from Safari 18.2Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
marked as shipped from Safari 18.2Uint8Array
to / from base64 and hex proposal methods marked as shipped from Safari 18.2JSON.parse
source text access proposal features marked as shipped from FF135RegExp.escape
marked as shipped from FF134Promise.try
marked as shipped from FF134Symbol.dispose
,Symbol.asyncDispose
andIterator.prototype[@@ dispose]
marked as shipped from FF135JSON.parse
source text access proposal features marked as shipped from Bun 1.1.43URL.parse
was added - 22.1 instead of 22.0Iterator
helpers proposal:Iterator
Iterator.from
Iterator.prototype.drop
Iterator.prototype.every
Iterator.prototype.filter
Iterator.prototype.find
Iterator.prototype.flatMap
Iterator.prototype.forEach
Iterator.prototype.map
Iterator.prototype.reduce
Iterator.prototype.some
Iterator.prototype.take
Iterator.prototype.toArray
Iterator.prototype[@@ toStringTag]
es.
namespace modules,/es/
and/stable/
namespaces entriesPromise.try
:Promise.try
es.
namespace module,/es/
and/stable/
namespaces entries/actual|full/promise/try
entries for the callback arguments supportMath.sumPrecise
proposal:Math.sumPrecise
/actual/
namespace entries, unconditional forced replacement changed to feature detectionIterator
sequencing stage 2.7 proposal:Iterator.concat
Map
upsert stage 2 proposal:Map.prototype.getOrInsert
Map.prototype.getOrInsertComputed
WeakMap.prototype.getOrInsert
WeakMap.prototype.getOrInsertComputed
@@ species
pattern removed from%TypedArray%
andArrayBuffer
methods, tc39/ecma262/3450:%TypedArray%.prototype.filter
%TypedArray%.prototype.filterReject
%TypedArray%.prototype.map
%TypedArray%.prototype.slice
%TypedArray%.prototype.subarray
ArrayBuffer.prototype.slice
Uint8Array
to / from base64 and hex proposal methods marked as shipped from FF133self
descriptor is fixed in Deno 1.46.0Iterator
helpers proposal methods marked as shipped from Bun 1.1.31URLSearchParams
percent decoding, #1357, #1361, thanks @ slowcheetahIterator
helpers proposal methods marked as shipped from FF131Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
marked as shipped from Bun 1.1.23RegExp.escape
marked as shipped from Bun 1.1.22Promise.try
marked as shipped from Bun 1.1.22Uint8Array
to / from base64 and hex proposal methods marked as shipped from Bun 1.1.22RegExp.escape
proposal:RegExp.escape
/actual/
namespace entries, unconditional forced replacement changed to feature detectionPromise.try
proposal:Promise.try
/actual/
namespace entries, unconditional forced replacement changed to feature detectionUint8Array
to / from base64 and hex stage 3 proposal:Uint8Array.fromBase64
Uint8Array.fromHex
Uint8Array.prototype.setFromBase64
Uint8Array.prototype.setFromHex
Uint8Array.prototype.toBase64
Uint8Array.prototype.toHex
Uint8Array.prototype.{ setFromBase64, setFromHex }
methodsUint8Array.fromBase64
andUint8Array.prototype.setFromBase64
lastChunkHandling
option, proposal-arraybuffer-base64/33Uint8Array.prototype.toBase64
omitPadding
option, proposal-arraybuffer-base64/60TypeError
on arrays backed by detached buffersRegExp
named capture groups polyfill in combination with non-capturing groups, #1352, thanks @ Ulopprocess.getBuiltinModule
for getting built-in NodeJS modules where it's availablehttps
instead ofhttp
inURL
constructor feature detection to avoid extra notifications from some overly vigilant security scanners, #1345browserslist
incore-js-compat
dependencies that fixes an upstream issue with incorrect interpretation of somebrowserslist
queries, #1344, browserslist/829, browserslist/836Object.groupBy
andMap.groupBy
to work for non-objectsRangeError
ifSet
methods are called on an object with negative size propertySet.prototype.symmetricDifference
to callthis.has
in each iterationArray.fromAsync
to not call theArray
constructor twiceURL.parse
Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
marked as shipped from FF129Symbol.asyncDispose
added and marked as supported from V8 ~ Chromium 127Promise.try
added and marked as supported from V8 ~ Chromium 128self
descriptor is broken in Deno 1.45.3 (again)URL.parse
feature detection for some specific casesSet
methods proposal added and marked as supported from FF 127Symbol.dispose
added and marked as supported from V8 ~ Chromium 125Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
added and marked as supported from Deno 1.43URL.parse
added and marked as supported from Chromium 126URL.parse
added and marked as supported from NodeJS 22.0URL.parse
added and marked as supported from Deno 1.43Set
methods proposal:Set.prototype.intersection
Set.prototype.union
Set.prototype.difference
Set.prototype.symmetricDifference
Set.prototype.isSubsetOf
Set.prototype.isSupersetOf
Set.prototype.isDisjointFrom
es.
namespace modules,/es/
and/stable/
namespaces entriesMath.sumPrecise
stage 2.7 proposal:Math.sumPrecise
Promise.try
proposal:Promise.try
RegExp.escape
stage 2 proposal:Symbol.customMatcher
Symbol.customMatcher
Symbol.customMatcher
well-known symbol from the pattern matching proposal is also used in the exactors proposal, added an entry also for this proposalURL.parse
, url/825{ Object, Map }.groupBy
bug that does not support iterable primitivesArray.fromAsync
URL.parse
added and marked as supported from FF 126URL.parse
added and marked as supported from Bun 1.1.4URL.canParse
fixed and marked as supported from Bun 1.1.0Set
methods fixed in JavaScriptCore and marked as supported from Bun 1.1.1Important
Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information: