2 適合性

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

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

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

ECMAScriptの適合する実装は、本仕様で記述されているもの以外にも追加の型、値、オブジェクト、プロパティ、関数を提供することができます。特に、適合する実装は本仕様で記述されていないプロパティやその値を、本仕様で記述されているオブジェクトに対して提供することができます。

ECMAScriptの適合する実装は、本仕様で記述されていないプログラムおよび正規表現の構文をサポートすることができます。特に、適合する実装は、本仕様の12.7.2の小項で示される「将来予約語」を使用するプログラム構文をサポートすることができます。

ECMAScriptの適合する実装は、17.1の小項で「禁止拡張」としてリストされているいかなる拡張も実装してはなりません。

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

ECMAScriptの適合する実装は、特に指示がない限り、規範的任意の小項を実装するかしないかを選択できます。ウェブブラウザは一般的にすべての規範的任意の小項を実装する必要があります。(付録Bを参照。)規範的任意の動作が実装される場合は、その規範的任意項内のすべての動作を実装しなければなりません。規範的任意の項は、本仕様書では「規範的任意」と書かれた色付きのボックスで示されます。下記はその例です。

Normative Optional

2.1 規範的任意項目の見出し例

項目内容の例。

ECMAScriptの適合する実装は、規範的任意としてもマークされていない限り、レガシーの小項を実装しなければなりません。レガシーの小項で規定された言語機能や動作は、いずれも何らかの望ましくない特性を有しています。しかし、既存アプリケーションでの継続的な利用により、本仕様からの削除ができません。これらの機能はECMAScript言語のコア部分とはみなされません。プログラマーは新しいECMAScriptコードを書く際、これらの機能や動作の利用や存在を前提とすべきではありません。

Legacy

2.2 レガシー項目の見出し例

項目内容の例。

Normative Optional, Legacy

2.3 レガシー規範的任意項目の見出し例

項目内容の例。