mirror of
				https://github.com/tc39/test262.git
				synced 2025-10-30 03:03:51 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Reviewed
 | |
| function shouldBe(expected, actual, msg) {
 | |
|     if (msg === void 0)
 | |
|         msg = "";
 | |
|     else
 | |
|         msg = " for " + msg;
 | |
|     if (actual !== expected)
 | |
|         throw new Error("bad value" + msg + ": " + actual + ". Expected " + expected);
 | |
| }
 | |
| 
 | |
| function shouldBeAsync(expected, run, msg) {
 | |
|     let actual;
 | |
|     var hadError = false;
 | |
|     run().then(function(value) { actual = value; },
 | |
|                function(error) { hadError = true; actual = error; });
 | |
|     drainMicrotasks();
 | |
| 
 | |
|     if (hadError)
 | |
|         throw actual;
 | |
| 
 | |
|     shouldBe(expected, actual, msg);
 | |
| }
 | |
| 
 | |
| function C1() {
 | |
|     return async () => await new.target;
 | |
| }
 | |
| 
 | |
| function C2() {
 | |
|     return async () => { return await new.target };
 | |
| }
 | |
| 
 | |
| function C2WithAwait() {
 | |
|     return async () => { 
 | |
|         var self = new.target; await new.target;
 | |
|         return new.target;
 | |
|     }
 | |
| }
 | |
| 
 | |
| shouldBeAsync(C1, new C1());
 | |
| shouldBeAsync(undefined, C1());
 | |
| shouldBeAsync(C2, new C2());
 | |
| shouldBeAsync(undefined, C2());
 | |
| shouldBeAsync(C2WithAwait, new C2WithAwait());
 | |
| shouldBeAsync(undefined, C2WithAwait());
 |