Allen Wirfs-Brock wrote:
JSON.parse("[010]")

should be an error, per spec. Nobody follows the spec though...


As I read them neither the RFC or the current ES5 JSON grammar recognize "[010]" as a 
valid JSON form, so according to the ES5 spec. a syntax error should be thrown.  If we really want 
all implementation to accept "010" as a JSONNumber then we should specify it as such.  Of 
course we have to define what it means (decimal, octal??).

My inclination would be to require ES5 implementation to exactly conform the 
whatever JSON grammar we provide and to throw syntax errors if the input 
doesn't exactly conform to the grammar. (in other say that the section 16 
extension allowance doesn't apply to JSON.parse.  If an implementation wants to 
support JSON syntax extensions it could always do so by providing a 
JSON.parseExtended function (or whatever they want to call it) that uses an 
implementation defined grammar.

I agree. It is not helpful to developers to allow weird forms on browser A but not on browser B. What should be allowed is clearly described in the E5 spec.
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to