지난 6월 22일 ECMA 인터내셔널(ECMA International)이 ECMA스크립트 2022 사양을 승인했다. 앞서 지난 3월 TC39 위원회(TC39 committee)의 공동의장 로버트 팔머는 “대부분의 브라우저에서 이미 이 기능들을 사용할 수 있다. 자바스크립트 엔진의 기능 가용성은 실제 사양보다 개발자와 더 관련 있다”라고 말했다.
ECMA스크립트 2022의 새로운 기능은 다음과 같다.
- 최상위 await(Top-level await): 모듈의 최상단에서 await를 사용할 수 있다.
- 새로운 클래스 요소: 퍼블릭 및 프라이빗 인스턴스 필드, 퍼블릭 및 프라이빗 정적 필드, 프라이빗 인스턴스 메소드 및 접근자를 포함한다.
- 클래스 내 정적 블록: 클래스별 평가 초기화를 수행할 수 있다.
- #x in obj#x in obj 구문: 객체에 프라이빗 필드가 있는지 테스트할 수 있다.
- /d/d 플래그를 통한 정규식 일치 인덱스 : 일치하는 하위 문자열에 시작 및 종료 인덱스를 제공한다.
- Error 객체의 cause 속성: 오류의 인과관계를 기록하는 데 사용된다.
- Strings, Arrays, TypedArrays의 at 메소드: 상대 인덱싱을 허용하고, Object.prototype.hasOwnProperty의 대안인 Object.hasOwn를 사용할 수 있다.
한편 지난 6월 ‘ECMA스크립트 2021’은 하위 문자열의 인스턴스를 교체하기 위한 String.prototype.ReplaceAll 및 AggregateError 오류 유형 등의 기능을 표준화한 바 있다. ciokr@idg.co.kr