-
Notifications
You must be signed in to change notification settings - Fork 0
[Snyk] Upgrade core-js from 3.12.0 to 3.43.0 #476
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.43.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!
This pull request performs a substantial upgrade of the core-js
dependency to its latest stable version. The primary goal is to ensure the project benefits from the most recent ECMAScript features, critical bug fixes, and improved compatibility across different JavaScript environments, thereby enhancing the project's stability and future-proofing its codebase.
Highlights
- Dependency Upgrade: The
core-js
library has been significantly upgraded from version3.6.4
to3.43.0
. This update spans 87 minor and patch versions, incorporating a vast array of new features and fixes. - ECMAScript Feature Adoption: This upgrade brings polyfills for numerous new and recently stabilized ECMAScript proposals, including Explicit Resource Management,
Array.fromAsync
,Error.isError
,Iterator
helpers,Promise.try
,RegExp.escape
,Float16
related features, and newSet
andMap
methods. These additions ensure compatibility with the latest JavaScript standards. - Bug Fixes and Compatibility Improvements: The new
core-js
version includes a multitude of bug fixes and updated compatibility data across various JavaScript engines and environments, addressing known issues and enhancing the library's robustness and reliability.
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 PR upgrades core-js
from 3.12.0
to 3.43.0
. This is a significant jump across 87 versions. While this is a valuable update to keep dependencies current, it introduces a risk of subtle breaking changes due to the large number of intermediate releases. I've added a comment highlighting the need for thorough regression testing across all supported browsers to mitigate this risk before merging.
@@ -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.43.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.
This pull request upgrades core-js
from ^3.6.4
to ^3.43.0
. The resolved version jumps from 3.12.0
to 3.43.0
, which spans 87 releases.
While this is technically a minor version bump according to semver, core-js
is a critical dependency that provides polyfills for core JavaScript features. Such a large jump carries a risk of introducing subtle bugs or behavior changes that could impact the application's stability.
Angular 15 projects are typically scaffolded with core-js@~3.20.0
. Version 3.43.0
is significantly newer and might have compatibility issues that are not immediately apparent.
It is crucial to perform extensive end-to-end and regression testing across all supported browsers before merging this change.
Snyk has created this PR to upgrade core-js from 3.12.0 to 3.43.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 87 versions ahead of your current version.
The recommended version was released a month ago.
Release notes
Package name: core-js
Symbol.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.1Object.setPrototypeOf
, #1329, thanks @ minseok-choeArray.from
, #1331, thanks @ minseok-choequeueMicrotask
arityURL.canParse
aritySuppressedError
extra arguments support and arityvalue
argument ofURLSearchParams.prototype.{ has, delete }
marked as supported from Bun 1.0.31Array.prototype.{ toSpliced, toReversed, with }
andatob
marked as supportedImportant
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: