• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2   *  Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
3   *  Copyright (C) 2003, 2008 Apple Inc. All rights reserved.
4   *
5   *  This library is free software; you can redistribute it and/or
6   *  modify it under the terms of the GNU Lesser General Public
7   *  License as published by the Free Software Foundation; either
8   *  version 2 of the License, or (at your option) any later version.
9   *
10   *  This library is distributed in the hope that it will be useful,
11   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13   *  Lesser General Public License for more details.
14   *
15   *  You should have received a copy of the GNU Lesser General Public
16   *  License along with this library; if not, write to the Free Software
17   *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
18   *
19   */
20  
21  #include "config.h"
22  #include "ErrorInstance.h"
23  
24  namespace JSC {
25  
26  const ClassInfo ErrorInstance::s_info = { "Error", &JSNonFinalObject::s_info, 0, 0 };
27  
ErrorInstance(JSGlobalData * globalData,Structure * structure)28  ErrorInstance::ErrorInstance(JSGlobalData* globalData, Structure* structure)
29      : JSNonFinalObject(*globalData, structure)
30      , m_appendSourceToMessage(false)
31  {
32      ASSERT(inherits(&s_info));
33      putDirect(*globalData, globalData->propertyNames->message, jsString(globalData, ""));
34  }
35  
ErrorInstance(JSGlobalData * globalData,Structure * structure,const UString & message)36  ErrorInstance::ErrorInstance(JSGlobalData* globalData, Structure* structure, const UString& message)
37      : JSNonFinalObject(*globalData, structure)
38      , m_appendSourceToMessage(false)
39  {
40      ASSERT(inherits(&s_info));
41      putDirect(*globalData, globalData->propertyNames->message, jsString(globalData, message));
42  }
43  
create(JSGlobalData * globalData,Structure * structure,const UString & message)44  ErrorInstance* ErrorInstance::create(JSGlobalData* globalData, Structure* structure, const UString& message)
45  {
46      return new (globalData) ErrorInstance(globalData, structure, message);
47  }
48  
create(ExecState * exec,Structure * structure,JSValue message)49  ErrorInstance* ErrorInstance::create(ExecState* exec, Structure* structure, JSValue message)
50  {
51      if (message.isUndefined())
52          return new (exec) ErrorInstance(&exec->globalData(), structure);
53      return new (exec) ErrorInstance(&exec->globalData(), structure, message.toString(exec));
54  }
55  
56  } // namespace JSC
57