Serenity Operating System
at master 60 lines 1.8 kB 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/Object.h> 10 11namespace JS { 12 13class MathObject final : public Object { 14 JS_OBJECT(MathObject, Object); 15 16public: 17 virtual ThrowCompletionOr<void> initialize(Realm&) override; 18 virtual ~MathObject() override = default; 19 20private: 21 explicit MathObject(Realm&); 22 23 JS_DECLARE_NATIVE_FUNCTION(abs); 24 JS_DECLARE_NATIVE_FUNCTION(random); 25 JS_DECLARE_NATIVE_FUNCTION(sqrt); 26 JS_DECLARE_NATIVE_FUNCTION(floor); 27 JS_DECLARE_NATIVE_FUNCTION(ceil); 28 JS_DECLARE_NATIVE_FUNCTION(round); 29 JS_DECLARE_NATIVE_FUNCTION(max); 30 JS_DECLARE_NATIVE_FUNCTION(min); 31 JS_DECLARE_NATIVE_FUNCTION(trunc); 32 JS_DECLARE_NATIVE_FUNCTION(sin); 33 JS_DECLARE_NATIVE_FUNCTION(cos); 34 JS_DECLARE_NATIVE_FUNCTION(tan); 35 JS_DECLARE_NATIVE_FUNCTION(pow); 36 JS_DECLARE_NATIVE_FUNCTION(exp); 37 JS_DECLARE_NATIVE_FUNCTION(expm1); 38 JS_DECLARE_NATIVE_FUNCTION(sign); 39 JS_DECLARE_NATIVE_FUNCTION(clz32); 40 JS_DECLARE_NATIVE_FUNCTION(acos); 41 JS_DECLARE_NATIVE_FUNCTION(acosh); 42 JS_DECLARE_NATIVE_FUNCTION(asin); 43 JS_DECLARE_NATIVE_FUNCTION(asinh); 44 JS_DECLARE_NATIVE_FUNCTION(atan); 45 JS_DECLARE_NATIVE_FUNCTION(atanh); 46 JS_DECLARE_NATIVE_FUNCTION(log1p); 47 JS_DECLARE_NATIVE_FUNCTION(cbrt); 48 JS_DECLARE_NATIVE_FUNCTION(atan2); 49 JS_DECLARE_NATIVE_FUNCTION(fround); 50 JS_DECLARE_NATIVE_FUNCTION(hypot); 51 JS_DECLARE_NATIVE_FUNCTION(imul); 52 JS_DECLARE_NATIVE_FUNCTION(log); 53 JS_DECLARE_NATIVE_FUNCTION(log2); 54 JS_DECLARE_NATIVE_FUNCTION(log10); 55 JS_DECLARE_NATIVE_FUNCTION(sinh); 56 JS_DECLARE_NATIVE_FUNCTION(cosh); 57 JS_DECLARE_NATIVE_FUNCTION(tanh); 58}; 59 60}