KJS

object_object.h
1 /*
2  * This file is part of the KDE libraries
3  * Copyright (C) 1999-2000 Harri Porten ([email protected])
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  *
19  */
20 
21 #ifndef _OBJECT_OBJECT_H_
22 #define _OBJECT_OBJECT_H_
23 
24 #include "function.h"
25 
26 namespace KJS
27 {
28 
29 class FunctionPrototype;
30 
31 /**
32  * @internal
33  *
34  * The initial value of Object.prototype (and thus all objects created
35  * with the Object constructor
36  */
37 class KJS_EXPORT ObjectPrototype : public JSObject
38 {
39 public:
40  ObjectPrototype(ExecState *exec, FunctionPrototype *funcProto);
41 
42  // Returns the lexical default object prototype for the given interpreter.
43  // This is just an alias for exec->lexicalInterpreter()->builtinObjectPrototype()
44  // for uniformity with custom prototypes.
45  static JSObject *self(ExecState *exec);
46 };
47 
48 /**
49  * @internal
50  *
51  * Class to implement all methods that are properties of the
52  * Object.prototype object
53  */
54 class ObjectProtoFunc : public InternalFunctionImp
55 {
56 public:
57  ObjectProtoFunc(ExecState *exec, FunctionPrototype *funcProto, int i, int len, const Identifier &);
58 
59  JSValue *callAsFunction(ExecState *, JSObject *, const List &args) override;
60 
61  enum { ToString, ToLocaleString, ValueOf, HasOwnProperty, IsPrototypeOf, PropertyIsEnumerable,
62  DefineGetter, DefineSetter, LookupGetter, LookupSetter
63  };
64 private:
65  int id;
66 };
67 
68 /**
69  * @internal
70  *
71  * The initial value of the global variable's "Object" property
72  */
73 class ObjectObjectImp : public InternalFunctionImp
74 {
75 public:
76 
78  ObjectPrototype *objProto,
79  FunctionPrototype *funcProto);
80 
81  bool implementsConstruct() const override;
82  using KJS::JSObject::construct;
83  JSObject *construct(ExecState *, const List &args) override;
84  JSValue *callAsFunction(ExecState *, JSObject *, const List &args) override;
85 };
86 
87 } // namespace
88 
89 #endif
JSValue is the base type for all primitives (Undefined, Null, Boolean, String, Number) and objects in...
Definition: value.h:58
Represents the current state of script execution.
Definition: ExecState.h:53
Represents an Identifier for a Javascript object.
Definition: identifier.h:36
Native list type.
Definition: list.h:52
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Tue Nov 28 2023 03:51:19 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.