17 エラー処理と言語拡張

実装は、関連する ECMAScript 言語構成要素が評価される時点でほとんどのエラーを報告しなければならない。早期エラー (early error) とは、そのエラーを含む Script 内のいかなる構成要素の評価よりも前に検出・報告できるエラーである。早期エラーが存在する場合、その構成要素の評価は行われない。実装は ParseScript における Script の構文解析の一部として Script 内の早期エラーを報告しなければならない。Module 内の早期エラーは、その Module が評価される時点で報告され、その Module は決して初期化されない。eval コード内の早期エラーは eval が呼び出された時点で報告され、eval コードの評価を阻止する。早期エラーでないすべてのエラーは実行時エラーである。

実装は、本仕様の「静的意味論: 早期エラー」小節に列挙されている条件が発生したあらゆる箇所を早期エラーとして報告しなければならない。

実装は、たとえコンパイラがある構成要素がいかなる状況でもエラーなく実行されないと証明できる場合であっても、他種のエラーを早期エラーとして扱ってはならない。そのような場合、実装は早期警告を発することは許されるが、関連する構成要素が実際に実行されるまでエラーを報告すべきではない。

実装は、以下を除き、規定どおりにすべてのエラーを報告しなければならない:

17.1 禁止される拡張

実装は以下の方法で本仕様を拡張してはならない: