PropertySlot.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * Copyright (C) 2005, 2008 Apple Inc. All rights reserved.
  3. *
  4. * This library is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Library General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2 of the License, or (at your option) any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Library General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Library General Public License
  15. * along with this library; see the file COPYING.LIB. If not, write to
  16. * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  17. * Boston, MA 02110-1301, USA.
  18. *
  19. */
  20. #include "config.h"
  21. #include "PropertySlot.h"
  22. #include "JSFunction.h"
  23. #include "JSGlobalObject.h"
  24. #include "Operations.h"
  25. namespace JSC {
  26. JSValue PropertySlot::functionGetter(ExecState* exec) const
  27. {
  28. // Prevent getter functions from observing execution if an exception is pending.
  29. if (exec->hadException())
  30. return exec->exception();
  31. CallData callData;
  32. CallType callType = m_data.getterFunc->methodTable()->getCallData(m_data.getterFunc, callData);
  33. return call(exec, m_data.getterFunc, callType, callData, m_thisValue.isObject() ? m_thisValue.toThisObject(exec) : m_thisValue, exec->emptyList());
  34. }
  35. } // namespace JSC