diff --git a/packages/babel-types/src/definitions/core.js b/packages/babel-types/src/definitions/core.js index df89024caa..93f6110761 100644 --- a/packages/babel-types/src/definitions/core.js +++ b/packages/babel-types/src/definitions/core.js @@ -20,7 +20,7 @@ import defineType, { defineType("ArrayExpression", { fields: { elements: { - validate: assertValueType("array") + validate: chain(assertValueType("array"), assertEach(assertNodeType("Expression", "SpreadElement"))) } }, visitor: ["elements"], diff --git a/packages/babel-types/src/definitions/es2015.js b/packages/babel-types/src/definitions/es2015.js index e699ba3d18..d70cebd15d 100644 --- a/packages/babel-types/src/definitions/es2015.js +++ b/packages/babel-types/src/definitions/es2015.js @@ -329,7 +329,12 @@ defineType("TemplateLiteral", { visitor: ["quasis", "expressions"], aliases: ["Expression", "Literal"], fields: { - // todo + quasis: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("TemplateElement"))) + }, + expressions: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("Expression"))) + } } });