mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-03 06:40:05 +00:00
LibJS: Return a GC::Ref from Temporal::get_options_object
The Object returned here is always non-null.
This commit is contained in:
parent
c8d2404230
commit
e4e05837e1
Notes:
github-actions[bot]
2024-11-21 00:06:36 +00:00
Author: https://github.com/trflynn89
Commit: e4e05837e1
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2431
Reviewed-by: https://github.com/alimpfard
Reviewed-by: https://github.com/shannonbooth ✅
7 changed files with 12 additions and 11 deletions
|
@ -13,20 +13,20 @@
|
|||
namespace JS::Temporal {
|
||||
|
||||
// 14.4.1.1 GetOptionsObject ( options ), https://tc39.es/proposal-temporal/#sec-getoptionsobject
|
||||
ThrowCompletionOr<Object*> get_options_object(VM& vm, Value options)
|
||||
ThrowCompletionOr<GC::Ref<Object>> get_options_object(VM& vm, Value options)
|
||||
{
|
||||
auto& realm = *vm.current_realm();
|
||||
|
||||
// 1. If options is undefined, then
|
||||
if (options.is_undefined()) {
|
||||
// a. Return OrdinaryObjectCreate(null).
|
||||
return Object::create(realm, nullptr).ptr();
|
||||
return Object::create(realm, nullptr);
|
||||
}
|
||||
|
||||
// 2. If options is an Object, then
|
||||
if (options.is_object()) {
|
||||
// a. Return options.
|
||||
return &options.as_object();
|
||||
return options.as_object();
|
||||
}
|
||||
|
||||
// 3. Throw a TypeError exception.
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <AK/Variant.h>
|
||||
#include <LibGC/Ptr.h>
|
||||
#include <LibJS/Forward.h>
|
||||
#include <LibJS/Runtime/Completion.h>
|
||||
#include <LibJS/Runtime/VM.h>
|
||||
|
@ -39,7 +40,7 @@ enum class OptionType {
|
|||
struct DefaultRequired { };
|
||||
using OptionDefault = Variant<DefaultRequired, Empty, bool, StringView, double>;
|
||||
|
||||
ThrowCompletionOr<Object*> get_options_object(VM&, Value options);
|
||||
ThrowCompletionOr<GC::Ref<Object>> get_options_object(VM&, Value options);
|
||||
ThrowCompletionOr<Value> get_option(VM&, Object const& options, PropertyKey const& property, OptionType type, ReadonlySpan<StringView> values, OptionDefault const&);
|
||||
|
||||
template<size_t Size>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue