ECMAScript proposals
Finished proposals are proposals that have reached stage 4, and are included in the latest draft of the specification.
Proposal | ES Version | Description (한글) |
---|---|---|
[RegExp.escape ] |
ES2025 | 정규식 내 특수 문자를 이스케이프하여 리터럴 문자열로 취급하는 정적 메서드 RegExp.escape() 를 추가합니다. |
Float16 on TypedArrays, DataView, Math.f16round |
ES2025 | TypedArray , DataView 에서 16비트 부동소수점(half-precision) 형식을 지원하고, 가장 가까운 16비트 부동소수점 값으로 반올림하는 Math.f16round() 함수를 추가합니다. |
[Promise.try ] |
ES2025 | 동기/비동기 함수 실행을 try...catch 처럼 감싸 즉시 Promise를 반환하는 Promise.try() 정적 메서드를 추가합니다. |
Sync Iterator helpers | ES2025 | 동기 이터레이터에 map , filter , take , drop , flatMap , reduce , toArray , forEach , some , every , find 와 같은 헬퍼 메서드를 추가합니다. |
JSON Modules | ES2025 | import 문을 사용하여 JSON 파일을 모듈처럼 직접 가져올 수 있도록 지원합니다. |
Import Attributes | ES2025 | import 문에 추가적인 속성(예: type )을 명시하여 모듈 로딩 방식을 제어합니다 (이전 'Import Assertions'). |
RegExp Modifiers | ES2025 | 정규식 리터럴 내에서 (?i:) 와 같이 특정 부분에만 플래그(i, m, s)를 적용하거나 해제할 수 있는 문법을 추가합니다. |
New Set methods | ES2025 | Set 객체에 교집합(intersection ), 합집합(union ), 차집합(difference ), 대칭차집합(symmetricDifference ), 부분집합 여부(isSubsetOf ), 상위집합 여부(isSupersetOf ), 서로소 여부(isDisjointFrom ) 등의 새로운 메서드를 추가합니다. |
Duplicate named capture groups | ES2025 | 정규식에서 동일한 이름의 캡처 그룹을 여러 번 사용할 수 있도록 허용합니다. |
ArrayBuffer transfer | ES2024 | ArrayBuffer 의 소유권을 다른 컨텍스트로 효율적으로 이전(transfer)하거나, 현재 버퍼를 유지하면서 복사본을 이전하는 기능을 추가합니다. (transfer() , transferToFixedLength() ) |
[Promise.withResolvers ] |
ES2024 | Promise 객체와 그 Promise를 제어하는 resolve 및 reject 함수를 함께 반환하는 Promise.withResolvers() 정적 메서드를 추가합니다. |
Array Grouping | ES2024 | 배열의 요소를 주어진 콜백 함수가 반환하는 값을 기준으로 그룹화하여 객체 또는 Map 으로 반환하는 Object.groupBy() 및 Map.groupBy() 메서드를 추가합니다. |
Resizable and growable ArrayBuffers | ES2024 | 생성 시 maxByteLength 를 지정하여 런타임에 크기를 조절할 수 있는 ArrayBuffer 및 SharedArrayBuffer 를 지원합니다. |
RegExp v flag with set notation + properties of strings | ES2024 | 정규식에 유니코드 집합 연산(차집합, 교집합 등) 및 문자열의 유니코드 속성 지원을 강화하는 v 플래그를 추가합니다. |
[Atomics.waitAsync ] |
ES2024 | SharedArrayBuffer 의 특정 위치 값이 변경될 때까지 비동기적으로 대기하는 Atomics.waitAsync() 메서드를 추가합니다. |
Well-Formed Unicode Strings | ES2024 | 문자열이 잘 구성된 유니코드인지 확인하는 isWellFormed() 메서드와, 잘 구성된 유니코드로 변환하는 toWellFormed() 메서드를 String.prototype 에 추가합니다. |
Change Array by Copy | ES2023 | 원본 배열을 변경하지 않고 변경된 복사본을 반환하는 배열 메서드들(toReversed() , toSorted() , toSpliced() , with() )을 추가합니다. |
Symbols as WeakMap keys | ES2023 | 고유하고 가비지 컬렉션 대상이 될 수 있는 Symbol 을 WeakMap 의 키로 사용할 수 있도록 허용합니다. |
Hashbang Grammar | ES2023 | JavaScript 스크립트 파일 시작 부분의 해시뱅/셔뱅 (#! ) 주석을 표준 문법으로 공식 인정하여, 실행 환경이 이를 올바르게 해석할 수 있도록 합니다. |
Array find from last | ES2023 | 배열의 끝에서부터 조건을 만족하는 요소를 찾는 findLast() 및 해당 요소의 인덱스를 찾는 findLastIndex() 메서드를 추가합니다. |
Error Cause | ES2022 | Error 객체를 생성할 때 에러의 원인이 된 다른 에러를 명시할 수 있는 cause 옵션을 Error 생성자에 추가합니다. |
Class Static Block | ES2022 | 클래스 정의 내에서 정적 멤버를 초기화하거나 복잡한 정적 로직을 수행할 수 있는 static {} 블록을 도입합니다. |
Accessible Object.prototype.hasOwnProperty |
ES2022 | Object.prototype.hasOwnProperty.call(obj, prop) 대신 사용할 수 있는 더 안전하고 간결한 Object.hasOwn(obj, prop) 정적 메서드를 추가합니다. |
[.at() ] |
ES2022 | 배열, 문자열, TypedArray 등 인덱싱 가능한 객체에서 음수 인덱스를 사용하여 끝에서부터 요소에 접근할 수 있는 .at() 메서드를 추가합니다. |
Ergonomic brand checks for Private Fields | ES2022 | in 연산자를 사용하여 클래스 외부에서도 객체가 특정 프라이빗 필드를 가지고 있는지 여부를 안전하게 확인할 수 있게 합니다. |
Top-level await |
ES2022 | ES 모듈의 최상위 레벨에서 async 함수 외부에서도 await 키워드를 사용하여 비동기 작업을 처리할 수 있도록 합니다. |
RegExp Match Indices | ES2022 | 정규식 일치 결과 객체에 각 캡처 그룹의 시작 및 끝 인덱스 정보를 제공하는 indices 속성을 추가합니다 (정규식에 d 플래그 사용 시). |
Class Fields (Private instance methods and accessors, Class Public Instance Fields & Private Instance Fields, Static class fields and private static methods) | ES2022 | 클래스에 public/private 인스턴스 필드, public/private static 필드, private 인스턴스 메서드/접근자, private static 메서드/접근자를 선언하는 기능을 제공합니다. |
Numeric separators | ES2021 | 숫자 리터럴(예: 1_000_000 ) 내에 밑줄(_ )을 사용하여 가독성을 향상시키는 기능을 추가합니다. |
Logical Assignment Operators | ES2021 | 논리 연산자(&& , ` |
WeakRefs | ES2021 | 객체에 대한 약한 참조(WeakRef )를 생성하여, 해당 객체가 가비지 컬렉션 대상이 되는 것을 막지 않으면서 참조할 수 있게 합니다. FinalizationRegistry 도 함께 도입됩니다. |
[Promise.any ] |
ES2021 | 여러 Promise 중 가장 먼저 성공(fulfilled)하는 Promise 의 결과를 반환합니다. 모든 Promise 가 실패하면 AggregateError 를 반환합니다. |
[String.prototype.replaceAll ] |
ES2021 | 문자열 내에서 특정 부분 문자열의 모든 발생을 다른 문자열로 교체하는 replaceAll() 메서드를 추가합니다. |
[import.meta ] |
ES2020 | ES 모듈 내에서 현재 모듈에 대한 컨텍스트 특정 메타데이터(예: 모듈 URL)를 담고 있는 import.meta 객체를 제공합니다. |
Nullish coalescing Operator | ES2020 | ?? 연산자로, 왼쪽 피연산자가 null 또는 undefined 일 경우 오른쪽 피연산자를 반환하고, 그렇지 않으면 왼쪽 피연산자를 반환합니다. |
Optional Chaining | ES2020 | ?. 연산자로, 체인의 참조가 null 또는 undefined 일 가능성이 있을 때 에러 발생 없이 프로퍼티나 함수 호출을 시도하고, 해당 값이 없으면 undefined 를 반환합니다. |
[for-in mechanics] |
ES2020 | for...in 루프가 객체 속성을 열거하는 순서에 대한 명세를 명확히 하여 구현 간 일관성을 높입니다. |
[globalThis ] |
ES2020 | 다양한 JavaScript 환경(브라우저의 window , Node.js의 global 등)에서 전역 this 값을 일관되게 참조할 수 있는 globalThis 키워드를 제공합니다. |
[Promise.allSettled ] |
ES2020 | 여러 Promise 가 모두 이행(settled: 성공 또는 실패)될 때까지 기다린 후, 각 Promise 의 상태와 결과(또는 이유)를 담은 객체의 배열을 반환합니다. |
[BigInt ] |
ES2020 | Number 의 최대 안전 정수보다 큰 정수를 표현할 수 있는 새로운 숫자 원시 타입 BigInt 를 도입합니다. |
[import() ] |
ES2020 | 필요할 때 모듈을 동적으로 로드할 수 있는 함수 형태의 import() 문법을 제공합니다. Promise 를 반환합니다. |
[String.prototype.matchAll ] |
ES2020 | 정규식과 일치하는 모든 결과를 포함하는 이터레이터를 반환하는 matchAll() 메서드를 String.prototype 에 추가합니다. |
[Array.prototype.{flat,flatMap} ] |
ES2019 | 중첩된 배열을 지정된 깊이까지 평탄화하는 flat() 메서드와, 배열의 각 요소에 매핑 함수를 적용한 후 결과를 평탄화하는 flatMap() 메서드를 추가합니다. |
[String.prototype.{trimStart,trimEnd} ] |
ES2019 | 문자열의 시작 부분 공백을 제거하는 trimStart() (또는 trimLeft )와 끝 부분 공백을 제거하는 trimEnd() (또는 trimRight ) 메서드를 추가합니다. |
Well-formed JSON.stringify |
ES2019 | JSON.stringify() 가 잘못된 유니코드 문자(예: lone surrogates)를 유효한 유니코드 이스케이프 시퀀스로 변환하여 반환하도록 수정합니다. |
[Object.fromEntries ] |
ES2019 | [key, value] 쌍의 배열이나 이터러블 객체를 받아 새로운 객체로 변환하는 Object.fromEntries() 정적 메서드를 추가합니다. (Object.entries() 의 반대 기능) |
[Function.prototype.toString revision] |
ES2019 | Function.prototype.toString() 이 함수 소스 코드를 반환할 때 주석과 공백을 포함하여 원본에 더 가깝게 반환하도록 명세를 개정합니다. |
[Symbol.prototype.description ] |
ES2019 | Symbol 객체를 생성할 때 전달된 설명을 반환하는 읽기 전용 속성 description 을 Symbol.prototype 에 추가합니다. |
JSON superset | ES2019 | ECMAScript 문자열 리터럴이 모든 JSON 문자열 리터럴을 포함하도록 하여, U+2028 (줄 구분자) 및 U+2029 (단락 구분자) 문자가 문자열 리터럴에 직접 포함될 수 있도록 합니다. |
Optional catch binding |
ES2019 | try...catch 문에서 catch 블록의 예외 객체 바인딩(매개변수)을 사용하지 않을 경우 생략할 수 있도록 허용합니다 (예: try {...} catch {...} ). |
Asynchronous Iteration | ES2018 | 비동기적으로 데이터를 생성하는 이터레이터(Async Iterators)와 이를 소비하는 for-await...of 루프 문법을 도입합니다. |
[Promise.prototype.finally ] |
ES2018 | Promise 가 성공(fulfilled)하든 실패(rejected)하든 관계없이 특정 콜백 함수를 실행하도록 하는 finally() 메서드를 Promise.prototype 에 추가합니다. |
RegExp Unicode Property Escapes | ES2018 | 정규식에서 유니코드 속성(예: Script, General_Category)을 사용하여 문자를 매칭할 수 있는 \p{...} 및 \P{...} 이스케이프 시퀀스를 지원합니다 (정규식에 u 플래그 필요). |
RegExp Lookbehind Assertions | ES2018 | 정규식에서 현재 위치 이전의 텍스트를 조건으로 매칭하는 긍정형 후방탐색((?<=...) ) 및 부정형 후방탐색((?<!...) )을 지원합니다. |
Rest/Spread Properties | ES2018 | 객체 리터럴에서 나머지 속성을 모으는 Rest Properties (...rest )와 객체의 속성을 펼치는 Spread Properties (...obj )를 지원합니다. |
RegExp named capture groups | ES2018 | 정규식의 캡처 그룹에 이름을 지정하고 ((?<name>...) ), 이름으로 참조할 수 있는 기능을 추가합니다. |
s (dotAll ) flag for regular expressions |
ES2018 | 정규식의 . 메타문자가 개행 문자(예: \n )를 포함한 모든 문자와 일치하도록 하는 s (dotAll) 플래그를 추가합니다. |
Lifting template literal restriction | ES2018 | 태그된 템플릿 리터럴에서 잘못된 이스케이프 시퀀스가 포함된 문자열을 사용할 수 없었던 제한을 완화합니다. cooked 문자열이 undefined 일 경우 raw 문자열을 사용합니다. |
Shared memory and atomics | ES2017 | 여러 워커(스레드) 간에 메모리를 공유할 수 있는 SharedArrayBuffer 와, 공유 메모리에서의 동시성 문제를 해결하기 위한 Atomics 객체를 도입하여 병렬 프로그래밍을 지원합니다. |
Async functions | ES2017 | async 키워드로 비동기 함수를 선언하고, await 키워드로 Promise 가 완료될 때까지 함수의 실행을 일시 중지하여 비동기 코드를 동기식처럼 작성할 수 있게 합니다. |
Trailing commas in function parameter lists and calls | ES2017 | 함수 매개변수 목록 및 함수 호출 시 마지막 매개변수 뒤에 쉼표(trailing comma)를 허용하여 코드 수정 및 버전 관리 용이성을 높입니다. |
[Object.getOwnPropertyDescriptors ] |
ES2017 | 객체의 모든 자체 속성(상속된 속성 제외)에 대한 속성 기술자(property descriptor)들을 담은 객체를 반환하는 Object.getOwnPropertyDescriptors() 정적 메서드를 추가합니다. |
String padding | ES2017 | 문자열의 시작 부분(padStart() ) 또는 끝 부분(padEnd() )을 주어진 문자로 채워 지정된 길이의 새로운 문자열을 생성하는 메서드를 추가합니다. |
[Object.values /Object.entries ] |
ES2017 | 객체의 자체 열거 가능한 속성 값들의 배열을 반환하는 Object.values() 와, [key, value] 쌍의 배열을 반환하는 Object.entries() 정적 메서드를 추가합니다. |
Exponentiation operator | ES2016 | 거듭제곱 연산을 수행하는 중위 연산자 ** (예: 2 ** 3 은 8)를 추가합니다. Math.pow() 와 유사합니다. |
[Array.prototype.includes ] |
ES2016 | 배열이 특정 요소를 포함하고 있는지 여부를 불리언 값으로 반환하는 includes() 메서드를 Array.prototype 에 추가합니다. NaN 도 정확히 찾을 수 있습니다. |
Lexical Declarations (let , const ) |
ES2015 | 블록 스코프를 가지는 변수 선언 키워드 let 과 상수 선언 키워드 const 를 도입합니다. |
Arrow Functions | ES2015 | function 키워드 대신 화살표(=> )를 사용하여 함수를 간결하게 정의하며, 자체 this 바인딩을 갖지 않습니다. |
Classes | ES2015 | 프로토타입 기반 상속을 더 명확하고 쉽게 사용할 수 있도록 하는 클래스 문법(class , constructor , extends , super , static )을 도입합니다. |
Enhanced Object Literals | ES2015 | 객체 리터럴 정의 시 속성 축약 표현, 계산된 속성 이름, 메서드 정의 축약 표현 등을 지원합니다. |
Template Literals | ES2015 | 백틱(` `)으로 감싸는 문자열로, 내부에 표현식을 삽입(${expression})하거나 여러 줄 문자열을 쉽게 작성할 수 있습니다. |
Destructuring Assignment | ES2015 | 배열이나 객체의 값을 추출하여 개별 변수에 할당하는 간편한 문법을 제공합니다. |
Default Parameters | ES2015 | 함수 매개변수에 기본값을 지정하여, 해당 인수가 전달되지 않거나 undefined 일 경우 기본값을 사용하도록 합니다. |
Rest Parameters | ES2015 | 함수 매개변수 목록의 마지막에 ... 을 사용하여 나머지 인수들을 배열로 모을 수 있게 합니다. |
Spread Syntax | ES2015 | 배열이나 이터러블 객체를 개별 요소로 펼치거나, 객체를 다른 객체 리터럴에 펼칠 수 있게 합니다 (... ). |
Iterators and for...of loop |
ES2015 | 이터레이션 프로토콜을 정의하고, 이터러블 객체(배열, 문자열, Map, Set 등)의 값을 순회하는 for...of 루프를 도입합니다. |
Generators | ES2015 | 실행을 중간에 멈추고 재개할 수 있는 특별한 함수(제너레이터 함수, function* )와 이터레이터를 생성하는 기능을 제공합니다. |
Promises | ES2015 | 비동기 작업의 최종 완료 또는 실패를 나타내는 객체와 그 결과를 다루는 표준화된 방법을 제공합니다. |
Modules (ESM: import /export ) |
ES2015 | 코드를 모듈 단위로 구성하고, import 와 export 키워드를 사용하여 모듈 간 의존성을 관리하는 표준 모듈 시스템을 도입합니다. |
Map , Set , WeakMap , WeakSet |
ES2015 | 키-값 쌍을 저장하는 Map , 고유한 값을 저장하는 Set , 그리고 키에 대한 약한 참조를 가지는 WeakMap 및 WeakSet 컬렉션 객체를 도입합니다. |
Symbol primitive type |
ES2015 | 고유하고 변경 불가능한 원시 값인 Symbol 타입을 도입하여, 객체 속성 키 충돌을 방지하는 데 사용될 수 있습니다. |
Proxy and Reflect APIs |
ES2015 | 객체에 대한 기본적인 동작(속성 접근, 할당, 열거, 함수 호출 등)을 가로채고 재정의할 수 있는 Proxy 객체와, 이러한 동작을 위한 기본 메서드를 제공하는 Reflect API를 도입합니다. |
[Object.assign ] |
ES2015 | 하나 이상의 출처 객체로부터 모든 열거 가능한 자체 속성을 대상 객체로 복사하는 Object.assign() 정적 메서드를 추가합니다. |
New String methods (e.g., startsWith , endsWith , includes , repeat ) |
ES2015 | 문자열 처리를 위한 다양한 새 메서드들(startsWith , endsWith , includes , repeat 등)을 String.prototype 에 추가합니다. |
New Array methods (e.g., Array.from , Array.of , find , findIndex , fill , copyWithin ) |
ES2015 | 배열 조작 및 생성을 위한 다양한 새 메서드들(Array.from , Array.of , find , findIndex , fill , copyWithin 등)을 Array 객체 및 Array.prototype 에 추가합니다. |
Typed Arrays | ES2015 | 원시 이진 데이터를 다루기 위한 배열 유사 객체들(예: Int8Array , Float32Array )과 ArrayBuffer 를 제공합니다. |
Binary and Octal Literals | ES2015 | 2진수(0b 또는 0B 접두사) 및 8진수(0o 또는 0O 접두사) 숫자 리터럴 표기법을 지원합니다. |
__proto__ in object literals (standardized) |
ES2015 | 객체 리터럴 내에서 __proto__ 속성을 사용하여 프로토타입을 설정하는 기능을 표준화합니다. (권장되지는 않음) |
[Object.is ] |
ES2015 | 두 값이 같은 값인지 비교하는 Object.is() 정적 메서드를 추가합니다. (=== 보다 NaN 과 +0 , -0 처리에 있어 더 정확함) |
Number properties and methods (e.g., Number.isFinite , Number.isNaN , Number.EPSILON ) |
ES2015 | 숫자 관련 유틸리티 상수(EPSILON , MAX_SAFE_INTEGER 등) 및 메서드(isFinite , isNaN , isInteger , isSafeInteger 등)를 Number 객체에 추가합니다. |
Math methods (e.g., Math.trunc , Math.sign , Math.cbrt , Math.hypot ) |
ES2015 | 수학 연산을 위한 다양한 새 정적 메서드들(trunc , sign , cbrt , log10 , hypot 등)을 Math 객체에 추가합니다. |
Unicode regular expression (u ) flag improvements |
ES2015 | 정규식 u 플래그 사용 시 유니코드 코드 포인트 단위로 매칭하고, 유니코드 이스케이프 시퀀스(\u{...} )를 지원하는 등 유니코드 처리를 개선합니다. |
Sticky (y ) flag for regular expressions |
ES2015 | 정규식 y (sticky) 플래그를 추가하여, lastIndex 속성으로 지정된 위치에서만 일치하는지 확인하고, 일치하면 lastIndex 를 갱신합니다. |
Proposal | Description (한글) |
---|---|
Legacy RegExp features in JavaScript | 구형 브라우저에서 지원되던 비표준 정규식 기능(예: 특정 상황에서의 캡처 그룹 동작)을 명세에 포함하여 웹 호환성을 높입니다. |
Temporal | 날짜 및 시간 처리를 위한 현대적이고 사용하기 쉬운 Temporal 전역 객체와 관련 API를 도입합니다. (기존 Date 객체의 단점 개선) |
Decorators | 클래스와 클래스 멤버(메서드, 필드, 접근자)에 메타프로그래밍 기능을 추가할 수 있는 데코레이터 문법을 도입합니다. |
JSON.parse source text access | JSON.parse 가 파싱한 값과 함께 원본 JSON 문자열의 해당 부분을 가져올 수 있는 기능을 추가합니다 (예: reviver 함수에서). |
Array.fromAsync |
비동기 이터러블이나 Promise 를 반환하는 이터러블로부터 배열을 생성하는 Array.fromAsync() 정적 메서드를 추가합니다. |
Explicit Resource Management | 파일 핸들, 네트워크 연결 등 사용 후 명시적으로 해제해야 하는 리소스를 using 및 await using 구문을 통해 안전하게 관리하는 기능을 도입합니다. |
Decorator Metadata | 데코레이터가 클래스 및 멤버에 메타데이터를 연결하고 접근할 수 있도록 하는 표준적인 방법을 제공합니다. |
Source Phase Imports | 모듈 그래프를 분석하는 단계(소스 단계)에서만 필요한 모듈을 가져올 수 있도록 하여, 런타임에는 해당 모듈이 로드되지 않게 합니다. (주로 빌드 도구나 린터용) |
Time Zone Canonicalization | Temporal API에서 사용되는 시간대 식별자를 정규화(canonicalize)하는 방식을 명확히 합니다. |
Uint8Array to/from Base64 | Uint8Array 와 Base64 문자열 간의 효율적인 변환을 위한 메서드를 추가합니다. |
Dynamic Code Brand Checks | eval 이나 new Function 등으로 생성된 동적 코드인지 여부를 안전하게 확인할 수 있는 방법을 제공합니다. |
Redeclarable global eval -introduced var s |
전역 스코프에서 eval 을 통해 선언된 var 변수가 특정 조건 하에 재선언될 수 있도록 하는 동작을 명확히 합니다. |
Atomics.pause |
스핀락(spin lock)과 같은 바쁜 대기(busy-waiting) 루프에서 CPU 사용량을 줄이고 성능을 개선하기 위해 짧은 시간 동안 실행을 일시 중지하는 Atomics.pause() 메서드를 추가합니다. |
Error.isError |
주어진 값이 Error 객체인지 여부를 안정적으로 확인하는 Error.isError() 정적 메서드를 추가합니다. |
Deferring Module Evaluation | 모듈을 가져올 때 즉시 평가하지 않고, 실제 사용될 때까지 평가를 지연시키는 기능을 도입합니다. (성능 최적화) |
Math.sumPrecise |
부동소수점 숫자의 배열 합계를 계산할 때 정밀도 손실을 최소화하는 Math.sumPrecise() 메서드를 추가합니다. |
ECMAScript Internationalization API Specification proposals
Proposals follow this process document. This list contains only stage 2 proposals and higher that have not yet been withdrawn/rejected, or become finished. Stage 2 indicates that the committee expects these features to be developed and eventually included in the standard.
Proposal | Author | Champion | Test262 Feature Flag | Last Presented |
---|---|---|---|---|
ShadowRealm | Caridy Patiño Jean-Francois Paradis |
Dave Herman Mark Miller Caridy Patiño Leo Balter Rick Waldron Chengzhong Wu |
ShadowRealm | February 2024 |
Joint Iteration | Michael Ficarra | Michael Ficarra | Testing plan | June 2024 |
Iterator Sequencing | Michael Ficarra | Michael Ficarra | ❓ | October 2024 |
ESM Phase Imports | Luca Casonato Guy Bedford |
Luca Casonato Guy Bedford |
❓ | December 2024 |
Immutable ArrayBuffers | Mark Miller Peter Hoddie Richard Gibson Jack Works |
Mark Miller Peter Hoddie Richard Gibson Jack Works |
❓ | February 2025 |
Non-extensible Applies to Private | Mark Miller Shu-yu Guo Chip Morningstar Erik Marks |
Mark Miller Shu-yu Guo Chip Morningstar Erik Marks |
❓ | April 2025 |
Upsert |
Daniel Minor, Lauritz Thoresen Angeltveit, Jonas Haukenes, Sune Lianes, Vetle Larsen, Mathias Hop Ness | Daniel Minor | Testing plan | April 2025 |
Proposal | Author | Champion | Stage 2.7 reviewers | Last Presented |
---|---|---|---|---|
function.sent metaproperty |
Allen Wirfs-Brock | HE Shi-Jun | July 2019 | |
throw expressions |
Ron Buckton | Ron Buckton | February 2024 | |
Function implementation hiding | Domenic Denicola Michael Ficarra |
Michael Ficarra | June 2020 | |
collection normalization | Bradley Farias | Bradley Farias | January 2019 | |
isTemplateObject | Mike Samuel, Krzysztof Kotowicz | Daniel Ehrenberg Jordan Harband |
April 2024 | |
Dynamic Import Host Adjustment | Mike Samuel, Krzysztof Kotowicz | Krzysztof Kotowicz | December 2019 | |
Module Expressions | Surma Daniel Ehrenberg Nicolò Ribaudo |
Surma Nicolò Ribaudo |
November 2022 | |
Pipeline Operator | J. S. Choi James DiGioia Ron Buckton Tab Atkins |
J. S. Choi Ron Buckton Tab Atkins |
August 2021 | |
Destructure Private Fields | Justin Ridgewell | Justin Ridgewell | December 2021 | |
RegExp Buffer Boundaries (\A , \z , \Z ) |
Ron Buckton | Ron Buckton | December 2021 | |
String.dedent | Misha Kaletsky Hemanth HM Justin Ridgewell |
Hemanth HM Justin Ridgewell |
June 2022 | |
JSON.parseImmutable | Robin Ricard Richard Button Nicolò Ribaudo Ashley Claymore |
Robin Ricard Richard Button Nicolò Ribaudo Ashley Claymore |
July 2022 | |
Module Declarations | Daniel Ehrenberg Nicolò Ribaudo |
Daniel Ehrenberg Mark Miller Nicolò Ribaudo |
November 2022 | |
Symbol Predicates | Robin Ricard Jordan Harband |
Ashley Claymore Jordan Harband |
May 2023 | |
Async Iterator helpers | Gus Caplan | Michael Ficarra Jonathan Keslin Kevin Gibbons |
June 2024 | |
Iterator.range | Jack Works | Jack Works | April 2024 | |
Async Context | Chengzhong Wu | Andreu Botella Chengzhong Wu Justin Ridgewell |
James M Snell Mark S. Miller |
April 2024 |
"Discard" (void ) Bindings |
Ron Buckton | Ron Buckton | June 2024 | |
Propagate active ScriptOrModule with JobCallback Record | Chengzhong Wu | Chengzhong Wu | July 2024 | |
Structs: Fixed Layout Objects and Some Synchronization Primitives | Shu-yu Guo | Shu-yu Guo | Mark Miller Waldemar Horwat Yulia Startsev Nicolò Ribaudo |
October 2024 |
Extractors | Ron Buckton | Ron Buckton | Jordan Harband Justin Ridgewell |
October 2024 |
iterator chunking | Michael Ficarra | Michael Ficarra | Ashley Claymore Jordan Harband Jesse Alama |
October 2024 |
Error Stack Accessor | Jordan Harband | Jordan Harband Mark Miller |
Nicolò Ribaudo Michael Ficarra |
February 2025 |
Deferred Re-exports | Nicolò Ribaudo | Nicolò Ribaudo | Chengzhong Wu Ashley Claymore |
April 2025 |
The test262 feature flag links to a code search of tests using that feature flag, which may constitute complete or partial coverage. The ❓ means there is no feature flag for tests yet.
See Contributing to ECMAScript and How We Work for the most up-to-date information on contributing to proposals to TC39 standards and how proposals advance.
Proposals that are Stage 1 and above must be transferred to the TC39 GitHub organization for discoverability and archival purposes. To onboard a proposal:
- Transfer your repository to the @tc39-transfer organization
- if you are a TC39 delegate, but not a member of that organization, please contact @LJHarb
- The Github Administrator, or one of the chairs, will transfer your repository to the TC39 organization the next chance they get.
Note that as part of the onboarding process your repository name may be normalized. Don't worry, repo redirects will continue to work as long as you never create a fork, or a new repository, with the same name - although Github Pages redirects will be broken (please update your links!).