mirror of
				https://github.com/tc39/test262.git
				synced 2025-10-31 03:34:08 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Copyright (C) 2019 Leo Balter. All rights reserved.
 | |
| // This code is governed by the BSD license found in the LICENSE file.
 | |
| 
 | |
| /*---
 | |
| esid: sec-asyncblockstart
 | |
| description: >
 | |
|   Evaluation of await ticks order
 | |
| info: |
 | |
|   AsyncBlockStart ( promiseCapability, asyncBody, asyncContext )
 | |
| 
 | |
|   1. Assert: promiseCapability is a PromiseCapability Record.
 | |
|   2. Let runningContext be the running execution context.
 | |
|   3. Set the code evaluation state of asyncContext such that when evaluation is resumed for that execution context the following steps will be performed:
 | |
|     a. Let result be the result of evaluating asyncBody.
 | |
|     ...
 | |
| includes: [compareArray.js]
 | |
| flags: [module, async]
 | |
| features: [top-level-await]
 | |
| ---*/
 | |
| 
 | |
| var expected = [
 | |
|   'await 1',
 | |
|   'tick 1',
 | |
|   'await 2',
 | |
|   'tick 2',
 | |
|   'await 3',
 | |
|   'tick 3',
 | |
|   'await 4',
 | |
|   'tick 4',
 | |
| ];
 | |
| 
 | |
| var actual = [];
 | |
| 
 | |
| Promise.resolve(0)
 | |
|   .then(() => actual.push('tick 1'))
 | |
|   .then(() => actual.push('tick 2'))
 | |
|   .then(() => actual.push('tick 3'))
 | |
|   .then(() => actual.push('tick 4'))
 | |
|   .then(() => {
 | |
|     assert.compareArray(actual, expected, 'Ticks for top level await and promises');
 | |
| }).then($DONE, $DONE);
 | |
| 
 | |
| await actual.push('await 1');
 | |
| await actual.push('await 2');
 | |
| await actual.push('await 3');
 | |
| await actual.push('await 4');
 |