---
# System prepended metadata

title: Ecma TC39 July 2021 agenda overview

---

# Ecma TC39 July 2021 agenda overview

Ecma Technical Committee 39 ([TC39](https://www.ecma-international.org/memento/tc39.htm)) is the group responsible for standardizing JavaScript as a formal "ECMAScript" specification, and generally releases a new edition every year.
Substantial changes are managed at "plenary" meetings involving delegates of member organizations (including the OpenJS Foundation!).
One such meeting is taking place this week, and here's a sampling of items on the [agenda](https://github.com/tc39/agendas/blob/master/2021/07.md), grouped by how close they are to inclusion according to the documented [four-stage process](https://tc39.es/process-document/).
Feel free to reach out if you want your voice to be heard regarding any of these.

[TOC]

# Stage 3
A "Candidate" proposal is added to the working draft for the next edition after [tests](https://github.com/tc39/test262) are ready, at least two independent implementations in browsers and/or Node.js and/or other engines pass them, and the committee approves it.

## Ergonomic "brand checks" for private fields (`#privateField in obj`)
https://github.com/tc39/proposal-private-fields-in-in proposes using `in` for detecting the presence of a private field in an object.
It is seeking advancement to Stage 4.

## Import assertions (`import … assert { type: "json" }`)
https://github.com/tc39/proposal-import-assertions/ proposes a means of communicating requirements of imported modules, primarily their type (e.g., `import config from "./config.json" assert { type: "json" }`).
It is not seeking advancement.

## More Intl locale information (`textInfo`, `weekInfo`, `timeZones`, etc.)
https://github.com/tc39/proposal-intl-locale-info proposes exposing more information in objects returned from `new Intl.Locale(…)`, including conventions around text direction, numbering systems, and calendars, along with default configuration for Intl APIs (e.g., `new Intl.Locale("ja-JP").timeZones` is `["Asia/Tokyo"]`).
It is not seeking advancement.

## Intl.DisplayNames localization v2
https://github.com/tc39/intl-displaynames-v2 proposes extending `Intl.DisplayNames` to localize the names of calendar systems and date/time fields and language dialects (e.g., `(new Intl.DisplayNames("es", {type: "dateTimeField"})).of("year")` is `"año"`).
It is not seeking advancement.

## Intl.DateTimeFormat time zone offsets and names
https://github.com/tc39/proposal-intl-extend-timezonename proposes adding new options for the Intl.DateTimeFormat `timeZoneName` option to localize time zone as a UTC offset (e.g., "longOffset" for "GMT-0800" and "shortOffset" for "GMT-8") or a colloquial name (e.g., "longGeneric" for "Pacific Time" and "shortGeneric" for "PT").
It is not seeking advancement.

## Static property checker (`Object.hasOwn("name")`)
https://github.com/tc39/proposal-accessible-object-hasownproperty proposes a static function to replace use of `Object.prototype.hasOwnProperty.call(obj, name)`.
It is not seeking advancement.

# Stage 2
A "Draft" proposal advances to Stage 3 after spec text is complete, reviewers sign off, and the committee approves it.

## Realms (`new Realm()`)
https://github.com/tc39/proposal-realms proposes a way to construct new "realms" with their own independent collections of intrinsic objects (similar to iframe windows and Node.js [`vm`](https://nodejs.org/api/vm.html) contexts) for isolated code evaluation.
It is seeking advancement to Stage 3.

## Decorators
https://github.com/tc39/proposal-decorators proposes syntax for applying generic treatment and Symbol-keyed metadata to classes and their members (e.g., `@logged function interesting(){…}`), including getter/setter accessor pairs.
It is not seeking advancement.

## Array find from end (`arr.findLast(isFinite)`)
https://github.com/tc39/proposal-array-find-from-last proposes `findLast` and `findLastIndex` Array prototype methods for searching backwards by predicate function (matching the iteration order of `lastIndexOf` with the signature of `find`/`findIndex`).
It is seeking advancement to Stage 3.

## Intl enumeration API (`Intl.supportedValuesOf("currency")`)
https://github.com/tc39/proposal-intl-enumeration proposes a function for implementations to return their supported values for certain Intl collections (`calendar`, `collation`, `currency`, `numberingSystem`, `timeZone`, and `unit`).
It is seeking advancement to Stage 3.

## Intl.NumberFormat v3 (`formatRange(start, end)` and `{roundingIncrement: 5, roundingMode: "ceil"}`)
https://github.com/tc39/proposal-intl-numberformat-v3 proposes extending Intl.NumberFormat to support arbitrary-precision decimal strings, formatting numeric ranges (e.g., "€3–5"), and new rounding options (including multiple-of-five "nickel rounding" and ceil/floor/trunc/etc. modes).
It is seeking advancement to Stage 3.

# Stage 1
A "Proposal" advances to Stage 2 after draft spec text is ready and the committee approves it.

## `module "#…" {…}` fragments
https://github.com/tc39-transfer/proposal-module-fragments proposes syntax for inline definition of inline-defined importable modules, e.g. `module "#const" { export VERSION="1.0.0"; }; import { VERSION } from "#const"`.
It is not seeking advancement.

## Array filtering (`arr.filterReject(isNaN)` and `arr.groupBy(Math.sign)`)
https://github.com/tc39/proposal-array-filtering proposes new array methods for filtering out values (the inverse of `filter`) and grouping values.
It is seeking advancement to Stage 2.

# Stage 0
A "Strawperson" advances to Stage 1 after the committee acknowledges a problem, identifies one or more "champions" to shepherd its solution, and takes ownership of the corresponding repository.

## ArrayBuffer to/from base64 (`ArrayBuffer.fromBase64("AQMDBw==")`)
https://github.com/bakkot/proposal-arraybuffer-base64 proposes ArrayBuffer methods for converting to and from base64.
It is seeking advancement to Stage 1 or 2.