first cut of async/await (#2098)
- async arrow functions not yet supported fixes #1789
This commit is contained in:
26
lib/ast.js
26
lib/ast.js
@@ -355,13 +355,14 @@ var AST_Expansion = DEFNODE("Expansion", "expression", {
|
||||
}
|
||||
});
|
||||
|
||||
var AST_Lambda = DEFNODE("Lambda", "name argnames uses_arguments is_generator", {
|
||||
var AST_Lambda = DEFNODE("Lambda", "name argnames uses_arguments is_generator async", {
|
||||
$documentation: "Base class for functions",
|
||||
$propdoc: {
|
||||
is_generator: "[boolean] is generatorFn or not",
|
||||
name: "[AST_SymbolDeclaration?] the name of this function",
|
||||
argnames: "[AST_SymbolFunarg|AST_Destructuring|AST_Expansion|AST_DefaultAssign*] array of function arguments, destructurings, or expanding arguments",
|
||||
uses_arguments: "[boolean/S] tells whether this function accesses the arguments array"
|
||||
uses_arguments: "[boolean/S] tells whether this function accesses the arguments array",
|
||||
is_generator: "[boolean] is this a generator method",
|
||||
async: "[boolean] is this method async",
|
||||
},
|
||||
args_as_names: function () {
|
||||
var out = [];
|
||||
@@ -893,11 +894,12 @@ var AST_ObjectGetter = DEFNODE("ObjectGetter", "quote static", {
|
||||
$documentation: "An object getter property",
|
||||
}, AST_ObjectProperty);
|
||||
|
||||
var AST_ConciseMethod = DEFNODE("ConciseMethod", "quote static is_generator", {
|
||||
var AST_ConciseMethod = DEFNODE("ConciseMethod", "quote static is_generator async", {
|
||||
$propdoc: {
|
||||
quote: "[string|undefined] the original quote character, if any",
|
||||
static: "[boolean] whether this method is static (classes only)",
|
||||
is_generator: "[boolean] is generatorFn or not",
|
||||
static: "[boolean] is this method static (classes only)",
|
||||
is_generator: "[boolean] is this a generator method",
|
||||
async: "[boolean] is this method async",
|
||||
},
|
||||
$documentation: "An ES6 concise method inside an object or class"
|
||||
}, AST_ObjectProperty);
|
||||
@@ -1101,7 +1103,17 @@ var AST_True = DEFNODE("True", null, {
|
||||
value: true
|
||||
}, AST_Boolean);
|
||||
|
||||
/* -----[ Yield ]----- */
|
||||
var AST_Await = DEFNODE("Await", "expression", {
|
||||
$documentation: "An `await` statement",
|
||||
$propdoc: {
|
||||
expression: "[AST_Node] the mandatory expression being awaited",
|
||||
},
|
||||
_walk: function(visitor) {
|
||||
return visitor._visit(this, function(){
|
||||
this.expression._walk(visitor);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
var AST_Yield = DEFNODE("Yield", "expression is_star", {
|
||||
$documentation: "A `yield` statement",
|
||||
|
||||
Reference in New Issue
Block a user