2 適合性

ECMAScript の適合実装は、この仕様に記述されているすべての型、値、オブジェクト、プロパティ、関数、およびプログラム構文と意味論を提供し、サポートしなければならない。

ECMAScript の適合実装は、ソーステキスト入力を、Unicode Standard および ISO/IEC 10646 の最新版に適合するように解釈しなければならない。

異なる人間言語および国で用いられる言語的・文化的慣習に適応する必要があるプログラムを支援するアプリケーションプログラミングインターフェース(API)を提供する ECMAScript の適合実装は、この仕様と互換性のある ECMA-402 の最新版で定義されたインターフェースを実装しなければならない。

ECMAScript の適合実装は、この仕様に記述されているものを超える追加の型、値、オブジェクト、プロパティ、および関数を提供してもよい。特に、ECMAScript の適合実装は、この仕様に記述されているオブジェクトについて、この仕様に記述されていないプロパティおよびそれらの値を提供してもよい。

ECMAScript の適合実装は、この仕様に記述されていないプログラム構文および正規表現構文をサポートしてもよい。特に、ECMAScript の適合実装は、この仕様の節 12.7.2 に記載された「将来予約語」のいずれかを利用するプログラム構文をサポートしてもよい。

ECMAScript の適合実装は、節 17.1 に禁止拡張として列挙されている拡張を実装してはならない。

ECMAScript の適合実装は、実装定義、実装近似、またはホスト定義でないいかなる機能も再定義してはならない。

ECMAScript の適合実装は、別段の указ示がない限り、Normative Optional 節を実装するか否かを選択してよい。ウェブブラウザは一般に、すべての Normative Optional 節を実装することが要求される。(付録 B を参照。)いずれかの Normative Optional の振る舞いが実装される場合、その包含する Normative Optional 節内のすべての振る舞いを実装しなければならない。Normative Optional 節は、この仕様では以下に示すように色付きのボックス内に "Normative Optional" という語で示される。

2.1 Normative Optional 節見出しの例

節内容の例。

ECMAScript の適合実装は、Legacy 節を実装しなければならない。ただし、それらが Normative Optional としてもマークされている場合を除く。Legacy 節内で規定される言語機能および振る舞いはすべて、1 つ以上の望ましくない特性を持つ。しかし、既存のアプリケーションで継続して使用されているため、それらをこの仕様から削除することはできない。これらの機能は ECMAScript 言語の中核部分とはみなされない。プログラマは、新しい ECMAScript コードを書く際に、これらの機能や振る舞いを使用したり、その存在を前提としたりすべきではない。

2.2 Legacy 節見出しの例

節内容の例。

2.3 Legacy Normative Optional 節見出しの例

節内容の例。