From efa9a1abf2d8e7dd62b975df3779c4248a25f995 Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Wed, 18 Nov 2015 22:37:04 -0500 Subject: [PATCH] add more validation for jsx nodes --- packages/babel-types/src/definitions/jsx.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/babel-types/src/definitions/jsx.js b/packages/babel-types/src/definitions/jsx.js index c11d2fdc17..3132b039a6 100644 --- a/packages/babel-types/src/definitions/jsx.js +++ b/packages/babel-types/src/definitions/jsx.js @@ -7,7 +7,7 @@ defineType("JSXAttribute", { aliases: ["JSX", "Immutable"], fields: { name: { - validate: assertNodeType("JSXIdentifier", "JSXMemberExpression") + validate: assertNodeType("JSXIdentifier", "JSXNamespacedName") }, value: { optional: true, @@ -39,7 +39,10 @@ defineType("JSXElement", { validate: assertNodeType("JSXClosingElement") }, children: { - // todo + validate: chain( + assertValueType("array"), + assertEach(assertNodeType("Literal", "JSXExpressionContainer", "JSXElement")) + ) } } }); @@ -73,7 +76,7 @@ defineType("JSXMemberExpression", { aliases: ["JSX", "Expression"], fields: { object: { - validate: assertNodeType("JSXIdentifier") + validate: assertNodeType("JSXMemberExpression", "JSXIdentifier") }, property: { validate: assertNodeType("JSXIdentifier")