JSON.parse doesn't care how many arguments it's called with, because it just assumes they're there (and gets undefined for any arguments that aren't, as with all spec methods). So JSON.parse() is JSON.parse(undefined) which throws a SyntaxError, not a TypeError for not enough arguments. This is the last spec incompatibility in JSON.parse that I'm aware of. (Walk has some cruft to it, but I don't think any of it is spec-incompatible cruft, although it's possible I'm mistaken on the point.)
Created attachment 529216 [details] [diff] [review] Patch and test
Comment on attachment 529216 [details] [diff] [review] Patch and test Review of attachment 529216 [details] [diff] [review]: +1 for the spec step comments.
cdleary-bot mozilla-central merge info: http://hg.mozilla.org/mozilla-central/rev/c35425fb6956