Update regenerator to v0.8.34, and remove recast and ast-types.

This version of Regenerator pegs recast to v0.10.18, which pegs ast-types
to v0.8.2, which contains special support for all Babel AST types:
https://github.com/benjamn/ast-types/blob/master/def/babel.js

This version of Regenerator also exports the ast-types module object that
it uses (as regenerator.types), so that consumers like Babel can refer to
the exact same copy of ast-types when necessary, rather than requiring
ast-types themselves. Why that was risky: #1958.
This commit is contained in:
Ben Newman 2015-07-09 13:12:58 -04:00
parent eb6b38d3a8
commit eac9e9b372
3 changed files with 7 additions and 80 deletions

View File

@ -28,7 +28,6 @@
}, },
"dependencies": { "dependencies": {
"acorn-jsx": "^1.0.0", "acorn-jsx": "^1.0.0",
"ast-types": "~0.7.0",
"babel-plugin-constant-folding": "^1.0.1", "babel-plugin-constant-folding": "^1.0.1",
"babel-plugin-dead-code-elimination": "^1.0.2", "babel-plugin-dead-code-elimination": "^1.0.2",
"babel-plugin-eval": "^1.0.1", "babel-plugin-eval": "^1.0.1",
@ -63,8 +62,7 @@
"path-exists": "^1.0.0", "path-exists": "^1.0.0",
"path-is-absolute": "^1.0.0", "path-is-absolute": "^1.0.0",
"private": "^0.1.6", "private": "^0.1.6",
"recast": "0.10.16", "regenerator": "0.8.34",
"regenerator": "0.8.32",
"regexpu": "^1.1.2", "regexpu": "^1.1.2",
"repeating": "^1.1.2", "repeating": "^1.1.2",
"resolve": "^1.1.6", "resolve": "^1.1.6",

View File

@ -1,83 +1,7 @@
import estraverse from "estraverse"; import estraverse from "estraverse";
import extend from "lodash/object/extend"; import extend from "lodash/object/extend";
import types from "ast-types";
import * as t from "./types"; import * as t from "./types";
// estraverse // estraverse
extend(estraverse.VisitorKeys, t.VISITOR_KEYS); extend(estraverse.VisitorKeys, t.VISITOR_KEYS);
// regenerator/ast-types
var def = types.Type.def;
var or = types.Type.or;
//def("File")
// .bases("Node")
// .build("program")
// .field("program", def("Program"));
def("Noop");
def("AssignmentPattern")
.bases("Pattern")
.build("left", "right")
.field("left", def("Pattern"))
.field("right", def("Expression"));
def("RestElement")
.bases("Pattern")
.build("argument")
.field("argument", def("expression"));
def("DoExpression")
.bases("Expression")
.build("body")
.field("body", [def("Statement")]);
def("Super")
.bases("Expression");
def("ExportDefaultDeclaration")
.bases("Declaration")
.build("declaration")
.field("declaration", or(
def("Declaration"),
def("Expression"),
null
));
def("ExportNamedDeclaration")
.bases("Declaration")
.build("declaration")
.field("declaration", or(
def("Declaration"),
def("Expression"),
null
))
.field("specifiers", [or(
def("ExportSpecifier")
)])
.field("source", or(def("ModuleSpecifier"), null));
def("ExportNamespaceSpecifier")
.bases("Specifier")
.field("exported", def("Identifier"));
def("ExportDefaultSpecifier")
.bases("Specifier")
.field("exported", def("Identifier"));
def("ExportAllDeclaration")
.bases("Declaration")
.build("exported", "source")
.field("exported", def("Identifier"))
.field("source", def("Literal"));
def("BindExpression")
.bases("Expression")
.build("object", "callee")
.field("object", or(def("Expression"), null))
.field("callee", def("Expression"));
types.finalize();

View File

@ -1,6 +1,11 @@
import regenerator from "regenerator"; import regenerator from "regenerator";
import * as t from "../../../types"; import * as t from "../../../types";
import { NodePath } from "ast-types";
// It's important to use the exact same NodePath constructor that
// Regenerator uses, rather than require("ast-types").NodePath, because
// the version of ast-types that Babel knows about might be different from
// the version that Regenerator depends on. See for example #1958.
const NodePath = regenerator.types.NodePath;
export var metadata = { export var metadata = {
group: "builtin-advanced" group: "builtin-advanced"