WebKit IDL does not use exception syntax
authorarv@chromium.org <arv@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 May 2012 21:23:15 +0000 (21:23 +0000)
committerarv@chromium.org <arv@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 May 2012 21:23:15 +0000 (21:23 +0000)
https://bugs.webkit.org/show_bug.cgi?id=85100

Reviewed by Dimitri Glazkov.

This adds support for exception ExceptionName { ... } which currently sets a flag
on the domClass.

Binding tests updated.

* Modules/indexeddb/IDBDatabaseException.idl:
* Modules/webdatabase/SQLException.idl:
* bindings/scripts/IDLParser.pm:
(ParseInterface):
(DetermineParseMode):
(ProcessSection):
* bindings/scripts/IDLStructure.pm:
* bindings/scripts/test/CPP/WebDOMTestException.cpp: Added.
(WebDOMTestException::WebDOMTestExceptionPrivate::WebDOMTestExceptionPrivate):
(WebDOMTestException::WebDOMTestExceptionPrivate):
(WebDOMTestException::WebDOMTestException):
(WebDOMTestException::operator=):
(WebDOMTestException::impl):
(WebDOMTestException::~WebDOMTestException):
(WebDOMTestException::name):
(toWebCore):
(toWebKit):
* bindings/scripts/test/CPP/WebDOMTestException.h: Added.
(WebCore):
(WebDOMTestException):
* bindings/scripts/test/GObject/WebKitDOMTestException.cpp: Added.
(WebKit):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestException):
(webkit_dom_test_exception_finalize):
(webkit_dom_test_exception_set_property):
(webkit_dom_test_exception_get_property):
(webkit_dom_test_exception_constructed):
(webkit_dom_test_exception_class_init):
(webkit_dom_test_exception_init):
(webkit_dom_test_exception_get_name):
* bindings/scripts/test/GObject/WebKitDOMTestException.h: Added.
(_WebKitDOMTestException):
(_WebKitDOMTestExceptionClass):
* bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h: Added.
(WebKit):
* bindings/scripts/test/JS/JSTestException.cpp: Added.
(WebCore):
(WebCore::JSTestExceptionConstructor::JSTestExceptionConstructor):
(WebCore::JSTestExceptionConstructor::finishCreation):
(WebCore::JSTestExceptionConstructor::getOwnPropertySlot):
(WebCore::JSTestExceptionConstructor::getOwnPropertyDescriptor):
(WebCore::JSTestExceptionPrototype::self):
(WebCore::JSTestException::JSTestException):
(WebCore::JSTestException::finishCreation):
(WebCore::JSTestException::createPrototype):
(WebCore::JSTestException::destroy):
(WebCore::JSTestException::~JSTestException):
(WebCore::JSTestException::getOwnPropertySlot):
(WebCore::JSTestException::getOwnPropertyDescriptor):
(WebCore::jsTestExceptionName):
(WebCore::jsTestExceptionConstructor):
(WebCore::JSTestException::getConstructor):
(WebCore::isObservable):
(WebCore::JSTestExceptionOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestExceptionOwner::finalize):
(WebCore::toJS):
(WebCore::toTestException):
* bindings/scripts/test/JS/JSTestException.h: Added.
(WebCore):
(JSTestException):
(WebCore::JSTestException::create):
(WebCore::JSTestException::createStructure):
(WebCore::JSTestException::impl):
(WebCore::JSTestException::releaseImpl):
(WebCore::JSTestException::releaseImplIfNotNull):
(JSTestExceptionOwner):
(WebCore::wrapperOwner):
(WebCore::wrapperContext):
(JSTestExceptionPrototype):
(WebCore::JSTestExceptionPrototype::create):
(WebCore::JSTestExceptionPrototype::createStructure):
(WebCore::JSTestExceptionPrototype::JSTestExceptionPrototype):
(JSTestExceptionConstructor):
(WebCore::JSTestExceptionConstructor::create):
(WebCore::JSTestExceptionConstructor::createStructure):
* bindings/scripts/test/ObjC/DOMTestException.h: Added.
* bindings/scripts/test/ObjC/DOMTestException.mm: Added.
(-[DOMTestException dealloc]):
(-[DOMTestException finalize]):
(-[DOMTestException name]):
(core):
(kit):
* bindings/scripts/test/ObjC/DOMTestExceptionInternal.h: Added.
(WebCore):
* bindings/scripts/test/TestException.idl: Copied from Source/WebCore/xml/XPathException.idl.
* bindings/scripts/test/V8/V8TestException.cpp: Added.
(WebCore):
(TestExceptionV8Internal):
(WebCore::TestExceptionV8Internal::V8_USE):
(WebCore::TestExceptionV8Internal::nameAttrGetter):
(WebCore::ConfigureV8TestExceptionTemplate):
(WebCore::V8TestException::GetRawTemplate):
(WebCore::V8TestException::GetTemplate):
(WebCore::V8TestException::HasInstance):
(WebCore::V8TestException::wrapSlow):
(WebCore::V8TestException::derefObject):
* bindings/scripts/test/V8/V8TestException.h: Added.
(WebCore):
(V8TestException):
(WebCore::V8TestException::toNative):
(WebCore::V8TestException::wrap):
(WebCore::toV8):
* dom/DOMCoreException.idl:
* dom/EventException.idl:
* dom/RangeException.idl:
* fileapi/FileException.idl:
* fileapi/OperationNotAllowedException.idl:
* svg/SVGException.idl:
* xml/XMLHttpRequestException.idl:
* xml/XPathException.idl:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116172 268f45cc-cd09-0410-ab3c-d52691b4dbfc

26 files changed:
Source/WebCore/ChangeLog
Source/WebCore/Modules/indexeddb/IDBDatabaseException.idl
Source/WebCore/Modules/webdatabase/SQLException.idl
Source/WebCore/bindings/scripts/IDLParser.pm
Source/WebCore/bindings/scripts/IDLStructure.pm
Source/WebCore/bindings/scripts/test/CPP/WebDOMTestException.cpp [new file with mode: 0644]
Source/WebCore/bindings/scripts/test/CPP/WebDOMTestException.h [new file with mode: 0644]
Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestException.cpp [new file with mode: 0644]
Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestException.h [new file with mode: 0644]
Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h [new file with mode: 0644]
Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp [new file with mode: 0644]
Source/WebCore/bindings/scripts/test/JS/JSTestException.h [new file with mode: 0644]
Source/WebCore/bindings/scripts/test/ObjC/DOMTestException.h [new file with mode: 0644]
Source/WebCore/bindings/scripts/test/ObjC/DOMTestException.mm [new file with mode: 0644]
Source/WebCore/bindings/scripts/test/ObjC/DOMTestExceptionInternal.h [new file with mode: 0644]
Source/WebCore/bindings/scripts/test/TestException.idl [new file with mode: 0644]
Source/WebCore/bindings/scripts/test/V8/V8TestException.cpp [new file with mode: 0644]
Source/WebCore/bindings/scripts/test/V8/V8TestException.h [new file with mode: 0644]
Source/WebCore/dom/DOMCoreException.idl
Source/WebCore/dom/EventException.idl
Source/WebCore/dom/RangeException.idl
Source/WebCore/fileapi/FileException.idl
Source/WebCore/fileapi/OperationNotAllowedException.idl
Source/WebCore/svg/SVGException.idl
Source/WebCore/xml/XMLHttpRequestException.idl
Source/WebCore/xml/XPathException.idl

index f5810cc..1835e22 100644 (file)
@@ -1,3 +1,128 @@
+2012-04-27  Erik Arvidsson  <arv@chromium.org>
+
+        WebKit IDL does not use exception syntax
+        https://bugs.webkit.org/show_bug.cgi?id=85100
+
+        Reviewed by Dimitri Glazkov.
+
+        This adds support for exception ExceptionName { ... } which currently sets a flag
+        on the domClass.
+
+        Binding tests updated.
+
+        * Modules/indexeddb/IDBDatabaseException.idl:
+        * Modules/webdatabase/SQLException.idl:
+        * bindings/scripts/IDLParser.pm:
+        (ParseInterface):
+        (DetermineParseMode):
+        (ProcessSection):
+        * bindings/scripts/IDLStructure.pm:
+        * bindings/scripts/test/CPP/WebDOMTestException.cpp: Added.
+        (WebDOMTestException::WebDOMTestExceptionPrivate::WebDOMTestExceptionPrivate):
+        (WebDOMTestException::WebDOMTestExceptionPrivate):
+        (WebDOMTestException::WebDOMTestException):
+        (WebDOMTestException::operator=):
+        (WebDOMTestException::impl):
+        (WebDOMTestException::~WebDOMTestException):
+        (WebDOMTestException::name):
+        (toWebCore):
+        (toWebKit):
+        * bindings/scripts/test/CPP/WebDOMTestException.h: Added.
+        (WebCore):
+        (WebDOMTestException):
+        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp: Added.
+        (WebKit):
+        (WebKit::kit):
+        (WebKit::core):
+        (WebKit::wrapTestException):
+        (webkit_dom_test_exception_finalize):
+        (webkit_dom_test_exception_set_property):
+        (webkit_dom_test_exception_get_property):
+        (webkit_dom_test_exception_constructed):
+        (webkit_dom_test_exception_class_init):
+        (webkit_dom_test_exception_init):
+        (webkit_dom_test_exception_get_name):
+        * bindings/scripts/test/GObject/WebKitDOMTestException.h: Added.
+        (_WebKitDOMTestException):
+        (_WebKitDOMTestExceptionClass):
+        * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h: Added.
+        (WebKit):
+        * bindings/scripts/test/JS/JSTestException.cpp: Added.
+        (WebCore):
+        (WebCore::JSTestExceptionConstructor::JSTestExceptionConstructor):
+        (WebCore::JSTestExceptionConstructor::finishCreation):
+        (WebCore::JSTestExceptionConstructor::getOwnPropertySlot):
+        (WebCore::JSTestExceptionConstructor::getOwnPropertyDescriptor):
+        (WebCore::JSTestExceptionPrototype::self):
+        (WebCore::JSTestException::JSTestException):
+        (WebCore::JSTestException::finishCreation):
+        (WebCore::JSTestException::createPrototype):
+        (WebCore::JSTestException::destroy):
+        (WebCore::JSTestException::~JSTestException):
+        (WebCore::JSTestException::getOwnPropertySlot):
+        (WebCore::JSTestException::getOwnPropertyDescriptor):
+        (WebCore::jsTestExceptionName):
+        (WebCore::jsTestExceptionConstructor):
+        (WebCore::JSTestException::getConstructor):
+        (WebCore::isObservable):
+        (WebCore::JSTestExceptionOwner::isReachableFromOpaqueRoots):
+        (WebCore::JSTestExceptionOwner::finalize):
+        (WebCore::toJS):
+        (WebCore::toTestException):
+        * bindings/scripts/test/JS/JSTestException.h: Added.
+        (WebCore):
+        (JSTestException):
+        (WebCore::JSTestException::create):
+        (WebCore::JSTestException::createStructure):
+        (WebCore::JSTestException::impl):
+        (WebCore::JSTestException::releaseImpl):
+        (WebCore::JSTestException::releaseImplIfNotNull):
+        (JSTestExceptionOwner):
+        (WebCore::wrapperOwner):
+        (WebCore::wrapperContext):
+        (JSTestExceptionPrototype):
+        (WebCore::JSTestExceptionPrototype::create):
+        (WebCore::JSTestExceptionPrototype::createStructure):
+        (WebCore::JSTestExceptionPrototype::JSTestExceptionPrototype):
+        (JSTestExceptionConstructor):
+        (WebCore::JSTestExceptionConstructor::create):
+        (WebCore::JSTestExceptionConstructor::createStructure):
+        * bindings/scripts/test/ObjC/DOMTestException.h: Added.
+        * bindings/scripts/test/ObjC/DOMTestException.mm: Added.
+        (-[DOMTestException dealloc]):
+        (-[DOMTestException finalize]):
+        (-[DOMTestException name]):
+        (core):
+        (kit):
+        * bindings/scripts/test/ObjC/DOMTestExceptionInternal.h: Added.
+        (WebCore):
+        * bindings/scripts/test/TestException.idl: Copied from Source/WebCore/xml/XPathException.idl.
+        * bindings/scripts/test/V8/V8TestException.cpp: Added.
+        (WebCore):
+        (TestExceptionV8Internal):
+        (WebCore::TestExceptionV8Internal::V8_USE):
+        (WebCore::TestExceptionV8Internal::nameAttrGetter):
+        (WebCore::ConfigureV8TestExceptionTemplate):
+        (WebCore::V8TestException::GetRawTemplate):
+        (WebCore::V8TestException::GetTemplate):
+        (WebCore::V8TestException::HasInstance):
+        (WebCore::V8TestException::wrapSlow):
+        (WebCore::V8TestException::derefObject):
+        * bindings/scripts/test/V8/V8TestException.h: Added.
+        (WebCore):
+        (V8TestException):
+        (WebCore::V8TestException::toNative):
+        (WebCore::V8TestException::wrap):
+        (WebCore::toV8):
+        * dom/DOMCoreException.idl:
+        * dom/EventException.idl:
+        * dom/RangeException.idl:
+        * fileapi/FileException.idl:
+        * fileapi/OperationNotAllowedException.idl:
+        * svg/SVGException.idl:
+        * xml/XMLHttpRequestException.idl:
+        * xml/XPathException.idl:
+
 2012-05-04  Rafael Weinstein  <rafaelw@chromium.org>
 
         V8RecursionScope not declared in V8Proxy::newInstance which causes ASSERT() failure from NPAPI
index c8e1b35..b4f19e1 100644 (file)
@@ -25,7 +25,7 @@
 
 module storage {
 
-    interface [
+    exception [
         Conditional=INDEXED_DATABASE,
         DoNotCheckConstants
     ] IDBDatabaseException {
index 39e58d6..856e5cd 100644 (file)
@@ -30,7 +30,7 @@
 
 module storage {
 
-    interface [
+    exception [
         Conditional=SQL_DATABASE,
         JSNoStaticTables,
         DoNotCheckConstants
index 4d126db..0f08a35 100644 (file)
@@ -32,6 +32,7 @@ use constant MODE_UNDEF    => 0; # Default mode.
 
 use constant MODE_MODULE  => 10; # 'module' section
 use constant MODE_INTERFACE  => 11; # 'interface' section
+use constant MODE_EXCEPTION  => 12; # 'exception' section
 
 # Helper variables
 my @temporaryContent;
@@ -274,7 +275,7 @@ sub ParseInterface
     $data =~ s/[\n\r]/ /g;
 
     # Beginning of the regexp parsing magic
-    if ($sectionName eq "interface") {
+    if ($sectionName eq "interface" || $sectionName eq "exception") {
         print " |- Trying to parse interface...\n" unless $beQuiet;
 
         my $interfaceName = "";
@@ -283,12 +284,14 @@ sub ParseInterface
         # Match identifier of the interface, and enclosed data...
         $data =~ /$IDLStructure::interfaceSelector/;
 
-        my $interfaceExtendedAttributes = (defined($1) ? $1 : " "); chop($interfaceExtendedAttributes);
-        $interfaceName = (defined($2) ? $2 : die("Parsing error!\nSource:\n$data\n)"));
-        my $interfaceBase = (defined($3) ? $3 : "");
-        $interfaceData = (defined($4) ? $4 : die("Parsing error!\nSource:\n$data\n)"));
+        my $isException = (defined($1) ? ($1 eq 'exception') : die("Parsing error!\nSource:\n$data\n)"));
+        my $interfaceExtendedAttributes = (defined($2) ? $2 : " "); chop($interfaceExtendedAttributes);
+        $interfaceName = (defined($3) ? $3 : die("Parsing error!\nSource:\n$data\n)"));
+        my $interfaceBase = (defined($4) ? $4 : "");
+        $interfaceData = (defined($5) ? $5 : die("Parsing error!\nSource:\n$data\n)"));
 
         # Fill in known parts of the domClass datastructure now...
+        $dataNode->isException($isException);
         $dataNode->name($interfaceName);
         my $extendedAttributes = parseExtendedAttributes($interfaceExtendedAttributes);
         if (defined $extendedAttributes->{"Constructor"}) {
@@ -430,6 +433,8 @@ sub DetermineParseMode
         $mode = MODE_MODULE;
     } elsif ($_ =~ /interface/) {
         $mode = MODE_INTERFACE;
+    } elsif ($_ =~ /exception/) {
+        $mode = MODE_EXCEPTION;
     }
 
     return $mode;
@@ -444,9 +449,10 @@ sub ProcessSection
         die ("Two modules in one file! Fatal error!\n") if ($document ne 0);
         $document = new idlDocument();
         $object->ParseModule($document);
-    } elsif ($parseMode eq MODE_INTERFACE) {
+    } elsif ($parseMode eq MODE_INTERFACE || $parseMode eq MODE_EXCEPTION) {
         my $node = new domClass();
-        $object->ParseInterface($node, "interface");
+        my $sectionName = $parseMode eq MODE_INTERFACE ? "interface" : "exception";
+        $object->ParseInterface($node, $sectionName);
     
         die ("No module specified! Fatal Error!\n") if ($document eq 0);
         my $arrayRef = $document->classes;
index 7c9039f..5424153 100644 (file)
@@ -41,6 +41,7 @@ struct( domClass => {
     attributes => '@',    # List of 'domAttribute'    
     extendedAttributes => '$', # Extended attributes
     constructor => '$', # Constructor
+    isException => '$', # Used for exception interfaces
 });
 
 # Used to represent domClass contents (name of method, signature)
@@ -103,7 +104,7 @@ our $setterRaisesSelector = '\bsetter\s+raises\s*\((' . $idlIdNsList . '*)\s*\)'
 
 our $typeNamespaceSelector = '((?:' . $idlId . '*::)*)\s*(' . $idlDataType . '*)';
 
-our $interfaceSelector = 'interface\s*((?:' . $extendedAttributeSyntax . ' )?)(' . $idlIdNs . '*)\s*(?::(\s*[^{]*))?{([-a-zA-Z0-9_"=\s(),;:\[\]<>&\|]*)';
+our $interfaceSelector = '(interface|exception)\s*((?:' . $extendedAttributeSyntax . ' )?)(' . $idlIdNs . '*)\s*(?::(\s*[^{]*))?{([-a-zA-Z0-9_"=\s(),;:\[\]<>&\|]*)';
 our $interfaceMethodSelector = '\s*((?:' . $extendedAttributeSyntax . ' )?)(static\s+)?' . $supportedTypes . '\s*(' . $idlIdNs . '*)\s*\(\s*([a-zA-Z0-9:\s,=\[\]<>]*)';
 our $interfaceParameterSelector = '(in|out)\s*((?:' . $extendedAttributeSyntax . ' )?)' . $supportedTypes . '\s*(' . $idlIdNs . '*)';
 
diff --git a/Source/WebCore/bindings/scripts/test/CPP/WebDOMTestException.cpp b/Source/WebCore/bindings/scripts/test/CPP/WebDOMTestException.cpp
new file mode 100644 (file)
index 0000000..66bbbc3
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * This file is part of the WebKit open source project.
+ * This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+#include "WebDOMTestException.h"
+
+#include "KURL.h"
+#include "TestException.h"
+#include "WebDOMString.h"
+#include "WebExceptionHandler.h"
+#include "wtf/text/AtomicString.h"
+#include <wtf/GetPtr.h>
+#include <wtf/RefPtr.h>
+
+struct WebDOMTestException::WebDOMTestExceptionPrivate {
+    WebDOMTestExceptionPrivate(WebCore::TestException* object = 0)
+        : impl(object)
+    {
+    }
+
+    RefPtr<WebCore::TestException> impl;
+};
+
+WebDOMTestException::WebDOMTestException()
+    : WebDOMObject()
+    , m_impl(0)
+{
+}
+
+WebDOMTestException::WebDOMTestException(WebCore::TestException* impl)
+    : WebDOMObject()
+    , m_impl(new WebDOMTestExceptionPrivate(impl))
+{
+}
+
+WebDOMTestException::WebDOMTestException(const WebDOMTestException& copy)
+    : WebDOMObject()
+{
+    m_impl = copy.impl() ? new WebDOMTestExceptionPrivate(copy.impl()) : 0;
+}
+
+WebDOMTestException& WebDOMTestException::operator=(const WebDOMTestException& copy)
+{
+    delete m_impl;
+    m_impl = copy.impl() ? new WebDOMTestExceptionPrivate(copy.impl()) : 0;
+    return *this;
+}
+
+WebCore::TestException* WebDOMTestException::impl() const
+{
+    return m_impl ? WTF::getPtr(m_impl->impl) : 0;
+}
+
+WebDOMTestException::~WebDOMTestException()
+{
+    delete m_impl;
+    m_impl = 0;
+}
+
+WebDOMString WebDOMTestException::name() const
+{
+    if (!impl())
+        return WebDOMString();
+
+    return static_cast<const WTF::String&>(impl()->name());
+}
+
+WebCore::TestException* toWebCore(const WebDOMTestException& wrapper)
+{
+    return wrapper.impl();
+}
+
+WebDOMTestException toWebKit(WebCore::TestException* value)
+{
+    return WebDOMTestException(value);
+}
diff --git a/Source/WebCore/bindings/scripts/test/CPP/WebDOMTestException.h b/Source/WebCore/bindings/scripts/test/CPP/WebDOMTestException.h
new file mode 100644 (file)
index 0000000..9d95c66
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef WebDOMTestException_h
+#define WebDOMTestException_h
+
+#include <WebDOMObject.h>
+#include <WebDOMString.h>
+
+namespace WebCore {
+class TestException;
+};
+
+
+class WebDOMTestException : public WebDOMObject {
+public:
+    WebDOMTestException();
+    explicit WebDOMTestException(WebCore::TestException*);
+    WebDOMTestException(const WebDOMTestException&);
+    WebDOMTestException& operator=(const WebDOMTestException&);
+    virtual ~WebDOMTestException();
+
+    WebDOMString name() const;
+
+    WebCore::TestException* impl() const;
+
+protected:
+    struct WebDOMTestExceptionPrivate;
+    WebDOMTestExceptionPrivate* m_impl;
+};
+
+WebCore::TestException* toWebCore(const WebDOMTestException&);
+WebDOMTestException toWebKit(WebCore::TestException*);
+
+#endif
diff --git a/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestException.cpp b/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestException.cpp
new file mode 100644 (file)
index 0000000..74fe6a6
--- /dev/null
@@ -0,0 +1,165 @@
+/*
+    This file is part of the WebKit open source project.
+    This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+*/
+
+#include "config.h"
+#include "WebKitDOMTestException.h"
+
+#include "DOMObjectCache.h"
+#include "ExceptionCode.h"
+#include "JSMainThreadExecState.h"
+#include "TestException.h"
+#include "WebKitDOMBinding.h"
+#include "gobject/ConvertToUTF8String.h"
+#include "webkit/WebKitDOMTestExceptionPrivate.h"
+#include "webkitdefines.h"
+#include "webkitglobalsprivate.h"
+#include "webkitmarshal.h"
+#include <glib-object.h>
+#include <wtf/GetPtr.h>
+#include <wtf/RefPtr.h>
+
+namespace WebKit {
+
+WebKitDOMTestException* kit(WebCore::TestException* obj)
+{
+    g_return_val_if_fail(obj, 0);
+
+    if (gpointer ret = DOMObjectCache::get(obj))
+        return static_cast<WebKitDOMTestException*>(ret);
+
+    return static_cast<WebKitDOMTestException*>(DOMObjectCache::put(obj, WebKit::wrapTestException(obj)));
+}
+
+WebCore::TestException* core(WebKitDOMTestException* request)
+{
+    g_return_val_if_fail(request, 0);
+
+    WebCore::TestException* coreObject = static_cast<WebCore::TestException*>(WEBKIT_DOM_OBJECT(request)->coreObject);
+    g_return_val_if_fail(coreObject, 0);
+
+    return coreObject;
+}
+
+WebKitDOMTestException* wrapTestException(WebCore::TestException* coreObject)
+{
+    g_return_val_if_fail(coreObject, 0);
+
+    // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
+    // in a C-allocated GObject structure. See the finalize() code for the matching deref().
+    coreObject->ref();
+
+    return WEBKIT_DOM_TEST_EXCEPTION(g_object_new(WEBKIT_TYPE_DOM_TEST_EXCEPTION, "core-object", coreObject, NULL));
+}
+
+} // namespace WebKit
+
+G_DEFINE_TYPE(WebKitDOMTestException, webkit_dom_test_exception, WEBKIT_TYPE_DOM_OBJECT)
+
+enum {
+    PROP_0,
+    PROP_NAME,
+};
+
+static void webkit_dom_test_exception_finalize(GObject* object)
+{
+
+    WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
+    
+    if (domObject->coreObject) {
+        WebCore::TestException* coreObject = static_cast<WebCore::TestException*>(domObject->coreObject);
+
+        WebKit::DOMObjectCache::forget(coreObject);
+        coreObject->deref();
+
+        domObject->coreObject = 0;
+    }
+
+
+    G_OBJECT_CLASS(webkit_dom_test_exception_parent_class)->finalize(object);
+}
+
+static void webkit_dom_test_exception_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec)
+{
+    WebCore::JSMainThreadNullState state;
+    switch (propertyId) {
+    default:
+        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec);
+        break;
+    }
+}
+
+
+static void webkit_dom_test_exception_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec)
+{
+    WebCore::JSMainThreadNullState state;
+    WebKitDOMTestException* self = WEBKIT_DOM_TEST_EXCEPTION(object);
+    WebCore::TestException* coreSelf = WebKit::core(self);
+    switch (propertyId) {
+    case PROP_NAME: {
+        g_value_take_string(value, convertToUTF8String(coreSelf->name()));
+        break;
+    }
+    default:
+        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec);
+        break;
+    }
+}
+
+
+static void webkit_dom_test_exception_constructed(GObject* object)
+{
+
+    if (G_OBJECT_CLASS(webkit_dom_test_exception_parent_class)->constructed)
+        G_OBJECT_CLASS(webkit_dom_test_exception_parent_class)->constructed(object);
+}
+
+static void webkit_dom_test_exception_class_init(WebKitDOMTestExceptionClass* requestClass)
+{
+    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
+    gobjectClass->finalize = webkit_dom_test_exception_finalize;
+    gobjectClass->set_property = webkit_dom_test_exception_set_property;
+    gobjectClass->get_property = webkit_dom_test_exception_get_property;
+    gobjectClass->constructed = webkit_dom_test_exception_constructed;
+
+    g_object_class_install_property(gobjectClass,
+                                    PROP_NAME,
+                                    g_param_spec_string("name", /* name */
+                                                           "test_exception_name", /* short description */
+                                                           "read-only  gchar* TestException.name", /* longer - could do with some extra doc stuff here */
+                                                           "", /* default */
+                                                           WEBKIT_PARAM_READABLE));
+
+
+}
+
+static void webkit_dom_test_exception_init(WebKitDOMTestException* request)
+{
+}
+
+gchar*
+webkit_dom_test_exception_get_name(WebKitDOMTestException* self)
+{
+    g_return_val_if_fail(self, 0);
+    WebCore::JSMainThreadNullState state;
+    WebCore::TestException* item = WebKit::core(self);
+    gchar* result = convertToUTF8String(item->name());
+    return result;
+}
+
diff --git a/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestException.h b/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestException.h
new file mode 100644 (file)
index 0000000..1e1aa5c
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+    This file is part of the WebKit open source project.
+    This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+*/
+
+#ifndef WebKitDOMTestException_h
+#define WebKitDOMTestException_h
+
+#include <glib-object.h>
+#include <webkit/WebKitDOMObject.h>
+#include <webkit/webkitdefines.h>
+#include <webkit/webkitdomdefines.h>
+
+G_BEGIN_DECLS
+#define WEBKIT_TYPE_DOM_TEST_EXCEPTION            (webkit_dom_test_exception_get_type())
+#define WEBKIT_DOM_TEST_EXCEPTION(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_DOM_TEST_EXCEPTION, WebKitDOMTestException))
+#define WEBKIT_DOM_TEST_EXCEPTION_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),  WEBKIT_TYPE_DOM_TEST_EXCEPTION, WebKitDOMTestExceptionClass)
+#define WEBKIT_DOM_IS_TEST_EXCEPTION(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_DOM_TEST_EXCEPTION))
+#define WEBKIT_DOM_IS_TEST_EXCEPTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),  WEBKIT_TYPE_DOM_TEST_EXCEPTION))
+#define WEBKIT_DOM_TEST_EXCEPTION_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_TEST_EXCEPTION, WebKitDOMTestExceptionClass))
+
+struct _WebKitDOMTestException {
+    WebKitDOMObject parent_instance;
+};
+
+struct _WebKitDOMTestExceptionClass {
+    WebKitDOMObjectClass parent_class;
+};
+
+WEBKIT_API GType
+webkit_dom_test_exception_get_type (void);
+
+/**
+ * webkit_dom_test_exception_get_name:
+ * @self: A #WebKitDOMTestException
+ *
+ * Returns:
+ *
+**/
+WEBKIT_API gchar*
+webkit_dom_test_exception_get_name(WebKitDOMTestException* self);
+
+G_END_DECLS
+
+#endif /* WebKitDOMTestException_h */
diff --git a/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h b/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h
new file mode 100644 (file)
index 0000000..f8e0f3f
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+    This file is part of the WebKit open source project.
+    This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+*/
+
+#ifndef WebKitDOMTestExceptionPrivate_h
+#define WebKitDOMTestExceptionPrivate_h
+
+#include "TestException.h"
+#include <glib-object.h>
+#include <webkit/WebKitDOMObject.h>
+
+namespace WebKit {
+WebKitDOMTestException* wrapTestException(WebCore::TestException*);
+WebCore::TestException* core(WebKitDOMTestException* request);
+WebKitDOMTestException* kit(WebCore::TestException* node);
+} // namespace WebKit
+
+#endif /* WebKitDOMTestExceptionPrivate_h */
diff --git a/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp b/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp
new file mode 100644 (file)
index 0000000..f66e6b9
--- /dev/null
@@ -0,0 +1,190 @@
+/*
+    This file is part of the WebKit open source project.
+    This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+*/
+
+#include "config.h"
+#include "JSTestException.h"
+
+#include "KURL.h"
+#include "TestException.h"
+#include <runtime/JSString.h>
+#include <wtf/GetPtr.h>
+
+using namespace JSC;
+
+namespace WebCore {
+
+ASSERT_CLASS_FITS_IN_CELL(JSTestException);
+/* Hash table */
+
+static const HashTableValue JSTestExceptionTableValues[] =
+{
+    { "name", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestExceptionName), (intptr_t)0, NoIntrinsic },
+    { "constructor", DontEnum | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestExceptionConstructor), (intptr_t)0, NoIntrinsic },
+    { 0, 0, 0, 0, NoIntrinsic }
+};
+
+static const HashTable JSTestExceptionTable = { 5, 3, JSTestExceptionTableValues, 0 };
+/* Hash table for constructor */
+
+static const HashTableValue JSTestExceptionConstructorTableValues[] =
+{
+    { 0, 0, 0, 0, NoIntrinsic }
+};
+
+static const HashTable JSTestExceptionConstructorTable = { 1, 0, JSTestExceptionConstructorTableValues, 0 };
+const ClassInfo JSTestExceptionConstructor::s_info = { "TestExceptionConstructor", &Base::s_info, &JSTestExceptionConstructorTable, 0, CREATE_METHOD_TABLE(JSTestExceptionConstructor) };
+
+JSTestExceptionConstructor::JSTestExceptionConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
+    : DOMConstructorObject(structure, globalObject)
+{
+}
+
+void JSTestExceptionConstructor::finishCreation(ExecState* exec, JSDOMGlobalObject* globalObject)
+{
+    Base::finishCreation(exec->globalData());
+    ASSERT(inherits(&s_info));
+    putDirect(exec->globalData(), exec->propertyNames().prototype, JSTestExceptionPrototype::self(exec, globalObject), DontDelete | ReadOnly);
+}
+
+bool JSTestExceptionConstructor::getOwnPropertySlot(JSCell* cell, ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
+{
+    return getStaticValueSlot<JSTestExceptionConstructor, JSDOMWrapper>(exec, &JSTestExceptionConstructorTable, jsCast<JSTestExceptionConstructor*>(cell), propertyName, slot);
+}
+
+bool JSTestExceptionConstructor::getOwnPropertyDescriptor(JSObject* object, ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
+{
+    return getStaticValueDescriptor<JSTestExceptionConstructor, JSDOMWrapper>(exec, &JSTestExceptionConstructorTable, jsCast<JSTestExceptionConstructor*>(object), propertyName, descriptor);
+}
+
+/* Hash table for prototype */
+
+static const HashTableValue JSTestExceptionPrototypeTableValues[] =
+{
+    { 0, 0, 0, 0, NoIntrinsic }
+};
+
+static const HashTable JSTestExceptionPrototypeTable = { 1, 0, JSTestExceptionPrototypeTableValues, 0 };
+const ClassInfo JSTestExceptionPrototype::s_info = { "TestExceptionPrototype", &Base::s_info, &JSTestExceptionPrototypeTable, 0, CREATE_METHOD_TABLE(JSTestExceptionPrototype) };
+
+JSObject* JSTestExceptionPrototype::self(ExecState* exec, JSGlobalObject* globalObject)
+{
+    return getDOMPrototype<JSTestException>(exec, globalObject);
+}
+
+const ClassInfo JSTestException::s_info = { "TestException", &Base::s_info, &JSTestExceptionTable, 0 , CREATE_METHOD_TABLE(JSTestException) };
+
+JSTestException::JSTestException(Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestException> impl)
+    : JSDOMWrapper(structure, globalObject)
+    , m_impl(impl.leakRef())
+{
+}
+
+void JSTestException::finishCreation(JSGlobalData& globalData)
+{
+    Base::finishCreation(globalData);
+    ASSERT(inherits(&s_info));
+}
+
+JSObject* JSTestException::createPrototype(ExecState* exec, JSGlobalObject* globalObject)
+{
+    return JSTestExceptionPrototype::create(exec->globalData(), globalObject, JSTestExceptionPrototype::createStructure(globalObject->globalData(), globalObject, globalObject->objectPrototype()));
+}
+
+void JSTestException::destroy(JSC::JSCell* cell)
+{
+    JSTestException* thisObject = jsCast<JSTestException*>(cell);
+    thisObject->JSTestException::~JSTestException();
+}
+
+JSTestException::~JSTestException()
+{
+    releaseImplIfNotNull();
+}
+
+bool JSTestException::getOwnPropertySlot(JSCell* cell, ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
+{
+    JSTestException* thisObject = jsCast<JSTestException*>(cell);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
+    return getStaticValueSlot<JSTestException, Base>(exec, &JSTestExceptionTable, thisObject, propertyName, slot);
+}
+
+bool JSTestException::getOwnPropertyDescriptor(JSObject* object, ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
+{
+    JSTestException* thisObject = jsCast<JSTestException*>(object);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
+    return getStaticValueDescriptor<JSTestException, Base>(exec, &JSTestExceptionTable, thisObject, propertyName, descriptor);
+}
+
+JSValue jsTestExceptionName(ExecState* exec, JSValue slotBase, const Identifier&)
+{
+    JSTestException* castedThis = jsCast<JSTestException*>(asObject(slotBase));
+    UNUSED_PARAM(exec);
+    TestException* impl = static_cast<TestException*>(castedThis->impl());
+    JSValue result = jsString(exec, impl->name());
+    return result;
+}
+
+
+JSValue jsTestExceptionConstructor(ExecState* exec, JSValue slotBase, const Identifier&)
+{
+    JSTestException* domObject = jsCast<JSTestException*>(asObject(slotBase));
+    return JSTestException::getConstructor(exec, domObject->globalObject());
+}
+
+JSValue JSTestException::getConstructor(ExecState* exec, JSGlobalObject* globalObject)
+{
+    return getDOMConstructor<JSTestExceptionConstructor>(exec, jsCast<JSDOMGlobalObject*>(globalObject));
+}
+
+static inline bool isObservable(JSTestException* jsTestException)
+{
+    if (jsTestException->hasCustomProperties())
+        return true;
+    return false;
+}
+
+bool JSTestExceptionOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor)
+{
+    JSTestException* jsTestException = jsCast<JSTestException*>(handle.get().asCell());
+    if (!isObservable(jsTestException))
+        return false;
+    UNUSED_PARAM(visitor);
+    return false;
+}
+
+void JSTestExceptionOwner::finalize(JSC::Handle<JSC::Unknown> handle, void* context)
+{
+    JSTestException* jsTestException = jsCast<JSTestException*>(handle.get().asCell());
+    DOMWrapperWorld* world = static_cast<DOMWrapperWorld*>(context);
+    uncacheWrapper(world, jsTestException->impl(), jsTestException);
+    jsTestException->releaseImpl();
+}
+
+JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, TestException* impl)
+{
+    return wrap<JSTestException>(exec, globalObject, impl);
+}
+
+TestException* toTestException(JSC::JSValue value)
+{
+    return value.inherits(&JSTestException::s_info) ? jsCast<JSTestException*>(asObject(value))->impl() : 0;
+}
+
+}
diff --git a/Source/WebCore/bindings/scripts/test/JS/JSTestException.h b/Source/WebCore/bindings/scripts/test/JS/JSTestException.h
new file mode 100644 (file)
index 0000000..5f1fa8a
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+    This file is part of the WebKit open source project.
+    This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+*/
+
+#ifndef JSTestException_h
+#define JSTestException_h
+
+#include "JSDOMBinding.h"
+#include "TestException.h"
+#include <runtime/JSGlobalObject.h>
+#include <runtime/JSObject.h>
+#include <runtime/ObjectPrototype.h>
+
+namespace WebCore {
+
+class JSTestException : public JSDOMWrapper {
+public:
+    typedef JSDOMWrapper Base;
+    static JSTestException* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestException> impl)
+    {
+        JSTestException* ptr = new (NotNull, JSC::allocateCell<JSTestException>(globalObject->globalData().heap)) JSTestException(structure, globalObject, impl);
+        ptr->finishCreation(globalObject->globalData());
+        return ptr;
+    }
+
+    static JSC::JSObject* createPrototype(JSC::ExecState*, JSC::JSGlobalObject*);
+    static bool getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
+    static bool getOwnPropertyDescriptor(JSC::JSObject*, JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertyDescriptor&);
+    static void destroy(JSC::JSCell*);
+    ~JSTestException();
+    static const JSC::ClassInfo s_info;
+
+    static JSC::Structure* createStructure(JSC::JSGlobalData& globalData, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
+    {
+        return JSC::Structure::create(globalData, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), &s_info);
+    }
+
+    static JSC::JSValue getConstructor(JSC::ExecState*, JSC::JSGlobalObject*);
+    TestException* impl() const { return m_impl; }
+    void releaseImpl() { m_impl->deref(); m_impl = 0; }
+
+    void releaseImplIfNotNull() { if (m_impl) { m_impl->deref(); m_impl = 0; } }
+
+private:
+    TestException* m_impl;
+protected:
+    JSTestException(JSC::Structure*, JSDOMGlobalObject*, PassRefPtr<TestException>);
+    void finishCreation(JSC::JSGlobalData&);
+    static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | Base::StructureFlags;
+};
+
+class JSTestExceptionOwner : public JSC::WeakHandleOwner {
+    virtual bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::SlotVisitor&);
+    virtual void finalize(JSC::Handle<JSC::Unknown>, void* context);
+};
+
+inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld*, TestException*)
+{
+    DEFINE_STATIC_LOCAL(JSTestExceptionOwner, jsTestExceptionOwner, ());
+    return &jsTestExceptionOwner;
+}
+
+inline void* wrapperContext(DOMWrapperWorld* world, TestException*)
+{
+    return world;
+}
+
+JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestException*);
+TestException* toTestException(JSC::JSValue);
+
+class JSTestExceptionPrototype : public JSC::JSNonFinalObject {
+public:
+    typedef JSC::JSNonFinalObject Base;
+    static JSC::JSObject* self(JSC::ExecState*, JSC::JSGlobalObject*);
+    static JSTestExceptionPrototype* create(JSC::JSGlobalData& globalData, JSC::JSGlobalObject* globalObject, JSC::Structure* structure)
+    {
+        JSTestExceptionPrototype* ptr = new (NotNull, JSC::allocateCell<JSTestExceptionPrototype>(globalData.heap)) JSTestExceptionPrototype(globalData, globalObject, structure);
+        ptr->finishCreation(globalData);
+        return ptr;
+    }
+
+    static const JSC::ClassInfo s_info;
+    static JSC::Structure* createStructure(JSC::JSGlobalData& globalData, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
+    {
+        return JSC::Structure::create(globalData, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), &s_info);
+    }
+
+private:
+    JSTestExceptionPrototype(JSC::JSGlobalData& globalData, JSC::JSGlobalObject*, JSC::Structure* structure) : JSC::JSNonFinalObject(globalData, structure) { }
+protected:
+    static const unsigned StructureFlags = Base::StructureFlags;
+};
+
+class JSTestExceptionConstructor : public DOMConstructorObject {
+private:
+    JSTestExceptionConstructor(JSC::Structure*, JSDOMGlobalObject*);
+    void finishCreation(JSC::ExecState*, JSDOMGlobalObject*);
+
+public:
+    typedef DOMConstructorObject Base;
+    static JSTestExceptionConstructor* create(JSC::ExecState* exec, JSC::Structure* structure, JSDOMGlobalObject* globalObject)
+    {
+        JSTestExceptionConstructor* ptr = new (NotNull, JSC::allocateCell<JSTestExceptionConstructor>(*exec->heap())) JSTestExceptionConstructor(structure, globalObject);
+        ptr->finishCreation(exec, globalObject);
+        return ptr;
+    }
+
+    static bool getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, const JSC::Identifier&, JSC::PropertySlot&);
+    static bool getOwnPropertyDescriptor(JSC::JSObject*, JSC::ExecState*, const JSC::Identifier&, JSC::PropertyDescriptor&);
+    static const JSC::ClassInfo s_info;
+    static JSC::Structure* createStructure(JSC::JSGlobalData& globalData, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
+    {
+        return JSC::Structure::create(globalData, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), &s_info);
+    }
+protected:
+    static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::ImplementsHasInstance | DOMConstructorObject::StructureFlags;
+};
+
+// Attributes
+
+JSC::JSValue jsTestExceptionName(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&);
+JSC::JSValue jsTestExceptionConstructor(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&);
+
+} // namespace WebCore
+
+#endif
diff --git a/Source/WebCore/bindings/scripts/test/ObjC/DOMTestException.h b/Source/WebCore/bindings/scripts/test/ObjC/DOMTestException.h
new file mode 100644 (file)
index 0000000..08e044d
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+#import <WebCore/DOMObject.h>
+
+#if WEBKIT_VERSION_MAX_ALLOWED >= WEBKIT_VERSION_LATEST
+
+@class NSString;
+
+@interface DOMTestException : DOMObject
+- (NSString *)name;
+@end
+
+#endif
diff --git a/Source/WebCore/bindings/scripts/test/ObjC/DOMTestException.mm b/Source/WebCore/bindings/scripts/test/ObjC/DOMTestException.mm
new file mode 100644 (file)
index 0000000..5ba3460
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * This file is part of the WebKit open source project.
+ * This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+#import "config.h"
+#import "DOMInternal.h"
+
+#import "DOMTestException.h"
+
+#import "DOMBlobInternal.h"
+#import "DOMCSSRuleInternal.h"
+#import "DOMCSSValueInternal.h"
+#import "DOMEventInternal.h"
+#import "DOMNodeInternal.h"
+#import "DOMStyleSheetInternal.h"
+#import "DOMTestExceptionInternal.h"
+#import "ExceptionHandlers.h"
+#import "JSMainThreadExecState.h"
+#import "KURL.h"
+#import "TestException.h"
+#import "ThreadCheck.h"
+#import "WebCoreObjCExtras.h"
+#import "WebScriptObjectPrivate.h"
+#import <wtf/GetPtr.h>
+
+#define IMPL reinterpret_cast<WebCore::TestException*>(_internal)
+
+@implementation DOMTestException
+
+- (void)dealloc
+{
+    if (WebCoreObjCScheduleDeallocateOnMainThread([DOMTestException class], self))
+        return;
+
+    if (_internal)
+        IMPL->deref();
+    [super dealloc];
+}
+
+- (void)finalize
+{
+    if (_internal)
+        IMPL->deref();
+    [super finalize];
+}
+
+- (NSString *)name
+{
+    WebCore::JSMainThreadNullState state;
+    return IMPL->name();
+}
+
+@end
+
+WebCore::TestException* core(DOMTestException *wrapper)
+{
+    return wrapper ? reinterpret_cast<WebCore::TestException*>(wrapper->_internal) : 0;
+}
+
+DOMTestException *kit(WebCore::TestException* value)
+{
+    { DOM_ASSERT_MAIN_THREAD(); WebCoreThreadViolationCheckRoundOne(); };
+    if (!value)
+        return nil;
+    if (DOMTestException *wrapper = getDOMWrapper(value))
+        return [[wrapper retain] autorelease];
+    DOMTestException *wrapper = [[DOMTestException alloc] _init];
+    wrapper->_internal = reinterpret_cast<DOMObjectInternal*>(value);
+    value->ref();
+    addDOMWrapper(wrapper, value);
+    return [wrapper autorelease];
+}
diff --git a/Source/WebCore/bindings/scripts/test/ObjC/DOMTestExceptionInternal.h b/Source/WebCore/bindings/scripts/test/ObjC/DOMTestExceptionInternal.h
new file mode 100644 (file)
index 0000000..54f38bc
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * This file is part of the WebKit open source project.
+ * This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+#import <WebCore/DOMTestException.h>
+
+#if WEBKIT_VERSION_MAX_ALLOWED >= WEBKIT_VERSION_LATEST
+
+namespace WebCore {
+    class TestException;
+}
+
+WebCore::TestException* core(DOMTestException *);
+DOMTestException *kit(WebCore::TestException*);
+
+#endif
diff --git a/Source/WebCore/bindings/scripts/test/TestException.idl b/Source/WebCore/bindings/scripts/test/TestException.idl
new file mode 100644 (file)
index 0000000..f34af00
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2012 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary formstrArg, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIEstrArg, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+module test {
+    exception TestException {
+       readonly attribute DOMString name;
+    };
+}
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestException.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestException.cpp
new file mode 100644 (file)
index 0000000..5d1777f
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+    This file is part of the WebKit open source project.
+    This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#include "config.h"
+#include "V8TestException.h"
+
+#include "RuntimeEnabledFeatures.h"
+#include "V8Binding.h"
+#include "V8BindingState.h"
+#include "V8DOMWrapper.h"
+#include "V8IsolatedContext.h"
+#include "V8Proxy.h"
+#include <wtf/UnusedParam.h>
+
+namespace WebCore {
+
+WrapperTypeInfo V8TestException::info = { V8TestException::GetTemplate, V8TestException::derefObject, 0, 0 };
+
+namespace TestExceptionV8Internal {
+
+template <typename T> void V8_USE(T) { }
+
+static v8::Handle<v8::Value> nameAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+    INC_STATS("DOM.TestException.name._get");
+    TestException* imp = V8TestException::toNative(info.Holder());
+    return v8String(imp->name(), info.GetIsolate());
+}
+
+} // namespace TestExceptionV8Internal
+
+static const BatchedAttribute TestExceptionAttrs[] = {
+    // Attribute 'name' (Type: 'readonly attribute' ExtAttr: '')
+    {"name", TestExceptionV8Internal::nameAttrGetter, 0, 0 /* no data */, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
+};
+
+static v8::Persistent<v8::FunctionTemplate> ConfigureV8TestExceptionTemplate(v8::Persistent<v8::FunctionTemplate> desc)
+{
+    desc->ReadOnlyPrototype();
+
+    v8::Local<v8::Signature> defaultSignature;
+    defaultSignature = configureTemplate(desc, "TestException", v8::Persistent<v8::FunctionTemplate>(), V8TestException::internalFieldCount,
+        TestExceptionAttrs, WTF_ARRAY_LENGTH(TestExceptionAttrs),
+        0, 0);
+    UNUSED_PARAM(defaultSignature); // In some cases, it will not be used.
+    
+
+    // Custom toString template
+    desc->Set(getToStringName(), getToStringTemplate());
+    return desc;
+}
+
+v8::Persistent<v8::FunctionTemplate> V8TestException::GetRawTemplate()
+{
+    V8BindingPerIsolateData* data = V8BindingPerIsolateData::current();
+    V8BindingPerIsolateData::TemplateMap::iterator result = data->rawTemplateMap().find(&info);
+    if (result != data->rawTemplateMap().end())
+        return result->second;
+
+    v8::HandleScope handleScope;
+    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
+    data->rawTemplateMap().add(&info, templ);
+    return templ;
+}
+
+v8::Persistent<v8::FunctionTemplate> V8TestException::GetTemplate()
+{
+    V8BindingPerIsolateData* data = V8BindingPerIsolateData::current();
+    V8BindingPerIsolateData::TemplateMap::iterator result = data->templateMap().find(&info);
+    if (result != data->templateMap().end())
+        return result->second;
+
+    v8::HandleScope handleScope;
+    v8::Persistent<v8::FunctionTemplate> templ =
+        ConfigureV8TestExceptionTemplate(GetRawTemplate());
+    data->templateMap().add(&info, templ);
+    return templ;
+}
+
+bool V8TestException::HasInstance(v8::Handle<v8::Value> value)
+{
+    return GetRawTemplate()->HasInstance(value);
+}
+
+
+v8::Handle<v8::Object> V8TestException::wrapSlow(PassRefPtr<TestException> impl, v8::Isolate* isolate)
+{
+    v8::Handle<v8::Object> wrapper;
+    V8Proxy* proxy = 0;
+    wrapper = V8DOMWrapper::instantiateV8Object(proxy, &info, impl.get());
+    if (UNLIKELY(wrapper.IsEmpty()))
+        return wrapper;
+
+    v8::Persistent<v8::Object> wrapperHandle = v8::Persistent<v8::Object>::New(wrapper);
+
+    if (!hasDependentLifetime)
+        wrapperHandle.MarkIndependent();
+    V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
+    return wrapper;
+}
+
+void V8TestException::derefObject(void* object)
+{
+    static_cast<TestException*>(object)->deref();
+}
+
+} // namespace WebCore
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestException.h b/Source/WebCore/bindings/scripts/test/V8/V8TestException.h
new file mode 100644 (file)
index 0000000..86d4a4f
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+    This file is part of the WebKit open source project.
+    This file has been generated by generate-bindings.pl. DO NOT MODIFY!
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#ifndef V8TestException_h
+#define V8TestException_h
+
+#include "TestException.h"
+#include "V8DOMWrapper.h"
+#include "WrapperTypeInfo.h"
+#include <v8.h>
+#include <wtf/HashMap.h>
+#include <wtf/text/StringHash.h>
+
+namespace WebCore {
+
+class V8TestException {
+public:
+    static const bool hasDependentLifetime = false;
+    static bool HasInstance(v8::Handle<v8::Value>);
+    static v8::Persistent<v8::FunctionTemplate> GetRawTemplate();
+    static v8::Persistent<v8::FunctionTemplate> GetTemplate();
+    static TestException* toNative(v8::Handle<v8::Object> object)
+    {
+        return reinterpret_cast<TestException*>(object->GetPointerFromInternalField(v8DOMWrapperObjectIndex));
+    }
+    inline static v8::Handle<v8::Object> wrap(TestException*, v8::Isolate* = 0);
+    static void derefObject(void*);
+    static WrapperTypeInfo info;
+    static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0;
+private:
+    static v8::Handle<v8::Object> wrapSlow(PassRefPtr<TestException>, v8::Isolate*);
+};
+
+v8::Handle<v8::Object> V8TestException::wrap(TestException* impl, v8::Isolate* isolate)
+{
+        v8::Handle<v8::Object> wrapper = getDOMObjectMap().get(impl);
+        if (!wrapper.IsEmpty())
+            return wrapper;
+    return V8TestException::wrapSlow(impl, isolate);
+}
+
+inline v8::Handle<v8::Value> toV8(TestException* impl, v8::Isolate* isolate = 0)
+{
+    if (!impl)
+        return v8::Null();
+    return V8TestException::wrap(impl, isolate);
+}
+inline v8::Handle<v8::Value> toV8(PassRefPtr< TestException > impl, v8::Isolate* isolate = 0)
+{
+    return toV8(impl.get(), isolate);
+}
+
+}
+
+#endif // V8TestException_h
index add5bd9..387bb6b 100644 (file)
@@ -28,7 +28,7 @@
 
 module core {
 
-    interface [
+    exception [
         JSNoStaticTables,
         DoNotCheckConstants,
         InterfaceName=DOMException
index 28bcf91..9d105cb 100644 (file)
@@ -29,7 +29,7 @@
 module events {
 
     // Introduced in DOM Level 2:
-    interface [
+    exception [
         JSNoStaticTables,
         DoNotCheckConstants
     ] EventException {
index b2dfc6c..7ef8c4a 100644 (file)
@@ -19,7 +19,7 @@
 
 module ranges {
 
-    interface [
+    exception [
         DoNotCheckConstants
     ] RangeException {
 
index 65de225..33244f9 100644 (file)
@@ -29,7 +29,7 @@
  */
 
 module html {
-    interface [
+    exception [
         Conditional=BLOB|FILE_SYSTEM,
         DoNotCheckConstants,
         JSNoStaticTables
index 0a10cd8..50040df 100644 (file)
@@ -29,7 +29,7 @@
  */
 
 module html {
-    interface [
+    exception [
         Conditional=BLOB,
         DoNotCheckConstants,
         JSNoStaticTables
index 9b3a6a8..57255c3 100644 (file)
@@ -20,7 +20,7 @@
 
 module svg {
 
-    interface [
+    exception [
         Conditional=SVG,
         DoNotCheckConstants
     ] SVGException {
index c448155..a0be458 100644 (file)
@@ -28,7 +28,7 @@
 
 module xml {
 
-    interface [
+    exception [
         JSNoStaticTables,
         DoNotCheckConstants
     ] XMLHttpRequestException {
index 8196cbe..cec0c54 100644 (file)
@@ -28,7 +28,7 @@
 
 module xpath {
 
-    interface [
+    exception [
         DoNotCheckConstants
     ] XPathException {