Stage 3 proposals are feature-complete and have received sign-off from the TC39 committee. They are available in the core-js/actual namespace (recommended) and via dedicated proposal entry points.
// Load all Stage 3 proposals
import 'core-js/stage/3';
// Or load a specific proposal
import 'core-js/proposals/joint-iteration';
Stage 3 proposals are stable but not yet finalized. Breaking changes are rare but possible. Track the proposal repos for updates before relying on them in production.
Joint iteration
Proposal: tc39/proposal-joint-iteration
Adds Iterator.zip and Iterator.zipKeyed for iterating multiple iterables in lockstep.
import 'core-js/proposals/joint-iteration';
const zipped = Iterator.zip([1, 2, 3], ['a', 'b', 'c']);
zipped.toArray(); // => [[1, 'a'], [2, 'b'], [3, 'c']]
const zippedKeyed = Iterator.zipKeyed({ x: [1, 2], y: ['a', 'b'] });
zippedKeyed.toArray(); // => [{ x: 1, y: 'a' }, { x: 2, y: 'b' }]
Entry points:
core-js/proposals/joint-iteration
core-js(-pure)/actual|full/iterator/zip
core-js(-pure)/actual|full/iterator/zip-keyed
Proposal: tc39/proposal-decorator-metadata
Adds Symbol.metadata, a well-known symbol used by the decorators proposal to attach metadata to classes and class members.
import 'core-js/proposals/decorator-metadata-v2';
console.log(typeof Symbol.metadata); // => 'symbol'
Entry points:
core-js/proposals/decorator-metadata-v2
core-js(-pure)/actual|full/symbol/metadata
The decorators proposal itself requires transpiler support (Babel or TypeScript). core-js only polyfills the Symbol.metadata symbol, not the decorator syntax.