FWIW, I think the following from the "re-introduction" may be mistaken:
JavaScript distinguishes between null, which is an object of type 'object' that indicates a deliberate non-value, and undefined, which is an object of type 'undefined' that indicates an uninitialized value — that is, a value hasn't even been assigned yet.
From the ECMA 262 Standard:
4.3.9 Undefined Value
The undefined value is a primitive value used when a variable has not been assigned a value.
4.3.10 Undefined Type
The type Undefined has exactly one value, called undefined.
4.3.11 Null Value
The null value is a primitive value that represents the null, empty, or non-existent reference.
4.3.12 Null Type
The type Null has exactly one value, called null.
Perhaps the text in the re-introduction is a result of the weirdness (broken-ness?) of the typeof operator. According to:
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/typeof_Operator
typeof returns "undefined" for values (there's only one as I understand it - undefined) of type Undefined but it returns "object" (!!) for values (again only one - null) of type Null.
On a related note, I came across the following at:
http://javascript.crockford.com/recommend.html
typeOf
The typeof prefix operator returns a string based on the type of its parameter. Unfortunately, it provides the wrong result if the operand is null or an array.
The new typeOf global function is intended to replace the defective typeof operator. It produces the same result as typeof, except that it returns 'null' for null and 'array' for arrays.
It can be implemented in JavaScript:
function typeOf(value) {
var s = typeof value;
if (s === 'object') {
if (value) {
if (typeof value.length === 'number' &&
!(value.propertyIsEnumerable('length')) &&
typeof value.splice === 'function') {
s = 'array';
}
} else {
s = 'null';
}
}
return s;
}