Releases: zloirock/core-js
Releases Β· zloirock/core-js
3.39.0 - 2024.10.31
- Changes v3.38.1...v3.39.0
Iterator
helpers proposal:- Built-ins:
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]
- Moved to stable ES, October 2024 TC39 meeting
- Added
es.
namespace modules,/es/
and/stable/
namespaces entries
- Built-ins:
Promise.try
:- Built-ins:
Promise.try
- Moved to stable ES, October 2024 TC39 meeting
- Added
es.
namespace module,/es/
and/stable/
namespaces entries - Fixed
/actual|full/promise/try
entries for the callback arguments support
- Built-ins:
Math.sumPrecise
proposal:- Built-ins:
Math.sumPrecise
- Moved to stage 3, October 2024 TC39 meeting
- Added
/actual/
namespace entries, unconditional forced replacement changed to feature detection
- Built-ins:
- Added
Iterator
sequencing stage 2.7 proposal:- Added built-ins:
Iterator.concat
- Added built-ins:
Map
upsert stage 2 proposal:- Updated to the new API following the October 2024 TC39 meeting
- Added built-ins:
Map.prototype.getOrInsert
Map.prototype.getOrInsertComputed
WeakMap.prototype.getOrInsert
WeakMap.prototype.getOrInsertComputed
- Extractors proposal moved to stage 2, October 2024 TC39 meeting
- Usage of
@@species
pattern removed from%TypedArray%
andArrayBuffer
methods, tc39/ecma262/3450:- Built-ins:
%TypedArray%.prototype.filter
%TypedArray%.prototype.filterReject
%TypedArray%.prototype.map
%TypedArray%.prototype.slice
%TypedArray%.prototype.subarray
ArrayBuffer.prototype.slice
- Built-ins:
- Some other minor improvements
- Compat data improvements:
Uint8Array
to / from base64 and hex proposal methods marked as shipped from FF133- Added NodeJS 23.0 compat data mapping
self
descriptor is fixed in Deno 1.46.0- Added Deno 1.46 and 2.0 compat data mapping
Iterator
helpers proposal methods marked as shipped from Bun 1.1.31- Added Electron 34 and updated Electron 33 compat data mapping
- Added Opera Android 85 compat data mapping
- Added Oculus Quest Browser 35 compat data mapping
3.38.1 - 2024.08.20
- Changes v3.38.0...v3.38.1
- Fixed some cases of
URLSearchParams
percent decoding, #1357, #1361, thanks @slowcheetah - Some stylistic changes and minor optimizations
- Compat data improvements:
Iterator
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.22- Added Hermes 0.13 compat data, similar to React Native 0.75 Hermes
- Added Opera Android 84 compat data mapping
3.38.0 - 2024.08.05
- Changes v3.37.1...v3.38.0
RegExp.escape
proposal:- Built-ins:
RegExp.escape
- Moved to stage 3, June 2024 and July 2024 TC39 meetings
- Updated the way of escaping, regex-escaping/77
- Throw an error on non-strings, regex-escaping/58
- Added
/actual/
namespace entries, unconditional forced replacement changed to feature detection
- Built-ins:
Promise.try
proposal:- Built-ins:
Promise.try
- Moved to stage 3, June 2024 TC39 meeting
- Added
/actual/
namespace entries, unconditional forced replacement changed to feature detection
- Built-ins:
Uint8Array
to / from base64 and hex stage 3 proposal:- Built-ins:
Uint8Array.fromBase64
Uint8Array.fromHex
Uint8Array.prototype.setFromBase64
Uint8Array.prototype.setFromHex
Uint8Array.prototype.toBase64
Uint8Array.prototype.toHex
- Added
Uint8Array.prototype.{ setFromBase64, setFromHex }
methods - Added
Uint8Array.fromBase64
andUint8Array.prototype.setFromBase64
lastChunkHandling
option, proposal-arraybuffer-base64/33 - Added
Uint8Array.prototype.toBase64
omitPadding
option, proposal-arraybuffer-base64/60 - Added throwing a
TypeError
on arrays backed by detached buffers - Unconditional forced replacement changed to feature detection
- Built-ins:
- Fixed
RegExp
named capture groups polyfill in combination with non-capturing groups, #1352, thanks @Ulop - Improved some cases of environment detection
- Uses
process.getBuiltinModule
for getting built-in NodeJS modules where it's available - Uses
https
instead ofhttp
inURL
constructor feature detection to avoid extra notifications from some overly vigilant security scanners, #1345 - Some minor optimizations
- Updated
browserslist
incore-js-compat
dependencies that fixes an upstream issue with incorrect interpretation of somebrowserslist
queries, #1344, browserslist/829, browserslist/836 - Compat data improvements:
- Added Safari 18.0 compat data:
- Fixed
Object.groupBy
andMap.groupBy
to work for non-objects - Fixed throwing a
RangeError
ifSet
methods are called on an object with negative size property - Fixed
Set.prototype.symmetricDifference
to callthis.has
in each iteration - Fixed
Array.fromAsync
to not call theArray
constructor twice - Added
URL.parse
- Fixed
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 128- Added Deno 1.44 and 1.45 compat data mapping
self
descriptor is broken in Deno 1.45.3 (again)- Added Electron 32 and 33 compat data mapping
- Added Opera Android 83 compat data mapping
- Added Samsung Internet 27 compat data mapping
- Added Oculus Quest Browser 34 compat data mapping
- Added Safari 18.0 compat data:
3.37.1 - 2024.05.14
- Changes v3.37.0...v3.37.1
- Fixed
URL.parse
feature detection for some specific cases - Compat data improvements:
Set
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.43- Added Rhino 1.7.15 compat data, many features marked as supported
- Added NodeJS 22.0 compat data mapping
- Added Deno 1.43 compat data mapping
- Added Electron 31 compat data mapping
- Updated Opera Android 82 compat data mapping
- Added Samsung Internet 26 compat data mapping
- Added Oculus Quest Browser 33 compat data mapping
3.37.0 - 2024.04.17
- Changes v3.36.1...v3.37.0
- New
Set
methods proposal:- Built-ins:
Set.prototype.intersection
Set.prototype.union
Set.prototype.difference
Set.prototype.symmetricDifference
Set.prototype.isSubsetOf
Set.prototype.isSupersetOf
Set.prototype.isDisjointFrom
- Moved to stable ES, April 2024 TC39 meeting
- Added
es.
namespace modules,/es/
and/stable/
namespaces entries
- Built-ins:
- Explicit Resource Management stage 3 proposal
- Some minor updates like explicit-resource-management/217
- Added
Math.sumPrecise
stage 2.7 proposal:- Built-ins:
Math.sumPrecise
- Built-ins:
Promise.try
proposal:- Built-ins:
Promise.try
- Added optional arguments support, promise-try/16
- Moved to stage 2.7, April 2024 TC39 meeting
- Built-ins:
RegExp.escape
stage 2 proposal:- Moved to hex-escape semantics, regex-escaping/67
- It's not the final change of the way of escaping, waiting for regex-escaping/77 soon
- Moved to hex-escape semantics, regex-escaping/67
- Pattern matching stage 1 proposal:
- Built-ins:
Symbol.customMatcher
- Once again, the used well-known symbol was renamed
- Added new entries for that
- Built-ins:
- Added Extractors stage 1 proposal:
- Built-ins:
Symbol.customMatcher
- Since the
Symbol.customMatcher
well-known symbol from the pattern matching proposal is also used in the exactors proposal, added an entry also for this proposal
- Built-ins:
- Added
URL.parse
, url/825 - Engines bugs fixes:
- Compat data improvements:
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.0- New
Set
methods fixed in JavaScriptCore and marked as supported from Bun 1.1.1 - Added Opera Android 82 compat data mapping
3.36.1 - 2024.03.19
- Changes v3.36.0...v3.36.1
- Fixed some validation cases in
Object.setPrototypeOf
, #1329, thanks @minseok-choe - Fixed the order of validations in
Array.from
, #1331, thanks @minseok-choe - Added a fix of Bun
queueMicrotask
arity - Added a fix of Bun
URL.canParse
arity - Added a fix of Bun
SuppressedError
extra arguments support and arity - Compat data improvements:
value
argument ofURLSearchParams.prototype.{ has, delete }
marked as supported from Bun 1.0.31- Added React Native 0.74 Hermes compat data,
Array.prototype.{ toSpliced, toReversed, with }
andatob
marked as supported - Added Deno 1.41.3 compat data mapping
- Added Opera Android 81 compat data mapping
- Added Samsung Internet 25 compat data mapping
- Added Oculus Quest Browser 32 compat data mapping
- Updated Electron 30 compat data mapping
3.36.0 - 2024.02.14
ArrayBuffer.prototype.transfer
and friends proposal:- Built-ins:
ArrayBuffer.prototype.detached
ArrayBuffer.prototype.transfer
ArrayBuffer.prototype.transferToFixedLength
- Moved to stable ES, Febrary 2024 TC39 meeting
- Added
es.
namespace modules,/es/
and/stable/
namespaces entries
- Built-ins:
Uint8Array
to / from base64 and hex proposal:- Methods:
Uint8Array.fromBase64
Uint8Array.fromHex
Uint8Array.prototype.toBase64
Uint8Array.prototype.toHex
- Moved to stage 3, Febrary 2024 TC39 meeting
- Added
/actual/
namespace entries - Skipped adding new methods of writing to existing arrays to clarification some moments
- Methods:
Promise.try
proposal has been resurrected and moved to stage 2, Febrary 2024 TC39 meeting- Added an entry point for the new TC39 proposals stage -
core-js/stage/2.7
- still empty - Fixed regression in
Set.prototype.intersection
feature detection - Fixed a missed check in
Array.prototype.{ indexOf, lastIndexOf, includes }
, #1325, thanks @minseok-choe - Fixed a missed check in
Array.prototype.{ reduce, reduceRight }
, #1327, thanks @minseok-choe - Fixed
Array.from
and some other methods with proxy targets, #1322, thanks @minseok-choe - Fixed dependencies loading for modules from
ArrayBuffer.prototype.transfer
and friends proposal in some specific cases in IE10- - Dropped context workaround from collection static methods entries since with current methods semantic it's no longer required
- Added instance methods polyfills to entries of collections static methods that produce collection instances
- Added missed
Date.prototype.toJSON
toJSON.stringify
entries dependencies - Added debugging info in some missed cases
- Compat data improvements:
{ Map, Object }.groupBy
,Promise.withResolvers
,ArrayBuffer.prototype.transfer
and friends marked as supported from Safari 17.4- New
Set
methods fixed and marked as supported from V8 ~ Chrome 123 - Added Deno 1.40 compat data mapping
Symbol.metadata
marked as supported from Deno 1.40.4- Updated Electron 30 compat data mapping
4.0.0-alpha.0 - 2024.02.13
Early release for testing some conceptions.
NOT FOR USAGE IN REAL PROJECTS.
See more info here: #1310
3.35.1 - 2024.01.21
- Fixed internal
ToLength
operation with bigints, #1318 - Removed significant redundant code from
String#split
polyfill - Fixed setting names of methods with symbol keys in some old engines
- Minor fix of prototype methods export logic in the pure version
- Compat data improvements:
Iterator
helpers proposal methods marked as supported from V8 ~ Chrome 122- Note that V8 ~ Chrome 122 add
Set
methods, but they have a bug similar to Safari self
marked as fixed from Bun 1.0.22SuppressedError
andSymbol.{ dispose, asyncDispose }
marked as supported from Bun 1.0.23- Added Oculus Quest Browser 31 compat data mapping
- Updated Electron 29 and added Electron 30 compat data mapping
3.35.0 - 2023.12.29
{ Map, Set, WeakMap, WeakSet }.{ from, of }
became non-generic, following this and some other notes. Now they can be invoked withoutthis
, but no longer return subclass instances- Fixed handling some cases of non-enumerable symbol keys from
Symbol
polyfill - Removed unneeded NodeJS domains-related logic from
queueMicrotask
polyfill - Fixed subclassing of wrapped
ArrayBuffer
- Refactoring, many different minor optimizations
- Compat data improvements:
Array.fromAsync
marked as supported from V8 ~ Chrome 121- It seems that the ancient
Array.prototype.push
bug is fixed in V8 ~ Chrome 122 (Hallelujah!) ArrayBuffer.prototype.transfer
and friends proposal features marked as supported from FF 122 and Bun 1.0.19Object.groupBy
andMap.groupBy
marked as supported from Bun 1.0.19- Since
Iterator
helpers proposal methods are still not disabled in Deno, the web compatibility issue why it was disabled in Chromium makes no sense for Deno and fixed in the spec, they marked as supported from Deno 1.37 - Added Opera Android 80 and updated Opera Android 79 compat data mapping
- Added Samsung Internet 24 compat data mapping