File indexing completed on 2024-05-12 15:43:24

0001 /*
0002  *  This file is part of the KDE libraries
0003  *  Copyright (C) 2012 Bernd Buschinski (b.buschinski@googlemail.com)
0004  *
0005  *  This library is free software; you can redistribute it and/or
0006  *  modify it under the terms of the GNU Library General Public
0007  *  License as published by the Free Software Foundation; either
0008  *  version 2 of the License, or (at your option) any later version.
0009  *
0010  *  This library is distributed in the hope that it will be useful,
0011  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
0012  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0013  *  Library General Public License for more details.
0014  *
0015  *  You should have received a copy of the GNU Library General Public License
0016  *  along with this library; see the file COPYING.LIB.  If not, write to
0017  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0018  *  Boston, MA 02110-1301, USA.
0019  *
0020  */
0021 
0022 #ifndef JSON_OBJECT_H_
0023 #define JSON_OBJECT_H_
0024 
0025 #include "function_object.h"
0026 
0027 namespace KJS
0028 {
0029 
0030 class JSONObjectImp : public JSObject
0031 {
0032 public:
0033     JSONObjectImp(ExecState *exec,
0034                   ObjectPrototype *objProto);
0035 
0036     using KJS::JSObject::getOwnPropertySlot;
0037     bool getOwnPropertySlot(ExecState *, const Identifier &, PropertySlot &) override;
0038 
0039     const ClassInfo *classInfo() const override
0040     {
0041         return &info;
0042     }
0043     static const ClassInfo info;
0044     enum { Parse, Stringify };
0045 };
0046 
0047 class JSONFuncImp : public InternalFunctionImp
0048 {
0049 public:
0050     JSONFuncImp(ExecState *exec, int i, int l, const Identifier &);
0051     JSValue *callAsFunction(ExecState *, JSObject *, const List &) override;
0052 private:
0053     int id;
0054 };
0055 
0056 } // namespace
0057 
0058 #endif // JSON_OBJECT_H