ECMAScript 6은 차기 표준이고, 코드네임은 "ES.next"입니다. 명세 초안은 ECMA 위키에서 확인하실 수 있습니다. 첫 초안 작업은 2011년 7월 12일에 "ES.next"로 공개된 ECMAScript 5.1에 기반을 두고 작성되었습니다. 2014년 8월 시점에서 ECMAScript 6은 기능 추가가 동결되었으며, 2015년 내로 완료될 예정입니다. ECMAScript 6는 2015년 3월부터 공식 발표 과정으로 넘어갑니다(2015년 6월에 완료).
ECMAScript 표준에 대한 피드백 채널은 es-discuss을 이용하시면 됩니다.
이미 지원되는 기능
다음 기능들은 Firefox에서 이미 구현되어 있습니다:
표준 라이브러리
Array 객체 추가사항
for...of에서의Array반복 (Firefox 13)Array.from()(Firefox 32)Array.of()(Firefox 25)Array.prototype.fill()(Firefox 31)Array.prototype.find(),Array.prototype.findIndex()(Firefox 25)Array.prototype.entries(),
Array.prototype.keys()(Firefox 28)Array.prototype.copyWithin()(Firefox 32)
새로운 Map과 Set 객체 그리고 WeakMap과 WeakSet 객체
Map(Firefox 13)for...of에서의Map반복 (Firefox 17)Map.prototype.forEach()(Firefox 25)Map.prototype.entries(),
Map.prototype.keys(),
Map.prototype.values()(Firefox 20)- 생성자 인수:
new(Firefox 37)Map(null) - 몽키 패치 된 생성자 내의
set()(Firefox 37)
Set(Firefox 13)for...of에서의Set반복 (Firefox 17)Set.prototype.forEach()(Firefox 25)Set.prototype.entries(),
Set.prototype.keys(),
Set.prototype.values()(Firefox 24)- 생성자 인수:
new(Firefox 37)Set(null) - 몽키 패치 된 생성자 내의
add()(Firefox 37)
WeakMap(Firefox 6)WeakMap.clear()(Firefox 20)- 반복 가능한
WeakMap생성자 내의 선택적 인수 (Firefox 36) - 생성자 인수:
new(Firefox 37)WeakMap(null) - 몽키 패치 된 생성자 내의
set()(Firefox 37)
WeakSet(Firefox 34)- 생성자 인수:
new(Firefox 37)WeakSet(null) - 몽키 패치 된 생성자 내의
add()(Firefox 37)
- 생성자 인수:
새로운 Math 함수
Math.imul()(Firefox 20)Math.clz32()(Firefox 31)Math.fround()(Firefox 26)Math.log10(),Math.log2(),Math.log1p(),Math.expm1(),Math.cosh(),Math.sinh(),Math.tanh(),Math.acosh(),Math.asinh(),Math.atanh(),Math.hypot(),Math.trunc(),Math.sign(),Math.cbrt()(Firefox 25)
Number 객체 추가사항
Number.isNaN()(Firefox 16)Number.isFinite()(Firefox 16)Number.isInteger()(Firefox 16)Number.parseInt()(Firefox 25)Number.parseFloat()(Firefox 25)Number.EPSILON(Firefox 25)Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER(Firefox 31)Number.isSafeInteger()(Firefox 32)
Object 객체 추가사항
Object.is()(Firefox 22)Object.setPrototypeOf()(Firefox 31)Object.assign()(Firefox 34)Object.getOwnPropertySymbols()(Firefox 33)
새로운 Promise 객체
Promise(Firefox 24(Firefox 29에서 기본값으로 활성화 되어 있음))
RegExp 객체 추가사항
RegExp선택적인 (y) 플래그 (Firefox 3)- 일반적
RegExp.prototype.toString(Firefox 39)
String 객체 추가사항
String.fromCodePoint()(Firefox 29)String.prototype.codePointAt()(Firefox 29)String.prototype.startsWith(),String.prototype.endsWith()(Firefox 17)String.prototype.includes()(Firefox 17)String.prototype.repeat()(Firefox 24)String.prototype.normalize()(Firefox 31)String.raw()(Firefox 34)- u{XXXXXX} 유니코드 코드 포인트 (Firefox 40)
새로운 Symbol 객체
Symbol(Firefox 36)Symbol.iterator(Firefox 36)Symbol.for()- 전역 Symbol 레지스트리 (Firefox 36)Symbol.match(Firefox 40)
새로운 class 구문
- 기본 지원 (Firefox 39)
extends지원 (Firefox 39)static메소드 정의 (Firefox 39)
형식화된 배열
형식화된 배열은 ECMAScript 6의 일부로 지정되었고, 더 이상 자신의 기존 명세서를 따르지 않습니다.
ArrayBufferDataViewInt8ArrayUint8ArrayUint8ClampedArrayInt16ArrayUint16ArrayInt32ArrayUint32ArrayFloat32ArrayFloat64Array
표현식과 연산자
- 배열을 위한 Spread 연산자 (Firefox 16)
Symbol.iterator속성 사용 (Firefox 36)
- 함수 호출을 위한 Spread 연산자 (Firefox 27)
Symbol.iterator속성 사용 (Firefox 36)
문(문장)
for...of(Firefox 13).iterator()와.next()에 관한 동작 (Firefox 17)"@@iterator"속성 사용 (Firefox 27)Symbol.iterator속성 사용 (Firefox 36)
함수
그 밖의 기능
- 2진과 8진 숫자 리터럴 (Firefox 25)
- 템플릿 문자열 (Firefox 34)
- 객체 이니셜라이져: 줄임 속성 이름 (Firefox 33)
- 객체 이니셜라이저: 계산된 속성 이름 (Firefox 34)
- 객체 이니셜라이저: 줄임 메소드 이름 (Firefox 34)
지속적인 호환성 및 안정화 기능 변경
다음 기능들은 Firefox에서 부분적으로 구현되어 있지만, ES6보다 오래 전에 도입되어 ECMA TC39 표준화 단체에서 계속 논의되고 있습니다.
- 레거시 반복자와 생성자 (JS 1.7, Firefox 2)
- ES6 반복자와 생성자는 Firefox 26+에서 구현되어 있음
- 분할 할당 (JS 1.7, Firefox 2) (ES6 호환 bug 950547)
const(JS 1.5, Firefox 1.0) (ES6 호환 bug 950547)let(JS 1.7, Firefox 2) (ES6 호환 bug 950547)Proxy(Firefox 18) (ES6 호환 bug 978228)
아직 지원되지 않는 기능
다음 기능들은 ECMAScript 6 초안 명세서에 존재하지만, 아직 Firefox에서는 구현되지 않았습니다:
- 모듈 (bug 568953)
import구문export구문
Array.prototype.values()(bug 875433)Reflect(bug 987514)- \u{nnnnnn} 유니코드 코드 포인트 이스케이프 (bug 952985)
- 잘 알려진
Symbol기호 - RegExp "u" 플래그