Do not quote JSX attribute keys for IdentifierName (#8045)
Given the following
```js
a = <F new/>
```
We used to generate:
```js
a = React.createElement(F, {"new": true})
```
but now we generate
```js
a = React.createElement(F, {new: true})
```
If you need to quote these (ie for ES3 you can use
transform-property-literals)
This commit is contained in:
committed by
Justin Ridgewell
parent
d45ee5e025
commit
7846eaebaa
@@ -89,14 +89,14 @@ You can turn on the 'throwIfNamespace' flag to bypass this warning.`,
|
||||
}
|
||||
}
|
||||
|
||||
if (t.isValidIdentifier(node.name.name)) {
|
||||
if (t.isJSXNamespacedName(node.name)) {
|
||||
node.name = t.stringLiteral(
|
||||
node.name.namespace.name + ":" + node.name.name.name,
|
||||
);
|
||||
} else if (esutils.keyword.isIdentifierNameES6(node.name.name)) {
|
||||
node.name.type = "Identifier";
|
||||
} else {
|
||||
node.name = t.stringLiteral(
|
||||
t.isJSXNamespacedName(node.name)
|
||||
? node.name.namespace.name + ":" + node.name.name.name
|
||||
: node.name.name,
|
||||
);
|
||||
node.name = t.stringLiteral(node.name.name);
|
||||
}
|
||||
|
||||
return t.inherits(t.objectProperty(node.name, value), node);
|
||||
|
||||
Reference in New Issue
Block a user