]>
git.saurik.com Git - apple/javascriptcore.git/blob - runtime/JSZombie.h
8b33ea61bf1d6fce263e21ba13b86c5dbafc3438
   2  * Copyright (C) 2009 Apple Inc. All rights reserved. 
   4  * Redistribution and use in source and binary forms, with or without 
   5  * modification, are permitted provided that the following conditions 
   7  * 1. Redistributions of source code must retain the above copyright 
   8  *    notice, this list of conditions and the following disclaimer. 
   9  * 2. Redistributions in binary form must reproduce the above copyright 
  10  *    notice, this list of conditions and the following disclaimer in the 
  11  *    documentation and/or other materials provided with the distribution. 
  13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 
  14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
  15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR 
  17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
  18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
  19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
  20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
  21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
  22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
  23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
  31 #if ENABLE(JSC_ZOMBIES) 
  34 class JSZombie 
: public JSCell 
{ 
  36     JSZombie(const ClassInfo
* oldInfo
, Structure
* structure
) 
  41     virtual bool isZombie() const { return true; } 
  42     virtual const ClassInfo
* classInfo() const { return &s_info
; } 
  43     static Structure
* leakedZombieStructure(); 
  45     virtual bool isGetterSetter() const { ASSERT_NOT_REACHED(); return false; } 
  46     virtual bool isAPIValueWrapper() const { ASSERT_NOT_REACHED(); return false; } 
  47     virtual bool isPropertyNameIterator() const { ASSERT_NOT_REACHED(); return false; } 
  48     virtual CallType 
getCallData(CallData
&) { ASSERT_NOT_REACHED(); return CallTypeNone
; } 
  49     virtual ConstructType 
getConstructData(ConstructData
&) { ASSERT_NOT_REACHED(); return ConstructTypeNone
; } 
  50     virtual bool getUInt32(uint32_t&) const { ASSERT_NOT_REACHED(); return false; } 
  51     virtual JSValue 
toPrimitive(ExecState
*, PreferredPrimitiveType
) const { ASSERT_NOT_REACHED(); return jsNull(); } 
  52     virtual bool getPrimitiveNumber(ExecState
*, double&, JSValue
&) { ASSERT_NOT_REACHED(); return false; } 
  53     virtual bool toBoolean(ExecState
*) const { ASSERT_NOT_REACHED(); return false; } 
  54     virtual double toNumber(ExecState
*) const { ASSERT_NOT_REACHED(); return 0.0; } 
  55     virtual UString 
toString(ExecState
*) const { ASSERT_NOT_REACHED(); return ""; } 
  56     virtual JSObject
* toObject(ExecState
*) const { ASSERT_NOT_REACHED(); return 0; } 
  57     virtual void markChildren(MarkStack
&) { ASSERT_NOT_REACHED(); } 
  58     virtual void put(ExecState
*, const Identifier
&, JSValue
, PutPropertySlot
&) { ASSERT_NOT_REACHED(); } 
  59     virtual void put(ExecState
*, unsigned, JSValue
) { ASSERT_NOT_REACHED(); } 
  60     virtual bool deleteProperty(ExecState
*, const Identifier
&) { ASSERT_NOT_REACHED(); return false; } 
  61     virtual bool deleteProperty(ExecState
*, unsigned) { ASSERT_NOT_REACHED(); return false; } 
  62     virtual JSObject
* toThisObject(ExecState
*) const { ASSERT_NOT_REACHED(); return 0; } 
  63     virtual UString 
toThisString(ExecState
*) const { ASSERT_NOT_REACHED(); return ""; } 
  64     virtual JSString
* toThisJSString(ExecState
*) { ASSERT_NOT_REACHED(); return 0; } 
  65     virtual JSValue 
getJSNumber() { ASSERT_NOT_REACHED(); return jsNull(); } 
  66     virtual bool getOwnPropertySlot(ExecState
*, const Identifier
&, PropertySlot
&) { ASSERT_NOT_REACHED(); return false; } 
  67     virtual bool getOwnPropertySlot(ExecState
*, unsigned, PropertySlot
&) { ASSERT_NOT_REACHED(); return false; } 
  69     static const ClassInfo s_info
; 
  71     const ClassInfo
* m_oldInfo
; 
  76 #endif // ENABLE(JSC_ZOMBIES)