You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1004 B
JavaScript
39 lines
1004 B
JavaScript
7 years ago
|
require("./core");
|
||
|
var types = require("../lib/types");
|
||
|
var def = types.Type.def;
|
||
|
var or = types.Type.or;
|
||
|
var builtin = types.builtInTypes;
|
||
|
var isBoolean = builtin.boolean;
|
||
|
var defaults = require("../lib/shared").defaults;
|
||
|
|
||
|
def("Function")
|
||
|
.field("async", isBoolean, defaults["false"]);
|
||
|
|
||
|
def("SpreadProperty")
|
||
|
.bases("Node")
|
||
|
.build("argument")
|
||
|
.field("argument", def("Expression"));
|
||
|
|
||
|
def("ObjectExpression")
|
||
|
.field("properties", [or(def("Property"), def("SpreadProperty"))]);
|
||
|
|
||
|
def("SpreadPropertyPattern")
|
||
|
.bases("Pattern")
|
||
|
.build("argument")
|
||
|
.field("argument", def("Pattern"));
|
||
|
|
||
|
def("ObjectPattern")
|
||
|
.field("properties", [or(
|
||
|
def("PropertyPattern"),
|
||
|
def("SpreadPropertyPattern"),
|
||
|
// used by esprima
|
||
|
def("Property"),
|
||
|
def("SpreadProperty")
|
||
|
)]);
|
||
|
|
||
|
def("AwaitExpression")
|
||
|
.bases("Expression")
|
||
|
.build("argument", "all")
|
||
|
.field("argument", or(def("Expression"), null))
|
||
|
.field("all", isBoolean, defaults["false"]);
|