JSON text is not a subset of PrimaryExpression

Richard Gibson richard.gibson at gmail.com
Wed Jul 19 03:16:44 UTC 2017


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 <mikesamuel at 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 at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20170718/aea22646/attachment.html>


More information about the es-discuss mailing list