Another relevant option: Feature Request: Make ECMA262 a superset of JSON <https://esdiscuss.org/topic/feature-request-make-ecma262-a-superset-of-json#content-8>
On Tue, Jul 11, 2017 at 9:33 AM, Mike Samuel <mikesam...@gmail.com> wrote: > https://tc39.github.io/ecma262/#sec-json.parse says > > """ > NOTE > > Valid JSON text is a subset of the ECMAScript PrimaryExpression syntax > as modified by Step 4 above. Step 2 verifies that JText conforms to > that subset, and step 6 verifies that that parsing and evaluation > returns a value of an appropriate type. > """ > > IIUC, if JSON text where a subset of PrimaryExpression then there > should be no string that parses via JSON.parse which does not eval > when wrapped in parentheses. > On recent (Chrome, Safari, Firefox), > > var s = String.fromCharCode(0x22, 0x2028, 0x22) > JSON.parse(s); // Passes > eval('(' + s + ')'); // raises SyntaxError > > I believe the only reason it's not a subset is that both exclude line > terminators from quoted string bodies but JSON does not treat U+2028 > and U+2029 as line terminator chars while EcmaScript does. > > Could we change "is a subset of" to "is almost a subset of" or "is a > subset (modulo LineTerminators) of"? > > > Some related discussion at > https://esdiscuss.org/topic/json-response-to-statement-from-w3c-tag > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss