File tree Expand file tree Collapse file tree 2 files changed +103
-4
lines changed Expand file tree Collapse file tree 2 files changed +103
-4
lines changed Original file line number Diff line number Diff line change 868868 }
869869
870870 function generateMethodPrefix ( prop ) {
871- var func = prop . value ;
871+ var func = prop . value , prefix = '' ;
872872 if ( func . async ) {
873- return generateAsyncPrefix ( func , ! prop . computed ) ;
874- } else {
873+ prefix += generateAsyncPrefix ( func , ! prop . computed ) ;
874+ }
875+ if ( func . generator ) {
875876 // avoid space before method name
876- return generateStarSuffix ( func ) ? '*' : '' ;
877+ prefix += generateStarSuffix ( func ) ? '*' : '' ;
877878 }
879+ return prefix ;
878880 }
879881
880882 CodeGenerator . prototype . generatePattern = function ( node , precedence , flags ) {
Original file line number Diff line number Diff line change @@ -6280,7 +6280,104 @@ data = {
62806280 }
62816281 }
62826282
6283+ } ,
6284+
6285+ 'ES2018 async generator method' : {
6286+ 'class C {\n async *readLines(file) {\n while (!file.EOF) {\n yield await file.readLine();\n }\n }\n}' : {
6287+ generateFrom : {
6288+ "type" : "ClassDeclaration" ,
6289+ "id" : {
6290+ "type" : "Identifier" ,
6291+ "name" : "C"
6292+ } ,
6293+ "superClass" : null ,
6294+ "body" : {
6295+ "type" : "ClassBody" ,
6296+ "body" : [
6297+ {
6298+ "type" : "MethodDefinition" ,
6299+ "key" : {
6300+ "type" : "Identifier" ,
6301+ "name" : "readLines"
6302+ } ,
6303+ "value" : {
6304+ "type" : "FunctionExpression" ,
6305+ "id" : null ,
6306+ "params" : [
6307+ {
6308+ "type" : "Identifier" ,
6309+ "name" : "file"
6310+ }
6311+ ] ,
6312+ "body" : {
6313+ "type" : "BlockStatement" ,
6314+ "body" : [
6315+ {
6316+ "type" : "WhileStatement" ,
6317+ "test" : {
6318+ "type" : "UnaryExpression" ,
6319+ "operator" : "!" ,
6320+ "prefix" : true ,
6321+ "argument" : {
6322+ "type" : "MemberExpression" ,
6323+ "object" : {
6324+ "type" : "Identifier" ,
6325+ "name" : "file"
6326+ } ,
6327+ "property" : {
6328+ "type" : "Identifier" ,
6329+ "name" : "EOF"
6330+ } ,
6331+ "computed" : false
6332+ }
6333+ } ,
6334+ "body" : {
6335+ "type" : "BlockStatement" ,
6336+ "body" : [
6337+ {
6338+ "type" : "ExpressionStatement" ,
6339+ "expression" : {
6340+ "type" : "YieldExpression" ,
6341+ "argument" : {
6342+ "type" : "AwaitExpression" ,
6343+ "argument" : {
6344+ "type" : "CallExpression" ,
6345+ "callee" : {
6346+ "type" : "MemberExpression" ,
6347+ "object" : {
6348+ "type" : "Identifier" ,
6349+ "name" : "file"
6350+ } ,
6351+ "property" : {
6352+ "type" : "Identifier" ,
6353+ "name" : "readLine"
6354+ } ,
6355+ "computed" : false
6356+ } ,
6357+ "arguments" : [ ]
6358+ }
6359+ } ,
6360+ "delegate" : false
6361+ }
6362+ }
6363+ ]
6364+ }
6365+ }
6366+ ]
6367+ } ,
6368+ "generator" : true ,
6369+ "async" : true
6370+ } ,
6371+ "kind" : "method" ,
6372+ "computed" : false ,
6373+ "static" : false
6374+ }
6375+ ]
6376+ }
6377+ }
6378+ }
62836379 }
6380+
62846381} ;
62856382
62866383function updateDeeply ( target , override ) {
You can’t perform that action at this time.
0 commit comments