From 09e263dd9c6544037ab44cf0523d23d6d2999b1d Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Thu, 5 May 2022 09:05:52 +0200 Subject: [PATCH] LibJS: Fix "prototype" property of generator functions, again The change in 3ec0183 wasn't actually correct, the spec tells us to set the "prototype" property of the function (created with a prototype of %GeneratorFunction.prototype% itself) to a newly created object: OrdinaryObjectCreate(%GeneratorFunction.prototype.prototype%) --- Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp b/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp index 3f432ee052..0ba0eae4c9 100644 --- a/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp +++ b/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp @@ -120,7 +120,7 @@ void ECMAScriptFunctionObject::initialize(GlobalObject& global_object) break; case FunctionKind::Generator: // prototype is "g1.prototype" in figure-2 (https://tc39.es/ecma262/img/figure-2.png) - prototype = global_object.generator_prototype(); + prototype = Object::create(global_object, global_object.generator_function_prototype_prototype()); break; case FunctionKind::Async: break;