Le 04/09/2011 14:31, Xavier MONTILLET a écrit :
> Hi,
>
> I saw in the spec that null is a litteral but typeof null must return 
> 'object'.
There are two things that are different. One is the Null type as defined
in ES5.1 section 8.2 and the return value of "typeof null" ('object').

This is a notorious spec bug and is very likely to be fixed in the next
version of ECMAScript (see
http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null )

> So I was wondering:
> Is Object.isExtensible(null) supposed to trow an error or to return false?
Step 1 of Object.isExtensible is "If Type(O) is not Object throw a
TypeError exception.". Here, "Type(O)" refers to the type defined in
ES5.1 section 8. Consequently, Type(null) is Null (8.2) which is not
Object: "Object.isExtensible(null)" is supposed to throw a TypeError
(and does properly in Firefox 6 as I have just tested).

Another notable difference between ECMAScript types and typeof is
functions. There is no ECMAScript Function type. Functions are Objects
with an internal [[Call]] property (see ES5.1 - 11.4.3 table 20) and for
them, the typeof operator returns "function".

David
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to