Unreviewed, rolling out r134345.
http://trac.webkit.org/changeset/134345
https://bugs.webkit.org/show_bug.cgi?id=102106

Incomplete support for NATIVE_TYPE_ERR in objc and other
bindings (Requested by jsbell on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-11-13

Source/WebCore:

* Modules/mediastream/MediaConstraintsImpl.cpp:
(WebCore::MediaConstraintsImpl::create):
* Modules/mediastream/MediaStreamTrackList.cpp:
(WebCore::MediaStreamTrackList::add):
(WebCore::MediaStreamTrackList::remove):
* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::setBinaryType):
* Modules/mediastream/RTCIceCandidate.cpp:
(WebCore::RTCIceCandidate::create):
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::parseConfiguration):
(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::createAnswer):
(WebCore::RTCPeerConnection::setLocalDescription):
(WebCore::RTCPeerConnection::setRemoteDescription):
(WebCore::RTCPeerConnection::addIceCandidate):
(WebCore::RTCPeerConnection::addStream):
(WebCore::RTCPeerConnection::removeStream):
* Modules/mediastream/RTCSessionDescription.cpp:
(WebCore::RTCSessionDescription::create):
(WebCore::RTCSessionDescription::setType):
* bindings/js/CallbackFunction.cpp:
(WebCore::checkFunctionOnlyCallback):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::create):
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::add):
* bindings/js/JSHTMLSelectElementCustom.cpp:
(WebCore::selectIndexSetter):
* bindings/js/JSMutationObserverCustom.cpp:
(WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
* bindings/js/JSSQLResultSetRowListCustom.cpp:
(WebCore::JSSQLResultSetRowList::item):
* bindings/js/JSSQLTransactionCustom.cpp:
(WebCore::JSSQLTransaction::executeSql):
* bindings/js/JSSQLTransactionSyncCustom.cpp:
(WebCore::JSSQLTransactionSync::executeSql):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
* bindings/scripts/CodeGeneratorObjC.pm:
(GenerateImplementation):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateFunctionCallString):
* bindings/v8/V8Callback.h:
(WebCore::createFunctionOnlyCallback):
* bindings/v8/V8Collection.cpp:
(WebCore::toOptionsCollectionSetter):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateCallback):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::addCallback):
* bindings/v8/custom/V8MutationObserverCustom.cpp:
(WebCore::V8MutationObserver::constructorCallback):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::V8SQLTransaction::executeSqlCallback):
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
(WebCore::V8SQLTransactionSync::executeSqlCallback):
* dom/DOMCoreException.idl:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::insertAdjacentElement):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::webkitAddKey):
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::add):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
(WebCore::CanvasRenderingContext2D::createPattern):
(WebCore::CanvasRenderingContext2D::putImageData):
(WebCore::CanvasRenderingContext2D::webkitPutImageDataHD):
* page/Crypto.cpp:
(WebCore::Crypto::getRandomValues):
* page/DOMSelection.cpp:
(WebCore::DOMSelection::extend):
* svg/properties/SVGTransformListPropertyTearOff.h:
(WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):

LayoutTests:

* canvas/philip/tests/2d.drawImage.null.html:
* canvas/philip/tests/2d.imageData.put.null.html:
* canvas/philip/tests/2d.pattern.image.null.html:
* editing/selection/extend-expected.txt:
* fast/dom/Geolocation/argument-types-expected.txt:
* fast/dom/Geolocation/not-enough-arguments-expected.txt:
* fast/dom/Geolocation/script-tests/argument-types.js:
(test):
* fast/dom/HTMLSelectElement/select-selectedIndex-expected.txt:
* fast/dom/HTMLSelectElement/select-selectedIndex-multiple-expected.txt:
* fast/js/select-options-add-expected.txt:
* fast/mediastream/RTCIceCandidate-expected.txt:
* fast/mediastream/RTCPeerConnection-expected.txt:
* fast/mediastream/RTCSessionDescription-expected.txt:
* media/encrypted-media/encrypted-media-syntax-expected.txt:
* media/encrypted-media/encrypted-media-syntax.html:
* media/video-test.js:
* platform/chromium/fast/dynamic/insertAdjacentElement-expected.txt:
* security/crypto-random-values-types-expected.txt:
* svg/dom/SVGTransformList-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index da03e40..27243db 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,33 @@
+2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r134345.
+        http://trac.webkit.org/changeset/134345
+        https://bugs.webkit.org/show_bug.cgi?id=102106
+
+        Incomplete support for NATIVE_TYPE_ERR in objc and other
+        bindings (Requested by jsbell on #webkit).
+
+        * canvas/philip/tests/2d.drawImage.null.html:
+        * canvas/philip/tests/2d.imageData.put.null.html:
+        * canvas/philip/tests/2d.pattern.image.null.html:
+        * editing/selection/extend-expected.txt:
+        * fast/dom/Geolocation/argument-types-expected.txt:
+        * fast/dom/Geolocation/not-enough-arguments-expected.txt:
+        * fast/dom/Geolocation/script-tests/argument-types.js:
+        (test):
+        * fast/dom/HTMLSelectElement/select-selectedIndex-expected.txt:
+        * fast/dom/HTMLSelectElement/select-selectedIndex-multiple-expected.txt:
+        * fast/js/select-options-add-expected.txt:
+        * fast/mediastream/RTCIceCandidate-expected.txt:
+        * fast/mediastream/RTCPeerConnection-expected.txt:
+        * fast/mediastream/RTCSessionDescription-expected.txt:
+        * media/encrypted-media/encrypted-media-syntax-expected.txt:
+        * media/encrypted-media/encrypted-media-syntax.html:
+        * media/video-test.js:
+        * platform/chromium/fast/dynamic/insertAdjacentElement-expected.txt:
+        * security/crypto-random-values-types-expected.txt:
+        * svg/dom/SVGTransformList-expected.txt:
+
 2012-11-13  Joshua Bell  <jsbell@chromium.org>
 
         IndexedDB: storage/indexeddb/mozilla/add-twice-failure.html is flaky following r134252
diff --git a/LayoutTests/canvas/philip/tests/2d.drawImage.null.html b/LayoutTests/canvas/philip/tests/2d.drawImage.null.html
index 8a6c9e0..9680227 100644
--- a/LayoutTests/canvas/philip/tests/2d.drawImage.null.html
+++ b/LayoutTests/canvas/philip/tests/2d.drawImage.null.html
@@ -14,7 +14,7 @@
 
 try { var _thrown = false;
   ctx.drawImage(null, 0, 0);
-} catch (e) { if (e.name != "TypeError") _fail("Failed assertion: expected exception of type TypeError, got: "+e.name); _thrown = true; } finally { _assert(_thrown, "should throw exception of type TypeError: ctx.drawImage(null, 0, 0)"); }
+} catch (e) { if (e.code != DOMException.TYPE_MISMATCH_ERR) _fail("Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: "+e.message); _thrown = true; } finally { _assert(_thrown, "should throw exception of type TYPE_MISMATCH_ERR: ctx.drawImage(null, 0, 0)"); }
 
 
 });
diff --git a/LayoutTests/canvas/philip/tests/2d.imageData.put.null.html b/LayoutTests/canvas/philip/tests/2d.imageData.put.null.html
index 42f0905..85f23a6 100644
--- a/LayoutTests/canvas/philip/tests/2d.imageData.put.null.html
+++ b/LayoutTests/canvas/philip/tests/2d.imageData.put.null.html
@@ -14,7 +14,7 @@
 
 try { var _thrown = false;
   ctx.putImageData(null, 0, 0);
-} catch (e) { if (e.name != "TypeError") _fail("Failed assertion: expected exception of type TypeError, got: "+e.name); _thrown = true; } finally { _assert(_thrown, "should throw exception of type TypeError: ctx.putImageData(null, 0, 0)"); }
+} catch (e) { if (e.code != DOMException.TYPE_MISMATCH_ERR) _fail("Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: "+e.message); _thrown = true; } finally { _assert(_thrown, "should throw exception of type TYPE_MISMATCH_ERR: ctx.putImageData(null, 0, 0)"); }
 
 
 });
diff --git a/LayoutTests/canvas/philip/tests/2d.pattern.image.null.html b/LayoutTests/canvas/philip/tests/2d.pattern.image.null.html
index 260d36f..af4eed7 100644
--- a/LayoutTests/canvas/philip/tests/2d.pattern.image.null.html
+++ b/LayoutTests/canvas/philip/tests/2d.pattern.image.null.html
@@ -14,7 +14,7 @@
 
 try { var _thrown = false;
   ctx.createPattern(null, 'repeat');
-} catch (e) { if (e.name != "TypeError") _fail("Failed assertion: expected exception of type TypeError, got: "+e.name); _thrown = true; } finally { _assert(_thrown, "should throw exception of type TypeError: ctx.createPattern(null, 'repeat')"); }
+} catch (e) { if (e.code != DOMException.TYPE_MISMATCH_ERR) _fail("Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: "+e.message); _thrown = true; } finally { _assert(_thrown, "should throw exception of type TYPE_MISMATCH_ERR: ctx.createPattern(null, 'repeat')"); }
 
 
 });
diff --git a/LayoutTests/editing/selection/extend-expected.txt b/LayoutTests/editing/selection/extend-expected.txt
index 8e72277..0a45cfe 100644
--- a/LayoutTests/editing/selection/extend-expected.txt
+++ b/LayoutTests/editing/selection/extend-expected.txt
@@ -4,5 +4,5 @@
 Success: s.extend(span2.firstChild, -1) raised Error: INDEX_SIZE_ERR: DOM Exception 1.
 Success: window.getSelection() is b.
 Success: window.getSelection() is arbaz.
-Success: s.extend() raised TypeError: Type error.
-Success: s.extend(null, 0) raised TypeError: Type error.
+Success: s.extend() raised Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+Success: s.extend(null, 0) raised Error: TYPE_MISMATCH_ERR: DOM Exception 17.
diff --git a/LayoutTests/fast/dom/Geolocation/argument-types-expected.txt b/LayoutTests/fast/dom/Geolocation/argument-types-expected.txt
index 3cdd84a..259e1f8 100644
--- a/LayoutTests/fast/dom/Geolocation/argument-types-expected.txt
+++ b/LayoutTests/fast/dom/Geolocation/argument-types-expected.txt
@@ -3,31 +3,31 @@
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS navigator.geolocation.getCurrentPosition() threw exception TypeError: Type error.
-PASS navigator.geolocation.getCurrentPosition(undefined) threw exception TypeError: Type error.
-PASS navigator.geolocation.getCurrentPosition(null) threw exception TypeError: Type error.
-PASS navigator.geolocation.getCurrentPosition({}) threw exception TypeError: Type error.
-PASS navigator.geolocation.getCurrentPosition(objectThrowingException) threw exception TypeError: Type error.
+PASS navigator.geolocation.getCurrentPosition() threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS navigator.geolocation.getCurrentPosition(undefined) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS navigator.geolocation.getCurrentPosition(null) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS navigator.geolocation.getCurrentPosition({}) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS navigator.geolocation.getCurrentPosition(objectThrowingException) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(Math.abs) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(testRunner.setGeolocationPermission) did not throw exception.
-PASS navigator.geolocation.getCurrentPosition(true) threw exception TypeError: Type error.
-PASS navigator.geolocation.getCurrentPosition(42) threw exception TypeError: Type error.
-PASS navigator.geolocation.getCurrentPosition(Infinity) threw exception TypeError: Type error.
-PASS navigator.geolocation.getCurrentPosition(-Infinity) threw exception TypeError: Type error.
-PASS navigator.geolocation.getCurrentPosition("string") threw exception TypeError: Type error.
+PASS navigator.geolocation.getCurrentPosition(true) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS navigator.geolocation.getCurrentPosition(42) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS navigator.geolocation.getCurrentPosition(Infinity) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS navigator.geolocation.getCurrentPosition(-Infinity) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS navigator.geolocation.getCurrentPosition("string") threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, null) did not throw exception.
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, {}) threw exception TypeError: Type error.
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, objectThrowingException) threw exception TypeError: Type error.
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, {}) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, objectThrowingException) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, emptyFunction) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, Math.abs) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, testRunner.setGeolocationPermission) did not throw exception.
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, true) threw exception TypeError: Type error.
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, 42) threw exception TypeError: Type error.
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, Infinity) threw exception TypeError: Type error.
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, -Infinity) threw exception TypeError: Type error.
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, "string") threw exception TypeError: Type error.
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, true) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, 42) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, Infinity) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, -Infinity) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, "string") threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, undefined) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, null) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, {}) did not throw exception.
diff --git a/LayoutTests/fast/dom/Geolocation/not-enough-arguments-expected.txt b/LayoutTests/fast/dom/Geolocation/not-enough-arguments-expected.txt
index d0b5c68..1bd230f 100644
--- a/LayoutTests/fast/dom/Geolocation/not-enough-arguments-expected.txt
+++ b/LayoutTests/fast/dom/Geolocation/not-enough-arguments-expected.txt
@@ -3,8 +3,8 @@
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS window.navigator.geolocation.getCurrentPosition() threw exception TypeError: Type error.
-PASS window.navigator.geolocation.watchPosition() threw exception TypeError: Type error.
+PASS window.navigator.geolocation.getCurrentPosition() threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS window.navigator.geolocation.watchPosition() threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS window.navigator.geolocation.clearWatch() threw exception TypeError: Not enough arguments.
 PASS successfullyParsed is true
 
diff --git a/LayoutTests/fast/dom/Geolocation/script-tests/argument-types.js b/LayoutTests/fast/dom/Geolocation/script-tests/argument-types.js
index 6e9dea6..6161c84 100644
--- a/LayoutTests/fast/dom/Geolocation/script-tests/argument-types.js
+++ b/LayoutTests/fast/dom/Geolocation/script-tests/argument-types.js
@@ -13,9 +13,9 @@
 function test(expression, expressionShouldThrow, expectedException) {
     if (expressionShouldThrow) {
         if (expectedException)
-            shouldThrow(expression, '"' + expectedException + '"');
+            shouldThrow(expression, '(function() { return "' + expectedException + '"; })();');
         else
-            shouldThrow(expression, '"TypeError: Type error"');
+            shouldThrow(expression, '(function() { return "Error: TYPE_MISMATCH_ERR: DOM Exception 17"; })();');
     } else {
         shouldNotThrow(expression);
     }
diff --git a/LayoutTests/fast/dom/HTMLSelectElement/select-selectedIndex-expected.txt b/LayoutTests/fast/dom/HTMLSelectElement/select-selectedIndex-expected.txt
index 52bccf6..b2f37d7 100644
--- a/LayoutTests/fast/dom/HTMLSelectElement/select-selectedIndex-expected.txt
+++ b/LayoutTests/fast/dom/HTMLSelectElement/select-selectedIndex-expected.txt
@@ -57,7 +57,7 @@
 PASS mySelect.options.length is 10
 PASS mySelect.selectedIndex is -1
 19) trying to set an element that's not an option: select element
-PASS mySelect.options[10] = mySelect; threw exception TypeError: Type error.
+PASS mySelect.options[10] = mySelect; threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS mySelect.options.length is 10
 PASS mySelect.selectedIndex is -1
 20) trying to set a option element using an invalid index: negative infinity
diff --git a/LayoutTests/fast/dom/HTMLSelectElement/select-selectedIndex-multiple-expected.txt b/LayoutTests/fast/dom/HTMLSelectElement/select-selectedIndex-multiple-expected.txt
index f86a6dd..ba98f3d 100644
--- a/LayoutTests/fast/dom/HTMLSelectElement/select-selectedIndex-multiple-expected.txt
+++ b/LayoutTests/fast/dom/HTMLSelectElement/select-selectedIndex-multiple-expected.txt
@@ -57,7 +57,7 @@
 PASS mySelect.options.length is 10
 PASS mySelect.selectedIndex is 0
 19) trying to set an element that's not an option: select element
-PASS mySelect.options[10] = mySelect; threw exception TypeError: Type error.
+PASS mySelect.options[10] = mySelect; threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS mySelect.options.length is 10
 PASS mySelect.selectedIndex is 0
 20) trying to set a option element using an invalid index: negative infinity
diff --git a/LayoutTests/fast/js/select-options-add-expected.txt b/LayoutTests/fast/js/select-options-add-expected.txt
index 585b5d2..afc6d13 100644
--- a/LayoutTests/fast/js/select-options-add-expected.txt
+++ b/LayoutTests/fast/js/select-options-add-expected.txt
@@ -29,47 +29,47 @@
 PASS select1.options[2].textContent is 'C'
 
 1.4 Add a non-Option element
-PASS select1.options.add(option1) threw exception TypeError: Type error.
+PASS select1.options.add(option1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select1.options.length is 3
 PASS select1.selectedIndex is 0
 
 1.5 Add a non-element (string)
-PASS select1.options.add(option1) threw exception TypeError: Type error.
+PASS select1.options.add(option1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select1.options.length is 3
 PASS select1.selectedIndex is 0
 
 1.6 Add a non-element (number)
-PASS select1.options.add(option1) threw exception TypeError: Type error.
+PASS select1.options.add(option1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select1.options.length is 3
 PASS select1.selectedIndex is 0
 
 1.7 Add a non-element (boolean)
-PASS select1.options.add(option1) threw exception TypeError: Type error.
+PASS select1.options.add(option1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select1.options.length is 3
 PASS select1.selectedIndex is 0
 
 1.8 Add undefined
-PASS select1.options.add(option1) threw exception TypeError: Type error.
+PASS select1.options.add(option1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select1.options.length is 3
 PASS select1.selectedIndex is 0
 
 1.9 Add null
-PASS select1.options.add(option1) threw exception TypeError: Type error.
+PASS select1.options.add(option1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select1.options.length is 3
 PASS select1.selectedIndex is 0
 
 1.10 Add negative infinity
-PASS select1.options.add(option1) threw exception TypeError: Type error.
+PASS select1.options.add(option1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select1.options.length is 3
 PASS select1.selectedIndex is 0
 
 1.11 Add NaN
-PASS select1.options.add(option1) threw exception TypeError: Type error.
+PASS select1.options.add(option1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select1.options.length is 3
 PASS select1.selectedIndex is 0
 
 1.12 Add positive infinity
-PASS select1.options.add(option1) threw exception TypeError: Type error.
+PASS select1.options.add(option1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select1.options.length is 3
 PASS select1.selectedIndex is 0
 
@@ -163,62 +163,62 @@
 PASS select2.selectedIndex is 1
 
 2.9 Add an Option at index -Infinity
-PASS select2.options.add(option2, -1/0) threw exception TypeError: Type error.
+PASS select2.options.add(option2, -1/0) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select2.options.length is 7
 PASS select2.selectedIndex is 1
 
 2.10 Add an Option at index NaN
-PASS select2.options.add(option2, 0/0) threw exception TypeError: Type error.
+PASS select2.options.add(option2, 0/0) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select2.options.length is 7
 PASS select2.selectedIndex is 1
 
 2.11 Add an Option at index Infinity
-PASS select2.options.add(option2, 1/0) threw exception TypeError: Type error.
+PASS select2.options.add(option2, 1/0) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select2.options.length is 7
 PASS select2.selectedIndex is 1
 
 2.12 Add a non-Option element
-PASS select2.options.add(option2, 1) threw exception TypeError: Type error.
+PASS select2.options.add(option2, 1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select2.options.length is 7
 PASS select2.selectedIndex is 1
 
 2.13 Add a non-element (string)
-PASS select2.options.add(option2, 1) threw exception TypeError: Type error.
+PASS select2.options.add(option2, 1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select2.options.length is 7
 PASS select2.selectedIndex is 1
 
 2.14 Add a non-element (number)
-PASS select2.options.add(option2, 1) threw exception TypeError: Type error.
+PASS select2.options.add(option2, 1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select2.options.length is 7
 PASS select2.selectedIndex is 1
 
 2.15 Add a non-element (boolean)
-PASS select2.options.add(option2, 1) threw exception TypeError: Type error.
+PASS select2.options.add(option2, 1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select2.options.length is 7
 PASS select2.selectedIndex is 1
 
 2.16 Add undefined
-PASS select2.options.add(option2, 1) threw exception TypeError: Type error.
+PASS select2.options.add(option2, 1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select2.options.length is 7
 PASS select2.selectedIndex is 1
 
 2.17 Add null
-PASS select2.options.add(option2, 1) threw exception TypeError: Type error.
+PASS select2.options.add(option2, 1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select2.options.length is 7
 PASS select2.selectedIndex is 1
 
 2.18 Add negative infinity
-PASS select2.options.add(option2, 1) threw exception TypeError: Type error.
+PASS select2.options.add(option2, 1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select2.options.length is 7
 PASS select2.selectedIndex is 1
 
 2.19 Add NaN
-PASS select2.options.add(option2, 1) threw exception TypeError: Type error.
+PASS select2.options.add(option2, 1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select2.options.length is 7
 PASS select2.selectedIndex is 1
 
 2.20 Add positive infinity
-PASS select2.options.add(option2, 1) threw exception TypeError: Type error.
+PASS select2.options.add(option2, 1) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS select2.options.length is 7
 PASS select2.selectedIndex is 1
 
diff --git a/LayoutTests/fast/mediastream/RTCIceCandidate-expected.txt b/LayoutTests/fast/mediastream/RTCIceCandidate-expected.txt
index e90f04c..6216e8e 100644
--- a/LayoutTests/fast/mediastream/RTCIceCandidate-expected.txt
+++ b/LayoutTests/fast/mediastream/RTCIceCandidate-expected.txt
@@ -12,7 +12,7 @@
 PASS candidate.candidate is "foo"
 PASS candidate.sdpMid is "bar"
 PASS candidate.sdpMLineIndex is 6
-PASS new RTCIceCandidate({}); threw exception TypeError: Type error.
+PASS new RTCIceCandidate({}); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS new RTCIceCandidate(5); threw exception TypeError: Not an object..
 PASS new RTCIceCandidate("foobar"); threw exception TypeError: Not an object..
 PASS new RTCIceCandidate(candidate:""); threw exception SyntaxError: Unexpected token :.
diff --git a/LayoutTests/fast/mediastream/RTCPeerConnection-expected.txt b/LayoutTests/fast/mediastream/RTCPeerConnection-expected.txt
index e3fd22b..c7a381f 100644
--- a/LayoutTests/fast/mediastream/RTCPeerConnection-expected.txt
+++ b/LayoutTests/fast/mediastream/RTCPeerConnection-expected.txt
@@ -14,11 +14,11 @@
 PASS new webkitRTCPeerConnection({iceServers:[{url:'stun:foo.com'}]}, null); did not throw exception.
 PASS new webkitRTCPeerConnection({iceServers:[{url:'turn:foo.com', credential:'x'}]}, null); did not throw exception.
 PASS new webkitRTCPeerConnection({iceServers:[{url:'turn:foo.com', credential:'x'},{url:'stun:bar.com'}]}, null); did not throw exception.
-PASS new webkitRTCPeerConnection({fooServers:[]}, null); threw exception TypeError: Type error.
-PASS new webkitRTCPeerConnection({iceServers:true}, null); threw exception TypeError: Type error.
-PASS new webkitRTCPeerConnection({iceServers:[1, 2, 3]}, null); threw exception TypeError: Type error.
-PASS new webkitRTCPeerConnection({iceServers:[{}]}, null); threw exception TypeError: Type error.
-PASS new webkitRTCPeerConnection({iceServers:[{url:'foo'}]}, null); threw exception TypeError: Type error.
+PASS new webkitRTCPeerConnection({fooServers:[]}, null); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS new webkitRTCPeerConnection({iceServers:true}, null); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS new webkitRTCPeerConnection({iceServers:[1, 2, 3]}, null); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS new webkitRTCPeerConnection({iceServers:[{}]}, null); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS new webkitRTCPeerConnection({iceServers:[{url:'foo'}]}, null); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS new webkitRTCPeerConnection(null, {mandatory:{valid_and_supported_1:1}}); did not throw exception.
 PASS new webkitRTCPeerConnection(null, {mandatory:{valid_and_supported_1:1, valid_and_supported_2:1}}); did not throw exception.
 PASS new webkitRTCPeerConnection(null, {optional:[{valid_and_supported_1:0}]}); did not throw exception.
@@ -28,12 +28,12 @@
 PASS new webkitRTCPeerConnection(null, {mandatory:{invalid:1}}); threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9.
 PASS new webkitRTCPeerConnection(null, {mandatory:{valid_but_unsupported_1:1}}); threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9.
 PASS new webkitRTCPeerConnection(null, {mandatory:{valid_but_unsupported_1:1, valid_and_supported_1:1}}); threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9.
-PASS new webkitRTCPeerConnection(null, {optional:{valid_and_supported_1:0}}); threw exception TypeError: Type error.
-PASS new webkitRTCPeerConnection(null, {optional:[{valid_and_supported_1:0,valid_and_supported_2:0}]}); threw exception TypeError: Type error.
+PASS new webkitRTCPeerConnection(null, {optional:{valid_and_supported_1:0}}); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS new webkitRTCPeerConnection(null, {optional:[{valid_and_supported_1:0,valid_and_supported_2:0}]}); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS new webkitRTCPeerConnection(null, {optional:[{invalid:0}]}); threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9.
-PASS new webkitRTCPeerConnection(null, {valid_and_supported_1:1}); threw exception TypeError: Type error.
-PASS new webkitRTCPeerConnection(null, {valid_but_unsupported_1:1}); threw exception TypeError: Type error.
-PASS new webkitRTCPeerConnection(null, {valid_and_supported_2:1, mandatory:{valid_and_supported_1:1}}); threw exception TypeError: Type error.
+PASS new webkitRTCPeerConnection(null, {valid_and_supported_1:1}); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS new webkitRTCPeerConnection(null, {valid_but_unsupported_1:1}); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS new webkitRTCPeerConnection(null, {valid_and_supported_2:1, mandatory:{valid_and_supported_1:1}}); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/mediastream/RTCSessionDescription-expected.txt b/LayoutTests/fast/mediastream/RTCSessionDescription-expected.txt
index bab4211..6981f07 100644
--- a/LayoutTests/fast/mediastream/RTCSessionDescription-expected.txt
+++ b/LayoutTests/fast/mediastream/RTCSessionDescription-expected.txt
@@ -10,11 +10,11 @@
 PASS sessionDescription = new RTCSessionDescription(initializer); did not throw exception.
 PASS sessionDescription.type is "offer"
 PASS sessionDescription.sdp is "foobar"
-PASS new RTCSessionDescription({}); threw exception TypeError: Type error.
+PASS new RTCSessionDescription({}); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS new RTCSessionDescription(5); threw exception TypeError: Not an object..
 PASS new RTCSessionDescription('foobar'); threw exception TypeError: Not an object..
-PASS new RTCSessionDescription({type:'foobar', sdp:'x'}); threw exception TypeError: Type error.
-PASS new RTCSessionDescription({type:'offer', sdp:''}); threw exception TypeError: Type error.
+PASS new RTCSessionDescription({type:'foobar', sdp:'x'}); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS new RTCSessionDescription({type:'offer', sdp:''}); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS new RTCSessionDescription({type:'offer', sdp:'x'}); did not throw exception.
 PASS new RTCSessionDescription({type:'answer', sdp:'x'}); did not throw exception.
 PASS new RTCSessionDescription({type:'pranswer', sdp:'x'}); did not throw exception.
diff --git a/LayoutTests/media/encrypted-media/encrypted-media-syntax-expected.txt b/LayoutTests/media/encrypted-media/encrypted-media-syntax-expected.txt
index 35fd7f8..fb24787 100644
--- a/LayoutTests/media/encrypted-media/encrypted-media-syntax-expected.txt
+++ b/LayoutTests/media/encrypted-media/encrypted-media-syntax-expected.txt
@@ -25,7 +25,7 @@
 TEST(video.webkitAddKey('webkit-org.w3.clearkey', undefined)) THROWS(DOMException.SYNTAX_ERR) OK
 
 0-length key is caught before load state is checked.
-TEST(video.webkitAddKey('webkit-org.w3.clearkey', new Uint8Array())) THROWS('TypeError') OK
+TEST(video.webkitAddKey('webkit-org.w3.clearkey', new Uint8Array())) THROWS(DOMException.TYPE_MISMATCH_ERR) OK
 
 Key system validity is not checked before loading.
 TEST(video.webkitGenerateKeyRequest('com.example.invalid')) THROWS(DOMException.INVALID_STATE_ERR) OK
diff --git a/LayoutTests/media/encrypted-media/encrypted-media-syntax.html b/LayoutTests/media/encrypted-media/encrypted-media-syntax.html
index bb19f82..3764833 100644
--- a/LayoutTests/media/encrypted-media/encrypted-media-syntax.html
+++ b/LayoutTests/media/encrypted-media/encrypted-media-syntax.html
@@ -61,7 +61,7 @@
             testException("video.webkitAddKey('webkit-org.w3.clearkey', undefined)", "DOMException.SYNTAX_ERR");
 
             consoleWrite("<br>0-length key is caught before load state is checked.");
-            testError("video.webkitAddKey('webkit-org.w3.clearkey', new Uint8Array())", "'TypeError'");
+            testException("video.webkitAddKey('webkit-org.w3.clearkey', new Uint8Array())", "DOMException.TYPE_MISMATCH_ERR");
 
             consoleWrite("<br>Key system validity is not checked before loading.");
             testException("video.webkitGenerateKeyRequest('com.example.invalid')", "DOMException.INVALID_STATE_ERR");
diff --git a/LayoutTests/media/video-test.js b/LayoutTests/media/video-test.js
index ef1e13c..dceed6f 100644
--- a/LayoutTests/media/video-test.js
+++ b/LayoutTests/media/video-test.js
@@ -211,15 +211,6 @@
     }
 }
 
-function testError(testString, errorName)
-{
-    try {
-        eval(testString);
-    } catch (ex) {
-        logResult(ex.name == eval(errorName), "TEST(" + testString + ") THROWS("+errorName+")");
-    }
-}
-
 var testEnded = false;
 
 function endTest()
diff --git a/LayoutTests/platform/chromium/fast/dynamic/insertAdjacentElement-expected.txt b/LayoutTests/platform/chromium/fast/dynamic/insertAdjacentElement-expected.txt
index 18d15f4..6f76b34 100644
--- a/LayoutTests/platform/chromium/fast/dynamic/insertAdjacentElement-expected.txt
+++ b/LayoutTests/platform/chromium/fast/dynamic/insertAdjacentElement-expected.txt
@@ -1,5 +1,5 @@
 Caught expected exception: Error: NOT_SUPPORTED_ERR: DOM Exception 9
-Caught expected exception: TypeError: Type error
+Caught expected exception: Error: TYPE_MISMATCH_ERR: DOM Exception 17
 1 (black) 2 (green) 3 (green) 4 (black) 
 
 PASS
diff --git a/LayoutTests/security/crypto-random-values-types-expected.txt b/LayoutTests/security/crypto-random-values-types-expected.txt
index aa90eac..ba73d703a 100644
--- a/LayoutTests/security/crypto-random-values-types-expected.txt
+++ b/LayoutTests/security/crypto-random-values-types-expected.txt
@@ -11,7 +11,7 @@
 PASS crypto.getRandomValues(new Int16Array(3)) is undefined.
 PASS crypto.getRandomValues(new Uint32Array(3)) is undefined.
 PASS crypto.getRandomValues(new Int32Array(3)) is undefined.
-PASS crypto.getRandomValues(new Float32Array(3)) threw exception TypeError: Type error.
+PASS crypto.getRandomValues(new Float32Array(3)) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/svg/dom/SVGTransformList-expected.txt b/LayoutTests/svg/dom/SVGTransformList-expected.txt
index b4d1129..7ac93f6 100644
--- a/LayoutTests/svg/dom/SVGTransformList-expected.txt
+++ b/LayoutTests/svg/dom/SVGTransformList-expected.txt
@@ -11,8 +11,8 @@
 PASS transform.createSVGTransformFromMatrix('aString') threw exception TypeError: Type error.
 PASS transform.createSVGTransformFromMatrix(1) threw exception TypeError: Type error.
 PASS transform.createSVGTransformFromMatrix(true) threw exception TypeError: Type error.
-PASS transform.createSVGTransformFromMatrix(undefined) threw exception TypeError: Type error.
-PASS transform.createSVGTransformFromMatrix(null) threw exception TypeError: Type error.
+PASS transform.createSVGTransformFromMatrix(undefined) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS transform.createSVGTransformFromMatrix(null) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 64995fa..51e970b 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,88 @@
+2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r134345.
+        http://trac.webkit.org/changeset/134345
+        https://bugs.webkit.org/show_bug.cgi?id=102106
+
+        Incomplete support for NATIVE_TYPE_ERR in objc and other
+        bindings (Requested by jsbell on #webkit).
+
+        * Modules/mediastream/MediaConstraintsImpl.cpp:
+        (WebCore::MediaConstraintsImpl::create):
+        * Modules/mediastream/MediaStreamTrackList.cpp:
+        (WebCore::MediaStreamTrackList::add):
+        (WebCore::MediaStreamTrackList::remove):
+        * Modules/mediastream/RTCDataChannel.cpp:
+        (WebCore::RTCDataChannel::setBinaryType):
+        * Modules/mediastream/RTCIceCandidate.cpp:
+        (WebCore::RTCIceCandidate::create):
+        * Modules/mediastream/RTCPeerConnection.cpp:
+        (WebCore::RTCPeerConnection::parseConfiguration):
+        (WebCore::RTCPeerConnection::createOffer):
+        (WebCore::RTCPeerConnection::createAnswer):
+        (WebCore::RTCPeerConnection::setLocalDescription):
+        (WebCore::RTCPeerConnection::setRemoteDescription):
+        (WebCore::RTCPeerConnection::addIceCandidate):
+        (WebCore::RTCPeerConnection::addStream):
+        (WebCore::RTCPeerConnection::removeStream):
+        * Modules/mediastream/RTCSessionDescription.cpp:
+        (WebCore::RTCSessionDescription::create):
+        (WebCore::RTCSessionDescription::setType):
+        * bindings/js/CallbackFunction.cpp:
+        (WebCore::checkFunctionOnlyCallback):
+        * bindings/js/JSCustomXPathNSResolver.cpp:
+        (WebCore::JSCustomXPathNSResolver::create):
+        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
+        (WebCore::JSHTMLOptionsCollection::add):
+        * bindings/js/JSHTMLSelectElementCustom.cpp:
+        (WebCore::selectIndexSetter):
+        * bindings/js/JSMutationObserverCustom.cpp:
+        (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
+        * bindings/js/JSSQLResultSetRowListCustom.cpp:
+        (WebCore::JSSQLResultSetRowList::item):
+        * bindings/js/JSSQLTransactionCustom.cpp:
+        (WebCore::JSSQLTransaction::executeSql):
+        * bindings/js/JSSQLTransactionSyncCustom.cpp:
+        (WebCore::JSSQLTransactionSync::executeSql):
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateParametersCheck):
+        * bindings/scripts/CodeGeneratorObjC.pm:
+        (GenerateImplementation):
+        * bindings/scripts/CodeGeneratorV8.pm:
+        (GenerateFunctionCallString):
+        * bindings/v8/V8Callback.h:
+        (WebCore::createFunctionOnlyCallback):
+        * bindings/v8/V8Collection.cpp:
+        (WebCore::toOptionsCollectionSetter):
+        * bindings/v8/custom/V8DocumentCustom.cpp:
+        (WebCore::V8Document::evaluateCallback):
+        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
+        (WebCore::V8HTMLOptionsCollection::addCallback):
+        * bindings/v8/custom/V8MutationObserverCustom.cpp:
+        (WebCore::V8MutationObserver::constructorCallback):
+        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
+        (WebCore::V8SQLTransaction::executeSqlCallback):
+        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
+        (WebCore::V8SQLTransactionSync::executeSqlCallback):
+        * dom/DOMCoreException.idl:
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::insertAdjacentElement):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::webkitAddKey):
+        * html/HTMLOptionsCollection.cpp:
+        (WebCore::HTMLOptionsCollection::add):
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::drawImage):
+        (WebCore::CanvasRenderingContext2D::createPattern):
+        (WebCore::CanvasRenderingContext2D::putImageData):
+        (WebCore::CanvasRenderingContext2D::webkitPutImageDataHD):
+        * page/Crypto.cpp:
+        (WebCore::Crypto::getRandomValues):
+        * page/DOMSelection.cpp:
+        (WebCore::DOMSelection::extend):
+        * svg/properties/SVGTransformListPropertyTearOff.h:
+        (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
+
 2012-11-13  Erik Arvidsson  <arv@chromium.org>
 
         Update DOMException name: HierarchyRequestError
diff --git a/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.cpp b/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.cpp
index 1d34c33..739a042 100644
--- a/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.cpp
+++ b/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.cpp
@@ -45,7 +45,7 @@
 {
     RefPtr<MediaConstraintsImpl> object = adoptRef(new MediaConstraintsImpl());
     if (!object->initialize(constraints)) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return 0;
     }
     return object.release();
diff --git a/Source/WebCore/Modules/mediastream/MediaStreamTrackList.cpp b/Source/WebCore/Modules/mediastream/MediaStreamTrackList.cpp
index fb783d5..b20778e 100644
--- a/Source/WebCore/Modules/mediastream/MediaStreamTrackList.cpp
+++ b/Source/WebCore/Modules/mediastream/MediaStreamTrackList.cpp
@@ -80,7 +80,7 @@
 
     RefPtr<MediaStreamTrack> track = prpTrack;
     if (!track) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
 
@@ -105,7 +105,7 @@
 
     RefPtr<MediaStreamTrack> track = prpTrack;
     if (!track) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
 
diff --git a/Source/WebCore/Modules/mediastream/RTCDataChannel.cpp b/Source/WebCore/Modules/mediastream/RTCDataChannel.cpp
index 2683c4e..07e292e 100644
--- a/Source/WebCore/Modules/mediastream/RTCDataChannel.cpp
+++ b/Source/WebCore/Modules/mediastream/RTCDataChannel.cpp
@@ -124,7 +124,7 @@
     else if (binaryType == "arraybuffer")
         m_binaryType = BinaryTypeArrayBuffer;
     else
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
 }
 
 void RTCDataChannel::send(const String& data, ExceptionCode& ec)
diff --git a/Source/WebCore/Modules/mediastream/RTCIceCandidate.cpp b/Source/WebCore/Modules/mediastream/RTCIceCandidate.cpp
index 2c267e1..d78fd67 100644
--- a/Source/WebCore/Modules/mediastream/RTCIceCandidate.cpp
+++ b/Source/WebCore/Modules/mediastream/RTCIceCandidate.cpp
@@ -46,7 +46,7 @@
     String candidate;
     bool ok = dictionary.get("candidate", candidate);
     if (!ok || !candidate.length()) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return 0;
     }
 
diff --git a/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp b/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
index 47a0ccd..b781bbd 100644
--- a/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
+++ b/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
@@ -69,14 +69,14 @@
     ArrayValue iceServers;
     bool ok = configuration.get("iceServers", iceServers);
     if (!ok || iceServers.isUndefinedOrNull()) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return 0;
     }
 
     size_t numberOfServers;
     ok = iceServers.length(numberOfServers);
     if (!ok) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return 0;
     }
 
@@ -86,19 +86,19 @@
         Dictionary iceServer;
         ok = iceServers.get(i, iceServer);
         if (!ok) {
-            ec = NATIVE_TYPE_ERR;
+            ec = TYPE_MISMATCH_ERR;
             return 0;
         }
 
         String urlString, credential;
         ok = iceServer.get("url", urlString);
         if (!ok) {
-            ec = NATIVE_TYPE_ERR;
+            ec = TYPE_MISMATCH_ERR;
             return 0;
         }
         KURL url(KURL(), urlString);
         if (!url.isValid() || !(url.protocolIs("turn") || url.protocolIs("stun"))) {
-            ec = NATIVE_TYPE_ERR;
+            ec = TYPE_MISMATCH_ERR;
             return 0;
         }
 
@@ -170,7 +170,7 @@
     }
 
     if (!successCallback) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
 
@@ -190,7 +190,7 @@
     }
 
     if (!successCallback) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
 
@@ -211,7 +211,7 @@
 
     RefPtr<RTCSessionDescription> sessionDescription = prpSessionDescription;
     if (!sessionDescription) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
 
@@ -243,7 +243,7 @@
 
     RefPtr<RTCSessionDescription> sessionDescription = prpSessionDescription;
     if (!sessionDescription) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
 
@@ -294,7 +294,7 @@
     }
 
     if (!iceCandidate) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
 
@@ -356,7 +356,7 @@
 
     RefPtr<MediaStream> stream = prpStream;
     if (!stream) {
-        ec =  NATIVE_TYPE_ERR;
+        ec =  TYPE_MISMATCH_ERR;
         return;
     }
 
@@ -382,7 +382,7 @@
     }
 
     if (!stream) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
 
diff --git a/Source/WebCore/Modules/mediastream/RTCSessionDescription.cpp b/Source/WebCore/Modules/mediastream/RTCSessionDescription.cpp
index e64aa8c..8978337 100644
--- a/Source/WebCore/Modules/mediastream/RTCSessionDescription.cpp
+++ b/Source/WebCore/Modules/mediastream/RTCSessionDescription.cpp
@@ -50,14 +50,14 @@
     String type;
     bool ok = dictionary.get("type", type);
     if (!ok || !verifyType(type)) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return 0;
     }
 
     String sdp;
     ok = dictionary.get("sdp", sdp);
     if (!ok || sdp.isEmpty()) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return 0;
     }
 
@@ -89,7 +89,7 @@
     if (verifyType(type))
         m_descriptor->setType(type);
     else
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
 }
 
 const String& RTCSessionDescription::sdp() const
diff --git a/Source/WebCore/bindings/js/CallbackFunction.cpp b/Source/WebCore/bindings/js/CallbackFunction.cpp
index ef571a4..145d055 100644
--- a/Source/WebCore/bindings/js/CallbackFunction.cpp
+++ b/Source/WebCore/bindings/js/CallbackFunction.cpp
@@ -41,7 +41,7 @@
 
     JSC::CallData callData;
     if (getCallData(value, callData) == JSC::CallTypeNone) {
-        setDOMException(exec, NATIVE_TYPE_ERR);
+        setDOMException(exec, TYPE_MISMATCH_ERR);
         return false;
     }
 
diff --git a/Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp b/Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp
index 380d424..d1dc0b1 100644
--- a/Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp
+++ b/Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp
@@ -46,7 +46,7 @@
 
     JSObject* resolverObject = value.getObject();
     if (!resolverObject) {
-        setDOMException(exec, NATIVE_TYPE_ERR);
+        setDOMException(exec, TYPE_MISMATCH_ERR);
         return 0;
     }
 
diff --git a/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp b/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp
index ed3e598..f497da0 100644
--- a/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp
+++ b/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp
@@ -74,7 +74,7 @@
         if (exec->hadException())
             return jsUndefined();
         if (!ok)
-            ec = NATIVE_TYPE_ERR;
+            ec = TYPE_MISMATCH_ERR;
         else
             imp->add(option, index, ec);
     }
diff --git a/Source/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp b/Source/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp
index 7e34bec..13ea8f3 100644
--- a/Source/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp
+++ b/Source/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp
@@ -53,7 +53,7 @@
         ExceptionCode ec = 0;
         HTMLOptionElement* option = toHTMLOptionElement(value);
         if (!option)
-            ec = NATIVE_TYPE_ERR;
+            ec = TYPE_MISMATCH_ERR;
         else
             select->setOption(index, option, ec);
         setDOMException(exec, ec);
diff --git a/Source/WebCore/bindings/js/JSMutationObserverCustom.cpp b/Source/WebCore/bindings/js/JSMutationObserverCustom.cpp
index d02fc67..ab5560d 100644
--- a/Source/WebCore/bindings/js/JSMutationObserverCustom.cpp
+++ b/Source/WebCore/bindings/js/JSMutationObserverCustom.cpp
@@ -49,7 +49,7 @@
 
     JSObject* object = exec->argument(0).getObject();
     if (!object) {
-        setDOMException(exec, NATIVE_TYPE_ERR);
+        setDOMException(exec, TYPE_MISMATCH_ERR);
         return JSValue::encode(jsUndefined());
     }
 
diff --git a/Source/WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp b/Source/WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp
index cd5579a..0d09375 100644
--- a/Source/WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp
+++ b/Source/WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp
@@ -45,7 +45,7 @@
     bool indexOk;
     int index = finiteInt32Value(exec->argument(0), exec, indexOk);
     if (!indexOk) {
-        setDOMException(exec, NATIVE_TYPE_ERR);
+        setDOMException(exec, TYPE_MISMATCH_ERR);
         return jsUndefined();
     }
     if (index < 0 || (unsigned)index >= m_impl->length()) {
diff --git a/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp b/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp
index 091cb15..7a90c43 100644
--- a/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp
+++ b/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp
@@ -59,7 +59,7 @@
     if (!exec->argument(1).isUndefinedOrNull()) {
         JSObject* object = exec->argument(1).getObject();
         if (!object) {
-            setDOMException(exec, NATIVE_TYPE_ERR);
+            setDOMException(exec, TYPE_MISMATCH_ERR);
             return jsUndefined();
         }
 
@@ -92,7 +92,7 @@
     if (!exec->argument(2).isUndefinedOrNull()) {
         JSObject* object = exec->argument(2).getObject();
         if (!object) {
-            setDOMException(exec, NATIVE_TYPE_ERR);
+            setDOMException(exec, TYPE_MISMATCH_ERR);
             return jsUndefined();
         }
 
@@ -103,7 +103,7 @@
     if (!exec->argument(3).isUndefinedOrNull()) {
         JSObject* object = exec->argument(3).getObject();
         if (!object) {
-            setDOMException(exec, NATIVE_TYPE_ERR);
+            setDOMException(exec, TYPE_MISMATCH_ERR);
             return jsUndefined();
         }
 
diff --git a/Source/WebCore/bindings/js/JSSQLTransactionSyncCustom.cpp b/Source/WebCore/bindings/js/JSSQLTransactionSyncCustom.cpp
index fe4f1b8..33f8434 100644
--- a/Source/WebCore/bindings/js/JSSQLTransactionSyncCustom.cpp
+++ b/Source/WebCore/bindings/js/JSSQLTransactionSyncCustom.cpp
@@ -58,7 +58,7 @@
     if (!exec->argument(1).isUndefinedOrNull()) {
         JSObject* object = exec->argument(1).getObject();
         if (!object) {
-            setDOMException(exec, NATIVE_TYPE_ERR);
+            setDOMException(exec, TYPE_MISMATCH_ERR);
             return jsUndefined();
         }
 
diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
index 8fea73a..40d679d 100644
--- a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
+++ b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
@@ -2784,7 +2784,7 @@
 
             if ($codeGenerator->IsSVGTypeNeedingTearOff($argType) and not $implClassName =~ /List$/) {
                 push(@$outputArray, "    if (!$name) {\n");
-                push(@$outputArray, "        setDOMException(exec, NATIVE_TYPE_ERR);\n");
+                push(@$outputArray, "        setDOMException(exec, TYPE_MISMATCH_ERR);\n");
                 push(@$outputArray, "        return JSValue::encode(jsUndefined());\n");
                 push(@$outputArray, "    }\n");
             }
diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm b/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm
index 9653ae9..c11ced3 100644
--- a/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm
+++ b/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm
@@ -1591,7 +1591,7 @@
                 $implIncludes{"ExceptionCode.h"} = 1;
                 push(@functionContent, "    $idlTypeWithNamespace* ${paramName}Core = $implGetter;\n");
                 push(@functionContent, "    if (!${paramName}Core) {\n");
-                push(@functionContent, "        WebCore::ExceptionCode ec = WebCore::NATIVE_TYPE_ERR;\n");
+                push(@functionContent, "        WebCore::ExceptionCode ec = WebCore::TYPE_MISMATCH_ERR;\n");
                 push(@functionContent, "        $exceptionRaiseOnError\n");
                 if ($returnType eq "void") { 
                     push(@functionContent, "        return;\n");
diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm b/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm
index 5c8aa7f..5041641 100644
--- a/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm
+++ b/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm
@@ -3576,7 +3576,7 @@
         } elsif ($codeGenerator->IsSVGTypeNeedingTearOff($parameter->type) and not $implClassName =~ /List$/) {
             push @arguments, "$paramName->propertyReference()";
             $result .= $indent . "if (!$paramName)\n";
-            $result .= $indent . "    return setDOMException(WebCore::NATIVE_TYPE_ERR, args.GetIsolate());\n";
+            $result .= $indent . "    return setDOMException(WebCore::TYPE_MISMATCH_ERR, args.GetIsolate());\n";
         } elsif ($parameter->type eq "SVGMatrix" and $implClassName eq "SVGTransformList") {
             push @arguments, "$paramName.get()";
         } else {
diff --git a/Source/WebCore/bindings/v8/V8Callback.h b/Source/WebCore/bindings/v8/V8Callback.h
index 5d363cc..5fb5710 100644
--- a/Source/WebCore/bindings/v8/V8Callback.h
+++ b/Source/WebCore/bindings/v8/V8Callback.h
@@ -63,7 +63,7 @@
 
     if (!value->IsFunction()) {
         succeeded = false;
-        setDOMException(NATIVE_TYPE_ERR, isolate);
+        setDOMException(TYPE_MISMATCH_ERR, isolate);
         return 0;
     }
 
diff --git a/Source/WebCore/bindings/v8/V8Collection.cpp b/Source/WebCore/bindings/v8/V8Collection.cpp
index 0e152a8..a71dae3 100644
--- a/Source/WebCore/bindings/v8/V8Collection.cpp
+++ b/Source/WebCore/bindings/v8/V8Collection.cpp
@@ -46,9 +46,9 @@
 
     ExceptionCode ec = 0;
 
-    // Check that the value is an HTMLOptionElement. If not, throw a TypeError.
+    // Check that the value is an HTMLOptionElement.  If not, throw a TYPE_MISMATCH_ERR DOMException.
     if (!V8HTMLOptionElement::HasInstance(value)) {
-        setDOMException(NATIVE_TYPE_ERR, isolate);
+        setDOMException(TYPE_MISMATCH_ERR, isolate);
         return value;
     }
 
diff --git a/Source/WebCore/bindings/v8/custom/V8DocumentCustom.cpp b/Source/WebCore/bindings/v8/custom/V8DocumentCustom.cpp
index d0fb870..597908c 100644
--- a/Source/WebCore/bindings/v8/custom/V8DocumentCustom.cpp
+++ b/Source/WebCore/bindings/v8/custom/V8DocumentCustom.cpp
@@ -77,7 +77,7 @@
 
     RefPtr<XPathNSResolver> resolver = toXPathNSResolver(args[2]);
     if (!resolver && !args[2]->IsNull() && !args[2]->IsUndefined())
-        return setDOMException(NATIVE_TYPE_ERR, args.GetIsolate());
+        return setDOMException(TYPE_MISMATCH_ERR, args.GetIsolate());
 
     int type = toInt32(args[3]);
     RefPtr<XPathResult> inResult;
diff --git a/Source/WebCore/bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp b/Source/WebCore/bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp
index 0ee7843..b223c23 100644
--- a/Source/WebCore/bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp
+++ b/Source/WebCore/bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp
@@ -55,7 +55,7 @@
 {
     INC_STATS("DOM.HTMLOptionsCollection.add()");
     if (!V8HTMLOptionElement::HasInstance(args[0]))
-        return setDOMException(NATIVE_TYPE_ERR, args.GetIsolate());
+        return setDOMException(TYPE_MISMATCH_ERR, args.GetIsolate());
     HTMLOptionsCollection* imp = V8HTMLOptionsCollection::toNative(args.Holder());
     HTMLOptionElement* option = V8HTMLOptionElement::toNative(v8::Handle<v8::Object>(v8::Handle<v8::Object>::Cast(args[0])));
 
@@ -71,7 +71,7 @@
             return v8::Undefined();
 
         if (!ok)
-            ec = NATIVE_TYPE_ERR;
+            ec = TYPE_MISMATCH_ERR;
         else
             imp->add(option, index, ec);
     }
diff --git a/Source/WebCore/bindings/v8/custom/V8MutationObserverCustom.cpp b/Source/WebCore/bindings/v8/custom/V8MutationObserverCustom.cpp
index 6e05cba..68f4c7a 100644
--- a/Source/WebCore/bindings/v8/custom/V8MutationObserverCustom.cpp
+++ b/Source/WebCore/bindings/v8/custom/V8MutationObserverCustom.cpp
@@ -58,7 +58,7 @@
 
     v8::Local<v8::Value> arg = args[0];
     if (!arg->IsObject())
-        return setDOMException(NATIVE_TYPE_ERR, args.GetIsolate());
+        return setDOMException(TYPE_MISMATCH_ERR, args.GetIsolate());
 
     ScriptExecutionContext* context = getScriptExecutionContext();
 
diff --git a/Source/WebCore/bindings/v8/custom/V8SQLTransactionCustom.cpp b/Source/WebCore/bindings/v8/custom/V8SQLTransactionCustom.cpp
index 4263e2b..593acbb 100644
--- a/Source/WebCore/bindings/v8/custom/V8SQLTransactionCustom.cpp
+++ b/Source/WebCore/bindings/v8/custom/V8SQLTransactionCustom.cpp
@@ -59,7 +59,7 @@
 
     if (args.Length() > 1 && !isUndefinedOrNull(args[1])) {
         if (!args[1]->IsObject())
-            return setDOMException(NATIVE_TYPE_ERR, args.GetIsolate());
+            return setDOMException(TYPE_MISMATCH_ERR, args.GetIsolate());
 
         uint32_t sqlArgsLength = 0;
         v8::Local<v8::Object> sqlArgsObject = args[1]->ToObject();
@@ -93,14 +93,14 @@
     RefPtr<SQLStatementCallback> callback;
     if (args.Length() > 2 && !isUndefinedOrNull(args[2])) {
         if (!args[2]->IsObject())
-            return setDOMException(NATIVE_TYPE_ERR, args.GetIsolate());
+            return setDOMException(TYPE_MISMATCH_ERR, args.GetIsolate());
         callback = V8SQLStatementCallback::create(args[2], scriptExecutionContext);
     }
 
     RefPtr<SQLStatementErrorCallback> errorCallback;
     if (args.Length() > 3 && !isUndefinedOrNull(args[3])) {
         if (!args[3]->IsObject())
-            return setDOMException(NATIVE_TYPE_ERR, args.GetIsolate());
+            return setDOMException(TYPE_MISMATCH_ERR, args.GetIsolate());
         errorCallback = V8SQLStatementErrorCallback::create(args[3], scriptExecutionContext);
     }
 
diff --git a/Source/WebCore/bindings/v8/custom/V8SQLTransactionSyncCustom.cpp b/Source/WebCore/bindings/v8/custom/V8SQLTransactionSyncCustom.cpp
index d857adf..1ab6626 100644
--- a/Source/WebCore/bindings/v8/custom/V8SQLTransactionSyncCustom.cpp
+++ b/Source/WebCore/bindings/v8/custom/V8SQLTransactionSyncCustom.cpp
@@ -59,7 +59,7 @@
 
     if (args.Length() > 1 && !isUndefinedOrNull(args[1])) {
         if (!args[1]->IsObject())
-            return setDOMException(NATIVE_TYPE_ERR, args.GetIsolate());
+            return setDOMException(TYPE_MISMATCH_ERR, args.GetIsolate());
 
         uint32_t sqlArgsLength = 0;
         v8::Local<v8::Object> sqlArgsObject = args[1]->ToObject();
diff --git a/Source/WebCore/dom/DOMCoreException.idl b/Source/WebCore/dom/DOMCoreException.idl
index 202c5d1..419202c 100644
--- a/Source/WebCore/dom/DOMCoreException.idl
+++ b/Source/WebCore/dom/DOMCoreException.idl
@@ -65,7 +65,6 @@
     // Introduced in DOM Level 3:
     const unsigned short      VALIDATION_ERR                 = 16;
     // Introduced in DOM Level 3:
-    // Deprecated in DOM Living Standard
     const unsigned short      TYPE_MISMATCH_ERR              = 17;
     // Introduced as an XHR extension:
     const unsigned short      SECURITY_ERR                   = 18;
diff --git a/Source/WebCore/html/HTMLElement.cpp b/Source/WebCore/html/HTMLElement.cpp
index 8b08e45..9c664ab 100644
--- a/Source/WebCore/html/HTMLElement.cpp
+++ b/Source/WebCore/html/HTMLElement.cpp
@@ -546,8 +546,8 @@
 Element* HTMLElement::insertAdjacentElement(const String& where, Element* newChild, ExceptionCode& ec)
 {
     if (!newChild) {
-        // IE throws an Error with the message "Invalid argument.".
-        ec = NATIVE_TYPE_ERR;
+        // IE throws COM Exception E_INVALIDARG; this is the best DOM exception alternative.
+        ec = TYPE_MISMATCH_ERR;
         return 0;
     }
 
diff --git a/Source/WebCore/html/HTMLMediaElement.cpp b/Source/WebCore/html/HTMLMediaElement.cpp
index 1946973..3d25fb1 100644
--- a/Source/WebCore/html/HTMLMediaElement.cpp
+++ b/Source/WebCore/html/HTMLMediaElement.cpp
@@ -2466,7 +2466,7 @@
     }
 
     if (!key->length()) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
 
diff --git a/Source/WebCore/html/HTMLOptionsCollection.cpp b/Source/WebCore/html/HTMLOptionsCollection.cpp
index 6d95ce4..8d2aff9 100644
--- a/Source/WebCore/html/HTMLOptionsCollection.cpp
+++ b/Source/WebCore/html/HTMLOptionsCollection.cpp
@@ -48,7 +48,7 @@
     HTMLOptionElement* newOption = element.get();
 
     if (!newOption) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
 
diff --git a/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp b/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
index 1dc0ea2..ef754f5 100644
--- a/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
+++ b/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
@@ -1306,7 +1306,7 @@
 void CanvasRenderingContext2D::drawImage(HTMLImageElement* image, float x, float y, ExceptionCode& ec)
 {
     if (!image) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
     LayoutSize s = size(image);
@@ -1317,7 +1317,7 @@
     float x, float y, float width, float height, ExceptionCode& ec)
 {
     if (!image) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
     LayoutSize s = size(image);
@@ -1339,7 +1339,7 @@
 void CanvasRenderingContext2D::drawImage(HTMLImageElement* image, const FloatRect& srcRect, const FloatRect& dstRect, const CompositeOperator& op, ExceptionCode& ec)
 {
     if (!image) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
 
@@ -1416,7 +1416,7 @@
     const FloatRect& dstRect, ExceptionCode& ec)
 {
     if (!sourceCanvas) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
 
@@ -1481,7 +1481,7 @@
 void CanvasRenderingContext2D::drawImage(HTMLVideoElement* video, float x, float y, ExceptionCode& ec)
 {
     if (!video) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
     IntSize s = size(video);
@@ -1492,7 +1492,7 @@
                                          float x, float y, float width, float height, ExceptionCode& ec)
 {
     if (!video) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
     IntSize s = size(video);
@@ -1510,7 +1510,7 @@
                                          ExceptionCode& ec)
 {
     if (!video) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
 
@@ -1754,7 +1754,7 @@
     const String& repetitionType, ExceptionCode& ec)
 {
     if (!image) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return 0;
     }
     bool repeatX, repeatY;
@@ -1778,7 +1778,7 @@
     const String& repetitionType, ExceptionCode& ec)
 {
     if (!canvas) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return 0;
     }
     if (!canvas->width() || !canvas->height()) {
@@ -1955,7 +1955,7 @@
 void CanvasRenderingContext2D::putImageData(ImageData* data, float dx, float dy, ExceptionCode& ec)
 {
     if (!data) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
     putImageData(data, dx, dy, 0, 0, data->width(), data->height(), ec);
@@ -1964,7 +1964,7 @@
 void CanvasRenderingContext2D::webkitPutImageDataHD(ImageData* data, float dx, float dy, ExceptionCode& ec)
 {
     if (!data) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
     webkitPutImageDataHD(data, dx, dy, 0, 0, data->width(), data->height(), ec);
@@ -1985,7 +1985,7 @@
                                             float dirtyWidth, float dirtyHeight, ExceptionCode& ec)
 {
     if (!data) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
     if (!isfinite(dx) || !isfinite(dy) || !isfinite(dirtyX) || !isfinite(dirtyY) || !isfinite(dirtyWidth) || !isfinite(dirtyHeight)) {
diff --git a/Source/WebCore/page/Crypto.cpp b/Source/WebCore/page/Crypto.cpp
index 81753e8..16709e9 100644
--- a/Source/WebCore/page/Crypto.cpp
+++ b/Source/WebCore/page/Crypto.cpp
@@ -60,7 +60,7 @@
 {
 #if USE(OS_RANDOMNESS)
     if (!array || !isIntegerArray(array)) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
     if (array->byteLength() > 65536) {
diff --git a/Source/WebCore/page/DOMSelection.cpp b/Source/WebCore/page/DOMSelection.cpp
index ba7f514..062443a 100644
--- a/Source/WebCore/page/DOMSelection.cpp
+++ b/Source/WebCore/page/DOMSelection.cpp
@@ -336,7 +336,7 @@
         return;
 
     if (!node) {
-        ec = NATIVE_TYPE_ERR;
+        ec = TYPE_MISMATCH_ERR;
         return;
     }
 
diff --git a/Source/WebCore/svg/properties/SVGTransformListPropertyTearOff.h b/Source/WebCore/svg/properties/SVGTransformListPropertyTearOff.h
index 2f89e33..7ac124f 100644
--- a/Source/WebCore/svg/properties/SVGTransformListPropertyTearOff.h
+++ b/Source/WebCore/svg/properties/SVGTransformListPropertyTearOff.h
@@ -42,7 +42,7 @@
     {
         ASSERT(m_values);
         if (!matrix) {
-            ec = NATIVE_TYPE_ERR;
+            ec = TYPE_MISMATCH_ERR;
             return 0;
         }
         return SVGPropertyTearOff<SVGTransform>::create(m_values->createSVGTransformFromMatrix(matrix->propertyReference()));