17 Error Handling and Language Extensions

implementationは、ほとんどのerrorsを、関連するECMAScript language constructが評価される時点でreportしなければなりません。early errorは、そのerrorを含むScript内のどのconstructのevaluationよりも前にdetectおよびreportできるerrorです。early errorの存在は、そのconstructのevaluationを妨げます。implementationは、ParseScriptでそのScriptをparseする一部として、Script内のearly errorsをreportしなければなりません。Module内のearly errorsは、Moduleが評価されるはずの時点でreportされ、Moduleは決してinitializedされません。eval code内のearly errorsは、evalが呼び出された時点でreportされ、eval codeのevaluationを妨げます。early errorsでないすべてのerrorsはruntime errorsです。

implementationは、この仕様の“Static Semantics: Early Errors” subclauseに列挙されているconditionの任意のoccurrenceをearly errorとしてreportしなければなりません。

implementationは、compilerがあるconstructがどのようなcircumstancesの下でもerrorなしにexecuteできないことをproveできる場合であっても、他の種類のerrorsをearly errorsとして扱ってはなりません。implementationはそのような場合にearly warningを発行してもよいですが、関連するconstructが実際にexecutedされるまでerrorをreportすべきではありません。

implementationは、以下を除き、指定された通りにすべてのerrorsをreportしなければなりません:

17.1 Forbidden Extensions

implementationは、以下の方法でこの仕様を拡張してはなりません: