reference.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
#ifndef _KJS_REFERENCE_H_
00024
#define _KJS_REFERENCE_H_
00025
00026
#include "identifier.h"
00027
#include "value.h"
00028
00029
namespace KJS {
00030
00031
00032
class Reference :
public Value {
00033
00034
00035
friend class ReferenceList;
00036
friend class ReferenceListIterator;
00037
public:
00038 Reference(
const Object& b,
const Identifier& p);
00039 Reference(
const Object& b,
unsigned p);
00040 Reference(ObjectImp *b,
const Identifier& p);
00041 Reference(ObjectImp *b,
unsigned p);
00042 Reference(
const Null& b,
const Identifier& p);
00043 Reference(
const Null& b,
unsigned p);
00044
static Reference makeValueReference(
const Value& v);
00045
00052
Value getBase(
ExecState *exec)
const;
00053
00058 Identifier getPropertyName(
ExecState *exec)
const;
00059
00064
Value getValue(
ExecState *exec)
const;
00065
00070
void putValue(
ExecState *exec,
const Value &w);
00071
bool deleteValue(
ExecState *exec);
00072
00073
bool isMutable();
00074
00075
private:
00076 Reference();
00077
00078
Value base;
00079
unsigned propertyNameAsNumber;
00080
bool baseIsValue;
00081
bool propertyNameIsNumber;
00082
mutable Identifier prop;
00083 };
00084 }
00085
00086
#endif
This file is part of the documentation for kjs Library Version 3.2.3.