mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 05:12:44 +00:00 
			
		
		
		
	 681787de76
			
		
	
	
		681787de76
		
	
	
	
	
		
			
			This commit adds support for the most bare bones version of async functions, support for async generator functions, async arrow functions and await expressions are TODO.
		
			
				
	
	
		
			29 lines
		
	
	
	
		
			737 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			737 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2021, Idan Horowitz <idan.horowitz@serenityos.org>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <LibJS/AST.h>
 | |
| #include <LibJS/Runtime/NativeFunction.h>
 | |
| 
 | |
| namespace JS {
 | |
| 
 | |
| class AsyncFunctionConstructor final : public NativeFunction {
 | |
|     JS_OBJECT(AsyncFunctionConstructor, NativeFunction);
 | |
| 
 | |
| public:
 | |
|     explicit AsyncFunctionConstructor(GlobalObject&);
 | |
|     virtual void initialize(GlobalObject&) override;
 | |
|     virtual ~AsyncFunctionConstructor() override = default;
 | |
| 
 | |
|     virtual ThrowCompletionOr<Value> call() override;
 | |
|     virtual ThrowCompletionOr<Object*> construct(FunctionObject& new_target) override;
 | |
| 
 | |
| private:
 | |
|     virtual bool has_constructor() const override { return true; }
 | |
| };
 | |
| 
 | |
| }
 |