Open
Description
We have accumulated a number of these nice-to-haves breaking changes that would be nice to incorporate. However, at this point JSX is a hugely adopted syntax in all kinds of tooling. Making breaking changes will churn that ecosystem significantly. I think it is probably only worth doing as a batch when the accumulated amount of changes makes it worth while.
Let's call it JSX 2.0.
What should go into it?
Since a completely incompatible version of JSX has landed in Reason it would be good to find a way to unify them.
I'd say at least we'd want:
- Document parsing of (X)HTML entities, or drop it even? #4 - Drop HTML encoding in text and attributes.
- AssignmentExpression in JSXAttributeName #21 - Computed attribute names.
- support object literal property value shorthand #23 - Object short hand notation.
- Allow template literal in JSXAttributeValue #25, JSX Compiler interpolation alternatives. #51, Support numeric attribute values #64 - Drop the need for curlies around attribute values if they're a single literal, or parenthesis.
Some more controversial/problematic ones that could plausibly be fixed:
- Proposal: implicitly use do-expression for any JSX expr container #39 - Implicit do expressions.
- Crazy Idea: Deprecate JSXText? #35 - Drop implicit text content and curlies as children.
- Custom attribute namespace #66 - Custom attribute namespaces.
What else?