ErrorConstructor.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*
  2. * Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
  3. * Copyright (C) 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. #ifndef ErrorConstructor_h
  21. #define ErrorConstructor_h
  22. #include "ErrorInstance.h"
  23. #include "InternalFunction.h"
  24. namespace JSC {
  25. class ErrorPrototype;
  26. class ErrorConstructor : public InternalFunction {
  27. public:
  28. typedef InternalFunction Base;
  29. static ErrorConstructor* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, ErrorPrototype* errorPrototype)
  30. {
  31. ErrorConstructor* constructor = new (NotNull, allocateCell<ErrorConstructor>(*exec->heap())) ErrorConstructor(globalObject, structure);
  32. constructor->finishCreation(exec, errorPrototype);
  33. return constructor;
  34. }
  35. static const ClassInfo s_info;
  36. static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
  37. {
  38. return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info);
  39. }
  40. protected:
  41. void finishCreation(ExecState*, ErrorPrototype*);
  42. private:
  43. ErrorConstructor(JSGlobalObject*, Structure*);
  44. static ConstructType getConstructData(JSCell*, ConstructData&);
  45. static CallType getCallData(JSCell*, CallData&);
  46. };
  47. } // namespace JSC
  48. #endif // ErrorConstructor_h