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 868
868
}
869
869
870
870
function generateMethodPrefix ( prop ) {
871
- var func = prop . value ;
871
+ var func = prop . value , prefix = '' ;
872
872
if ( func . async ) {
873
- return generateAsyncPrefix ( func , ! prop . computed ) ;
874
- } else {
873
+ prefix += generateAsyncPrefix ( func , ! prop . computed ) ;
874
+ }
875
+ if ( func . generator ) {
875
876
// avoid space before method name
876
- return generateStarSuffix ( func ) ? '*' : '' ;
877
+ prefix += generateStarSuffix ( func ) ? '*' : '' ;
877
878
}
879
+ return prefix ;
878
880
}
879
881
880
882
CodeGenerator . prototype . generatePattern = function ( node , precedence , flags ) {
Original file line number Diff line number Diff line change @@ -6280,7 +6280,104 @@ data = {
6280
6280
}
6281
6281
}
6282
6282
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
+ }
6283
6379
}
6380
+
6284
6381
} ;
6285
6382
6286
6383
function updateDeeply ( target , override ) {
You can’t perform that action at this time.
0 commit comments