core-js-compat
Advanced tools
Changelog
Function.prototype.{ call, apply, bind }
on string methods, #1128[Serializable]
and [Transferable]
objects in the structuredClone
polyfill. Mainly, for better error messages if polyfilling of cloning such types is impossibleArray.prototype.{ group, groupToMap }
marked as supported from V8 ~ Chromium 108Changelog
Array.prototype.groupToMap
in the pure version for returning wrapped Map
instancesArray.prototype.{ findLast, findLastIndex }
in /stage/4
entryChangelog
document.all
as a callable in some missed casesChangelog
sideEffects
field to core-js-pure
package.json
for better tree shaking, #1117semver
dependency from core-js-compat
semver
package (ironically) added a breaking change and dropped NodeJS 8 support in the minor 7.1
version, after that semver
in core-js-compat
was pinned to 7.0
since for avoiding breaking changes it should support NodeJS 8. However, since core-js-compat
is usually used with other packages that use semver
dependency, it causes multiple duplication of semver
in dependencies. So I decided to remove semver
dependency and replace it with a couple of simple helpers.Changelog
Object.prototype.__proto__
polyfill
document.all
as an object in some missed cases, see ECMAScript Annex B 3.6%WrapForValid(Async)IteratorPrototype%.return
, proposal-iterator-helpers/215.return
in %IteratorHelperPrototype%.return
, #1116value
should be created before done
).length
settingArrayBuffer.length
in V8 ~ Chrome 27-WeakMap
for internal states with multiple core-js
copiesFileList
in the structuredClone
polyfill extended to some more old engines versionsTypeError
in core-js-compat
/ core-js-builder
in case of passing invalid module names / filters for avoiding unexpected result, related to #1115esmodules
core-js-compat
/ core-js-builder
targetChangelog
IS_BROWSER
detection to avoid a false positive with jsdom
, #1110@@species
support in Promise
in some old engines{ Array, %TypedArray% }.prototype.{ findLast, findLastIndex }
marked as shipped in FF104Changelog
.asIndexedPairs
renamed to .indexed
, proposal-iterator-helpers/183:
Iterator.prototype.asIndexedPairs
-> Iterator.prototype.indexed
AsyncIterator.prototype.asIndexedPairs
-> AsyncIterator.prototype.indexed
%AsyncFromSyncIteratorPrototype%
in AsyncIterator.from
and Iterator.prototype.toAsync
, proposal-iterator-helpers/182, proposal-iterator-helpers/202%WrapForValidAsyncIteratorPrototype%.next
, proposal-iterator-helpers/197%WrapForValid(Async)IteratorPrototype%.next
, proposal-iterator-helpers/197 and proposal-iterator-helpers/205.next
/ .return
to an underlying iterator by the extended iterator protocol, a part of proposal-iterator-helpers/194.throw
methods removed from all wrappers / helpers prototypes, a part of proposal-iterator-helpers/194{ Iterator, AsyncIterator }.prototype.flatMap
proxy iterators on .return
, proposal-iterator-helpers/195RangeError
on NaN
in { Iterator, AsyncIterator }.prototype.{ drop, take }
, proposal-iterator-helpers/181%TypedArray%.prototype.toSpliced
method removed from the change array by copy proposal and marked as obsolete in core-js
, proposal-change-array-by-copy/88Promise
with unhandledrejection
event support (browser style) in Deno < 1.24core-js-compat
/ core-js-builder
and added compat data for them:
Changelog
core-js
structuredClone
bugs (1774866 (fixed in FF104) and 1777321 (still not fixed)) that now can clone errors, but .stack
of the clone is an empty string{ Map, WeakMap }.prototype.emplace
logic, #1102