1// -*- c-basic-offset: 2 -*-
2/*
3 * This file is part of the KDE libraries
4 * Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 */
21
22#ifndef MATH_OBJECT_H_
23#define MATH_OBJECT_H_
24
25#include "function_object.h"
26
27namespace KJS {
28
29 class MathObjectImp : public JSObject {
30 public:
31 MathObjectImp(ExecState *exec,
32 ObjectPrototype *objProto);
33 using KJS::JSObject::getOwnPropertySlot;
34 bool getOwnPropertySlot(ExecState *, const Identifier&, PropertySlot&);
35 JSValue *getValueProperty(ExecState *exec, int token) const;
36 virtual const ClassInfo *classInfo() const { return &info; }
37 static const ClassInfo info;
38 enum { Euler, Ln2, Ln10, Log2E, Log10E, Pi, Sqrt1_2, Sqrt2,
39 Abs, ACos, ASin, ATan, ATan2, Ceil, Cos, Pow,
40 Exp, Floor, Log, Max, Min, Random, Round, Sin, Sqrt, Tan,
41 //ES6 (draft 08.11.2013)
42 ACosH, ASinH, ATanH, Cbrt, CosH, Exmp1,
43 Log1p, Log10, Log2, Sign, SinH, TanH, Trunc,
44 Hypot, Imul, FRound
45 };
46 };
47
48 class MathFuncImp : public InternalFunctionImp {
49 public:
50 MathFuncImp(ExecState *exec, int i, int l, const Identifier&);
51 virtual JSValue *callAsFunction(ExecState *exec, JSObject *thisObj, const List &args);
52 private:
53 int id;
54 };
55
56} // namespace
57
58#endif
59