mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-11 01:06:01 +03:00
LibJS: Set the function names for the resolve, reject, and executor
These should all have a name with an empty string. Not only does test262 verify this, but it also verifies that (for the executor) the name property is defined after the length property.
This commit is contained in:
parent
5b303721e0
commit
98d8a858cd
Notes:
sideshowbarker
2024-07-18 05:22:12 +09:00
Author: https://github.com/trflynn89 Commit: https://github.com/SerenityOS/serenity/commit/98d8a858cdd Pull-request: https://github.com/SerenityOS/serenity/pull/9562 Reviewed-by: https://github.com/linusg ✅
@ -94,7 +94,7 @@ Promise::ResolvingFunctions Promise::create_resolving_functions()
|
||||
vm.enqueue_promise_job(*job);
|
||||
return js_undefined();
|
||||
});
|
||||
resolve_function->define_direct_property(vm.names.name, js_string(vm, vm.names.resolve.as_string()), Attribute::Configurable);
|
||||
resolve_function->define_direct_property(vm.names.name, js_string(vm, String::empty()), Attribute::Configurable);
|
||||
|
||||
// 27.2.1.3.1 Promise Reject Functions, https://tc39.es/ecma262/#sec-promise-reject-functions
|
||||
auto* reject_function = PromiseResolvingFunction::create(global_object(), *this, *already_resolved, [](auto& vm, auto&, auto& promise, auto& already_resolved) {
|
||||
@ -105,7 +105,7 @@ Promise::ResolvingFunctions Promise::create_resolving_functions()
|
||||
auto reason = vm.argument(0);
|
||||
return promise.reject(reason);
|
||||
});
|
||||
reject_function->define_direct_property(vm.names.name, js_string(vm, vm.names.reject.as_string()), Attribute::Configurable);
|
||||
reject_function->define_direct_property(vm.names.name, js_string(vm, String::empty()), Attribute::Configurable);
|
||||
|
||||
return { *resolve_function, *reject_function };
|
||||
}
|
||||
|
@ -43,6 +43,7 @@ PromiseCapability new_promise_capability(GlobalObject& global_object, Value cons
|
||||
return js_undefined();
|
||||
});
|
||||
executor->define_direct_property(vm.names.length, Value(2), Attribute::Configurable);
|
||||
executor->define_direct_property(vm.names.name, js_string(vm, String::empty()), Attribute::Configurable);
|
||||
|
||||
MarkedValueList arguments(vm.heap());
|
||||
arguments.append(executor);
|
||||
|
Loading…
Reference in New Issue
Block a user