2  * Copyright (C) 2008, 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.  
  26 #ifndef DebuggerActivation_h 
  27 #define DebuggerActivation_h 
  33     class DebuggerActivation 
: public JSNonFinalObject 
{ 
  35         typedef JSNonFinalObject Base
; 
  37         static DebuggerActivation
* create(JSGlobalData
& globalData
, JSObject
* object
) 
  39             DebuggerActivation
* activation 
= new (NotNull
, allocateCell
<DebuggerActivation
>(globalData
.heap
)) DebuggerActivation(globalData
); 
  40             activation
->finishCreation(globalData
, object
); 
  44         static void visitChildren(JSCell
*, SlotVisitor
&); 
  45         static UString 
className(const JSObject
*); 
  46         static bool getOwnPropertySlot(JSCell
*, ExecState
*, const Identifier
& propertyName
, PropertySlot
&); 
  47         static void put(JSCell
*, ExecState
*, const Identifier
& propertyName
, JSValue
, PutPropertySlot
&); 
  48         static void putDirectVirtual(JSObject
*, ExecState
*, const Identifier
& propertyName
, JSValue
, unsigned attributes
); 
  49         static bool deleteProperty(JSCell
*, ExecState
*, const Identifier
& propertyName
); 
  50         static void getOwnPropertyNames(JSObject
*, ExecState
*, PropertyNameArray
&, EnumerationMode
); 
  51         static bool getOwnPropertyDescriptor(JSObject
*, ExecState
*, const Identifier
&, PropertyDescriptor
&); 
  52         static bool defineOwnProperty(JSObject
*, ExecState
*, const Identifier
& propertyName
, PropertyDescriptor
&, bool shouldThrow
); 
  54         JS_EXPORTDATA 
static const ClassInfo s_info
; 
  56         static Structure
* createStructure(JSGlobalData
& globalData
, JSGlobalObject
* globalObject
, JSValue prototype
)  
  58             return Structure::create(globalData
, globalObject
, prototype
, TypeInfo(ObjectType
, StructureFlags
), &s_info
);  
  62         static const unsigned StructureFlags 
= OverridesGetOwnPropertySlot 
| OverridesVisitChildren 
| JSObject::StructureFlags
; 
  64         JS_EXPORT_PRIVATE 
void finishCreation(JSGlobalData
&, JSObject
* activation
); 
  67         JS_EXPORT_PRIVATE 
DebuggerActivation(JSGlobalData
&); 
  68         WriteBarrier
<JSActivation
> m_activation
; 
  73 #endif // DebuggerActivation_h