json5 / json5-spec

The JSON5 Data Interchange Format
https://spec.json5.org
MIT License
49 stars 11 forks source link

Upgrade past ECMAScript 5.1 #56

Open dfabulich opened 4 months ago

dfabulich commented 4 months ago

JSON5 is defined as "JSON for Humans," but it arbitrarily limits itself to the features available in ECMAScript 5.1.

(Except for unescaped line and paragraph separator characters. So, technically, JSON5 is compatible with ES2019.)

But there have been two other additions to JavaScript's literal syntax that would be applicable to JSON5, in between ECMAScript 5.1 and ES2019:

Since ES2019, there's also:

In #23 I see that @jordanbtucker wrote this by way of explanation:

We aim to keep JSON5 simple by only adding features from ES5. This keeps JSON5 easy to implement and prevents scope creep.

The TC-39 committee is already committed to minimizing scope creep for JavaScript. In fifteen years, there have only been five new literals introduced, all listed above.

Supporting all of the literals that the current latest version of JavaScript supports isn't "scope creep." It's committing to JSON5's true definition, "JSON for Humans."