mirror of
				https://github.com/tc39/test262.git
				synced 2025-10-31 11:44:31 +01:00 
			
		
		
		
	The values defined by the referenced files are not used by these tests. This makes their inclusion superfluous, which needlessly increases the time to execute the tests and may confuse some readers.
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // This file was procedurally generated from the following sources:
 | |
| // - src/async-generators/yield-spread-obj.case
 | |
| // - src/async-generators/default/async-class-decl-static-method.template
 | |
| /*---
 | |
| description: Use yield value in a object spread position (Static async generator method as a ClassDeclaration element)
 | |
| esid: prod-AsyncGeneratorMethod
 | |
| features: [object-spread, async-iteration]
 | |
| flags: [generated, async]
 | |
| info: |
 | |
|     ClassElement :
 | |
|       static MethodDefinition
 | |
| 
 | |
|     MethodDefinition :
 | |
|       AsyncGeneratorMethod
 | |
| 
 | |
|     Async Generator Function Definitions
 | |
| 
 | |
|     AsyncGeneratorMethod :
 | |
|       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 | |
| 
 | |
| 
 | |
|     Spread Properties
 | |
| 
 | |
|     PropertyDefinition[Yield]:
 | |
|       (...)
 | |
|       ...AssignmentExpression[In, ?Yield]
 | |
| 
 | |
| ---*/
 | |
| 
 | |
| 
 | |
| var callCount = 0;
 | |
| 
 | |
| class C { static async *gen() {
 | |
|     callCount += 1;
 | |
|     yield {
 | |
|         ...yield,
 | |
|         y: 1,
 | |
|         ...yield yield,
 | |
|       };
 | |
| }}
 | |
| 
 | |
| var gen = C.gen;
 | |
| 
 | |
| var iter = gen();
 | |
| 
 | |
| iter.next();
 | |
| iter.next({ x: 42 });
 | |
| iter.next({ x: 'lol' });
 | |
| var item = iter.next({ y: 39 });
 | |
| 
 | |
| item.then(({ done, value }) => {
 | |
|   assert.sameValue(value.x, 42);
 | |
|   assert.sameValue(value.y, 39);
 | |
|   assert.sameValue(Object.keys(value).length, 2);
 | |
|   assert.sameValue(done, false);
 | |
| }).then($DONE, $DONE);
 | |
| 
 | |
| assert.sameValue(callCount, 1);
 |