diff --git a/spec.html b/spec.html index ccd3fa60ed3..a4706da2f64 100644 --- a/spec.html +++ b/spec.html @@ -3176,7 +3176,7 @@

ToBoolean ( _argument_ )

Object - Return *true*. + Return *false* if _argument_ is an undefined-like exotic object; otherwise return *true*. @@ -4074,6 +4074,8 @@

Abstract Equality Comparison

1. Return the result of performing Strict Equality Comparison _x_ === _y_. 1. If _x_ is *null* and _y_ is *undefined*, return *true*. 1. If _x_ is *undefined* and _y_ is *null*, return *true*. + 1. If _x_ is an undefined-like exotic object and _y_ *null*, *undefined*, or an undefined-like exotic object, return *true*. + 1. If _x_ is *null* or *undefined* and _y_ is an undefined-like exotic object, return *true*. 1. If Type(_x_) is Number and Type(_y_) is String, return the result of the comparison _x_ == ToNumber(_y_). 1. If Type(_x_) is String and Type(_y_) is Number, return the result of the comparison ToNumber(_x_) == _y_. 1. If Type(_x_) is Boolean, return the result of the comparison ToNumber(_x_) == _y_. @@ -8159,6 +8161,14 @@

[[SetPrototypeOf]] (_V_)

+ + +

Undefined-like Exotic Objects

+

An undefined-like exotic object is an exotic object that behaves like undefined in the ToBoolean and Abstract Equality Comparison abstract operations and when used as an operand for the typeof operator. Undefined-like exotic objects have all the ordinary object internal methods and slots.

+ +

Undefined-like exotic objects are never created by this specification. However, the document.all object in web browsers is a host-created undefined-like exotic object that exists for web compatibility purposes. There are no other known examples of this type of object.

+
+
@@ -12472,6 +12482,14 @@

Runtime Semantics: Evaluation

Implementation-defined. Must not be `"undefined"`, `"boolean"`, `"function"`, `"number"`, `"symbol"`, or `"string"`. + + + Object (undefined-like exotic object) + + + `"undefined"` + +