Home | History | Annotate | Download | only in debugger
      1 /*
      2  * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.
      3  *
      4  * Redistribution and use in source and binary forms, with or without
      5  * modification, are permitted provided that the following conditions
      6  * are met:
      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.
     12  *
     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.
     24  */
     25 
     26 #include "config.h"
     27 #include "DebuggerActivation.h"
     28 
     29 #include "JSActivation.h"
     30 
     31 namespace JSC {
     32 
     33 DebuggerActivation::DebuggerActivation(JSObject* activation)
     34     : JSObject(DebuggerActivation::createStructure(jsNull()))
     35 {
     36     ASSERT(activation);
     37     ASSERT(activation->isActivationObject());
     38     m_activation = static_cast<JSActivation*>(activation);
     39 }
     40 
     41 void DebuggerActivation::markChildren(MarkStack& markStack)
     42 {
     43     JSObject::markChildren(markStack);
     44 
     45     if (m_activation)
     46         markStack.append(m_activation);
     47 }
     48 
     49 UString DebuggerActivation::className() const
     50 {
     51     return m_activation->className();
     52 }
     53 
     54 bool DebuggerActivation::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
     55 {
     56     return m_activation->getOwnPropertySlot(exec, propertyName, slot);
     57 }
     58 
     59 void DebuggerActivation::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
     60 {
     61     m_activation->put(exec, propertyName, value, slot);
     62 }
     63 
     64 void DebuggerActivation::putWithAttributes(ExecState* exec, const Identifier& propertyName, JSValue value, unsigned attributes)
     65 {
     66     m_activation->putWithAttributes(exec, propertyName, value, attributes);
     67 }
     68 
     69 bool DebuggerActivation::deleteProperty(ExecState* exec, const Identifier& propertyName)
     70 {
     71     return m_activation->deleteProperty(exec, propertyName);
     72 }
     73 
     74 void DebuggerActivation::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode)
     75 {
     76     m_activation->getPropertyNames(exec, propertyNames, mode);
     77 }
     78 
     79 bool DebuggerActivation::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
     80 {
     81     return m_activation->getOwnPropertyDescriptor(exec, propertyName, descriptor);
     82 }
     83 
     84 void DebuggerActivation::defineGetter(ExecState* exec, const Identifier& propertyName, JSObject* getterFunction, unsigned attributes)
     85 {
     86     m_activation->defineGetter(exec, propertyName, getterFunction, attributes);
     87 }
     88 
     89 void DebuggerActivation::defineSetter(ExecState* exec, const Identifier& propertyName, JSObject* setterFunction, unsigned attributes)
     90 {
     91     m_activation->defineSetter(exec, propertyName, setterFunction, attributes);
     92 }
     93 
     94 JSValue DebuggerActivation::lookupGetter(ExecState* exec, const Identifier& propertyName)
     95 {
     96     return m_activation->lookupGetter(exec, propertyName);
     97 }
     98 
     99 JSValue DebuggerActivation::lookupSetter(ExecState* exec, const Identifier& propertyName)
    100 {
    101     return m_activation->lookupSetter(exec, propertyName);
    102 }
    103 
    104 } // namespace JSC
    105