diff options
author | Linus Groh <mail@linusgroh.de> | 2022-05-05 09:06:14 +0200 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2022-05-05 22:40:57 +0200 |
commit | 53619176f5d2017e498e5cbecfdc101bf3ca0123 (patch) | |
tree | 24d312c931e291de35d174b4eca658ece723b1b4 | |
parent | 09e263dd9c6544037ab44cf0523d23d6d2999b1d (diff) | |
download | serenity-53619176f5d2017e498e5cbecfdc101bf3ca0123.zip |
LibJS: Set "prototype" property of async generator functions
-rw-r--r-- | Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp | 3 | ||||
-rw-r--r-- | Userland/Libraries/LibJS/Runtime/FunctionConstructor.cpp | 5 |
2 files changed, 3 insertions, 5 deletions
diff --git a/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp b/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp index 0ba0eae4c9..cd500eb251 100644 --- a/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp +++ b/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp @@ -20,7 +20,6 @@ #include <LibJS/Runtime/ExecutionContext.h> #include <LibJS/Runtime/FunctionEnvironment.h> #include <LibJS/Runtime/GeneratorObject.h> -#include <LibJS/Runtime/GeneratorPrototype.h> #include <LibJS/Runtime/GlobalObject.h> #include <LibJS/Runtime/NativeFunction.h> #include <LibJS/Runtime/PromiseConstructor.h> @@ -125,7 +124,7 @@ void ECMAScriptFunctionObject::initialize(GlobalObject& global_object) case FunctionKind::Async: break; case FunctionKind::AsyncGenerator: - // FIXME: Add the AsyncGeneratorObject and set it as prototype. + prototype = Object::create(global_object, global_object.async_generator_function_prototype_prototype()); break; } // 27.7.4 AsyncFunction Instances, https://tc39.es/ecma262/#sec-async-function-instances diff --git a/Userland/Libraries/LibJS/Runtime/FunctionConstructor.cpp b/Userland/Libraries/LibJS/Runtime/FunctionConstructor.cpp index 6221af7650..c9a90f2a3f 100644 --- a/Userland/Libraries/LibJS/Runtime/FunctionConstructor.cpp +++ b/Userland/Libraries/LibJS/Runtime/FunctionConstructor.cpp @@ -250,12 +250,11 @@ ThrowCompletionOr<ECMAScriptFunctionObject*> FunctionConstructor::create_dynamic } // 34. Else if kind is asyncGenerator, then else if (kind == FunctionKind::AsyncGenerator) { - // FIXME: We only have %AsyncGeneratorFunction.prototype%, not %AsyncGeneratorFunction.prototype.prototype%! // a. Let prototype be OrdinaryObjectCreate(%AsyncGeneratorFunction.prototype.prototype%). - // prototype = Object::create(global_object, global_object.async_generator_prototype()); + prototype = Object::create(global_object, global_object.async_generator_function_prototype_prototype()); // b. Perform ! DefinePropertyOrThrow(F, "prototype", PropertyDescriptor { [[Value]]: prototype, [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: false }). - // function->define_direct_property(vm.names.prototype, prototype, Attribute::Writable); + function->define_direct_property(vm.names.prototype, prototype, Attribute::Writable); } // 35. Else if kind is normal, perform MakeConstructor(F). else if (kind == FunctionKind::Normal) { |