页面模式偏好

17 错误处理和语言扩展

实现必须在相关 ECMAScript 语言构造被求值时报告大多数错误。提前错误是可以在对包含该错误的 Script 中的任何构造求值之前检测并报告的错误。提前错误的存在会阻止对该构造求值。实现必须在 ParseScript 中解析 Script 时报告其中的提前错误。Module 中的提前错误会在该 Module 本应求值时报告,并且该 Module 永远不会被初始化。eval 代码中的提前错误会在调用 eval 时报告,并阻止对 eval 代码求值。所有非提前错误都是运行时错误。

对于本规范“Static Semantics: Early Errors”子条款中列出的任何条件,实现都必须将其出现报告为提前错误。

即使编译器能够证明某个构造在任何情况下执行都必然出错,实现也不得将其他种类的错误视为提前错误。在这种情况下,实现可以提前发出警告,但在相关构造实际执行之前不应报告该错误。

除以下情况外,实现应按规定报告所有错误:

17.1 禁止的扩展

实现不得以下列方式扩展本规范: