訳の正確性を保証するものではありませんので必要に応じて原文であるEcma InternationalのECMA-262にある ECMA-262.pdf ( ECMA-262 5.1 Edition )を参照下さい。
訳:2012年04月 webzoit.net
ECMAScriptの実装が、実行エラーを検出する場合には、 15.11.6 で定義した NativeError オブジェクトの1つであるインスタンスを投げ(スローし)ます。 これら各オブジェクトは、プロトタイプオブジェクトのプロパティ名の中、またプロトタイプオブジェクトの実装定義のメッセージプロパティの中で NativeError の代わりにコンストラクタ名として使用した名称だけが異なる以下で説明した構造を持ちます。 各エラーオブジェクトごとに定義内にある NativeError を参照する場合には、 15.11.6 から成る適切なオブジェクト名を伴って置換されるべきです。
NativeErrorコンストラクタが、コンストラクタではなく、関数として呼ばれる場合には、新たなオブジェクトを生成、初期化します。 関数としてのオブジェクトの呼び出しは、同じ引数を伴うコンストラクタとしてそれを呼ぶことと等価です。
新たに構築したオブジェクトの内部プロパティ[[Prototype]]は、このエラーコンストラクタにおけるプロトタイプオブジェクトに設定されます。 新たに構築したオブジェクトの内部プロパティ[[Class]]は、"Error"に設定されます。 新たに構築したオブジェクトの内部プロパティ[[Extensible]]は、trueに設定されます。 引数 message が、undefinedではない場合、新たに構築したオブジェクトの当該メッセージ自身のプロパティは、 ToString(message) に設定されます。
NativeErrorコンストラクタが、 new 式の一部として呼ばれる場合には、それは、コンストラクタであり、新たに生成したオブジェクトを初期化します。
新たに構築したオブジェクトの内部プロパティ[[Prototype]]は、このNativeErrorコンストラクタにおけるプロトタイプオブジェクトに設定されます。 新たに構築したオブジェクトの内部プロパティ[[Class]]は、"Error"に設定されます。 新たに構築したオブジェクトの内部プロパティ[[Extensible]]は、trueに設定されます。 引数 message が、undefinedではない場合、新たに構築したオブジェクトの当該メッセージ自身のプロパティは、 ToString(message) に設定されます。
NativeErrorコンストラクタの内部プロパティ[[Prototype]]の値は、Functionプロトタイプオブジェクト(15.3.4)です。 また、当該内部プロパティ、(値が1である)lengthプロパティ、NativeErrorコンストラクタは、次のプロパティも持ちます。
NativeError.prototype の初期値は、NativeErrorプロトタイプオブジェクト(15.11.7.7)です。 各NativeErrorコンストラクタは、個別のプロトタイプオブジェクトを持ちます。 このプロパティは、属性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false } を持ちます。
各NativeErrorプロトタイプオブジェクトは、任意のErrorオブジェクト(、[[Class]]は、"Error")です。 各NativeErrorプロトタイプオブジェクトの内部プロパティ[[Prototype]]の値は、標準組み込みErrorプロトタイプオブジェクト(15.11.4)です。
与えられるNativeErrorコンストラクタにおけるプロトタイプのコンストラクタのプロパティの初期値は、NativeErrorコンストラクタ関数それ自身(15.11.7)です。
与えられるNativeErrorコンストラクタにおけるプロトタイプのプロパティ名の初期値は、当該コンストラクタの名称(NativeErrorの代わりに使用した名称)です。
与えられるNativeErrorコンストラクタにおけるプロトタイプのmessageプロパティの初期値は、カラの文字列です。 [注釈] NativeErrorコンストラクタにおけるプロトタイプは、自分自身は、toString関数を提供しませんが、エラーのインスタンスは、Errorプロトタイプオブジェクトからそれを継承します。
NativeErrorインスタンスは、それらのNativeErrorプロトタイプオブジェクトと値が"Error"であるそれらの内部プロパティ[[Class]]から継承します。 NativeErrorインスタンスは、特別なプロパティを何も持ちません。