mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-20 23:44:35 +00:00
This is a normative change in the ECMA-402 spec. See: https://github.com/tc39/ecma402/commit/02bd03a This is observable just due to reading the properties one less time. It would have been possible for e.g. the property values to change between those invocations.
46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
/*
|
|
* Copyright (c) 2021-2022, Tim Flynn <trflynn89@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LibJS/Runtime/NativeFunction.h>
|
|
|
|
namespace JS::Intl {
|
|
|
|
class DateTimeFormatConstructor final : public NativeFunction {
|
|
JS_OBJECT(DateTimeFormatConstructor, NativeFunction);
|
|
|
|
public:
|
|
virtual ThrowCompletionOr<void> initialize(Realm&) override;
|
|
virtual ~DateTimeFormatConstructor() override = default;
|
|
|
|
virtual ThrowCompletionOr<Value> call() override;
|
|
virtual ThrowCompletionOr<NonnullGCPtr<Object>> construct(FunctionObject& new_target) override;
|
|
|
|
private:
|
|
explicit DateTimeFormatConstructor(Realm&);
|
|
|
|
virtual bool has_constructor() const override { return true; }
|
|
|
|
JS_DECLARE_NATIVE_FUNCTION(supported_locales_of);
|
|
};
|
|
|
|
enum class OptionRequired {
|
|
Any,
|
|
Date,
|
|
Time,
|
|
};
|
|
|
|
enum class OptionDefaults {
|
|
All,
|
|
Date,
|
|
Time,
|
|
};
|
|
|
|
ThrowCompletionOr<NonnullGCPtr<DateTimeFormat>> create_date_time_format(VM&, FunctionObject& new_target, Value locales_value, Value options_value, OptionRequired, OptionDefaults);
|
|
|
|
}
|