> [snip] > > In releasing the IE8 JSON support most of the problem reports we received > weren't related to differences between the IE8 implementation and json2.js. > We actually discovered that jason2.js was not as widely used as we thought. > Most of the issues we received involved encoding/decoding differences between > our implementation (and jason2.js) and other encoders that applications were > using. We also encountered issues where people were using the jason2 API > names but applying them to differing, home grown APIs encoders/decoders.
Great, it sounds like there is no reason to expect any problems from conforming to the spec. I have filed the incompatibilities as a bug against our implementation. > Octal literals have never been part of the JSON format and support for them > by some JSON parsers is likely a side-effect of those parsers use of eval. > This sort of implementation accident is exactly the sort of thing we want to > make sure doesn't get unnecessarily enshrined in either standards or future > implementations. Not supporting JSON octal literals adds no complexity to the > ES5 JSON spec. because they are simply not part of the format and are never > mentioned. It only adds complexity to implementations if they are trying to > reuse their JavaScript lexer (assuming it supports octal constants) to lex > JSON text and there are already enough other differences between the JSON and > ECMAScript token set that it isn't clear that this is a good idea. > Regardless, ES5 lexers are already required to not recognize octal number > when operating in strict mode. What I mean when I say that it increases complexity is that having different interpretations of something that otherwise appears to be the same thing adds to the cognitive overhead of using the language. With 'eval' and 'JSON.parse' you have two functions that behave deceivingly similarly, and that take similar input. Big obvious differences between the two are easy to deal with but making subtle differences between them invites confusion, in particular in this case because there is already several different interpretations of number literals in different contexts. The original post and this current discussion illustrates my point: subtle differences invite confusion. --~--~---------~--~----~------------~-------~--~----~ v8-users mailing list [email protected] http://groups.google.com/group/v8-users -~----------~----~----~----~------~----~------~--~---
