2 適合性

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

ECMAScriptの適合実装は、Unicode StandardおよびISO/IEC 10646の最新バージョンに適合して、ソーステキスト入力を解釈しなければなりません。

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

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

ECMAScriptの適合実装は、この仕様に記述されていないプログラムおよび正規表現の構文をサポートしても構いません。特に、ECMAScriptの適合実装は、この仕様の副節12.7.2で示される任意の“future reserved words”を使用するプログラム構文をサポートしても構いません。

ECMAScriptの適合実装は、副節17.1でForbidden Extensionとして列挙されるいかなる拡張も実装してはなりません。

ECMAScriptの適合実装は、implementation-definedimplementation-approximated、またはhost-definedではないいかなる機能も再定義してはなりません。

ECMAScriptの適合実装は、別途示されない限り、Normative Optional副節を実装するか実装しないかを選択しても構いません。Web browsersは一般に、すべてのnormative optional副節を実装することが要求されます。(Annex Bを参照してください。)何らかのNormative Optionalな振る舞いが実装される場合、そのNormative Optional clauseに含まれるすべての振る舞いが実装されなければなりません。Normative Optional clauseは、この仕様では下に示すように、色付きのボックス内の“Normative Optional”という語で示されます。

2.1 Normative Optional Clause Headingの例

clause内容の例。

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

2.2 Legacy Clause Headingの例

clause内容の例。

2.3 Legacy Normative Optional Clause Headingの例

clause内容の例。