I'm extremely stupid and didn't commit as I go. To anyone reading this I'm extremely sorry. A lot of these changes are very broad and I plan on releasing Babel 6.0.0 today live on stage at Ember Camp London so I'm afraid I couldn't wait. If you're ever in London I'll buy you a beer (or assorted beverage!) to make up for it, also I'll kiss your feet and give you a back massage, maybe.
1.9 KiB
Babylon is a JavaScript parser used in Babel.
- ES6 enabled by default.
- Comment attachment.
- Support for JSX and Flow.
- Support for experimental language proposals.
Credits
Heavily based on acorn and acorn-jsx, thanks to the awesome work of @RReverser and @marijnh.
Significant diversions are expected to occur in the future such as streaming, EBNF definitions, sweet.js integration, interspacial parsing and more.
API
babylon.parse(code, [options])
Options
-
allowImportExportEverywhere: By default,
importandexportdeclarations can only appear at a program's top level. Setting this option totrueallows them anywhere where a statement is allowed. -
allowReturnOutsideFunction: By default, a return statement at the top level raises an error. Set this to
trueto accept such code. -
allowSuperOutsideMethod TODO
-
sourceType: Indicate the mode the code should be parsed in. Can be either
"script"or"module". -
plugins: Array containing the plugins that you want to enable.
Example
require("babylon").parse("code", {
// parse in strict mode and allow module declarations
sourceType: "module",
features: [
// enable experimental async functions
"asyncFunctions",
// enable jsx and flow syntax
"jsx",
"flow"
]
});
Plugins
jsxflowasyncFunctionsclassConstructorCalldoExpressionstrailingFunctionCommasobjectRestSpreaddecoratorsclassPropertiesexportExtensionsexponentiationOperatorasyncGenerators