fix cyclic dependency issue in babel-types

This commit is contained in:
Sebastian McKenzie 2015-11-10 00:16:52 -08:00
parent d96ccd9763
commit a59e5eecc8
2 changed files with 12 additions and 31 deletions

View File

@ -1,18 +1,20 @@
/* @flow */
import * as t from "../index";
import {
BINARY_OPERATORS,
LOGICAL_OPERATORS,
UNARY_OPERATORS,
UPDATE_OPERATORS
} from "../index";
UPDATE_OPERATORS,
} from "../constants";
import defineType, {
assertValueType,
assertNodeType,
assertEach,
chain,
assertOneOf
assertOneOf,
} from "./index";
defineType("ArrayExpression", {
@ -46,7 +48,7 @@ defineType("BinaryExpression", {
builder: ["operator", "left", "right"],
fields: {
operator: {
validate: assertOneOf(BINARY_OPERATORS)
validate: assertOneOf(...BINARY_OPERATORS)
},
left: {
validate: assertNodeType("Expression")
@ -394,7 +396,7 @@ defineType("LogicalExpression", {
aliases: ["Binary", "Expression"],
fields: {
operator: {
validate: assertOneOf(LOGICAL_OPERATORS)
validate: assertOneOf(...LOGICAL_OPERATORS)
},
left: {
validate: assertNodeType("Expression")
@ -626,7 +628,7 @@ defineType("UnaryExpression", {
validate: assertNodeType("Expression")
},
operator: {
validate: assertOneOf(UNARY_OPERATORS)
validate: assertOneOf(...UNARY_OPERATORS)
}
},
visitor: ["argument"],
@ -643,7 +645,7 @@ defineType("UpdateExpression", {
validate: assertNodeType("Expression")
},
operator: {
validate: assertOneOf(UPDATE_OPERATORS)
validate: assertOneOf(...UPDATE_OPERATORS)
}
},
visitor: ["argument"],

View File

@ -26,30 +26,9 @@ function registerType(type: string) {
};
}
export const STATEMENT_OR_BLOCK_KEYS = ["consequent", "body", "alternate"];
export const FLATTENABLE_KEYS = ["body", "expressions"];
export const FOR_INIT_KEYS = ["left", "init"];
export const COMMENT_KEYS = ["leadingComments", "trailingComments", "innerComments"];
//
export const INHERIT_KEYS = {
optional: ["typeAnnotation", "typeParameters", "returnType"],
force: ["start", "loc", "end"]
};
export const UPDATE_OPERATORS = ["++", "--"];
export const LOGICAL_OPERATORS = ["||", "&&"];
export const BOOLEAN_NUMBER_BINARY_OPERATORS = [">", "<", ">=", "<="];
export const EQUALITY_BINARY_OPERATORS = ["==", "===", "!=", "!=="];
export const COMPARISON_BINARY_OPERATORS = [...EQUALITY_BINARY_OPERATORS, "in", "instanceof"];
export const BOOLEAN_BINARY_OPERATORS = [...COMPARISON_BINARY_OPERATORS, ...BOOLEAN_NUMBER_BINARY_OPERATORS];
export const NUMBER_BINARY_OPERATORS = ["-", "/", "*", "**", "&", "|", ">>", ">>>", "<<", "^"];
export const BINARY_OPERATORS = ["+", ...NUMBER_BINARY_OPERATORS, ...BOOLEAN_BINARY_OPERATORS];
export const BOOLEAN_UNARY_OPERATORS = ["delete", "!"];
export const NUMBER_UNARY_OPERATORS = ["+", "-", "++", "--", "~"];
export const STRING_UNARY_OPERATORS = ["typeof"];
export const UNARY_OPERATORS = ["void", ...BOOLEAN_UNARY_OPERATORS, ...NUMBER_UNARY_OPERATORS, ...STRING_UNARY_OPERATORS];
export * from "./constants";
import "./definitions/init";
import { VISITOR_KEYS, ALIAS_KEYS, NODE_FIELDS, BUILDER_KEYS, DEPRECATED_KEYS } from "./definitions";
@ -347,7 +326,7 @@ export function buildMatchMemberExpression(match:string, allowPartial?: boolean)
*/
export function removeComments(node: Object): Object {
for (let key of COMMENT_KEYS) {
for (let key of t.COMMENT_KEYS) {
delete node[key];
}
return node;