diff --git a/.flowconfig b/.flowconfig index f05ad7b95b..6157efcc19 100644 --- a/.flowconfig +++ b/.flowconfig @@ -9,6 +9,7 @@ lib/types.js [options] strip_root=true +suppress_comment= \\(.\\|\n\\)*\\$FlowFixMe [version] -0.16.0 +0.18.1 diff --git a/Makefile b/Makefile index 05d589f895..588c2cbd78 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ watch: clean lint: node node_modules/.bin/eslint packages/*/src - #flow check + flow clean: test-clean rm -rf packages/babel-polyfill/browser* diff --git a/lib/types.js b/lib/types.js index 5104fc1eec..560cb7963c 100644 --- a/lib/types.js +++ b/lib/types.js @@ -51,7 +51,7 @@ declare class BabelNodeAssignmentExpression extends BabelNode { declare class BabelNodeBinaryExpression extends BabelNode { type: "BinaryExpression"; - operator: string; + operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<="; left: BabelNodeExpression; right: BabelNodeExpression; } @@ -136,9 +136,9 @@ declare class BabelNodeForInStatement extends BabelNode { declare class BabelNodeForStatement extends BabelNode { type: "ForStatement"; - init: BabelNodeVariableDeclaration | BabelNodeExpression; - test: BabelNodeExpression; - update: BabelNodeExpression; + init?: ?BabelNodeVariableDeclaration | BabelNodeExpression; + test?: ?BabelNodeExpression; + update?: ?BabelNodeExpression; body: BabelNodeStatement; } @@ -173,7 +173,7 @@ declare class BabelNodeIdentifier extends BabelNode { declare class BabelNodeIfStatement extends BabelNode { type: "IfStatement"; test: BabelNodeExpression; - consequent?: ?BabelNodeStatement; + consequent: BabelNodeStatement; alternate?: ?BabelNodeStatement; } @@ -210,7 +210,7 @@ declare class BabelNodeRegExpLiteral extends BabelNode { declare class BabelNodeLogicalExpression extends BabelNode { type: "LogicalExpression"; - operator: any; + operator: "||" | "&&"; left: BabelNodeExpression; right: BabelNodeExpression; } @@ -280,13 +280,13 @@ declare class BabelNodeSequenceExpression extends BabelNode { declare class BabelNodeSwitchCase extends BabelNode { type: "SwitchCase"; - test: any; + test?: ?BabelNodeExpression; consequent: any; } declare class BabelNodeSwitchStatement extends BabelNode { type: "SwitchStatement"; - discriminant: any; + discriminant: BabelNodeExpression; cases: any; } @@ -311,14 +311,14 @@ declare class BabelNodeUnaryExpression extends BabelNode { type: "UnaryExpression"; prefix?: boolean; argument: BabelNodeExpression; - operator: any; + operator: "void" | "delete" | "!" | "+" | "-" | "++" | "--" | "~" | "typeof"; } declare class BabelNodeUpdateExpression extends BabelNode { type: "UpdateExpression"; prefix?: boolean; argument: BabelNodeExpression; - operator: any; + operator: "++" | "--"; } declare class BabelNodeVariableDeclaration extends BabelNode { @@ -392,19 +392,19 @@ declare class BabelNodeClassExpression extends BabelNode { declare class BabelNodeExportAllDeclaration extends BabelNode { type: "ExportAllDeclaration"; - source: any; + source: BabelNodeStringLiteral; } declare class BabelNodeExportDefaultDeclaration extends BabelNode { type: "ExportDefaultDeclaration"; - declaration: any; + declaration: BabelNodeFunctionDeclaration | BabelNodeClassDeclaration | BabelNodeExpression; } declare class BabelNodeExportNamedDeclaration extends BabelNode { type: "ExportNamedDeclaration"; - declaration: any; + declaration?: ?BabelNodeDeclaration; specifiers: any; - source: any; + source?: ?BabelNodeStringLiteral; } declare class BabelNodeExportSpecifier extends BabelNode { @@ -556,6 +556,10 @@ declare class BabelNodeDeclareVariable extends BabelNode { id: any; } +declare class BabelNodeExistentialTypeParam extends BabelNode { + type: "ExistentialTypeParam"; +} + declare class BabelNodeFunctionTypeAnnotation extends BabelNode { type: "FunctionTypeAnnotation"; typeParameters: any; @@ -809,7 +813,7 @@ declare class BabelNodeSpreadProperty extends BabelNode { argument: BabelNodeExpression; } -type BabelNodeExpression = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeCallExpression | BabelNodeConditionalExpression | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeObjectExpression | BabelNodeSequenceExpression | BabelNodeThisExpression | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeMetaProperty | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeJSXElement | BabelNodeJSXEmptyExpression | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeParenthesizedExpression | BabelNodeAwaitExpression | BabelNodeDoExpression; +type BabelNodeExpression = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeCallExpression | BabelNodeConditionalExpression | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeObjectExpression | BabelNodeSequenceExpression | BabelNodeThisExpression | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeMetaProperty | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeTypeCastExpression | BabelNodeJSXElement | BabelNodeJSXEmptyExpression | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeParenthesizedExpression | BabelNodeAwaitExpression | BabelNodeDoExpression; type BabelNodeBinary = BabelNodeBinaryExpression | BabelNodeLogicalExpression; type BabelNodeScopable = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeClassDeclaration | BabelNodeClassExpression | BabelNodeForOfStatement | BabelNodeClassMethod; type BabelNodeBlockParent = BabelNodeBlockStatement | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeForOfStatement | BabelNodeClassMethod; @@ -839,7 +843,7 @@ type BabelNodeClass = BabelNodeClassDeclaration | BabelNodeClassExpression; type BabelNodeModuleDeclaration = BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeImportDeclaration; type BabelNodeExportDeclaration = BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration; type BabelNodeModuleSpecifier = BabelNodeExportSpecifier | BabelNodeImportDefaultSpecifier | BabelNodeImportNamespaceSpecifier | BabelNodeImportSpecifier | BabelNodeExportDefaultSpecifier | BabelNodeExportNamespaceSpecifier; -type BabelNodeFlow = BabelNodeAnyTypeAnnotation | BabelNodeArrayTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeBooleanLiteralTypeAnnotation | BabelNodeClassImplements | BabelNodeClassProperty | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareModule | BabelNodeDeclareVariable | BabelNodeFunctionTypeAnnotation | BabelNodeFunctionTypeParam | BabelNodeGenericTypeAnnotation | BabelNodeInterfaceExtends | BabelNodeInterfaceDeclaration | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumericLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeTypeAlias | BabelNodeTypeAnnotation | BabelNodeTypeCastExpression | BabelNodeTypeParameterDeclaration | BabelNodeTypeParameterInstantiation | BabelNodeObjectTypeAnnotation | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty | BabelNodeQualifiedTypeIdentifier | BabelNodeUnionTypeAnnotation | BabelNodeVoidTypeAnnotation; +type BabelNodeFlow = BabelNodeAnyTypeAnnotation | BabelNodeArrayTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeBooleanLiteralTypeAnnotation | BabelNodeClassImplements | BabelNodeClassProperty | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareModule | BabelNodeDeclareVariable | BabelNodeExistentialTypeParam | BabelNodeFunctionTypeAnnotation | BabelNodeFunctionTypeParam | BabelNodeGenericTypeAnnotation | BabelNodeInterfaceExtends | BabelNodeInterfaceDeclaration | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumericLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeTypeAlias | BabelNodeTypeAnnotation | BabelNodeTypeCastExpression | BabelNodeTypeParameterDeclaration | BabelNodeTypeParameterInstantiation | BabelNodeObjectTypeAnnotation | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty | BabelNodeQualifiedTypeIdentifier | BabelNodeUnionTypeAnnotation | BabelNodeVoidTypeAnnotation; type BabelNodeFlowBaseAnnotation = BabelNodeAnyTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeVoidTypeAnnotation; type BabelNodeFlowDeclaration = BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareModule | BabelNodeDeclareVariable | BabelNodeInterfaceDeclaration | BabelNodeTypeAlias; type BabelNodeJSX = BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXEmptyExpression | BabelNodeJSXExpressionContainer | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeJSXNamespacedName | BabelNodeJSXOpeningElement | BabelNodeJSXSpreadAttribute | BabelNodeJSXText; @@ -847,7 +851,7 @@ type BabelNodeJSX = BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNo declare module "babel-types" { declare function arrayExpression(elements: Array): BabelNodeArrayExpression; declare function assignmentExpression(operator: string, left: BabelNodeLVal, right: BabelNodeExpression): BabelNodeAssignmentExpression; - declare function binaryExpression(operator: string, left: BabelNodeExpression, right: BabelNodeExpression): BabelNodeBinaryExpression; + declare function binaryExpression(operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=", left: BabelNodeExpression, right: BabelNodeExpression): BabelNodeBinaryExpression; declare function directive(value: BabelNodeDirectiveLiteral): BabelNodeDirective; declare function directiveLiteral(value: string): BabelNodeDirectiveLiteral; declare function blockStatement(directives?: any, body: any): BabelNodeBlockStatement; @@ -862,18 +866,18 @@ declare module "babel-types" { declare function expressionStatement(expression: BabelNodeExpression): BabelNodeExpressionStatement; declare function file(program: BabelNodeProgram, comments: any, tokens: any): BabelNodeFile; declare function forInStatement(left: BabelNodeVariableDeclaration | BabelNodeLVal, right: BabelNodeExpression, body: BabelNodeStatement): BabelNodeForInStatement; - declare function forStatement(init: BabelNodeVariableDeclaration | BabelNodeExpression, test: BabelNodeExpression, update: BabelNodeExpression, body: BabelNodeStatement): BabelNodeForStatement; + declare function forStatement(init?: ?BabelNodeVariableDeclaration | BabelNodeExpression, test?: ?BabelNodeExpression, update?: ?BabelNodeExpression, body: BabelNodeStatement): BabelNodeForStatement; declare function functionDeclaration(id: BabelNodeIdentifier, params: any, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean, returnType: any, typeParameters: any): BabelNodeFunctionDeclaration; declare function functionExpression(id?: ?BabelNodeIdentifier, params: any, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean, returnType: any, typeParameters: any): BabelNodeFunctionExpression; declare function identifier(name: any, typeAnnotation: any): BabelNodeIdentifier; - declare function ifStatement(test: BabelNodeExpression, consequent?: ?BabelNodeStatement, alternate?: ?BabelNodeStatement): BabelNodeIfStatement; + declare function ifStatement(test: BabelNodeExpression, consequent: BabelNodeStatement, alternate?: ?BabelNodeStatement): BabelNodeIfStatement; declare function labeledStatement(label: BabelNodeIdentifier, body: BabelNodeStatement): BabelNodeLabeledStatement; declare function stringLiteral(value: string): BabelNodeStringLiteral; - declare function NumericLiteral(value: number): BabelNodeNumericLiteral; + declare function numericLiteral(value: number): BabelNodeNumericLiteral; declare function nullLiteral(): BabelNodeNullLiteral; declare function booleanLiteral(value: boolean): BabelNodeBooleanLiteral; - declare function RegExpLiteral(pattern: string, flags?: string): BabelNodeRegExpLiteral; - declare function logicalExpression(operator: any, left: BabelNodeExpression, right: BabelNodeExpression): BabelNodeLogicalExpression; + declare function regExpLiteral(pattern: string, flags?: string): BabelNodeRegExpLiteral; + declare function logicalExpression(operator: "||" | "&&", left: BabelNodeExpression, right: BabelNodeExpression): BabelNodeLogicalExpression; declare function memberExpression(object: BabelNodeExpression, property: any, computed?: boolean): BabelNodeMemberExpression; declare function newExpression(callee: BabelNodeExpression, _arguments: any): BabelNodeNewExpression; declare function program(directives?: any, body: any): BabelNodeProgram; @@ -883,13 +887,13 @@ declare module "babel-types" { declare function restElement(argument: BabelNodeLVal, typeAnnotation: any): BabelNodeRestElement; declare function returnStatement(argument?: ?BabelNodeExpression): BabelNodeReturnStatement; declare function sequenceExpression(expressions: Array): BabelNodeSequenceExpression; - declare function switchCase(test: any, consequent: any): BabelNodeSwitchCase; - declare function switchStatement(discriminant: any, cases: any): BabelNodeSwitchStatement; + declare function switchCase(test?: ?BabelNodeExpression, consequent: any): BabelNodeSwitchCase; + declare function switchStatement(discriminant: BabelNodeExpression, cases: any): BabelNodeSwitchStatement; declare function thisExpression(): BabelNodeThisExpression; declare function throwStatement(argument: BabelNodeExpression): BabelNodeThrowStatement; declare function tryStatement(body: BabelNodeBlockStatement, handler?: any, finalizer?: ?BabelNodeBlockStatement, block: any): BabelNodeTryStatement; - declare function unaryExpression(prefix?: boolean, argument: BabelNodeExpression, operator: any): BabelNodeUnaryExpression; - declare function updateExpression(prefix?: boolean, argument: BabelNodeExpression, operator: any): BabelNodeUpdateExpression; + declare function unaryExpression(prefix?: boolean, argument: BabelNodeExpression, operator: "void" | "delete" | "!" | "+" | "-" | "++" | "--" | "~" | "typeof"): BabelNodeUnaryExpression; + declare function updateExpression(prefix?: boolean, argument: BabelNodeExpression, operator: "++" | "--"): BabelNodeUpdateExpression; declare function variableDeclaration(kind: any, declarations: any): BabelNodeVariableDeclaration; declare function variableDeclarator(id: BabelNodeLVal, init?: ?BabelNodeExpression): BabelNodeVariableDeclarator; declare function whileStatement(test: BabelNodeExpression, body: BabelNodeBlockStatement | BabelNodeStatement): BabelNodeWhileStatement; @@ -900,9 +904,9 @@ declare module "babel-types" { declare function classBody(body: any): BabelNodeClassBody; declare function classDeclaration(id: BabelNodeIdentifier, body: BabelNodeClassBody, superClass?: ?BabelNodeExpression, decorators: any, typeParameters: any, superTypeParameters: any, _implements: any): BabelNodeClassDeclaration; declare function classExpression(id?: ?BabelNodeIdentifier, body: BabelNodeClassBody, superClass?: ?BabelNodeExpression, decorators: any, typeParameters: any, superTypeParameters: any, _implements: any): BabelNodeClassExpression; - declare function exportAllDeclaration(source: any): BabelNodeExportAllDeclaration; - declare function exportDefaultDeclaration(declaration: any): BabelNodeExportDefaultDeclaration; - declare function exportNamedDeclaration(declaration: any, specifiers: any, source: any): BabelNodeExportNamedDeclaration; + declare function exportAllDeclaration(source: BabelNodeStringLiteral): BabelNodeExportAllDeclaration; + declare function exportDefaultDeclaration(declaration: BabelNodeFunctionDeclaration | BabelNodeClassDeclaration | BabelNodeExpression): BabelNodeExportDefaultDeclaration; + declare function exportNamedDeclaration(declaration?: ?BabelNodeDeclaration, specifiers: any, source?: ?BabelNodeStringLiteral): BabelNodeExportNamedDeclaration; declare function exportSpecifier(local: BabelNodeIdentifier, imported: BabelNodeIdentifier, exported: any): BabelNodeExportSpecifier; declare function forOfStatement(left: BabelNodeVariableDeclaration | BabelNodeLVal, right: BabelNodeExpression, body: BabelNodeStatement): BabelNodeForOfStatement; declare function importDeclaration(specifiers: any, source: BabelNodeStringLiteral): BabelNodeImportDeclaration; @@ -913,7 +917,6 @@ declare module "babel-types" { declare function classMethod(kind?: any, computed?: boolean, _static?: boolean, key: any, params: any, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean, decorators: any, returnType: any, typeParameters: any): BabelNodeClassMethod; declare function objectPattern(properties: any, typeAnnotation: any): BabelNodeObjectPattern; declare function spreadElement(argument: BabelNodeExpression): BabelNodeSpreadElement; - declare function super(): BabelNodeSuper; declare function taggedTemplateExpression(tag: BabelNodeExpression, quasi: BabelNodeTemplateLiteral): BabelNodeTaggedTemplateExpression; declare function templateElement(value: any, tail?: boolean): BabelNodeTemplateElement; declare function templateLiteral(quasis: any, expressions: any): BabelNodeTemplateLiteral; @@ -928,6 +931,7 @@ declare module "babel-types" { declare function declareFunction(id: any): BabelNodeDeclareFunction; declare function declareModule(id: any, body: any): BabelNodeDeclareModule; declare function declareVariable(id: any): BabelNodeDeclareVariable; + declare function existentialTypeParam(): BabelNodeExistentialTypeParam; declare function functionTypeAnnotation(typeParameters: any, params: any, rest: any, returnType: any): BabelNodeFunctionTypeAnnotation; declare function functionTypeParam(name: any, typeAnnotation: any): BabelNodeFunctionTypeParam; declare function genericTypeAnnotation(id: any, typeParameters: any): BabelNodeGenericTypeAnnotation; @@ -936,7 +940,7 @@ declare module "babel-types" { declare function intersectionTypeAnnotation(types: any): BabelNodeIntersectionTypeAnnotation; declare function mixedTypeAnnotation(): BabelNodeMixedTypeAnnotation; declare function nullableTypeAnnotation(typeAnnotation: any): BabelNodeNullableTypeAnnotation; - declare function NumericLiteralTypeAnnotation(): BabelNodeNumericLiteralTypeAnnotation; + declare function numericLiteralTypeAnnotation(): BabelNodeNumericLiteralTypeAnnotation; declare function numberTypeAnnotation(): BabelNodeNumberTypeAnnotation; declare function stringLiteralTypeAnnotation(): BabelNodeStringLiteralTypeAnnotation; declare function stringTypeAnnotation(): BabelNodeStringTypeAnnotation; @@ -1058,6 +1062,7 @@ declare module "babel-types" { declare function isDeclareFunction(node: Object, opts?: Object): boolean; declare function isDeclareModule(node: Object, opts?: Object): boolean; declare function isDeclareVariable(node: Object, opts?: Object): boolean; + declare function isExistentialTypeParam(node: Object, opts?: Object): boolean; declare function isFunctionTypeAnnotation(node: Object, opts?: Object): boolean; declare function isFunctionTypeParam(node: Object, opts?: Object): boolean; declare function isGenericTypeAnnotation(node: Object, opts?: Object): boolean; @@ -1139,6 +1144,8 @@ declare module "babel-types" { declare function isFlowBaseAnnotation(node: Object, opts?: Object): boolean; declare function isFlowDeclaration(node: Object, opts?: Object): boolean; declare function isJSX(node: Object, opts?: Object): boolean; + declare function isNumberLiteral(node: Object, opts?: Object): boolean; + declare function isRegexLiteral(node: Object, opts?: Object): boolean; declare function isReferencedIdentifier(node: Object, opts?: Object): boolean; declare function isReferencedMemberExpression(node: Object, opts?: Object): boolean; declare function isBindingIdentifier(node: Object, opts?: Object): boolean; diff --git a/packages/babel-core/src/api/browser.js b/packages/babel-core/src/api/browser.js index f166494c60..469cfa3b73 100644 --- a/packages/babel-core/src/api/browser.js +++ b/packages/babel-core/src/api/browser.js @@ -1,5 +1,3 @@ -/* @flow */ - /* eslint no-new-func: 0 */ import { transform } from "./node"; diff --git a/packages/babel-core/src/api/node.js b/packages/babel-core/src/api/node.js index dcfe8b5c19..f7d74a7894 100644 --- a/packages/babel-core/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -1,5 +1,3 @@ -/* @flow */ - import isFunction from "lodash/lang/isFunction"; import fs from "fs"; diff --git a/packages/babel-core/src/helpers/normalize-ast.js b/packages/babel-core/src/helpers/normalize-ast.js index cd8881a9fd..d2c91cef91 100644 --- a/packages/babel-core/src/helpers/normalize-ast.js +++ b/packages/babel-core/src/helpers/normalize-ast.js @@ -1,5 +1,3 @@ -/* @flow */ - import * as t from "babel-types"; /** diff --git a/packages/babel-core/src/helpers/resolve.js b/packages/babel-core/src/helpers/resolve.js index 369fc718d4..aaf0695d3c 100644 --- a/packages/babel-core/src/helpers/resolve.js +++ b/packages/babel-core/src/helpers/resolve.js @@ -1,5 +1,3 @@ -/* @flow */ - import Module from "module"; let relativeModules = {}; diff --git a/packages/babel-core/src/store.js b/packages/babel-core/src/store.js index 5783fc82f7..fab3d10f34 100644 --- a/packages/babel-core/src/store.js +++ b/packages/babel-core/src/store.js @@ -1,5 +1,3 @@ -/* @flow */ - export default class Store extends Map { constructor() { super(); diff --git a/packages/babel-core/src/tools/build-external-helpers.js b/packages/babel-core/src/tools/build-external-helpers.js index 063ad8a5be..e5e8b06fea 100644 --- a/packages/babel-core/src/tools/build-external-helpers.js +++ b/packages/babel-core/src/tools/build-external-helpers.js @@ -1,5 +1,3 @@ -/* @flow */ - import * as helpers from "babel-helpers"; import generator from "babel-generator"; import * as messages from "babel-messages"; diff --git a/packages/babel-core/src/transformation/file/index.js b/packages/babel-core/src/transformation/file/index.js index aadd230773..5b47df51ea 100644 --- a/packages/babel-core/src/transformation/file/index.js +++ b/packages/babel-core/src/transformation/file/index.js @@ -1,4 +1,3 @@ -/* @flow */ /* global BabelParserOptions */ /* global BabelFileMetadata */ /* global BabelFileResult */ diff --git a/packages/babel-core/src/transformation/file/logger.js b/packages/babel-core/src/transformation/file/logger.js index 5655f67ca0..3573c968e4 100644 --- a/packages/babel-core/src/transformation/file/logger.js +++ b/packages/babel-core/src/transformation/file/logger.js @@ -1,5 +1,3 @@ -/* @flow */ - import type File from "./index"; import buildDebug from "debug/node"; diff --git a/packages/babel-core/src/transformation/file/metadata.js b/packages/babel-core/src/transformation/file/metadata.js index 35744f971e..0183006ffb 100644 --- a/packages/babel-core/src/transformation/file/metadata.js +++ b/packages/babel-core/src/transformation/file/metadata.js @@ -1,5 +1,3 @@ -/* @flow */ - import * as t from "babel-types"; export let ModuleDeclaration = { diff --git a/packages/babel-core/src/transformation/file/options/option-manager.js b/packages/babel-core/src/transformation/file/options/option-manager.js index 83e80d2799..80f9f6e574 100644 --- a/packages/babel-core/src/transformation/file/options/option-manager.js +++ b/packages/babel-core/src/transformation/file/options/option-manager.js @@ -1,5 +1,3 @@ -/* @flow */ - import * as context from "../../../api/node"; import type Logger from "../logger"; import Plugin from "../../plugin"; diff --git a/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js b/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js index c37525dc37..13e5e955ac 100644 --- a/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js +++ b/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js @@ -1,5 +1,3 @@ -/* @flow */ - import Plugin from "../plugin"; import * as t from "babel-types"; diff --git a/packages/babel-core/src/transformation/plugin-pass.js b/packages/babel-core/src/transformation/plugin-pass.js index 1fe9385941..10b7d9381b 100644 --- a/packages/babel-core/src/transformation/plugin-pass.js +++ b/packages/babel-core/src/transformation/plugin-pass.js @@ -1,5 +1,3 @@ -/* @flow */ - import type Plugin from "./plugin"; import Store from "../store"; import traverse from "babel-traverse"; diff --git a/packages/babel-core/src/transformation/plugin.js b/packages/babel-core/src/transformation/plugin.js index 084485b1d6..35576a141c 100644 --- a/packages/babel-core/src/transformation/plugin.js +++ b/packages/babel-core/src/transformation/plugin.js @@ -1,5 +1,3 @@ -/* @flow */ - import OptionManager from "./file/options/option-manager" import * as messages from "babel-messages"; import Store from "../store"; diff --git a/packages/babel-core/src/util.js b/packages/babel-core/src/util.js index d76cb5d45e..4bcfd64df1 100644 --- a/packages/babel-core/src/util.js +++ b/packages/babel-core/src/util.js @@ -1,5 +1,3 @@ -/* @flow */ - import escapeRegExp from "lodash/string/escapeRegExp"; import startsWith from "lodash/string/startsWith"; import isBoolean from "lodash/lang/isBoolean"; diff --git a/packages/babel-generator/src/buffer.js b/packages/babel-generator/src/buffer.js index a0a0a7b550..08cef73b09 100644 --- a/packages/babel-generator/src/buffer.js +++ b/packages/babel-generator/src/buffer.js @@ -1,5 +1,3 @@ -/* @flow */ - import type Position from "./position"; import repeating from "repeating"; import trimRight from "trim-right"; diff --git a/packages/babel-generator/src/generators/jsx.js b/packages/babel-generator/src/generators/jsx.js index 310a26209f..7a926bb512 100644 --- a/packages/babel-generator/src/generators/jsx.js +++ b/packages/babel-generator/src/generators/jsx.js @@ -1,5 +1,3 @@ -/* @flow */ - export function JSXAttribute(node: Object) { this.print(node.name, node); if (node.value) { diff --git a/packages/babel-generator/src/generators/statements.js b/packages/babel-generator/src/generators/statements.js index 1f1648b139..744ff256d5 100644 --- a/packages/babel-generator/src/generators/statements.js +++ b/packages/babel-generator/src/generators/statements.js @@ -1,5 +1,3 @@ -/* @flow */ - import repeating from "repeating"; import * as t from "babel-types"; diff --git a/packages/babel-generator/src/index.js b/packages/babel-generator/src/index.js index 5916807688..350b73c81b 100644 --- a/packages/babel-generator/src/index.js +++ b/packages/babel-generator/src/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import detectIndent from "detect-indent"; import Whitespace from "./whitespace"; import SourceMap from "./source-map"; diff --git a/packages/babel-generator/src/node/index.js b/packages/babel-generator/src/node/index.js index a477bde0e0..169ba7fe6f 100644 --- a/packages/babel-generator/src/node/index.js +++ b/packages/babel-generator/src/node/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import whitespace from "./whitespace"; import * as parens from "./parentheses"; import each from "lodash/collection/each"; diff --git a/packages/babel-generator/src/node/whitespace.js b/packages/babel-generator/src/node/whitespace.js index 0866d4e23e..19cba52455 100644 --- a/packages/babel-generator/src/node/whitespace.js +++ b/packages/babel-generator/src/node/whitespace.js @@ -1,5 +1,3 @@ -/* @flow */ - import isBoolean from "lodash/lang/isBoolean"; import each from "lodash/collection/each"; import map from "lodash/collection/map"; diff --git a/packages/babel-generator/src/position.js b/packages/babel-generator/src/position.js index 5810a90d6b..c653792ba7 100644 --- a/packages/babel-generator/src/position.js +++ b/packages/babel-generator/src/position.js @@ -5,6 +5,9 @@ */ export default class Position { + column: number; + line: number; + constructor() { this.line = 1; this.column = 0; @@ -14,7 +17,7 @@ export default class Position { * Push a string to the current position, mantaining the current line and column. */ - push(str) { + push(str: string): void { for (let i = 0; i < str.length; i++) { if (str[i] === "\n") { this.line++; @@ -29,7 +32,7 @@ export default class Position { * Unshift a string from the current position, mantaining the current line and column. */ - unshift(str) { + unshift(str: string): void { for (let i = 0; i < str.length; i++) { if (str[i] === "\n") { this.line--; diff --git a/packages/babel-generator/src/printer.js b/packages/babel-generator/src/printer.js index 2e74d4af97..4b6d1268af 100644 --- a/packages/babel-generator/src/printer.js +++ b/packages/babel-generator/src/printer.js @@ -1,5 +1,3 @@ -/* @flow */ - import repeating from "repeating"; import Buffer from "./buffer"; import n from "./node"; diff --git a/packages/babel-generator/src/source-map.js b/packages/babel-generator/src/source-map.js index 75254843c9..f1b3ee3727 100644 --- a/packages/babel-generator/src/source-map.js +++ b/packages/babel-generator/src/source-map.js @@ -1,5 +1,3 @@ -/* @flow */ - import sourceMap from "source-map"; import * as t from "babel-types"; diff --git a/packages/babel-generator/src/whitespace.js b/packages/babel-generator/src/whitespace.js index de8873d043..05816b1b73 100644 --- a/packages/babel-generator/src/whitespace.js +++ b/packages/babel-generator/src/whitespace.js @@ -1,5 +1,3 @@ -/* @flow */ - /** * Returns `i`th number from `base`, continuing from 0 when `max` is reached. * Useful for shifting `for` loop by a fixed number but going over all items. diff --git a/packages/babel-helper-builder-react-jsx/src/index.js b/packages/babel-helper-builder-react-jsx/src/index.js index 558d6f789a..3e6094c490 100644 --- a/packages/babel-helper-builder-react-jsx/src/index.js +++ b/packages/babel-helper-builder-react-jsx/src/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import esutils from "esutils"; import * as t from "babel-types"; diff --git a/packages/babel-helper-call-delegate/src/index.js b/packages/babel-helper-call-delegate/src/index.js index 185fae47a0..991941fb00 100644 --- a/packages/babel-helper-call-delegate/src/index.js +++ b/packages/babel-helper-call-delegate/src/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import hoistVariables from "babel-helper-hoist-variables"; import type { NodePath } from "babel-traverse"; import * as t from "babel-types"; diff --git a/packages/babel-helper-define-map/src/index.js b/packages/babel-helper-define-map/src/index.js index 01a44195d5..43c5c5a1c2 100644 --- a/packages/babel-helper-define-map/src/index.js +++ b/packages/babel-helper-define-map/src/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import nameFunction from "babel-helper-function-name"; import each from "lodash/collection/each"; import has from "lodash/object/has"; diff --git a/packages/babel-helper-explode-assignable-expression/src/index.js b/packages/babel-helper-explode-assignable-expression/src/index.js index aec842aa9c..fb8024d8af 100644 --- a/packages/babel-helper-explode-assignable-expression/src/index.js +++ b/packages/babel-helper-explode-assignable-expression/src/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import type { Scope } from "babel-traverse"; import * as t from "babel-types"; diff --git a/packages/babel-helper-function-name/src/index.js b/packages/babel-helper-function-name/src/index.js index 846b60af31..fd64ed155f 100644 --- a/packages/babel-helper-function-name/src/index.js +++ b/packages/babel-helper-function-name/src/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import getFunctionArity from "babel-helper-get-function-arity"; import template from "babel-template"; import * as t from "babel-types"; @@ -62,7 +60,7 @@ function wrap(state, method, id, scope) { FUNCTION_KEY: scope.generateUidIdentifier(id.name) }).expression; template.callee._skipModulesRemap = true; - + // shim in dummy params to retain function arity, if you try to read the // source then you'll get the original since it's proxied so it's all good let params = template.callee.body.body[0].params; diff --git a/packages/babel-helper-get-function-arity/src/index.js b/packages/babel-helper-get-function-arity/src/index.js index 2ad9bfbe6d..a3c60a5a61 100644 --- a/packages/babel-helper-get-function-arity/src/index.js +++ b/packages/babel-helper-get-function-arity/src/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import * as t from "babel-types"; export default function (node): number { diff --git a/packages/babel-helper-replace-supers/src/index.js b/packages/babel-helper-replace-supers/src/index.js index 34d092908b..98625be896 100644 --- a/packages/babel-helper-replace-supers/src/index.js +++ b/packages/babel-helper-replace-supers/src/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import type { NodePath, Scope } from "babel-traverse"; import optimiseCall from "babel-helper-optimise-call-expression"; import * as messages from "babel-messages"; diff --git a/packages/babel-messages/src/index.js b/packages/babel-messages/src/index.js index 5c136dc5f2..77f6bca26c 100644 --- a/packages/babel-messages/src/index.js +++ b/packages/babel-messages/src/index.js @@ -47,7 +47,7 @@ export const MESSAGES = { * Get a message with $0 placeholders replaced by arguments. */ -export function get(key: string, ...args): string { +export function get(key: string, ...args: Array): string { let msg = MESSAGES[key]; if (!msg) throw new ReferenceError(`Unknown message ${JSON.stringify(key)}`); diff --git a/packages/babel-plugin-transform-es2015-classes/src/lib/memoise-decorators.js b/packages/babel-plugin-transform-es2015-classes/src/lib/memoise-decorators.js index 18eaa0a498..2948528182 100644 --- a/packages/babel-plugin-transform-es2015-classes/src/lib/memoise-decorators.js +++ b/packages/babel-plugin-transform-es2015-classes/src/lib/memoise-decorators.js @@ -1,5 +1,3 @@ -/* @flow */ - import type { Scope } from "babel-traverse"; import * as t from "babel-types"; diff --git a/packages/babel-register/src/cache.js b/packages/babel-register/src/cache.js index 2682714f5b..029b20472f 100644 --- a/packages/babel-register/src/cache.js +++ b/packages/babel-register/src/cache.js @@ -1,5 +1,3 @@ -/* @flow */ - import path from "path"; import fs from "fs"; import homeOrTmp from "home-or-tmp"; diff --git a/packages/babel-template/src/index.js b/packages/babel-template/src/index.js index 7251e042dd..2007507a9a 100644 --- a/packages/babel-template/src/index.js +++ b/packages/babel-template/src/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import cloneDeep from "lodash/lang/cloneDeep"; import has from "lodash/object/has"; import traverse from "babel-traverse"; diff --git a/packages/babel-traverse/src/context.js b/packages/babel-traverse/src/context.js index e530316e85..2e134f0abe 100644 --- a/packages/babel-traverse/src/context.js +++ b/packages/babel-traverse/src/context.js @@ -1,5 +1,3 @@ -/* @flow */ - import NodePath from "./path"; import * as t from "babel-types"; diff --git a/packages/babel-traverse/src/hub.js b/packages/babel-traverse/src/hub.js index 9c204d5e54..f05eaa8136 100644 --- a/packages/babel-traverse/src/hub.js +++ b/packages/babel-traverse/src/hub.js @@ -1,5 +1,3 @@ -/* @flow */ - export default class Hub { constructor(file, options) { this.file = file; diff --git a/packages/babel-traverse/src/index.js b/packages/babel-traverse/src/index.js index 60b83915c9..91f04a0cab 100644 --- a/packages/babel-traverse/src/index.js +++ b/packages/babel-traverse/src/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import TraversalContext from "./context"; import * as visitors from "./visitors"; import * as messages from "babel-messages"; diff --git a/packages/babel-traverse/src/path/ancestry.js b/packages/babel-traverse/src/path/ancestry.js index 0b0ade4048..ee199a1a35 100644 --- a/packages/babel-traverse/src/path/ancestry.js +++ b/packages/babel-traverse/src/path/ancestry.js @@ -1,5 +1,3 @@ -/* @flow */ - // This file contains that retrieve or validate anything related to the current paths ancestry. import * as t from "babel-types"; diff --git a/packages/babel-traverse/src/path/comments.js b/packages/babel-traverse/src/path/comments.js index 06159832c1..2a1b06f64a 100644 --- a/packages/babel-traverse/src/path/comments.js +++ b/packages/babel-traverse/src/path/comments.js @@ -1,5 +1,3 @@ -/* @flow */ - // This file contains methods responsible for dealing with comments. /** diff --git a/packages/babel-traverse/src/path/context.js b/packages/babel-traverse/src/path/context.js index aa84e7e6fe..fcd06d5ca0 100644 --- a/packages/babel-traverse/src/path/context.js +++ b/packages/babel-traverse/src/path/context.js @@ -1,5 +1,3 @@ -/* @flow */ - // This file contains methods responsible for maintaining a TraversalContext. import traverse from "../index"; diff --git a/packages/babel-traverse/src/path/conversion.js b/packages/babel-traverse/src/path/conversion.js index 7ebc7d646c..27079529d7 100644 --- a/packages/babel-traverse/src/path/conversion.js +++ b/packages/babel-traverse/src/path/conversion.js @@ -1,5 +1,3 @@ -/* @flow */ - // This file contains methods that convert the path node into another node or some other type of data. import * as t from "babel-types"; diff --git a/packages/babel-traverse/src/path/evaluation.js b/packages/babel-traverse/src/path/evaluation.js index 1537e3ff14..f8cc17a12e 100644 --- a/packages/babel-traverse/src/path/evaluation.js +++ b/packages/babel-traverse/src/path/evaluation.js @@ -1,5 +1,3 @@ -/* @flow */ - import type NodePath from "./index"; // This file contains Babels metainterpreter that can evaluate static code. diff --git a/packages/babel-traverse/src/path/family.js b/packages/babel-traverse/src/path/family.js index a4c6f5621f..b27538edaf 100644 --- a/packages/babel-traverse/src/path/family.js +++ b/packages/babel-traverse/src/path/family.js @@ -1,5 +1,3 @@ -/* @flow */ - // This file contains methods responsible for dealing with/retrieving children or siblings. import type TraversalContext from "../index"; diff --git a/packages/babel-traverse/src/path/index.js b/packages/babel-traverse/src/path/index.js index 9ddbc106c4..2140ee9284 100644 --- a/packages/babel-traverse/src/path/index.js +++ b/packages/babel-traverse/src/path/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import type Hub from "../hub"; import type TraversalContext from "../context"; import * as virtualTypes from "./lib/virtual-types"; diff --git a/packages/babel-traverse/src/path/inference/index.js b/packages/babel-traverse/src/path/inference/index.js index 40e5c75606..d6b9c878f3 100644 --- a/packages/babel-traverse/src/path/inference/index.js +++ b/packages/babel-traverse/src/path/inference/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import type NodePath from "./index"; import * as inferers from "./inferers"; import * as t from "babel-types"; diff --git a/packages/babel-traverse/src/path/inference/inferer-reference.js b/packages/babel-traverse/src/path/inference/inferer-reference.js index f3258ffde5..97fbb8a29e 100644 --- a/packages/babel-traverse/src/path/inference/inferer-reference.js +++ b/packages/babel-traverse/src/path/inference/inferer-reference.js @@ -1,5 +1,3 @@ -/* @flow */ - import type NodePath from "../index"; import * as t from "babel-types"; diff --git a/packages/babel-traverse/src/path/inference/inferers.js b/packages/babel-traverse/src/path/inference/inferers.js index 5728a352a1..2dfaed2ab4 100644 --- a/packages/babel-traverse/src/path/inference/inferers.js +++ b/packages/babel-traverse/src/path/inference/inferers.js @@ -1,5 +1,3 @@ -/* @flow */ - import * as t from "babel-types"; export { default as Identifier } from "./inferer-reference"; diff --git a/packages/babel-traverse/src/path/introspection.js b/packages/babel-traverse/src/path/introspection.js index cda82f81cc..8760cfc5dd 100644 --- a/packages/babel-traverse/src/path/introspection.js +++ b/packages/babel-traverse/src/path/introspection.js @@ -1,5 +1,3 @@ -/* @flow */ - // This file contains methods responsible for introspecting the current path for certain values. import type NodePath from "./index"; diff --git a/packages/babel-traverse/src/path/lib/hoister.js b/packages/babel-traverse/src/path/lib/hoister.js index 669f4f0f79..f9a39ffd8b 100644 --- a/packages/babel-traverse/src/path/lib/hoister.js +++ b/packages/babel-traverse/src/path/lib/hoister.js @@ -1,5 +1,3 @@ -/* @flow */ - import { react } from "babel-types"; import * as t from "babel-types"; diff --git a/packages/babel-traverse/src/path/lib/removal-hooks.js b/packages/babel-traverse/src/path/lib/removal-hooks.js index eb51a0123e..97cacbca8b 100644 --- a/packages/babel-traverse/src/path/lib/removal-hooks.js +++ b/packages/babel-traverse/src/path/lib/removal-hooks.js @@ -1,5 +1,3 @@ -/* @flow */ - // this file contains hooks that handle ancestry cleanup of parent nodes when removing children /** diff --git a/packages/babel-traverse/src/path/lib/virtual-types.js b/packages/babel-traverse/src/path/lib/virtual-types.js index ce92ed1276..cb598fe9a3 100644 --- a/packages/babel-traverse/src/path/lib/virtual-types.js +++ b/packages/babel-traverse/src/path/lib/virtual-types.js @@ -1,5 +1,3 @@ -/* @flow */ - import type NodePath from "../index"; import { react } from "babel-types"; import * as t from "babel-types"; diff --git a/packages/babel-traverse/src/path/modification.js b/packages/babel-traverse/src/path/modification.js index 09bb17533d..8d045437b0 100644 --- a/packages/babel-traverse/src/path/modification.js +++ b/packages/babel-traverse/src/path/modification.js @@ -1,5 +1,3 @@ -/* @flow */ - // This file contains methods that modify the path/node in some ways. import { PATH_CACHE_KEY } from "./constants"; diff --git a/packages/babel-traverse/src/path/removal.js b/packages/babel-traverse/src/path/removal.js index 3e654a3a67..f7686fce6b 100644 --- a/packages/babel-traverse/src/path/removal.js +++ b/packages/babel-traverse/src/path/removal.js @@ -1,5 +1,3 @@ -/* @flow */ - // This file contains methods responsible for removing a node. import { hooks } from "./lib/removal-hooks"; diff --git a/packages/babel-traverse/src/path/replacement.js b/packages/babel-traverse/src/path/replacement.js index 8c659c0860..b2bb79d05e 100644 --- a/packages/babel-traverse/src/path/replacement.js +++ b/packages/babel-traverse/src/path/replacement.js @@ -1,5 +1,3 @@ -/* @flow */ - // This file contains methods responsible for replacing a node with another. import codeFrame from "babel-code-frame"; @@ -165,7 +163,7 @@ export function _replaceWith(node) { } this.debug(() => `Replace with ${node && node.type}`); - + this.node = this.container[this.key] = node; } diff --git a/packages/babel-traverse/src/scope/binding.js b/packages/babel-traverse/src/scope/binding.js index fc1f69100e..2aef2ba190 100644 --- a/packages/babel-traverse/src/scope/binding.js +++ b/packages/babel-traverse/src/scope/binding.js @@ -1,5 +1,3 @@ -/* @flow */ - import type NodePath from "../path"; /** diff --git a/packages/babel-traverse/src/scope/index.js b/packages/babel-traverse/src/scope/index.js index 4af5e12d52..2f6da75192 100644 --- a/packages/babel-traverse/src/scope/index.js +++ b/packages/babel-traverse/src/scope/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import includes from "lodash/collection/includes"; import repeating from "repeating"; import Renamer from "./lib/renamer"; diff --git a/packages/babel-traverse/src/scope/lib/renamer.js b/packages/babel-traverse/src/scope/lib/renamer.js index e3a60935d8..3d36fcc16d 100644 --- a/packages/babel-traverse/src/scope/lib/renamer.js +++ b/packages/babel-traverse/src/scope/lib/renamer.js @@ -1,5 +1,3 @@ -/* @flow */ - import Binding from "../binding"; import * as t from "babel-types"; diff --git a/packages/babel-traverse/src/visitors.js b/packages/babel-traverse/src/visitors.js index 05c706b91d..de1d7c21e4 100644 --- a/packages/babel-traverse/src/visitors.js +++ b/packages/babel-traverse/src/visitors.js @@ -1,5 +1,3 @@ -/* @flow */ - import * as virtualTypes from "./path/lib/virtual-types"; import * as messages from "babel-messages"; import * as t from "babel-types"; diff --git a/packages/babel-types/src/converters.js b/packages/babel-types/src/converters.js index e11b97d493..f156c6d32b 100644 --- a/packages/babel-types/src/converters.js +++ b/packages/babel-types/src/converters.js @@ -1,5 +1,3 @@ -/* @flow */ - import isPlainObject from "lodash/lang/isPlainObject"; import isNumber from "lodash/lang/isNumber"; import isRegExp from "lodash/lang/isRegExp"; diff --git a/packages/babel-types/src/definitions/index.js b/packages/babel-types/src/definitions/index.js index 044acc9659..dc0b4e64fe 100644 --- a/packages/babel-types/src/definitions/index.js +++ b/packages/babel-types/src/definitions/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import * as t from "../index"; export let VISITOR_KEYS = {}; diff --git a/packages/babel-types/src/flow.js b/packages/babel-types/src/flow.js index 86f53e3b4f..444ea50b86 100644 --- a/packages/babel-types/src/flow.js +++ b/packages/babel-types/src/flow.js @@ -1,5 +1,3 @@ -/* @flow */ - import * as t from "./index"; /** diff --git a/packages/babel-types/src/index.js b/packages/babel-types/src/index.js index 1ea1f28308..1d8c90fc6e 100644 --- a/packages/babel-types/src/index.js +++ b/packages/babel-types/src/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import toFastProperties from "to-fast-properties"; import compact from "lodash/array/compact"; import loClone from "lodash/lang/clone"; diff --git a/packages/babel-types/src/validators.js b/packages/babel-types/src/validators.js index 019cec3f0b..e95ef2bd9a 100644 --- a/packages/babel-types/src/validators.js +++ b/packages/babel-types/src/validators.js @@ -1,5 +1,3 @@ -/* @flow */ - import { getBindingIdentifiers } from "./retrievers"; import esutils from "esutils"; import * as t from "./index"; diff --git a/packages/babylon/src/index.js b/packages/babylon/src/index.js index b01a0b1197..694c4e4838 100755 --- a/packages/babylon/src/index.js +++ b/packages/babylon/src/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import Parser, { plugins } from "./parser"; import "./parser/util"; import "./parser/statement"; diff --git a/packages/babylon/src/options.js b/packages/babylon/src/options.js index 7beddde5ad..ecac819f46 100755 --- a/packages/babylon/src/options.js +++ b/packages/babylon/src/options.js @@ -1,5 +1,3 @@ -/* @flow */ - // A second optional argument can be given to further configure // the parser process. These options are recognized: diff --git a/packages/babylon/src/parser/expression.js b/packages/babylon/src/parser/expression.js index 2e9847dd19..784eb3a3ea 100644 --- a/packages/babylon/src/parser/expression.js +++ b/packages/babylon/src/parser/expression.js @@ -1,5 +1,3 @@ -/* @flow */ - // A recursive descent parser operates by defining functions for all // syntactic elements, and recursively calling those, each function // advancing the input stream and returning an AST node. Precedence @@ -135,7 +133,7 @@ pp.parseMaybeAssign = function (noIn, refShorthandDefaultPos, afterLeftParse) { } else if (failOnShorthandAssign && refShorthandDefaultPos.start) { this.unexpected(refShorthandDefaultPos.start); } - + return left; }; diff --git a/packages/babylon/src/parser/index.js b/packages/babylon/src/parser/index.js index 6f9e2b3c26..a3492a4b54 100644 --- a/packages/babylon/src/parser/index.js +++ b/packages/babylon/src/parser/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import { reservedWords } from "../util/identifier"; import { getOptions } from "../options"; import Tokenizer from "../tokenizer"; diff --git a/packages/babylon/src/parser/location.js b/packages/babylon/src/parser/location.js index 3029551c43..c8f10cc172 100644 --- a/packages/babylon/src/parser/location.js +++ b/packages/babylon/src/parser/location.js @@ -1,5 +1,3 @@ -/* @flow */ - import { getLineInfo } from "../util/location"; import Parser from "./index"; diff --git a/packages/babylon/src/parser/lval.js b/packages/babylon/src/parser/lval.js index d655805f5d..895323f8df 100644 --- a/packages/babylon/src/parser/lval.js +++ b/packages/babylon/src/parser/lval.js @@ -1,5 +1,3 @@ -/* @flow */ - import { types as tt } from "../tokenizer/types"; import Parser from "./index"; import { reservedWords } from "../util/identifier"; diff --git a/packages/babylon/src/parser/node.js b/packages/babylon/src/parser/node.js index e0dcf33b08..d9e07ae329 100644 --- a/packages/babylon/src/parser/node.js +++ b/packages/babylon/src/parser/node.js @@ -1,5 +1,3 @@ -/* @flow */ - import Parser from "./index"; import { SourceLocation } from "../util/location"; diff --git a/packages/babylon/src/parser/statement.js b/packages/babylon/src/parser/statement.js index 710850b555..d86f25bfc3 100644 --- a/packages/babylon/src/parser/statement.js +++ b/packages/babylon/src/parser/statement.js @@ -1,5 +1,3 @@ -/* @flow */ - import { types as tt } from "../tokenizer/types"; import Parser from "./index"; import { lineBreak } from "../util/whitespace"; diff --git a/packages/babylon/src/plugins/flow.js b/packages/babylon/src/plugins/flow.js index ea0c82e080..9a691cbff7 100644 --- a/packages/babylon/src/plugins/flow.js +++ b/packages/babylon/src/plugins/flow.js @@ -1,5 +1,3 @@ -/* @flow */ - import { types as tt } from "../tokenizer/types"; import Parser from "../parser"; diff --git a/packages/babylon/src/plugins/jsx/index.js b/packages/babylon/src/plugins/jsx/index.js index 2d466d4ece..28d1ce2ee8 100644 --- a/packages/babylon/src/plugins/jsx/index.js +++ b/packages/babylon/src/plugins/jsx/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import XHTMLEntities from "./xhtml"; import { TokenType, types as tt } from "../../tokenizer/types"; import { TokContext, types as tc } from "../../tokenizer/context"; diff --git a/packages/babylon/src/tokenizer/index.js b/packages/babylon/src/tokenizer/index.js index 6ac78e136d..8e610f77dd 100644 --- a/packages/babylon/src/tokenizer/index.js +++ b/packages/babylon/src/tokenizer/index.js @@ -1,5 +1,3 @@ -/* @flow */ - import type { TokenType } from "./types"; import { isIdentifierStart, isIdentifierChar, isKeyword } from "../util/identifier"; import { types as tt, keywords as keywordTypes } from "./types"; diff --git a/packages/babylon/src/tokenizer/state.js b/packages/babylon/src/tokenizer/state.js index 63107de019..68104ae947 100644 --- a/packages/babylon/src/tokenizer/state.js +++ b/packages/babylon/src/tokenizer/state.js @@ -1,5 +1,3 @@ -/* @flow */ - import type { TokContext } from "./context"; import type { Token } from "./index"; import { Position } from "../util/location"; diff --git a/packages/babylon/src/tokenizer/types.js b/packages/babylon/src/tokenizer/types.js index fa8ff99bab..c97e829287 100644 --- a/packages/babylon/src/tokenizer/types.js +++ b/packages/babylon/src/tokenizer/types.js @@ -1,5 +1,3 @@ -/* @flow */ - // ## Token types // The assignment of fine-grained, information-carrying type objects diff --git a/packages/babylon/src/util/identifier.js b/packages/babylon/src/util/identifier.js index 09045f8af0..7df2faada3 100644 --- a/packages/babylon/src/util/identifier.js +++ b/packages/babylon/src/util/identifier.js @@ -1,5 +1,3 @@ -/* @flow */ - // This is a trick taken from Esprima. It turns out that, on // non-Chrome browsers, to check whether a string is in a set, a // predicate containing a big ugly `switch` statement is faster than diff --git a/packages/babylon/src/util/location.js b/packages/babylon/src/util/location.js index 47019f1068..883d4b3daa 100644 --- a/packages/babylon/src/util/location.js +++ b/packages/babylon/src/util/location.js @@ -1,5 +1,3 @@ -/* @flow */ - import { lineBreakG } from "./whitespace"; // These are used when `options.locations` is on, for the diff --git a/packages/babylon/src/util/whitespace.js b/packages/babylon/src/util/whitespace.js index 78d800df7c..50b90c8ca7 100644 --- a/packages/babylon/src/util/whitespace.js +++ b/packages/babylon/src/util/whitespace.js @@ -6,7 +6,7 @@ export const lineBreak = /\r\n?|\n|\u2028|\u2029/; export const lineBreakG = new RegExp(lineBreak.source, "g"); -export function isNewLine(code) { +export function isNewLine(code: number): boolean { return code === 10 || code === 13 || code === 0x2028 || code === 0x2029; } diff --git a/scripts/generate-interfaces.js b/scripts/generate-interfaces.js index 5ec8d3c829..e51f8f39b6 100644 --- a/scripts/generate-interfaces.js +++ b/scripts/generate-interfaces.js @@ -96,7 +96,10 @@ for (var type in t.NODE_FIELDS) { ${struct.join("\n ").trim()} }\n\n`; - lines.push(`declare function ${type[0].toLowerCase() + type.slice(1)}(${args.join(", ")}): ${NODE_PREFIX}${type};`); + // Flow chokes on super() :/ + if (type !== 'Super') { + lines.push(`declare function ${type[0].toLowerCase() + type.slice(1)}(${args.join(", ")}): ${NODE_PREFIX}${type};`); + } } for (var i = 0; i < t.TYPES.length; i++) {