18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 1999-2000 Harri Porten (porten@kde.org) 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2008 Apple Inc. All rights reserved. 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is free software; you can redistribute it and/or 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modify it under the terms of the GNU Lesser General Public 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License as published by the Free Software Foundation; either 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * version 2 of the License, or (at your option) any later version. 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is distributed in the hope that it will be useful, 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Lesser General Public License for more details. 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * You should have received a copy of the GNU Lesser General Public 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License along with this library; if not, write to the Free Software 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef ErrorInstance_h 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ErrorInstance_h 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSObject.h" 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace JSC { 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch class ErrorInstance : public JSNonFinalObject { 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project public: 3081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch static const ClassInfo s_info; 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 322daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch static Structure* createStructure(JSGlobalData& globalData, JSValue prototype) 3381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch { 342bde8e466a4451c7319e3a072d118917957d6554Steve Block return Structure::create(globalData, prototype, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount, &s_info); 3581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch } 36545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 372daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch static ErrorInstance* create(JSGlobalData*, Structure*, const UString&); 382daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch static ErrorInstance* create(ExecState*, Structure*, JSValue message); 39545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 406b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner 416b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner bool appendSourceToMessage() { return m_appendSourceToMessage; } 426b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner void setAppendSourceToMessage() { m_appendSourceToMessage = true; } 436b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner void clearAppendSourceToMessage() { m_appendSourceToMessage = false; } 446b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner 456b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner virtual bool isErrorInstance() const { return true; } 466b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner 47545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch protected: 482daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch explicit ErrorInstance(JSGlobalData*, Structure*); 492daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch explicit ErrorInstance(JSGlobalData*, Structure*, const UString&); 506b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner 516b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner bool m_appendSourceToMessage; 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace JSC 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // ErrorInstance_h 57