MathObject.h revision e78cbe89e6f337f2f1fe40315be88f742b547151
18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  Copyright (C) 2008 Apple Inc. All rights reserved.
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  This library is free software; you can redistribute it and/or
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  modify it under the terms of the GNU Lesser General Public
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  License as published by the Free Software Foundation; either
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  version 2 of the License, or (at your option) any later version.
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  This library is distributed in the hope that it will be useful,
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  but WITHOUT ANY WARRANTY; without even the implied warranty of
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  Lesser General Public License for more details.
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  You should have received a copy of the GNU Lesser General Public
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  License along with this library; if not, write to the Free Software
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef MathObject_h
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define MathObject_h
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
24e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block#include "JSObjectWithGlobalObject.h"
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace JSC {
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
28e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block    class MathObject : public JSObjectWithGlobalObject {
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    public:
30e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block        MathObject(ExecState*, JSGlobalObject*, NonNullPassRefPtr<Structure>);
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
33231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual const ClassInfo* classInfo() const { return &info; }
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        static const ClassInfo info;
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
385f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian        static PassRefPtr<Structure> createStructure(JSValue prototype)
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        {
40d0825bca7fe65beaee391d30da42e937db621564Steve Block            return Structure::create(prototype, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount);
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        }
42cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block
43cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block    protected:
44cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block        static const unsigned StructureFlags = OverridesGetOwnPropertySlot | JSObject::StructureFlags;
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    };
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace JSC
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // MathObject_h
50