]>
git.saurik.com Git - apple/javascriptcore.git/blob - runtime/StringObject.h
540c5761e1b4a37a12fdcf5378af2c239052fbcc
   2  *  Copyright (C) 1999-2000 Harri Porten (porten@kde.org) 
   3  *  Copyright (C) 2007, 2008 Apple Inc. All rights reserved. 
   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. 
  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. 
  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 
  21 #ifndef StringObject_h 
  22 #define StringObject_h 
  24 #include "JSWrapperObject.h" 
  29     class StringObject 
: public JSWrapperObject 
{ 
  31         StringObject(ExecState
*, PassRefPtr
<Structure
>); 
  32         StringObject(ExecState
*, PassRefPtr
<Structure
>, const UString
&); 
  34         static StringObject
* create(ExecState
*, JSString
*); 
  36         virtual bool getOwnPropertySlot(ExecState
*, const Identifier
& propertyName
, PropertySlot
&); 
  37         virtual bool getOwnPropertySlot(ExecState
*, unsigned propertyName
, PropertySlot
&); 
  39         virtual void put(ExecState
* exec
, const Identifier
& propertyName
, JSValuePtr
, PutPropertySlot
&); 
  40         virtual bool deleteProperty(ExecState
*, const Identifier
& propertyName
); 
  41         virtual void getPropertyNames(ExecState
*, PropertyNameArray
&); 
  43         virtual const ClassInfo
* classInfo() const { return &info
; } 
  44         static const ClassInfo info
; 
  46         JSString
* internalValue() const { return asString(JSWrapperObject::internalValue());} 
  48         static PassRefPtr
<Structure
> createStructure(JSValuePtr prototype
) 
  50             return Structure::create(prototype
, TypeInfo(ObjectType
)); 
  54         StringObject(PassRefPtr
<Structure
>, JSString
*); 
  57         virtual UString 
toString(ExecState
*) const; 
  58         virtual UString 
toThisString(ExecState
*) const; 
  59         virtual JSString
* toThisJSString(ExecState
*); 
  62     StringObject
* asStringObject(JSValuePtr
); 
  64     inline StringObject
* asStringObject(JSValuePtr value
) 
  66         ASSERT(asObject(value
)->inherits(&StringObject::info
)); 
  67         return static_cast<StringObject
*>(asObject(value
)); 
  72 #endif // StringObject_h