訳の正確性を保証するものではありませんので必要に応じて原文であるEcma InternationalのECMA-262にある ECMA-262.pdf ( ECMA-262 5.1 Edition )を参照下さい。
訳:2012年04月 webzoit.net
Booleanが、コンストラクタではなく、関数として呼ばれる際には、型変換を実行します。
ToBoolean(value) によって算出したBoolean値を返します。
Booleanが、new 式の一部として呼ばれる場合、それはコンストラクタであり、新たに生成したオブジェクトを初期化します。
新たに構成したオブジェクトの内部プロパティ[[Prototype]]は、 Boolean.prototype (15.6.3.1)の初期値であるオリジナルのBooleanプロトタイプオブジェクトに設定されます。 新たに構成したBoolean型オブジェクトの内部プロパティ[[Class]]は、"Boolean"に設定されます。 新たに構成したBoolean型オブジェクトの内部プロパティ[[PrimitiveValue]]は、 ToBoolean(value) に設定されます。 新たに構成したBoolean型オブジェクトの内部プロパティ[[Extensible]]は、 trueに設定されます。
Booleanコンストラクタの内部プロパティ[[Prototype]]の値は、Functionプロトタイプオブジェクト(15.3.4)です。 更に内部プロパティと(値が1である)lengthプロパティ、Booleanコンストラクタは、次のプロパティも持ちます。
Boolean.prototype の初期値は、Booleanプロトタイプオブジェクト(15.6.4)です。 このプロパティは、属性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false } を持ちます。
Booleanプロトタイプオブジェクトは、値がfalseであるそれ自身の(その[[Class]]が"Boolean"である)Booleanオブジェクトです。 Booleanプロトタイプオブジェクトの内部プロパティ[[Prototype]]の値は、標準組み込みObjectプロトタイプオブジェクト(15.2.4)です。
Boolean.prototype.constructor の初期値は、組み込みBooleanコンストラクタです。
(toStringは、)次のステップが取られます。
1. B は、 this 値とする 2. Type(B) が、 Boolean である場合、 b は、 B とする 3. Type(B) が、 Object 且つ、B の内部プロパティ[[Class]]の値が"Boolean"である場合、b は、B の内部プロパティ[[PrimitiveValue]]の値とする 4.それ以外の場合、TypeError例外を投げる(スローする) 5. b が、 true である場合、"true"を返し、それ以外の場合、"false"を返す
(valueOfは、)次のステップが取られます。
1. B は、 this 値とする 2. Type(B) が、 Boolean である場合、 b は、 B とする 3. Type(B) が、 Object 且つ、B の内部プロパティ[[Class]]の値が"Boolean"である場合、b は、B の内部プロパティ[[PrimitiveValue]]の値とする 4.それ以外の場合、TypeError例外を投げる(スローする) 5. b を返す
Booleanインスタンスは、Booleanプロトタイプオブジェクトと値が、"Boolean"であるそれらの内部プロパティ[[Class]]からプロパティを継承します。 Booleanインスタンスは、内部プロパティ[[PrimitiveValue]]も持ちます。 内部プロパティ[[PrimitiveValue]]は、このBooleanオブジェクトによって表したBoolean値です。