mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-03 21:24:30 +01:00 
			
		
		
		
	This PR adds some more tests for Array.fromAsync proposal. It includes most of the tests defined in https://github.com/es-shims/array-from-async/blob/main/test.mjs See:#3725
		
			
				
	
	
		
			39 lines
		
	
	
		
			958 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			958 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright (C) 2023 Igalia, S.L. All rights reserved.
 | 
						|
// This code is governed by the BSD license found in the LICENSE file.
 | 
						|
 | 
						|
/*---
 | 
						|
esid: sec-array.fromasync
 | 
						|
description: Async-iterable input does not await input values.
 | 
						|
includes: [compareArray.js, asyncHelpers.js]
 | 
						|
flags: [async]
 | 
						|
features: [Array.fromAsync]
 | 
						|
---*/
 | 
						|
 | 
						|
asyncTest(async function () {
 | 
						|
  const prom = Promise.resolve({});
 | 
						|
  const expected = [ prom ];
 | 
						|
 | 
						|
  function createInput () {
 | 
						|
    return {
 | 
						|
      // The following async iterator will yield one value
 | 
						|
      // (the promise named “prom”).
 | 
						|
      [Symbol.asyncIterator]() {
 | 
						|
        let i = 0;
 | 
						|
        return {
 | 
						|
          async next() {
 | 
						|
            if (i > 0) {
 | 
						|
              return { done: true };
 | 
						|
            }
 | 
						|
            i++;
 | 
						|
            return { value: prom, done: false }
 | 
						|
          },
 | 
						|
        };
 | 
						|
      },
 | 
						|
    };
 | 
						|
  }
 | 
						|
 | 
						|
  const input = createInput();
 | 
						|
  const output = await Array.fromAsync(input);
 | 
						|
  assert.compareArray(output, expected);
 | 
						|
});
 |