Serenity Operating System
at master 35 lines 866 B view raw
1/* 2 * Copyright (c) 2020, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <LibJS/Runtime/NativeFunction.h> 10 11namespace JS { 12 13class ArrayConstructor final : public NativeFunction { 14 JS_OBJECT(ArrayConstructor, NativeFunction); 15 16public: 17 virtual ThrowCompletionOr<void> initialize(Realm&) override; 18 virtual ~ArrayConstructor() override = default; 19 20 virtual ThrowCompletionOr<Value> call() override; 21 virtual ThrowCompletionOr<NonnullGCPtr<Object>> construct(FunctionObject& new_target) override; 22 23private: 24 explicit ArrayConstructor(Realm&); 25 26 virtual bool has_constructor() const override { return true; } 27 28 JS_DECLARE_NATIVE_FUNCTION(from); 29 JS_DECLARE_NATIVE_FUNCTION(is_array); 30 JS_DECLARE_NATIVE_FUNCTION(of); 31 32 JS_DECLARE_NATIVE_FUNCTION(symbol_species_getter); 33}; 34 35}