<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[181156] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/181156">181156</a></dd>
<dt>Author</dt> <dd>darin@apple.com</dd>
<dt>Date</dt> <dd>2015-03-06 08:30:23 -0800 (Fri, 06 Mar 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Make JavaScript binding get and set legacy event listener attributes directly
https://bugs.webkit.org/show_bug.cgi?id=142282

Reviewed by Antti Koivisto.

Test: fast/dom/legacy-event-handler-attributes.html

This patch changes the JavaScript getters and setters for these attributes
to work directly without requiring any functions in the C++ DOM implementation.
A subsequent patch will remove the now-unused C++ DOM implementation.

* Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::setOnended): Remove code to set
m_hasEndedListener; this was incorrect since it only detected event listeners
set up with the event handler attribute, not with addEventListener.
(WebCore::AudioScheduledSourceNode::addEventListener): Added code to update
m_hasEndedListener after making changes to the event listeners.
(WebCore::AudioScheduledSourceNode::removeEventListener): Ditto.
(WebCore::AudioScheduledSourceNode::removeAllEventListeners): Ditto.
* Modules/webaudio/AudioScheduledSourceNode.h: Added above overrides.

* Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::setOnaudioprocess): Remove code to set
m_hasAudioProcessListener; this was incorrect since it only detected event listeners
set up with the event handler attribute, not with addEventListener.
(WebCore::ScriptProcessorNode::addEventListener): Added code to update
m_hasAudioProcessListener after making changes to the event listeners.
(WebCore::ScriptProcessorNode::removeEventListener): Ditto.
(WebCore::ScriptProcessorNode::removeAllEventListeners): Ditto.
* Modules/webaudio/ScriptProcessorNode.h: Added above overrides.

* bindings/js/JSEventListener.cpp:
(WebCore::legacyEventListenerAttribute): Added.
(WebCore::createEventListenerForLegacyAttribute): Added.
(WebCore::setLegacyEventListenerAttribute): Added.
(WebCore::legacyWindowEventListenerAttribute): Added.
(WebCore::setLegacyWindowEventListenerAttribute): Added.

* bindings/js/JSEventListener.h:
(WebCore::createJSEventListenerForAttribute): Deleted.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateAttributeEventListenerCall): Deleted.
(LegacyEventListenerAttributeEventName): Added.
(LegacyEventListenerAttributePrefix): Added.
(GenerateImplementation): Use &quot;auto&quot; in lots of places to simplify the code
generation. Replaced the old inlined code to deal with legacy event listener
attributes with code that simply calls the new functions from JSEventLister.h.
(GenerateCallWith): Use &quot;auto&quot;.
(GenerateConstructorDefinition): Ditto.

* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Updated expected
results since these now use auto.
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Ditto.
* bindings/scripts/test/JS/JSTestEventConstructor.cpp: Ditto.
* bindings/scripts/test/JS/JSTestEventTarget.cpp: Ditto.
* bindings/scripts/test/JS/JSTestException.cpp: Ditto.
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: Ditto.
* bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: Ditto.
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Ditto.
* bindings/scripts/test/JS/JSTestNode.cpp: Ditto.
* bindings/scripts/test/JS/JSTestNondeterministic.cpp: Ditto.
* bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Ditto.
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: Ditto.
* bindings/scripts/test/JS/JSTestTypedefs.cpp: Ditto.
* bindings/scripts/test/JS/JSattribute.cpp: Ditto.
* bindings/scripts/test/JS/JSreadonly.cpp: Ditto.

* dom/MessagePort.cpp:
(WebCore::MessagePort::addEventListener): Moved logic that calls the start
function in here from setOnmessage, since the latter will no longer be called.
* dom/MessagePort.h: Ditto.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioScheduledSourceNodecpp">trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioScheduledSourceNodeh">trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioScriptProcessorNodecpp">trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioScriptProcessorNodeh">trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSEventListenercpp">trunk/Source/WebCore/bindings/js/JSEventListener.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSEventListenerh">trunk/Source/WebCore/bindings/js/JSEventListener.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministiccpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSattributecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSreadonlycpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp</a></li>
<li><a href="#trunkSourceWebCoredomMessagePortcpp">trunk/Source/WebCore/dom/MessagePort.cpp</a></li>
<li><a href="#trunkSourceWebCoredomMessagePorth">trunk/Source/WebCore/dom/MessagePort.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/ChangeLog        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -1,3 +1,80 @@
</span><ins>+2015-03-05  Darin Adler  &lt;darin@apple.com&gt;
+
+        Make JavaScript binding get and set legacy event listener attributes directly
+        https://bugs.webkit.org/show_bug.cgi?id=142282
+
+        Reviewed by Antti Koivisto.
+
+        Test: fast/dom/legacy-event-handler-attributes.html
+
+        This patch changes the JavaScript getters and setters for these attributes
+        to work directly without requiring any functions in the C++ DOM implementation.
+        A subsequent patch will remove the now-unused C++ DOM implementation.
+
+        * Modules/webaudio/AudioScheduledSourceNode.cpp:
+        (WebCore::AudioScheduledSourceNode::setOnended): Remove code to set
+        m_hasEndedListener; this was incorrect since it only detected event listeners
+        set up with the event handler attribute, not with addEventListener.
+        (WebCore::AudioScheduledSourceNode::addEventListener): Added code to update
+        m_hasEndedListener after making changes to the event listeners.
+        (WebCore::AudioScheduledSourceNode::removeEventListener): Ditto.
+        (WebCore::AudioScheduledSourceNode::removeAllEventListeners): Ditto.
+        * Modules/webaudio/AudioScheduledSourceNode.h: Added above overrides.
+
+        * Modules/webaudio/ScriptProcessorNode.cpp:
+        (WebCore::ScriptProcessorNode::setOnaudioprocess): Remove code to set
+        m_hasAudioProcessListener; this was incorrect since it only detected event listeners
+        set up with the event handler attribute, not with addEventListener.
+        (WebCore::ScriptProcessorNode::addEventListener): Added code to update
+        m_hasAudioProcessListener after making changes to the event listeners.
+        (WebCore::ScriptProcessorNode::removeEventListener): Ditto.
+        (WebCore::ScriptProcessorNode::removeAllEventListeners): Ditto.
+        * Modules/webaudio/ScriptProcessorNode.h: Added above overrides.
+
+        * bindings/js/JSEventListener.cpp:
+        (WebCore::legacyEventListenerAttribute): Added.
+        (WebCore::createEventListenerForLegacyAttribute): Added.
+        (WebCore::setLegacyEventListenerAttribute): Added.
+        (WebCore::legacyWindowEventListenerAttribute): Added.
+        (WebCore::setLegacyWindowEventListenerAttribute): Added.
+
+        * bindings/js/JSEventListener.h:
+        (WebCore::createJSEventListenerForAttribute): Deleted.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateAttributeEventListenerCall): Deleted.
+        (LegacyEventListenerAttributeEventName): Added.
+        (LegacyEventListenerAttributePrefix): Added.
+        (GenerateImplementation): Use &quot;auto&quot; in lots of places to simplify the code
+        generation. Replaced the old inlined code to deal with legacy event listener
+        attributes with code that simply calls the new functions from JSEventLister.h.
+        (GenerateCallWith): Use &quot;auto&quot;.
+        (GenerateConstructorDefinition): Ditto.
+
+        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Updated expected
+        results since these now use auto.
+        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Ditto.
+        * bindings/scripts/test/JS/JSTestEventConstructor.cpp: Ditto.
+        * bindings/scripts/test/JS/JSTestEventTarget.cpp: Ditto.
+        * bindings/scripts/test/JS/JSTestException.cpp: Ditto.
+        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: Ditto.
+        * bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
+        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: Ditto.
+        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Ditto.
+        * bindings/scripts/test/JS/JSTestNode.cpp: Ditto.
+        * bindings/scripts/test/JS/JSTestNondeterministic.cpp: Ditto.
+        * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
+        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Ditto.
+        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: Ditto.
+        * bindings/scripts/test/JS/JSTestTypedefs.cpp: Ditto.
+        * bindings/scripts/test/JS/JSattribute.cpp: Ditto.
+        * bindings/scripts/test/JS/JSreadonly.cpp: Ditto.
+
+        * dom/MessagePort.cpp:
+        (WebCore::MessagePort::addEventListener): Moved logic that calls the start
+        function in here from setOnmessage, since the latter will no longer be called.
+        * dom/MessagePort.h: Ditto.
+
</ins><span class="cx"> 2015-03-06  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [iOS] SVG fonts are garbled
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioScheduledSourceNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -198,7 +198,6 @@
</span><span class="cx"> 
</span><span class="cx"> void AudioScheduledSourceNode::setOnended(PassRefPtr&lt;EventListener&gt; listener)
</span><span class="cx"> {
</span><del>-    m_hasEndedListener = listener;
</del><span class="cx">     setAttributeEventListener(eventNames().endedEvent, listener);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -231,6 +230,28 @@
</span><span class="cx">     listener-&gt;handleEvent(context()-&gt;scriptExecutionContext(), event.get());
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool AudioScheduledSourceNode::addEventListener(const AtomicString&amp; eventType, PassRefPtr&lt;EventListener&gt; listener, bool useCapture)
+{
+    bool success = AudioNode::addEventListener(eventType, listener, useCapture);
+    if (success &amp;&amp; eventType == eventNames().endedEvent)
+        m_hasEndedListener = hasEventListeners(eventNames().endedEvent);
+    return success;
+}
+
+bool AudioScheduledSourceNode::removeEventListener(const AtomicString&amp; eventType, EventListener* listener, bool useCapture)
+{
+    bool success = AudioNode::removeEventListener(eventType, listener, useCapture);
+    if (success &amp;&amp; eventType == eventNames().endedEvent)
+        m_hasEndedListener = hasEventListeners(eventNames().endedEvent);
+    return success;
+}
+
+void AudioScheduledSourceNode::removeAllEventListeners()
+{
+    m_hasEndedListener = false;
+    AudioNode::removeAllEventListeners();
+}
+
</ins><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(WEB_AUDIO)
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioScheduledSourceNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -107,6 +107,11 @@
</span><span class="cx">     bool m_hasEndedListener;
</span><span class="cx"> 
</span><span class="cx">     static const double UnknownTime;
</span><ins>+
+private:
+    bool addEventListener(const AtomicString&amp; eventType, PassRefPtr&lt;EventListener&gt;, bool useCapture) override;
+    bool removeEventListener(const AtomicString&amp; eventType, EventListener*, bool useCapture) override;
+    void removeAllEventListeners() override;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioScriptProcessorNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -219,7 +219,6 @@
</span><span class="cx"> 
</span><span class="cx"> void ScriptProcessorNode::setOnaudioprocess(PassRefPtr&lt;EventListener&gt; listener)
</span><span class="cx"> {
</span><del>-    m_hasAudioProcessListener = listener;
</del><span class="cx">     setAttributeEventListener(eventNames().audioprocessEvent, listener);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -286,6 +285,28 @@
</span><span class="cx">     return std::numeric_limits&lt;double&gt;::infinity();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool ScriptProcessorNode::addEventListener(const AtomicString&amp; eventType, PassRefPtr&lt;EventListener&gt; listener, bool useCapture)
+{
+    bool success = AudioNode::addEventListener(eventType, listener, useCapture);
+    if (success &amp;&amp; eventType == eventNames().audioprocessEvent)
+        m_hasAudioProcessListener = hasEventListeners(eventNames().audioprocessEvent);
+    return success;
+}
+
+bool ScriptProcessorNode::removeEventListener(const AtomicString&amp; eventType, EventListener* listener, bool useCapture)
+{
+    bool success = AudioNode::removeEventListener(eventType, listener, useCapture);
+    if (success &amp;&amp; eventType == eventNames().audioprocessEvent)
+        m_hasAudioProcessListener = hasEventListeners(eventNames().audioprocessEvent);
+    return success;
+}
+
+void ScriptProcessorNode::removeAllEventListeners()
+{
+    m_hasAudioProcessListener = false;
+    AudioNode::removeAllEventListeners();
+}
+
</ins><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(WEB_AUDIO)
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioScriptProcessorNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.h (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.h        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.h        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -77,6 +77,10 @@
</span><span class="cx">     static void fireProcessEventDispatch(void* userData);
</span><span class="cx">     void fireProcessEvent();
</span><span class="cx"> 
</span><ins>+    bool addEventListener(const AtomicString&amp; eventType, PassRefPtr&lt;EventListener&gt;, bool useCapture) override;
+    bool removeEventListener(const AtomicString&amp; eventType, EventListener*, bool useCapture) override;
+    void removeAllEventListeners() override;
+
</ins><span class="cx">     // Double buffering
</span><span class="cx">     unsigned doubleBufferIndex() const { return m_doubleBufferIndex; }
</span><span class="cx">     void swapBuffers() { m_doubleBufferIndex = 1 - m_doubleBufferIndex; }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSEventListenercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSEventListener.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSEventListener.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/js/JSEventListener.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -23,6 +23,7 @@
</span><span class="cx"> #include &quot;BeforeUnloadEvent.h&quot;
</span><span class="cx"> #include &quot;Event.h&quot;
</span><span class="cx"> #include &quot;Frame.h&quot;
</span><ins>+#include &quot;HTMLElement.h&quot;
</ins><span class="cx"> #include &quot;JSEvent.h&quot;
</span><span class="cx"> #include &quot;JSEventTarget.h&quot;
</span><span class="cx"> #include &quot;JSMainThreadExecState.h&quot;
</span><span class="lines">@@ -170,4 +171,49 @@
</span><span class="cx">     return JSEventListener::create(&amp;listener, &amp;wrapper, false, currentWorld(&amp;state));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+static inline JSC::JSValue eventHandlerAttribute(EventListener* abstractListener, ScriptExecutionContext&amp; context)
+{
+    if (!abstractListener)
+        return jsNull();
+
+    auto* listener = JSEventListener::cast(abstractListener);
+    if (!listener)
+        return jsNull();
+
+    auto* function = listener-&gt;jsFunction(&amp;context);
+    if (!function)
+        return jsNull();
+
+    return function;
+}
+
+static inline RefPtr&lt;JSEventListener&gt; createEventListenerForEventHandlerAttribute(JSC::ExecState&amp; state, JSC::JSValue listener, JSC::JSObject&amp; wrapper)
+{
+    if (!listener.isObject())
+        return nullptr;
+    return JSEventListener::create(asObject(listener), &amp;wrapper, true, currentWorld(&amp;state));
+}
+
+JSC::JSValue eventHandlerAttribute(EventTarget&amp; target, const AtomicString&amp; eventType)
+{
+    return eventHandlerAttribute(target.getAttributeEventListener(eventType), *target.scriptExecutionContext());
+}
+
+void setEventHandlerAttribute(JSC::ExecState&amp; state, JSC::JSObject&amp; wrapper, EventTarget&amp; target, const AtomicString&amp; eventType, JSC::JSValue value)
+{
+    target.setAttributeEventListener(eventType, createEventListenerForEventHandlerAttribute(state, value, wrapper));
+}
+
+JSC::JSValue windowForwardedEventHandlerAttribute(HTMLElement&amp; element, const AtomicString&amp; eventType)
+{
+    auto&amp; document = element.document();
+    return eventHandlerAttribute(document.getWindowAttributeEventListener(eventType), document);
+}
+
+void setWindowForwardedEventHandlerAttribute(JSC::ExecState&amp; state, JSC::JSObject&amp; wrapper, HTMLElement&amp; element, const AtomicString&amp; eventType, JSC::JSValue value)
+{
+    ASSERT(wrapper.globalObject());
+    element.document().setWindowAttributeEventListener(eventType, createEventListenerForEventHandlerAttribute(state, value, *wrapper.globalObject()));
+}
+
</ins><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSEventListenerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSEventListener.h (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSEventListener.h        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/js/JSEventListener.h        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -29,6 +29,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+    class EventTarget;
+    class HTMLElement;
</ins><span class="cx">     class JSDOMGlobalObject;
</span><span class="cx"> 
</span><span class="cx">     class JSEventListener : public EventListener {
</span><span class="lines">@@ -75,9 +77,14 @@
</span><span class="cx">         RefPtr&lt;DOMWrapperWorld&gt; m_isolatedWorld;
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    // For &quot;onXXX&quot; event attributes.
-    RefPtr&lt;JSEventListener&gt; createJSEventListenerForAttribute(JSC::ExecState&amp;, JSC::JSValue listener, JSC::JSObject&amp; wrapper);
</del><ins>+    // For &quot;onxxx&quot; attributes that automatically set up JavaScript event listeners.
+    JSC::JSValue eventHandlerAttribute(EventTarget&amp;, const AtomicString&amp; eventType);
+    void setEventHandlerAttribute(JSC::ExecState&amp;, JSC::JSObject&amp;, EventTarget&amp;, const AtomicString&amp; eventType, JSC::JSValue);
</ins><span class="cx"> 
</span><ins>+    // Like the functions above, but for attributes that forward event handlers to the window object rather than setting them on the target.
+    JSC::JSValue windowForwardedEventHandlerAttribute(HTMLElement&amp;, const AtomicString&amp; eventType);
+    void setWindowForwardedEventHandlerAttribute(JSC::ExecState&amp;, JSC::JSObject&amp;, HTMLElement&amp;, const AtomicString&amp; eventType, JSC::JSValue);
+
</ins><span class="cx">     Ref&lt;JSEventListener&gt; createJSEventListenerForAdd(JSC::ExecState&amp;, JSC::JSObject&amp; listener, JSC::JSObject&amp; wrapper);
</span><span class="cx">     Ref&lt;JSEventListener&gt; createJSEventListenerForRemove(JSC::ExecState&amp;, JSC::JSObject&amp; listener, JSC::JSObject&amp; wrapper);
</span><span class="cx"> 
</span><span class="lines">@@ -112,13 +119,6 @@
</span><span class="cx">         return m_jsFunction.get();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    inline RefPtr&lt;JSEventListener&gt; createJSEventListenerForAttribute(JSC::ExecState&amp; state, JSC::JSValue listener, JSC::JSObject&amp; wrapper)
-    {
-        if (!listener.isObject())
-            return nullptr;
-        return JSEventListener::create(asObject(listener), &amp;wrapper, true, currentWorld(&amp;state));
-    }
-
</del><span class="cx">     inline Ref&lt;JSEventListener&gt; createJSEventListenerForRemove(JSC::ExecState&amp; state, JSC::JSObject&amp; listener, JSC::JSObject&amp; wrapper)
</span><span class="cx">     {
</span><span class="cx">         return createJSEventListenerForAdd(state, listener, wrapper);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -140,16 +140,24 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-sub GenerateAttributeEventListenerCall
</del><ins>+sub EventHandlerAttributeEventName
</ins><span class="cx"> {
</span><del>-    my $implSetterFunctionName = shift;
-    my $windowEventListener = shift;
</del><ins>+    my $attribute = shift;
</ins><span class="cx"> 
</span><del>-    my $wrapperObject = $windowEventListener ? &quot;globalObject&quot; : &quot;castedThis&quot;;
-    my @GenerateEventListenerImpl = ();
</del><ins>+    # Remove the &quot;on&quot; prefix.
+    my $eventType = substr($attribute-&gt;signature-&gt;name, 2);
</ins><span class="cx"> 
</span><del>-    push(@GenerateEventListenerImpl, &quot;    impl.set$implSetterFunctionName(createJSEventListenerForAttribute(*exec, value, *$wrapperObject));\n&quot;);
-    return @GenerateEventListenerImpl;
</del><ins>+    # FIXME: Consider adding a property in the IDL file instead of hard coding these names.
+
+    $eventType = &quot;show&quot; if $eventType eq &quot;display&quot;;
+
+    # Note: These four names exist in HTMLElement.cpp.
+    $eventType = &quot;webkitAnimationEnd&quot; if $eventType eq &quot;webkitanimationend&quot;;
+    $eventType = &quot;webkitAnimationIteration&quot; if $eventType eq &quot;webkitanimationiteration&quot;;
+    $eventType = &quot;webkitAnimationStart&quot; if $eventType eq &quot;webkitanimationstart&quot;;
+    $eventType = &quot;webkitTransitionEnd&quot; if $eventType eq &quot;webkittransitionend&quot;;
+
+    return &quot;eventNames().${eventType}Event&quot;;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> sub GenerateEventListenerCall
</span><span class="lines">@@ -1969,7 +1977,7 @@
</span><span class="cx">             push(@implContent, &quot;{\n&quot;);
</span><span class="cx">             push(@implContent, &quot;    VM&amp; vm = exec-&gt;vm();\n&quot;);
</span><span class="cx">             push(@implContent, &quot;    UNUSED_PARAM(vm);\n&quot;);
</span><del>-            push(@implContent, &quot;    ${className}Prototype* thisObject = jsCast&lt;${className}Prototype*&gt;(object);\n&quot;);
</del><ins>+            push(@implContent, &quot;    auto* thisObject = jsCast&lt;${className}Prototype*&gt;(object);\n&quot;);
</ins><span class="cx"> 
</span><span class="cx">             if ($numConstants eq 0 &amp;&amp; $numFunctions eq 0 &amp;&amp; $numPrototypeAttributes eq 0) {
</span><span class="cx">                 push(@implContent, &quot;    return Base::getOwnPropertySlot(thisObject, exec, propertyName, slot);\n&quot;);        
</span><span class="lines">@@ -2012,7 +2020,7 @@
</span><span class="cx">     if ($interface-&gt;extendedAttributes-&gt;{&quot;JSCustomNamedGetterOnPrototype&quot;}) {
</span><span class="cx">         push(@implContent, &quot;void ${className}Prototype::put(JSCell* cell, ExecState* exec, PropertyName propertyName, JSValue value, PutPropertySlot&amp; slot)\n&quot;);
</span><span class="cx">         push(@implContent, &quot;{\n&quot;);
</span><del>-        push(@implContent, &quot;    ${className}Prototype* thisObject = jsCast&lt;${className}Prototype*&gt;(cell);\n&quot;);
</del><ins>+        push(@implContent, &quot;    auto* thisObject = jsCast&lt;${className}Prototype*&gt;(cell);\n&quot;);
</ins><span class="cx">         push(@implContent, &quot;    if (thisObject-&gt;putDelegate(exec, propertyName, value, slot))\n&quot;);
</span><span class="cx">         push(@implContent, &quot;        return;\n&quot;);
</span><span class="cx">         push(@implContent, &quot;    Base::put(thisObject, exec, propertyName, value, slot);\n&quot;);
</span><span class="lines">@@ -2106,7 +2114,7 @@
</span><span class="cx">         if (!$interface-&gt;extendedAttributes-&gt;{&quot;CustomGetOwnPropertySlot&quot;}) {
</span><span class="cx">             push(@implContent, &quot;bool ${className}::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)\n&quot;);
</span><span class="cx">             push(@implContent, &quot;{\n&quot;);
</span><del>-            push(@implContent, &quot;    ${className}* thisObject = jsCast&lt;${className}*&gt;(object);\n&quot;);
</del><ins>+            push(@implContent, &quot;    auto* thisObject = jsCast&lt;${className}*&gt;(object);\n&quot;);
</ins><span class="cx">             push(@implContent, &quot;    ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n&quot;);
</span><span class="cx">             push(@implContent, GenerateGetOwnPropertySlotBody($interface, $interfaceName, $className, $numInstanceAttributes &gt; 0, 0));
</span><span class="cx">             push(@implContent, &quot;}\n\n&quot;);
</span><span class="lines">@@ -2117,7 +2125,7 @@
</span><span class="cx">                 || $interface-&gt;extendedAttributes-&gt;{&quot;JSCustomGetOwnPropertySlotAndDescriptor&quot;}) {
</span><span class="cx">             push(@implContent, &quot;bool ${className}::getOwnPropertySlotByIndex(JSObject* object, ExecState* exec, unsigned index, PropertySlot&amp; slot)\n&quot;);
</span><span class="cx">             push(@implContent, &quot;{\n&quot;);
</span><del>-            push(@implContent, &quot;    ${className}* thisObject = jsCast&lt;${className}*&gt;(object);\n&quot;);
</del><ins>+            push(@implContent, &quot;    auto* thisObject = jsCast&lt;${className}*&gt;(object);\n&quot;);
</ins><span class="cx">             push(@implContent, &quot;    ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n&quot;);
</span><span class="cx"> 
</span><span class="cx">             # Sink the int-to-string conversion that happens when we create a PropertyName
</span><span class="lines">@@ -2190,9 +2198,9 @@
</span><span class="cx">             push(@implContent, &quot;    UNUSED_PARAM(thisValue);\n&quot;);
</span><span class="cx">             if (!$attribute-&gt;isStatic || $attribute-&gt;signature-&gt;type =~ /Constructor$/) {
</span><span class="cx">                 if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomProxyToJSObject&quot;}) {
</span><del>-                    push(@implContent, &quot;    ${className}* castedThis = to${className}(JSValue::decode(thisValue));\n&quot;);
</del><ins>+                    push(@implContent, &quot;    auto* castedThis = to${className}(JSValue::decode(thisValue));\n&quot;);
</ins><span class="cx">                 } elsif (AttributeShouldBeOnInstance($interface, $attribute)) {
</span><del>-                    push(@implContent, &quot;    ${className}* castedThis = jsCast&lt;JS${interfaceName}*&gt;(slotBase);\n&quot;);
</del><ins>+                    push(@implContent, &quot;    auto* castedThis = jsCast&lt;JS${interfaceName}*&gt;(slotBase);\n&quot;);
</ins><span class="cx">                     if (InterfaceRequiresAttributesOnInstanceForCompatibility($interface)) {
</span><span class="cx">                         push(@implContent, &quot;    ${className}* castedThisObject = &quot; . GetCastingHelperForThisObject($interface) . &quot;(JSValue::decode(thisValue));\n&quot;);
</span><span class="cx">                         push(@implContent, &quot;    if (UNLIKELY(!castedThisObject))\n&quot;);
</span><span class="lines">@@ -2283,23 +2291,13 @@
</span><span class="cx">                 push(@implContent, &quot;    return JSValue::encode(castedThis-&gt;$implGetterFunctionName(exec));\n&quot;);
</span><span class="cx">             } elsif ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CheckSecurityForNode&quot;}) {
</span><span class="cx">                 $implIncludes{&quot;JSDOMBinding.h&quot;} = 1;
</span><del>-                push(@implContent, &quot;    $implType&amp; impl = castedThis-&gt;impl();\n&quot;);
</del><ins>+                push(@implContent, &quot;    auto&amp; impl = castedThis-&gt;impl();\n&quot;);
</ins><span class="cx">                 push(@implContent, &quot;    return JSValue::encode(shouldAllowAccessToNode(exec, impl.&quot; . $attribute-&gt;signature-&gt;name . &quot;()) ? &quot; . NativeToJSValue($attribute-&gt;signature, 0, $interfaceName, &quot;impl.$implGetterFunctionName()&quot;, &quot;castedThis&quot;) . &quot; : jsNull());\n&quot;);
</span><span class="cx">             } elsif ($type eq &quot;EventListener&quot;) {
</span><del>-                $implIncludes{&quot;EventListener.h&quot;} = 1;
</del><ins>+                my $getter = $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;JSWindowEventListener&quot;} ? &quot;windowForwardedEventHandlerAttribute&quot; : &quot;eventHandlerAttribute&quot;;
+                my $eventName = EventHandlerAttributeEventName($attribute);
</ins><span class="cx">                 push(@implContent, &quot;    UNUSED_PARAM(exec);\n&quot;);
</span><del>-                push(@implContent, &quot;    $implType&amp; impl = castedThis-&gt;impl();\n&quot;);
-                push(@implContent, &quot;    if (EventListener* listener = impl.$implGetterFunctionName()) {\n&quot;);
-                push(@implContent, &quot;        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {\n&quot;);
-                if ($interfaceName eq &quot;Document&quot; || $codeGenerator-&gt;InheritsInterface($interface, &quot;WorkerGlobalScope&quot;)) {
-                    push(@implContent, &quot;            if (JSObject* jsFunction = jsListener-&gt;jsFunction(&amp;impl))\n&quot;);
-                } else {
-                    push(@implContent, &quot;            if (JSObject* jsFunction = jsListener-&gt;jsFunction(impl.scriptExecutionContext()))\n&quot;);
-                }
-                push(@implContent, &quot;                return JSValue::encode(jsFunction);\n&quot;);
-                push(@implContent, &quot;        }\n&quot;);
-                push(@implContent, &quot;    }\n&quot;);
-                push(@implContent, &quot;    return JSValue::encode(jsNull());\n&quot;);
</del><ins>+                push(@implContent, &quot;    return JSValue::encode($getter(castedThis-&gt;impl(), $eventName));\n&quot;);
</ins><span class="cx">             } elsif ($attribute-&gt;signature-&gt;type =~ /Constructor$/) {
</span><span class="cx">                 my $constructorType = $attribute-&gt;signature-&gt;type;
</span><span class="cx">                 $constructorType =~ s/Constructor$//;
</span><span class="lines">@@ -2352,7 +2350,7 @@
</span><span class="cx"> 
</span><span class="cx">                     unshift(@arguments, @callWithArgs);
</span><span class="cx">                     my $jsType = NativeToJSValue($attribute-&gt;signature, 0, $interfaceName, &quot;${functionName}(&quot; . join(&quot;, &quot;, @arguments) . &quot;)&quot;, &quot;castedThis&quot;);
</span><del>-                    push(@implContent, &quot;    $implType&amp; impl = castedThis-&gt;impl();\n&quot;) if !$attribute-&gt;isStatic;
</del><ins>+                    push(@implContent, &quot;    auto&amp; impl = castedThis-&gt;impl();\n&quot;) if !$attribute-&gt;isStatic;
</ins><span class="cx">                     if ($codeGenerator-&gt;IsSVGAnimatedType($type)) {
</span><span class="cx">                         push(@implContent, &quot;    RefPtr&lt;$type&gt; obj = $jsType;\n&quot;);
</span><span class="cx">                         push(@implContent, &quot;    JSValue result = toJS(exec, castedThis-&gt;globalObject(), obj.get());\n&quot;);
</span><span class="lines">@@ -2381,7 +2379,7 @@
</span><span class="cx">                     push(@implContent, &quot;    $svgPropertyOrListPropertyType impl(*castedThis-&gt;impl());\n&quot;);
</span><span class="cx">                     push(@implContent, &quot;    JSValue result = &quot; . NativeToJSValue($attribute-&gt;signature, 0, $interfaceName, &quot;impl.$implGetterFunctionName(&quot; . join(&quot;, &quot;, @arguments) . &quot;)&quot;, &quot;castedThis&quot;) . &quot;;\n&quot;);
</span><span class="cx">                 } else {
</span><del>-                    push(@implContent, &quot;    $implType&amp; impl = castedThis-&gt;impl();\n&quot;);
</del><ins>+                    push(@implContent, &quot;    auto&amp; impl = castedThis-&gt;impl();\n&quot;);
</ins><span class="cx">                     push(@implContent, &quot;    JSValue result = &quot; . NativeToJSValue($attribute-&gt;signature, 0, $interfaceName, &quot;impl.$implGetterFunctionName(&quot; . join(&quot;, &quot;, @arguments) . &quot;)&quot;, &quot;castedThis&quot;) . &quot;;\n&quot;);
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="lines">@@ -2472,7 +2470,7 @@
</span><span class="cx">         if (!$interface-&gt;extendedAttributes-&gt;{&quot;CustomPutFunction&quot;}) {
</span><span class="cx">             push(@implContent, &quot;void ${className}::put(JSCell* cell, ExecState* exec, PropertyName propertyName, JSValue value, PutPropertySlot&amp; slot)\n&quot;);
</span><span class="cx">             push(@implContent, &quot;{\n&quot;);
</span><del>-            push(@implContent, &quot;    ${className}* thisObject = jsCast&lt;${className}*&gt;(cell);\n&quot;);
</del><ins>+            push(@implContent, &quot;    auto* thisObject = jsCast&lt;${className}*&gt;(cell);\n&quot;);
</ins><span class="cx">             push(@implContent, &quot;    ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n&quot;);
</span><span class="cx">             if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomIndexedSetter&quot;}) {
</span><span class="cx">                 push(@implContent, &quot;    unsigned index = propertyName.asIndex();\n&quot;);
</span><span class="lines">@@ -2492,7 +2490,7 @@
</span><span class="cx">             if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomIndexedSetter&quot;} || $interface-&gt;extendedAttributes-&gt;{&quot;CustomNamedSetter&quot;}) {
</span><span class="cx">                 push(@implContent, &quot;void ${className}::putByIndex(JSCell* cell, ExecState* exec, unsigned index, JSValue value, bool shouldThrow)\n&quot;);
</span><span class="cx">                 push(@implContent, &quot;{\n&quot;);
</span><del>-                push(@implContent, &quot;    ${className}* thisObject = jsCast&lt;${className}*&gt;(cell);\n&quot;);
</del><ins>+                push(@implContent, &quot;    auto* thisObject = jsCast&lt;${className}*&gt;(cell);\n&quot;);
</ins><span class="cx">                 push(@implContent, &quot;    ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n&quot;);
</span><span class="cx"> 
</span><span class="cx">                 if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomIndexedSetter&quot;}) {
</span><span class="lines">@@ -2548,7 +2546,7 @@
</span><span class="cx">                         push(@implContent, &quot;    ${className}* castedThis = to${className}(JSValue::decode(thisValue));\n&quot;);
</span><span class="cx">                     } elsif (AttributeShouldBeOnInstance($interface, $attribute)) {
</span><span class="cx">                         push(@implContent, &quot;    UNUSED_PARAM(thisValue);\n&quot;);
</span><del>-                        push(@implContent, &quot;    ${className}* castedThis = jsCast&lt;JS${interfaceName}*&gt;(baseObject);\n&quot;);
</del><ins>+                        push(@implContent, &quot;    auto* castedThis = jsCast&lt;JS${interfaceName}*&gt;(baseObject);\n&quot;);
</ins><span class="cx">                         if (InterfaceRequiresAttributesOnInstanceForCompatibility($interface)) {
</span><span class="cx">                             push(@implContent, &quot;    ${className}* castedThisObject = &quot; . GetCastingHelperForThisObject($interface) . &quot;(JSValue::decode(thisValue));\n&quot;);
</span><span class="cx">                             push(@implContent, &quot;    if (UNLIKELY(!castedThisObject))\n&quot;);
</span><span class="lines">@@ -2580,18 +2578,15 @@
</span><span class="cx">                 if (HasCustomSetter($attribute-&gt;signature-&gt;extendedAttributes)) {
</span><span class="cx">                     push(@implContent, &quot;    castedThis-&gt;set$implSetterFunctionName(exec, value);\n&quot;);
</span><span class="cx">                 } elsif ($type eq &quot;EventListener&quot;) {
</span><del>-                    $implIncludes{&quot;JSEventListener.h&quot;} = 1;
-                    push(@implContent, &quot;    UNUSED_PARAM(exec);\n&quot;);
-                    my $windowEventListener = $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;JSWindowEventListener&quot;};
-                    if ($windowEventListener) {
-                        push(@implContent, &quot;    JSDOMGlobalObject* globalObject = castedThis-&gt;globalObject();\n&quot;);
-                    }
-                    push(@implContent, &quot;    $implType&amp; impl = castedThis-&gt;impl();\n&quot;);
</del><ins>+                    my $eventName = EventHandlerAttributeEventName($attribute);
+                    # FIXME: Find a way to do this special case without hardcoding the class and attribute names here.
</ins><span class="cx">                     if ((($interfaceName eq &quot;DOMWindow&quot;) or ($interfaceName eq &quot;WorkerGlobalScope&quot;)) and $name eq &quot;onerror&quot;) {
</span><span class="cx">                         $implIncludes{&quot;JSErrorHandler.h&quot;} = 1;
</span><del>-                        push(@implContent, &quot;    impl.set$implSetterFunctionName(createJSErrorHandler(exec, value, castedThis));\n&quot;);
</del><ins>+                        push(@implContent, &quot;    castedThis-&gt;impl().setAttributeEventListener($eventName, createJSErrorHandler(exec, value, castedThis));\n&quot;);
</ins><span class="cx">                     } else {
</span><del>-                        push(@implContent, GenerateAttributeEventListenerCall($implSetterFunctionName, $windowEventListener));
</del><ins>+                        $implIncludes{&quot;JSEventListener.h&quot;} = 1;
+                        my $setter = $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;JSWindowEventListener&quot;} ? &quot;setWindowForwardedEventHandlerAttribute&quot; : &quot;setEventHandlerAttribute&quot;;
+                        push(@implContent, &quot;    $setter(*exec, *castedThis, castedThis-&gt;impl(), $eventName, value);\n&quot;);
</ins><span class="cx">                     }
</span><span class="cx">                 } elsif ($attribute-&gt;signature-&gt;type =~ /Constructor$/) {
</span><span class="cx">                     my $constructorType = $attribute-&gt;signature-&gt;type;
</span><span class="lines">@@ -2602,14 +2597,14 @@
</span><span class="cx">                     if ($constructorType ne &quot;any&quot; and $constructorType !~ /Named$/) {
</span><span class="cx">                         AddToImplIncludes(&quot;JS&quot; . $constructorType . &quot;.h&quot;, $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;});
</span><span class="cx">                     }
</span><del>-                    push(@implContent, &quot;    // Shadowing a built-in constructor\n&quot;);
</del><ins>+                    push(@implContent, &quot;    // Shadowing a built-in constructor.\n&quot;);
</ins><span class="cx">                     push(@implContent, &quot;    castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, \&quot;$name\&quot;), value);\n&quot;);
</span><span class="cx">                 } elsif ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Replaceable&quot;}) {
</span><del>-                    push(@implContent, &quot;    // Shadowing a built-in object\n&quot;);
</del><ins>+                    push(@implContent, &quot;    // Shadowing a built-in object.\n&quot;);
</ins><span class="cx">                     push(@implContent, &quot;    castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, \&quot;$name\&quot;), value);\n&quot;);
</span><span class="cx">                 } else {
</span><span class="cx">                     if (!$attribute-&gt;isStatic) {
</span><del>-                        push(@implContent, &quot;    $implType&amp; impl = castedThis-&gt;impl();\n&quot;);
</del><ins>+                        push(@implContent, &quot;    auto&amp; impl = castedThis-&gt;impl();\n&quot;);
</ins><span class="cx">                     }
</span><span class="cx">                     push(@implContent, &quot;    ExceptionCode ec = 0;\n&quot;) if $setterRaisesException;
</span><span class="cx"> 
</span><span class="lines">@@ -2712,7 +2707,7 @@
</span><span class="cx">     if ($indexedGetterFunction &amp;&amp; !$interface-&gt;extendedAttributes-&gt;{&quot;CustomEnumerateProperty&quot;}) {
</span><span class="cx">         push(@implContent, &quot;void ${className}::getOwnPropertyNames(JSObject* object, ExecState* exec, PropertyNameArray&amp; propertyNames, EnumerationMode mode)\n&quot;);
</span><span class="cx">         push(@implContent, &quot;{\n&quot;);
</span><del>-        push(@implContent, &quot;    ${className}* thisObject = jsCast&lt;${className}*&gt;(object);\n&quot;);
</del><ins>+        push(@implContent, &quot;    auto* thisObject = jsCast&lt;${className}*&gt;(object);\n&quot;);
</ins><span class="cx">         push(@implContent, &quot;    ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n&quot;);
</span><span class="cx">         push(@implContent, &quot;    for (unsigned i = 0, count = thisObject-&gt;impl().length(); i &lt; count; ++i)\n&quot;);
</span><span class="cx">         push(@implContent, &quot;        propertyNames.add(Identifier::from(exec, i));\n&quot;);
</span><span class="lines">@@ -2819,7 +2814,7 @@
</span><span class="cx">                 if ($isCustom) {
</span><span class="cx">                     push(@implContent, &quot;    return JSValue::encode(castedThis-&gt;&quot; . $functionImplementationName . &quot;(exec));\n&quot;);
</span><span class="cx">                 } else {
</span><del>-                    push(@implContent, &quot;    $implType&amp; impl = castedThis-&gt;impl();\n&quot;);
</del><ins>+                    push(@implContent, &quot;    auto&amp; impl = castedThis-&gt;impl();\n&quot;);
</ins><span class="cx">                     if ($svgPropertyType) {
</span><span class="cx">                         push(@implContent, &quot;    if (impl.isReadOnly()) {\n&quot;);
</span><span class="cx">                         push(@implContent, &quot;        setDOMException(exec, NO_MODIFICATION_ALLOWED_ERR);\n&quot;);
</span><span class="lines">@@ -2869,7 +2864,7 @@
</span><span class="cx">     if ($needsVisitChildren) {
</span><span class="cx">         push(@implContent, &quot;void ${className}::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)\n&quot;);
</span><span class="cx">         push(@implContent, &quot;{\n&quot;);
</span><del>-        push(@implContent, &quot;    ${className}* thisObject = jsCast&lt;${className}*&gt;(cell);\n&quot;);
</del><ins>+        push(@implContent, &quot;    auto* thisObject = jsCast&lt;${className}*&gt;(cell);\n&quot;);
</ins><span class="cx">         push(@implContent, &quot;    ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n&quot;);
</span><span class="cx">         push(@implContent, &quot;    Base::visitChildren(thisObject, visitor);\n&quot;);
</span><span class="cx">         if ($interface-&gt;extendedAttributes-&gt;{&quot;EventTarget&quot;} || $interface-&gt;name eq &quot;EventTarget&quot;) {
</span><span class="lines">@@ -2913,8 +2908,8 @@
</span><span class="cx">             push(@implContent, &quot;}\n\n&quot;);
</span><span class="cx">             push(@implContent, &quot;EncodedJSValue ${className}::nameGetter(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName propertyName)\n&quot;);
</span><span class="cx">             push(@implContent, &quot;{\n&quot;);
</span><del>-            push(@implContent, &quot;    ${className}* thisObj = jsCast&lt;$className*&gt;(slotBase);\n&quot;);
-            push(@implContent, &quot;    return JSValue::encode(toJS(exec, thisObj-&gt;globalObject(), thisObj-&gt;impl().namedItem(propertyNameToAtomicString(propertyName))));\n&quot;);
</del><ins>+            push(@implContent, &quot;    auto* thisObject = jsCast&lt;$className*&gt;(slotBase);\n&quot;);
+            push(@implContent, &quot;    return JSValue::encode(toJS(exec, thisObject-&gt;globalObject(), thisObject-&gt;impl().namedItem(propertyNameToAtomicString(propertyName))));\n&quot;);
</ins><span class="cx">             push(@implContent, &quot;}\n\n&quot;);
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -2944,14 +2939,14 @@
</span><span class="cx">         # check below the isObservable check.
</span><span class="cx">         my $emittedJSCast = 0;
</span><span class="cx">         if ($codeGenerator-&gt;InheritsExtendedAttribute($interface, &quot;ActiveDOMObject&quot;)) {
</span><del>-            push(@implContent, &quot;    JS${interfaceName}* js${interfaceName} = jsCast&lt;JS${interfaceName}*&gt;(handle.slot()-&gt;asCell());\n&quot;);
</del><ins>+            push(@implContent, &quot;    auto* js${interfaceName} = jsCast&lt;JS${interfaceName}*&gt;(handle.slot()-&gt;asCell());\n&quot;);
</ins><span class="cx">             $emittedJSCast = 1;
</span><span class="cx">             push(@implContent, &quot;    if (js${interfaceName}-&gt;impl().hasPendingActivity())\n&quot;);
</span><span class="cx">             push(@implContent, &quot;        return true;\n&quot;);
</span><span class="cx">         }
</span><span class="cx">         if ($codeGenerator-&gt;InheritsExtendedAttribute($interface, &quot;EventTarget&quot;)) {
</span><span class="cx">             if (!$emittedJSCast) {
</span><del>-                push(@implContent, &quot;    JS${interfaceName}* js${interfaceName} = jsCast&lt;JS${interfaceName}*&gt;(handle.slot()-&gt;asCell());\n&quot;);
</del><ins>+                push(@implContent, &quot;    auto* js${interfaceName} = jsCast&lt;JS${interfaceName}*&gt;(handle.slot()-&gt;asCell());\n&quot;);
</ins><span class="cx">                 $emittedJSCast = 1;
</span><span class="cx">             }
</span><span class="cx">             push(@implContent, &quot;    if (js${interfaceName}-&gt;impl().isFiringEventListeners())\n&quot;);
</span><span class="lines">@@ -2959,7 +2954,7 @@
</span><span class="cx">         }
</span><span class="cx">         if ($codeGenerator-&gt;InheritsInterface($interface, &quot;Node&quot;)) {
</span><span class="cx">             if (!$emittedJSCast) {
</span><del>-                push(@implContent, &quot;    JS${interfaceName}* js${interfaceName} = jsCast&lt;JS${interfaceName}*&gt;(handle.slot()-&gt;asCell());\n&quot;);
</del><ins>+                push(@implContent, &quot;    auto* js${interfaceName} = jsCast&lt;JS${interfaceName}*&gt;(handle.slot()-&gt;asCell());\n&quot;);
</ins><span class="cx">                 $emittedJSCast = 1;
</span><span class="cx">             }
</span><span class="cx">             push(@implContent, &quot;    if (JSNodeOwner::isReachableFromOpaqueRoots(handle, 0, visitor))\n&quot;);
</span><span class="lines">@@ -2967,7 +2962,7 @@
</span><span class="cx">         }
</span><span class="cx">         if (GetGenerateIsReachable($interface)) {
</span><span class="cx">             if (!$emittedJSCast) {
</span><del>-                push(@implContent, &quot;    JS${interfaceName}* js${interfaceName} = jsCast&lt;JS${interfaceName}*&gt;(handle.slot()-&gt;asCell());\n&quot;);
</del><ins>+                push(@implContent, &quot;    auto* js${interfaceName} = jsCast&lt;JS${interfaceName}*&gt;(handle.slot()-&gt;asCell());\n&quot;);
</ins><span class="cx">                 $emittedJSCast = 1;
</span><span class="cx">             }
</span><span class="cx">             push(@implContent, &quot;    if (!isObservable(js${interfaceName}))\n&quot;);
</span><span class="lines">@@ -3024,8 +3019,8 @@
</span><span class="cx">          $codeGenerator-&gt;InheritsExtendedAttribute($interface, &quot;ActiveDOMObject&quot;))) {
</span><span class="cx">         push(@implContent, &quot;void JS${interfaceName}Owner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)\n&quot;);
</span><span class="cx">         push(@implContent, &quot;{\n&quot;);
</span><del>-        push(@implContent, &quot;    JS${interfaceName}* js${interfaceName} = jsCast&lt;JS${interfaceName}*&gt;(handle.slot()-&gt;asCell());\n&quot;);
-        push(@implContent, &quot;    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);\n&quot;);
</del><ins>+        push(@implContent, &quot;    auto* js${interfaceName} = jsCast&lt;JS${interfaceName}*&gt;(handle.slot()-&gt;asCell());\n&quot;);
+        push(@implContent, &quot;    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);\n&quot;);
</ins><span class="cx">         push(@implContent, &quot;    uncacheWrapper(world, &amp;js${interfaceName}-&gt;impl(), js${interfaceName});\n&quot;);
</span><span class="cx">         push(@implContent, &quot;    js${interfaceName}-&gt;releaseImpl();\n&quot;);
</span><span class="cx">         push(@implContent, &quot;}\n\n&quot;);
</span><span class="lines">@@ -3132,7 +3127,7 @@
</span><span class="cx">         push(@callWithArgs, &quot;exec&quot;);
</span><span class="cx">     }
</span><span class="cx">     if ($codeGenerator-&gt;ExtendedAttributeContains($callWith, &quot;ScriptExecutionContext&quot;)) {
</span><del>-        push(@$outputArray, &quot;    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();\n&quot;);
</del><ins>+        push(@$outputArray, &quot;    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();\n&quot;);
</ins><span class="cx">         push(@$outputArray, &quot;    if (!scriptContext)\n&quot;);
</span><span class="cx">         push(@$outputArray, &quot;        return&quot; . ($returnValue ? &quot; &quot; . $returnValue : &quot;&quot;) . &quot;;\n&quot;);
</span><span class="cx">         push(@callWithArgs, &quot;scriptContext&quot;);
</span><span class="lines">@@ -4509,7 +4504,7 @@
</span><span class="cx">             push(@$outputArray, &lt;&lt;END);
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL ${constructorClassName}::construct${className}(ExecState* exec)
</span><span class="cx"> {
</span><del>-    ${constructorClassName}* jsConstructor = jsCast&lt;${constructorClassName}*&gt;(exec-&gt;callee());
</del><ins>+    auto* jsConstructor = jsCast&lt;${constructorClassName}*&gt;(exec-&gt;callee());
</ins><span class="cx"> 
</span><span class="cx">     ScriptExecutionContext* executionContext = jsConstructor-&gt;scriptExecutionContext();
</span><span class="cx">     if (!executionContext)
</span><span class="lines">@@ -4576,7 +4571,7 @@
</span><span class="cx"> 
</span><span class="cx">             push(@$outputArray, &quot;EncodedJSValue JSC_HOST_CALL ${constructorClassName}::construct${className}${overloadedIndexString}(ExecState* exec)\n&quot;);
</span><span class="cx">             push(@$outputArray, &quot;{\n&quot;);
</span><del>-            push(@$outputArray, &quot;    ${constructorClassName}* castedThis = jsCast&lt;${constructorClassName}*&gt;(exec-&gt;callee());\n&quot;);
</del><ins>+            push(@$outputArray, &quot;    auto* castedThis = jsCast&lt;${constructorClassName}*&gt;(exec-&gt;callee());\n&quot;);
</ins><span class="cx"> 
</span><span class="cx">             my @constructorArgList;
</span><span class="cx"> 
</span><span class="lines">@@ -4606,7 +4601,7 @@
</span><span class="cx">                 push(@$outputArray, &quot;    ScriptExecutionContext* context = castedThis-&gt;scriptExecutionContext();\n&quot;);
</span><span class="cx">                 push(@$outputArray, &quot;    if (!context)\n&quot;);
</span><span class="cx">                 push(@$outputArray, &quot;        return throwConstructorDocumentUnavailableError(*exec, \&quot;${interfaceName}\&quot;);\n&quot;);
</span><del>-                push(@$outputArray, &quot;    Document&amp; document = downcast&lt;Document&gt;(*context);\n&quot;);
</del><ins>+                push(@$outputArray, &quot;    auto&amp; document = downcast&lt;Document&gt;(*context);\n&quot;);
</ins><span class="cx">             }
</span><span class="cx">             if ($generatingNamedConstructor) {
</span><span class="cx">                 push(@constructorArgList, &quot;*castedThis-&gt;document()&quot;);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -168,7 +168,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool JSTestActiveDOMObject::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
</span><span class="cx"> {
</span><del>-    JSTestActiveDOMObject* thisObject = jsCast&lt;JSTestActiveDOMObject*&gt;(object);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestActiveDOMObject*&gt;(object);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     return getStaticValueSlot&lt;JSTestActiveDOMObject, Base&gt;(exec, JSTestActiveDOMObjectTable, thisObject, propertyName, slot);
</span><span class="cx"> }
</span><span class="lines">@@ -178,10 +178,10 @@
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestActiveDOMObject* castedThis = jsCast&lt;JSTestActiveDOMObject*&gt;(slotBase);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestActiveDOMObject*&gt;(slotBase);
</ins><span class="cx">     if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis-&gt;impl()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><del>-    TestActiveDOMObject&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.excitingAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -211,7 +211,7 @@
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestActiveDOMObject::info());
</span><span class="cx">     if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis-&gt;impl()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><del>-    TestActiveDOMObject&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     Node* nextChild(JSNode::toWrapped(exec-&gt;argument(0)));
</span><span class="lines">@@ -228,7 +228,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestActiveDOMObject&quot;, &quot;postMessage&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestActiveDOMObject::info());
</span><del>-    TestActiveDOMObject&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     const String&amp; message(exec-&gt;argument(0).isEmpty() ? String() : exec-&gt;argument(0).toString(exec)-&gt;value(exec));
</span><span class="lines">@@ -247,8 +247,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestActiveDOMObjectOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSTestActiveDOMObject* jsTestActiveDOMObject = jsCast&lt;JSTestActiveDOMObject*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsTestActiveDOMObject = jsCast&lt;JSTestActiveDOMObject*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsTestActiveDOMObject-&gt;impl(), jsTestActiveDOMObject);
</span><span class="cx">     jsTestActiveDOMObject-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool JSTestCustomNamedGetter::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
</span><span class="cx"> {
</span><del>-    JSTestCustomNamedGetter* thisObject = jsCast&lt;JSTestCustomNamedGetter*&gt;(object);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestCustomNamedGetter*&gt;(object);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     if (canGetItemsForName(exec, &amp;thisObject-&gt;impl(), propertyName)) {
</span><span class="cx">         slot.setCustom(thisObject, ReadOnly | DontDelete | DontEnum, thisObject-&gt;nameGetter);
</span><span class="lines">@@ -172,7 +172,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool JSTestCustomNamedGetter::getOwnPropertySlotByIndex(JSObject* object, ExecState* exec, unsigned index, PropertySlot&amp; slot)
</span><span class="cx"> {
</span><del>-    JSTestCustomNamedGetter* thisObject = jsCast&lt;JSTestCustomNamedGetter*&gt;(object);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestCustomNamedGetter*&gt;(object);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     PropertyName propertyName = Identifier::from(exec, index);
</span><span class="cx">     if (canGetItemsForName(exec, &amp;thisObject-&gt;impl(), propertyName)) {
</span><span class="lines">@@ -202,7 +202,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestCustomNamedGetter&quot;, &quot;anotherFunction&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestCustomNamedGetter::info());
</span><del>-    TestCustomNamedGetter&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     const String&amp; str(exec-&gt;argument(0).isEmpty() ? String() : exec-&gt;argument(0).toString(exec)-&gt;value(exec));
</span><span class="lines">@@ -221,8 +221,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestCustomNamedGetterOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSTestCustomNamedGetter* jsTestCustomNamedGetter = jsCast&lt;JSTestCustomNamedGetter*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsTestCustomNamedGetter = jsCast&lt;JSTestCustomNamedGetter*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsTestCustomNamedGetter-&gt;impl(), jsTestCustomNamedGetter);
</span><span class="cx">     jsTestCustomNamedGetter-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL JSTestEventConstructorConstructor::constructJSTestEventConstructor(ExecState* exec)
</span><span class="cx"> {
</span><del>-    JSTestEventConstructorConstructor* jsConstructor = jsCast&lt;JSTestEventConstructorConstructor*&gt;(exec-&gt;callee());
</del><ins>+    auto* jsConstructor = jsCast&lt;JSTestEventConstructorConstructor*&gt;(exec-&gt;callee());
</ins><span class="cx"> 
</span><span class="cx">     ScriptExecutionContext* executionContext = jsConstructor-&gt;scriptExecutionContext();
</span><span class="cx">     if (!executionContext)
</span><span class="lines">@@ -205,7 +205,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestEventConstructor&quot;, &quot;attr1&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestEventConstructor&quot;, &quot;attr1&quot;);
</span><span class="cx">     }
</span><del>-    TestEventConstructor&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.attr1());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -222,7 +222,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestEventConstructor&quot;, &quot;attr2&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestEventConstructor&quot;, &quot;attr2&quot;);
</span><span class="cx">     }
</span><del>-    TestEventConstructor&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.attr2());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -250,8 +250,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestEventConstructorOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSTestEventConstructor* jsTestEventConstructor = jsCast&lt;JSTestEventConstructor*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsTestEventConstructor = jsCast&lt;JSTestEventConstructor*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsTestEventConstructor-&gt;impl(), jsTestEventConstructor);
</span><span class="cx">     jsTestEventConstructor-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -173,7 +173,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool JSTestEventTarget::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
</span><span class="cx"> {
</span><del>-    JSTestEventTarget* thisObject = jsCast&lt;JSTestEventTarget*&gt;(object);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestEventTarget*&gt;(object);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     const HashTableValue* entry = getStaticValueSlotEntryWithoutCaching&lt;JSTestEventTarget&gt;(exec, propertyName);
</span><span class="cx">     if (entry) {
</span><span class="lines">@@ -195,7 +195,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool JSTestEventTarget::getOwnPropertySlotByIndex(JSObject* object, ExecState* exec, unsigned index, PropertySlot&amp; slot)
</span><span class="cx"> {
</span><del>-    JSTestEventTarget* thisObject = jsCast&lt;JSTestEventTarget*&gt;(object);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestEventTarget*&gt;(object);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     if (index &lt; thisObject-&gt;impl().length()) {
</span><span class="cx">         unsigned attributes = DontDelete | ReadOnly;
</span><span class="lines">@@ -220,7 +220,7 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestEventTarget::getOwnPropertyNames(JSObject* object, ExecState* exec, PropertyNameArray&amp; propertyNames, EnumerationMode mode)
</span><span class="cx"> {
</span><del>-    JSTestEventTarget* thisObject = jsCast&lt;JSTestEventTarget*&gt;(object);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestEventTarget*&gt;(object);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     for (unsigned i = 0, count = thisObject-&gt;impl().length(); i &lt; count; ++i)
</span><span class="cx">         propertyNames.add(Identifier::from(exec, i));
</span><span class="lines">@@ -239,7 +239,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestEventTarget&quot;, &quot;item&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestEventTarget::info());
</span><del>-    TestEventTarget&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     int index(toUInt32(exec, exec-&gt;argument(0), NormalConversion));
</span><span class="lines">@@ -260,7 +260,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestEventTarget&quot;, &quot;addEventListener&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestEventTarget::info());
</span><del>-    TestEventTarget&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue listener = exec-&gt;argument(1);
</span><span class="cx">     if (UNLIKELY(!listener.isObject()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -275,7 +275,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestEventTarget&quot;, &quot;removeEventListener&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestEventTarget::info());
</span><del>-    TestEventTarget&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue listener = exec-&gt;argument(1);
</span><span class="cx">     if (UNLIKELY(!listener.isObject()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -290,7 +290,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestEventTarget&quot;, &quot;dispatchEvent&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestEventTarget::info());
</span><del>-    TestEventTarget&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="lines">@@ -305,7 +305,7 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestEventTarget::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
</span><span class="cx"> {
</span><del>-    JSTestEventTarget* thisObject = jsCast&lt;JSTestEventTarget*&gt;(cell);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestEventTarget*&gt;(cell);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     thisObject-&gt;impl().visitJSEventListeners(visitor);
</span><span class="lines">@@ -313,7 +313,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool JSTestEventTargetOwner::isReachableFromOpaqueRoots(JSC::Handle&lt;JSC::Unknown&gt; handle, void*, SlotVisitor&amp; visitor)
</span><span class="cx"> {
</span><del>-    JSTestEventTarget* jsTestEventTarget = jsCast&lt;JSTestEventTarget*&gt;(handle.slot()-&gt;asCell());
</del><ins>+    auto* jsTestEventTarget = jsCast&lt;JSTestEventTarget*&gt;(handle.slot()-&gt;asCell());
</ins><span class="cx">     if (jsTestEventTarget-&gt;impl().isFiringEventListeners())
</span><span class="cx">         return true;
</span><span class="cx">     UNUSED_PARAM(visitor);
</span><span class="lines">@@ -322,8 +322,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestEventTargetOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSTestEventTarget* jsTestEventTarget = jsCast&lt;JSTestEventTarget*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsTestEventTarget = jsCast&lt;JSTestEventTarget*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsTestEventTarget-&gt;impl(), jsTestEventTarget);
</span><span class="cx">     jsTestEventTarget-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -158,7 +158,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool JSTestException::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
</span><span class="cx"> {
</span><del>-    JSTestException* thisObject = jsCast&lt;JSTestException*&gt;(object);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestException*&gt;(object);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     return getStaticValueSlot&lt;JSTestException, Base&gt;(exec, JSTestExceptionTable, thisObject, propertyName, slot);
</span><span class="cx"> }
</span><span class="lines">@@ -168,8 +168,8 @@
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestException* castedThis = jsCast&lt;JSTestException*&gt;(slotBase);
-    TestException&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto* castedThis = jsCast&lt;JSTestException*&gt;(slotBase);
+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.name());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -197,8 +197,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestExceptionOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSTestException* jsTestException = jsCast&lt;JSTestException*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsTestException = jsCast&lt;JSTestException*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsTestException-&gt;impl(), jsTestException);
</span><span class="cx">     jsTestException-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -160,7 +160,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool JSTestGenerateIsReachableOwner::isReachableFromOpaqueRoots(JSC::Handle&lt;JSC::Unknown&gt; handle, void*, SlotVisitor&amp; visitor)
</span><span class="cx"> {
</span><del>-    JSTestGenerateIsReachable* jsTestGenerateIsReachable = jsCast&lt;JSTestGenerateIsReachable*&gt;(handle.slot()-&gt;asCell());
</del><ins>+    auto* jsTestGenerateIsReachable = jsCast&lt;JSTestGenerateIsReachable*&gt;(handle.slot()-&gt;asCell());
</ins><span class="cx">     if (!isObservable(jsTestGenerateIsReachable))
</span><span class="cx">         return false;
</span><span class="cx">     TestGenerateIsReachable* root = &amp;jsTestGenerateIsReachable-&gt;impl();
</span><span class="lines">@@ -169,8 +169,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestGenerateIsReachableOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSTestGenerateIsReachable* jsTestGenerateIsReachable = jsCast&lt;JSTestGenerateIsReachable*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsTestGenerateIsReachable = jsCast&lt;JSTestGenerateIsReachable*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsTestGenerateIsReachable-&gt;impl(), jsTestGenerateIsReachable);
</span><span class="cx">     jsTestGenerateIsReachable-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -271,7 +271,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL JSTestInterfaceConstructor::constructJSTestInterface(ExecState* exec)
</span><span class="cx"> {
</span><del>-    JSTestInterfaceConstructor* castedThis = jsCast&lt;JSTestInterfaceConstructor*&gt;(exec-&gt;callee());
</del><ins>+    auto* castedThis = jsCast&lt;JSTestInterfaceConstructor*&gt;(exec-&gt;callee());
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="lines">@@ -442,7 +442,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool JSTestInterface::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
</span><span class="cx"> {
</span><del>-    JSTestInterface* thisObject = jsCast&lt;JSTestInterface*&gt;(object);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestInterface*&gt;(object);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     return getStaticValueSlot&lt;JSTestInterface, Base&gt;(exec, JSTestInterfaceTable, thisObject, propertyName, slot);
</span><span class="cx"> }
</span><span class="lines">@@ -483,7 +483,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestInterface&quot;, &quot;implementsStr1&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestInterface&quot;, &quot;implementsStr1&quot;);
</span><span class="cx">     }
</span><del>-    TestInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.implementsStr1());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -502,7 +502,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestInterface&quot;, &quot;implementsStr2&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestInterface&quot;, &quot;implementsStr2&quot;);
</span><span class="cx">     }
</span><del>-    TestInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.implementsStr2());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -515,7 +515,7 @@
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestInterface* castedThis = jsCast&lt;JSTestInterface*&gt;(slotBase);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestInterface*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(castedThis-&gt;implementsStr3(exec));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -533,7 +533,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestInterface&quot;, &quot;implementsNode&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestInterface&quot;, &quot;implementsNode&quot;);
</span><span class="cx">     }
</span><del>-    TestInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.implementsNode()));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -576,7 +576,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestInterface&quot;, &quot;supplementalStr1&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestInterface&quot;, &quot;supplementalStr1&quot;);
</span><span class="cx">     }
</span><del>-    TestInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, TestSupplemental::supplementalStr1(&amp;impl));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -595,7 +595,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestInterface&quot;, &quot;supplementalStr2&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestInterface&quot;, &quot;supplementalStr2&quot;);
</span><span class="cx">     }
</span><del>-    TestInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, TestSupplemental::supplementalStr2(&amp;impl));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -608,7 +608,7 @@
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestInterface* castedThis = jsCast&lt;JSTestInterface*&gt;(slotBase);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestInterface*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(castedThis-&gt;supplementalStr3(exec));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -626,7 +626,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestInterface&quot;, &quot;supplementalNode&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestInterface&quot;, &quot;supplementalNode&quot;);
</span><span class="cx">     }
</span><del>-    TestInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(TestSupplemental::supplementalNode(&amp;impl)));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -643,7 +643,7 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestInterface::put(JSCell* cell, ExecState* exec, PropertyName propertyName, JSValue value, PutPropertySlot&amp; slot)
</span><span class="cx"> {
</span><del>-    JSTestInterface* thisObject = jsCast&lt;JSTestInterface*&gt;(cell);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestInterface*&gt;(cell);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     if (thisObject-&gt;putDelegate(exec, propertyName, value, slot))
</span><span class="cx">         return;
</span><span class="lines">@@ -652,7 +652,7 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestInterface::putByIndex(JSCell* cell, ExecState* exec, unsigned index, JSValue value, bool shouldThrow)
</span><span class="cx"> {
</span><del>-    JSTestInterface* thisObject = jsCast&lt;JSTestInterface*&gt;(cell);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestInterface*&gt;(cell);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     PropertyName propertyName = Identifier::from(exec, index);
</span><span class="cx">     PutPropertySlot slot(thisObject, shouldThrow);
</span><span class="lines">@@ -687,7 +687,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestInterface&quot;, &quot;implementsStr2&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String&amp; nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -702,7 +702,7 @@
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><span class="cx">     UNUSED_PARAM(baseObject);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestInterface* castedThis = jsCast&lt;JSTestInterface*&gt;(baseObject);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestInterface*&gt;(baseObject);
</ins><span class="cx">     UNUSED_PARAM(thisValue);
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     castedThis-&gt;setImplementsStr3(exec, value);
</span><span class="lines">@@ -723,7 +723,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestInterface&quot;, &quot;implementsNode&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     Node* nativeValue(JSNode::toWrapped(value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -758,7 +758,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestInterface&quot;, &quot;supplementalStr2&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String&amp; nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -773,7 +773,7 @@
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><span class="cx">     UNUSED_PARAM(baseObject);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestInterface* castedThis = jsCast&lt;JSTestInterface*&gt;(baseObject);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestInterface*&gt;(baseObject);
</ins><span class="cx">     UNUSED_PARAM(thisValue);
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     castedThis-&gt;setSupplementalStr3(exec, value);
</span><span class="lines">@@ -794,7 +794,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestInterface&quot;, &quot;supplementalNode&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     Node* nativeValue(JSNode::toWrapped(value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -816,7 +816,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestInterface&quot;, &quot;implementsMethod1&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestInterface::info());
</span><del>-    TestInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     impl.implementsMethod1();
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="cx"> }
</span><span class="lines">@@ -831,11 +831,11 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestInterface&quot;, &quot;implementsMethod2&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestInterface::info());
</span><del>-    TestInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 2))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     const String&amp; strArg(exec-&gt;argument(0).isEmpty() ? String() : exec-&gt;argument(0).toString(exec)-&gt;value(exec));
</span><span class="lines">@@ -882,7 +882,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestInterface&quot;, &quot;supplementalMethod1&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestInterface::info());
</span><del>-    TestInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     TestSupplemental::supplementalMethod1(&amp;impl);
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="cx"> }
</span><span class="lines">@@ -897,11 +897,11 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestInterface&quot;, &quot;supplementalMethod2&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestInterface::info());
</span><del>-    TestInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 2))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     const String&amp; strArg(exec-&gt;argument(0).isEmpty() ? String() : exec-&gt;argument(0).toString(exec)-&gt;value(exec));
</span><span class="lines">@@ -942,7 +942,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool JSTestInterfaceOwner::isReachableFromOpaqueRoots(JSC::Handle&lt;JSC::Unknown&gt; handle, void*, SlotVisitor&amp; visitor)
</span><span class="cx"> {
</span><del>-    JSTestInterface* jsTestInterface = jsCast&lt;JSTestInterface*&gt;(handle.slot()-&gt;asCell());
</del><ins>+    auto* jsTestInterface = jsCast&lt;JSTestInterface*&gt;(handle.slot()-&gt;asCell());
</ins><span class="cx">     if (jsTestInterface-&gt;impl().hasPendingActivity())
</span><span class="cx">         return true;
</span><span class="cx">     UNUSED_PARAM(visitor);
</span><span class="lines">@@ -951,8 +951,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestInterfaceOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSTestInterface* jsTestInterface = jsCast&lt;JSTestInterface*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsTestInterface = jsCast&lt;JSTestInterface*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsTestInterface-&gt;impl(), jsTestInterface);
</span><span class="cx">     jsTestInterface-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -166,7 +166,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestMediaQueryListListener&quot;, &quot;method&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestMediaQueryListListener::info());
</span><del>-    TestMediaQueryListListener&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     if (!exec-&gt;argument(0).isFunction())
</span><span class="lines">@@ -185,8 +185,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestMediaQueryListListenerOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSTestMediaQueryListListener* jsTestMediaQueryListListener = jsCast&lt;JSTestMediaQueryListListener*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsTestMediaQueryListListener = jsCast&lt;JSTestMediaQueryListListener*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsTestMediaQueryListListener-&gt;impl(), jsTestMediaQueryListListener);
</span><span class="cx">     jsTestMediaQueryListListener-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor(ExecState* exec)
</span><span class="cx"> {
</span><del>-    JSTestNamedConstructorNamedConstructor* castedThis = jsCast&lt;JSTestNamedConstructorNamedConstructor*&gt;(exec-&gt;callee());
</del><ins>+    auto* castedThis = jsCast&lt;JSTestNamedConstructorNamedConstructor*&gt;(exec-&gt;callee());
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="lines">@@ -230,7 +230,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool JSTestNamedConstructorOwner::isReachableFromOpaqueRoots(JSC::Handle&lt;JSC::Unknown&gt; handle, void*, SlotVisitor&amp; visitor)
</span><span class="cx"> {
</span><del>-    JSTestNamedConstructor* jsTestNamedConstructor = jsCast&lt;JSTestNamedConstructor*&gt;(handle.slot()-&gt;asCell());
</del><ins>+    auto* jsTestNamedConstructor = jsCast&lt;JSTestNamedConstructor*&gt;(handle.slot()-&gt;asCell());
</ins><span class="cx">     if (jsTestNamedConstructor-&gt;impl().hasPendingActivity())
</span><span class="cx">         return true;
</span><span class="cx">     UNUSED_PARAM(visitor);
</span><span class="lines">@@ -239,8 +239,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestNamedConstructorOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSTestNamedConstructor* jsTestNamedConstructor = jsCast&lt;JSTestNamedConstructor*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsTestNamedConstructor = jsCast&lt;JSTestNamedConstructor*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsTestNamedConstructor-&gt;impl(), jsTestNamedConstructor);
</span><span class="cx">     jsTestNamedConstructor-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL JSTestNodeConstructor::constructJSTestNode(ExecState* exec)
</span><span class="cx"> {
</span><del>-    JSTestNodeConstructor* castedThis = jsCast&lt;JSTestNodeConstructor*&gt;(exec-&gt;callee());
</del><ins>+    auto* castedThis = jsCast&lt;JSTestNodeConstructor*&gt;(exec-&gt;callee());
</ins><span class="cx">     RefPtr&lt;TestNode&gt; object = TestNode::create();
</span><span class="cx">     return JSValue::encode(asObject(toJS(exec, castedThis-&gt;globalObject(), object.get())));
</span><span class="cx"> }
</span><span class="lines">@@ -159,7 +159,7 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestNode::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
</span><span class="cx"> {
</span><del>-    JSTestNode* thisObject = jsCast&lt;JSTestNode*&gt;(cell);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestNode*&gt;(cell);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     thisObject-&gt;impl().visitJSEventListeners(visitor);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministiccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -199,7 +199,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><del>-    TestNondeterministic&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.nondeterministicReadonlyAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -236,7 +236,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><del>-    TestNondeterministic&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.nondeterministicWriteableAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -273,7 +273,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><del>-    TestNondeterministic&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.nondeterministicExceptionAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -313,7 +313,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><del>-    TestNondeterministic&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.nondeterministicGetterExceptionAttr(ec));
</span><span class="cx">     setDOMException(exec, ec);
</span><span class="cx">     return JSValue::encode(result);
</span><span class="lines">@@ -351,7 +351,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><del>-    TestNondeterministic&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.nondeterministicSetterExceptionAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -377,7 +377,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestNondeterministic&quot;, &quot;nondeterministicWriteableAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestNondeterministic&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String&amp; nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -397,7 +397,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestNondeterministic&quot;, &quot;nondeterministicExceptionAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestNondeterministic&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String&amp; nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -417,7 +417,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestNondeterministic&quot;, &quot;nondeterministicGetterExceptionAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestNondeterministic&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String&amp; nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -437,7 +437,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestNondeterministic&quot;, &quot;nondeterministicSetterExceptionAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestNondeterministic&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     const String&amp; nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="lines">@@ -459,7 +459,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestNondeterministic&quot;, &quot;nondeterministicZeroArgFunction&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestNondeterministic::info());
</span><del>-    TestNondeterministic&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result;
</span><span class="cx"> #if ENABLE(WEB_REPLAY)
</span><span class="cx">     InputCursor&amp; cursor = exec-&gt;lexicalGlobalObject()-&gt;inputCursor();
</span><span class="lines">@@ -492,8 +492,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestNondeterministicOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSTestNondeterministic* jsTestNondeterministic = jsCast&lt;JSTestNondeterministic*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsTestNondeterministic = jsCast&lt;JSTestNondeterministic*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsTestNondeterministic-&gt;impl(), jsTestNondeterministic);
</span><span class="cx">     jsTestNondeterministic-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -442,7 +442,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL JSTestObjConstructor::constructJSTestObj(ExecState* exec)
</span><span class="cx"> {
</span><del>-    JSTestObjConstructor* castedThis = jsCast&lt;JSTestObjConstructor*&gt;(exec-&gt;callee());
</del><ins>+    auto* castedThis = jsCast&lt;JSTestObjConstructor*&gt;(exec-&gt;callee());
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     if (!exec-&gt;argument(0).isFunction())
</span><span class="lines">@@ -684,7 +684,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool JSTestObj::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
</span><span class="cx"> {
</span><del>-    JSTestObj* thisObject = jsCast&lt;JSTestObj*&gt;(object);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestObj*&gt;(object);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     return getStaticValueSlot&lt;JSTestObj, Base&gt;(exec, JSTestObjTable, thisObject, propertyName, slot);
</span><span class="cx"> }
</span><span class="lines">@@ -700,7 +700,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;readOnlyLongAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;readOnlyLongAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.readOnlyLongAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -717,7 +717,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;readOnlyStringAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;readOnlyStringAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.readOnlyStringAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -734,7 +734,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;readOnlyTestObjAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;readOnlyTestObjAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.readOnlyTestObjAttr()));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -765,7 +765,7 @@
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(JSTestSubObj::getConstructor(exec-&gt;vm(), castedThis-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -775,7 +775,7 @@
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</ins><span class="cx">     if (!castedThis-&gt;impl().frame())
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     Settings&amp; settings = castedThis-&gt;impl().frame()-&gt;settings();
</span><span class="lines">@@ -796,7 +796,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;enumAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;enumAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.enumAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -813,7 +813,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;byteAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;byteAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.byteAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -830,7 +830,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;octetAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;octetAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.octetAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -847,7 +847,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;shortAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;shortAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.shortAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -864,7 +864,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;unsignedShortAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;unsignedShortAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.unsignedShortAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -881,7 +881,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;longAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;longAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.longAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -898,7 +898,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;longLongAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;longLongAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.longLongAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -915,7 +915,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;unsignedLongLongAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;unsignedLongLongAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.unsignedLongLongAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -932,7 +932,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;stringAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;stringAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.stringAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -949,7 +949,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;testObjAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;testObjAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.testObjAttr()));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -966,7 +966,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;XMLObjAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;XMLObjAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.xmlObjAttr()));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -983,7 +983,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;create&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;create&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsBoolean(impl.isCreate());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1000,7 +1000,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;reflectedStringAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedStringAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.fastGetAttribute(WebCore::HTMLNames::reflectedstringattrAttr));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1017,7 +1017,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;reflectedIntegralAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedIntegralAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.getIntegralAttribute(WebCore::HTMLNames::reflectedintegralattrAttr));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1034,7 +1034,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;reflectedUnsignedIntegralAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedUnsignedIntegralAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(std::max(0, impl.getIntegralAttribute(WebCore::HTMLNames::reflectedunsignedintegralattrAttr)));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1051,7 +1051,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;reflectedBooleanAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedBooleanAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsBoolean(impl.fastHasAttribute(WebCore::HTMLNames::reflectedbooleanattrAttr));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1068,7 +1068,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;reflectedURLAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedURLAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.getURLAttribute(WebCore::HTMLNames::reflectedurlattrAttr));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1085,7 +1085,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;reflectedStringAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedStringAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.fastGetAttribute(WebCore::HTMLNames::customContentStringAttrAttr));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1102,7 +1102,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;reflectedCustomIntegralAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedCustomIntegralAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.getIntegralAttribute(WebCore::HTMLNames::customContentIntegralAttrAttr));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1119,7 +1119,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;reflectedCustomBooleanAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedCustomBooleanAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsBoolean(impl.fastHasAttribute(WebCore::HTMLNames::customContentBooleanAttrAttr));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1136,7 +1136,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;reflectedCustomURLAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedCustomURLAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.getURLAttribute(WebCore::HTMLNames::customContentURLAttrAttr));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1153,7 +1153,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;typedArrayAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;typedArrayAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.typedArrayAttr()));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1171,7 +1171,7 @@
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;attrWithGetterException&quot;);
</span><span class="cx">     }
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.attrWithGetterException(ec));
</span><span class="cx">     setDOMException(exec, ec);
</span><span class="cx">     return JSValue::encode(result);
</span><span class="lines">@@ -1189,7 +1189,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;attrWithSetterException&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;attrWithSetterException&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.attrWithSetterException());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1207,7 +1207,7 @@
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;stringAttrWithGetterException&quot;);
</span><span class="cx">     }
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.stringAttrWithGetterException(ec));
</span><span class="cx">     setDOMException(exec, ec);
</span><span class="cx">     return JSValue::encode(result);
</span><span class="lines">@@ -1225,7 +1225,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;stringAttrWithSetterException&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;stringAttrWithSetterException&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.stringAttrWithSetterException());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1236,7 +1236,7 @@
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(castedThis-&gt;customAttr(exec));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1252,7 +1252,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;withScriptStateAttribute&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptStateAttribute&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.withScriptStateAttribute(exec));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1269,10 +1269,10 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAttribute&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAttribute&quot;);
</span><span class="cx">     }
</span><del>-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.withScriptExecutionContextAttribute(scriptContext)));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1290,7 +1290,7 @@
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptStateAttributeRaises&quot;);
</span><span class="cx">     }
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.withScriptStateAttributeRaises(exec, ec)));
</span><span class="cx">     setDOMException(exec, ec);
</span><span class="cx">     return JSValue::encode(result);
</span><span class="lines">@@ -1309,10 +1309,10 @@
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAttributeRaises&quot;);
</span><span class="cx">     }
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.withScriptExecutionContextAttributeRaises(scriptContext, ec)));
</span><span class="cx">     setDOMException(exec, ec);
</span><span class="cx">     return JSValue::encode(result);
</span><span class="lines">@@ -1330,10 +1330,10 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAndScriptStateAttribute&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAndScriptStateAttribute&quot;);
</span><span class="cx">     }
</span><del>-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.withScriptExecutionContextAndScriptStateAttribute(exec, scriptContext)));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1351,10 +1351,10 @@
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAndScriptStateAttributeRaises&quot;);
</span><span class="cx">     }
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.withScriptExecutionContextAndScriptStateAttributeRaises(exec, scriptContext, ec)));
</span><span class="cx">     setDOMException(exec, ec);
</span><span class="cx">     return JSValue::encode(result);
</span><span class="lines">@@ -1372,10 +1372,10 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAndScriptStateWithSpacesAttribute&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAndScriptStateWithSpacesAttribute&quot;);
</span><span class="cx">     }
</span><del>-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.withScriptExecutionContextAndScriptStateWithSpacesAttribute(exec, scriptContext)));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1392,7 +1392,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;withScriptArgumentsAndCallStackAttribute&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptArgumentsAndCallStackAttribute&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.withScriptArgumentsAndCallStackAttribute()));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1410,7 +1410,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr1&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr1&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.conditionalAttr1());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1429,7 +1429,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr2&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr2&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.conditionalAttr2());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1448,7 +1448,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr3&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr3&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.conditionalAttr3());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1461,7 +1461,7 @@
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(JSTestObjectA::getConstructor(exec-&gt;vm(), castedThis-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1473,7 +1473,7 @@
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(JSTestObjectB::getConstructor(exec-&gt;vm(), castedThis-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1485,7 +1485,7 @@
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(JSTestObjectC::getConstructor(exec-&gt;vm(), castedThis-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1504,7 +1504,7 @@
</span><span class="cx">     }
</span><span class="cx">     if (JSValue cachedValue = castedThis-&gt;m_cachedAttribute1.get())
</span><span class="cx">         return JSValue::encode(cachedValue);
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = (impl.cachedAttribute1().hasNoValue() ? jsNull() : impl.cachedAttribute1().jsValue());
</span><span class="cx">     castedThis-&gt;m_cachedAttribute1.set(exec-&gt;vm(), castedThis, result);
</span><span class="cx">     return JSValue::encode(result);
</span><span class="lines">@@ -1524,7 +1524,7 @@
</span><span class="cx">     }
</span><span class="cx">     if (JSValue cachedValue = castedThis-&gt;m_cachedAttribute2.get())
</span><span class="cx">         return JSValue::encode(cachedValue);
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = (impl.cachedAttribute2().hasNoValue() ? jsNull() : impl.cachedAttribute2().jsValue());
</span><span class="cx">     castedThis-&gt;m_cachedAttribute2.set(exec-&gt;vm(), castedThis, result);
</span><span class="cx">     return JSValue::encode(result);
</span><span class="lines">@@ -1542,7 +1542,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;anyAttribute&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;anyAttribute&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = (impl.anyAttribute().hasNoValue() ? jsNull() : impl.anyAttribute().jsValue());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1553,8 +1553,8 @@
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     return JSValue::encode(shouldAllowAccessToNode(exec, impl.contentDocument()) ? toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.contentDocument())) : jsNull());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1570,7 +1570,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;mutablePoint&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;mutablePoint&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(SVGStaticPropertyTearOff&lt;TestObj, SVGPoint&gt;::create(impl, impl.mutablePoint(), &amp;TestObj::updateMutablePoint)));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1587,7 +1587,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;immutablePoint&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;immutablePoint&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(SVGPropertyTearOff&lt;SVGPoint&gt;::create(impl.immutablePoint())));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1604,7 +1604,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;strawberry&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;strawberry&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.blueberry());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1621,7 +1621,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;strictFloat&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;strictFloat&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.strictFloat());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1638,7 +1638,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;description&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;description&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.description());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1655,7 +1655,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;id&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;id&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.id());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1672,7 +1672,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;hash&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;hash&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.hash());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1689,7 +1689,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;replaceableAttribute&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;replaceableAttribute&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.replaceableAttribute());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1707,7 +1707,7 @@
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;nullableDoubleAttribute&quot;);
</span><span class="cx">     }
</span><span class="cx">     bool isNull = false;
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.nullableDoubleAttribute(isNull));
</span><span class="cx">     if (isNull)
</span><span class="cx">         return JSValue::encode(jsNull());
</span><span class="lines">@@ -1727,7 +1727,7 @@
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;nullableLongAttribute&quot;);
</span><span class="cx">     }
</span><span class="cx">     bool isNull = false;
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.nullableLongAttribute(isNull));
</span><span class="cx">     if (isNull)
</span><span class="cx">         return JSValue::encode(jsNull());
</span><span class="lines">@@ -1747,7 +1747,7 @@
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;nullableBooleanAttribute&quot;);
</span><span class="cx">     }
</span><span class="cx">     bool isNull = false;
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsBoolean(impl.nullableBooleanAttribute(isNull));
</span><span class="cx">     if (isNull)
</span><span class="cx">         return JSValue::encode(jsNull());
</span><span class="lines">@@ -1767,7 +1767,7 @@
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;nullableStringAttribute&quot;);
</span><span class="cx">     }
</span><span class="cx">     bool isNull = false;
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.nullableStringAttribute(isNull));
</span><span class="cx">     if (isNull)
</span><span class="cx">         return JSValue::encode(jsNull());
</span><span class="lines">@@ -1787,7 +1787,7 @@
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;nullableLongSettableAttribute&quot;);
</span><span class="cx">     }
</span><span class="cx">     bool isNull = false;
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.nullableLongSettableAttribute(isNull));
</span><span class="cx">     if (isNull)
</span><span class="cx">         return JSValue::encode(jsNull());
</span><span class="lines">@@ -1808,7 +1808,7 @@
</span><span class="cx">     }
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     bool isNull = false;
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.nullableStringValue(isNull, ec));
</span><span class="cx">     setDOMException(exec, ec);
</span><span class="cx">     if (isNull)
</span><span class="lines">@@ -1828,7 +1828,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;attribute&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;attribute&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.attribute());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1845,7 +1845,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;attributeWithReservedEnumType&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;attributeWithReservedEnumType&quot;);
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.attributeWithReservedEnumType());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -1875,10 +1875,10 @@
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><span class="cx">     UNUSED_PARAM(baseObject);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</ins><span class="cx">     UNUSED_PARAM(thisValue);
</span><span class="cx">     UNUSED_PARAM(exec);
</span><del>-    // Shadowing a built-in constructor
</del><ins>+    // Shadowing a built-in constructor.
</ins><span class="cx">     castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, &quot;TestSubObjEnabledBySetting&quot;), value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1895,7 +1895,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;enumAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -1917,7 +1917,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;byteAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int8_t nativeValue(toInt8(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -1937,7 +1937,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;octetAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     uint8_t nativeValue(toUInt8(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -1957,7 +1957,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;shortAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int16_t nativeValue(toInt16(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -1977,7 +1977,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;unsignedShortAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     uint16_t nativeValue(toUInt16(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -1997,7 +1997,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;longAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2017,7 +2017,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;longLongAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     long long nativeValue(toInt64(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2037,7 +2037,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;unsignedLongLongAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     unsigned long long nativeValue(toUInt64(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2057,7 +2057,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;stringAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String&amp; nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2077,7 +2077,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;testObjAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     TestObj* nativeValue(JSTestObj::toWrapped(value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2097,7 +2097,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;XMLObjAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     TestObj* nativeValue(JSTestObj::toWrapped(value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2117,7 +2117,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;create&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     bool nativeValue(value.toBoolean(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2137,7 +2137,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedStringAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String&amp; nativeValue(valueToStringWithNullCheck(exec, value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2157,7 +2157,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedIntegralAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2177,7 +2177,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedUnsignedIntegralAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     unsigned nativeValue(toUInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2197,7 +2197,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedBooleanAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     bool nativeValue(value.toBoolean(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2217,7 +2217,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedURLAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String&amp; nativeValue(valueToStringWithNullCheck(exec, value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2237,7 +2237,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedStringAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String&amp; nativeValue(valueToStringWithNullCheck(exec, value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2257,7 +2257,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedCustomIntegralAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2277,7 +2277,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedCustomBooleanAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     bool nativeValue(value.toBoolean(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2297,7 +2297,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;reflectedCustomURLAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String&amp; nativeValue(valueToStringWithNullCheck(exec, value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2317,7 +2317,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;typedArrayAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     RefPtr&lt;Float32Array&gt; nativeValue(toFloat32Array(value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2337,7 +2337,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;attrWithGetterException&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2357,7 +2357,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;attrWithSetterException&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="lines">@@ -2379,7 +2379,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;stringAttrWithGetterException&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String&amp; nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2399,7 +2399,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;stringAttrWithSetterException&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     const String&amp; nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="lines">@@ -2414,7 +2414,7 @@
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><span class="cx">     UNUSED_PARAM(baseObject);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</ins><span class="cx">     UNUSED_PARAM(thisValue);
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     castedThis-&gt;setCustomAttr(exec, value);
</span><span class="lines">@@ -2433,7 +2433,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptStateAttribute&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2453,11 +2453,11 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAttribute&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     TestObj* nativeValue(JSTestObj::toWrapped(value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><del>-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return;
</span><span class="cx">     impl.setWithScriptExecutionContextAttribute(scriptContext, nativeValue);
</span><span class="lines">@@ -2476,7 +2476,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptStateAttributeRaises&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     TestObj* nativeValue(JSTestObj::toWrapped(value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2496,11 +2496,11 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAttributeRaises&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     TestObj* nativeValue(JSTestObj::toWrapped(value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><del>-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return;
</span><span class="cx">     impl.setWithScriptExecutionContextAttributeRaises(scriptContext, nativeValue);
</span><span class="lines">@@ -2519,11 +2519,11 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAndScriptStateAttribute&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     TestObj* nativeValue(JSTestObj::toWrapped(value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><del>-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return;
</span><span class="cx">     impl.setWithScriptExecutionContextAndScriptStateAttribute(exec, scriptContext, nativeValue);
</span><span class="lines">@@ -2542,11 +2542,11 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAndScriptStateAttributeRaises&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     TestObj* nativeValue(JSTestObj::toWrapped(value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><del>-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return;
</span><span class="cx">     impl.setWithScriptExecutionContextAndScriptStateAttributeRaises(exec, scriptContext, nativeValue);
</span><span class="lines">@@ -2565,11 +2565,11 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAndScriptStateWithSpacesAttribute&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     TestObj* nativeValue(JSTestObj::toWrapped(value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><del>-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return;
</span><span class="cx">     impl.setWithScriptExecutionContextAndScriptStateWithSpacesAttribute(exec, scriptContext, nativeValue);
</span><span class="lines">@@ -2588,7 +2588,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptArgumentsAndCallStackAttribute&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     TestObj* nativeValue(JSTestObj::toWrapped(value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2609,7 +2609,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr1&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2631,7 +2631,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr2&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2653,7 +2653,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr3&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2668,10 +2668,10 @@
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><span class="cx">     UNUSED_PARAM(baseObject);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</ins><span class="cx">     UNUSED_PARAM(thisValue);
</span><span class="cx">     UNUSED_PARAM(exec);
</span><del>-    // Shadowing a built-in constructor
</del><ins>+    // Shadowing a built-in constructor.
</ins><span class="cx">     castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, &quot;conditionalAttr4&quot;), value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2683,10 +2683,10 @@
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><span class="cx">     UNUSED_PARAM(baseObject);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</ins><span class="cx">     UNUSED_PARAM(thisValue);
</span><span class="cx">     UNUSED_PARAM(exec);
</span><del>-    // Shadowing a built-in constructor
</del><ins>+    // Shadowing a built-in constructor.
</ins><span class="cx">     castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, &quot;conditionalAttr5&quot;), value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2698,10 +2698,10 @@
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><span class="cx">     UNUSED_PARAM(baseObject);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</ins><span class="cx">     UNUSED_PARAM(thisValue);
</span><span class="cx">     UNUSED_PARAM(exec);
</span><del>-    // Shadowing a built-in constructor
</del><ins>+    // Shadowing a built-in constructor.
</ins><span class="cx">     castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, &quot;conditionalAttr6&quot;), value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2719,7 +2719,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;anyAttribute&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     Deprecated::ScriptValue nativeValue(exec-&gt;vm(), value);
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2739,7 +2739,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;mutablePoint&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     SVGPropertyTearOff&lt;SVGPoint&gt;* nativeValue(JSSVGPoint::toWrapped(value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2759,7 +2759,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;immutablePoint&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     SVGPropertyTearOff&lt;SVGPoint&gt;* nativeValue(JSSVGPoint::toWrapped(value));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2779,7 +2779,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;strawberry&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2799,7 +2799,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;strictFloat&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     float nativeValue(value.toFloat(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2819,7 +2819,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;id&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2839,7 +2839,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;replaceableAttribute&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    // Shadowing a built-in object
</del><ins>+    // Shadowing a built-in object.
</ins><span class="cx">     castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, &quot;replaceableAttribute&quot;), value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2856,7 +2856,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;nullableLongSettableAttribute&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2876,7 +2876,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;nullableStringValue&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2896,7 +2896,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;attributeWithReservedEnumType&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2918,7 +2918,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;voidMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     impl.voidMethod();
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="cx"> }
</span><span class="lines">@@ -2930,7 +2930,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;voidMethodWithArgs&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 3))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     int longArg(toInt32(exec, exec-&gt;argument(0), NormalConversion));
</span><span class="lines">@@ -2953,7 +2953,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;byteMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.byteMethod());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -2965,7 +2965,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;byteMethodWithArgs&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 3))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     int8_t byteArg(toInt8(exec, exec-&gt;argument(0), NormalConversion));
</span><span class="lines">@@ -2988,7 +2988,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;octetMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.octetMethod());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -3000,7 +3000,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;octetMethodWithArgs&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 3))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     uint8_t octetArg(toUInt8(exec, exec-&gt;argument(0), NormalConversion));
</span><span class="lines">@@ -3023,7 +3023,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;longMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.longMethod());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -3035,7 +3035,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;longMethodWithArgs&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 3))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     int longArg(toInt32(exec, exec-&gt;argument(0), NormalConversion));
</span><span class="lines">@@ -3058,7 +3058,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;objMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.objMethod()));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -3070,7 +3070,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;objMethodWithArgs&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 3))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     int longArg(toInt32(exec, exec-&gt;argument(0), NormalConversion));
</span><span class="lines">@@ -3093,7 +3093,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithSequenceArg&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     Vector&lt;RefPtr&lt;ScriptProfile&gt;&gt; sequenceArg((toRefPtrNativeArray&lt;ScriptProfile, JSScriptProfile&gt;(exec, exec-&gt;argument(0), &amp;JSScriptProfile::toWrapped)));
</span><span class="lines">@@ -3110,7 +3110,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodReturningSequence&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     int longArg(toInt32(exec, exec-&gt;argument(0), NormalConversion));
</span><span class="lines">@@ -3127,7 +3127,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithEnumArg&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     const String enumArg(exec-&gt;argument(0).isEmpty() ? String() : exec-&gt;argument(0).toString(exec)-&gt;value(exec));
</span><span class="lines">@@ -3146,7 +3146,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodThatRequiresAllArgsAndThrows&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 2))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="lines">@@ -3169,7 +3169,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;serializedValue&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     RefPtr&lt;SerializedScriptValue&gt; serializedArg(SerializedScriptValue::create(exec, exec-&gt;argument(0), 0, 0));
</span><span class="lines">@@ -3186,7 +3186,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;optionsObject&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     Dictionary oo(exec, exec-&gt;argument(0));
</span><span class="lines">@@ -3206,7 +3206,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithException&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     impl.methodWithException(ec);
</span><span class="cx">     setDOMException(exec, ec);
</span><span class="lines">@@ -3240,7 +3240,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;addEventListener&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue listener = exec-&gt;argument(1);
</span><span class="cx">     if (UNLIKELY(!listener.isObject()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -3255,7 +3255,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;removeEventListener&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue listener = exec-&gt;argument(1);
</span><span class="cx">     if (UNLIKELY(!listener.isObject()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -3270,7 +3270,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptStateVoid&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     impl.withScriptStateVoid(exec);
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="cx"> }
</span><span class="lines">@@ -3282,7 +3282,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptStateObj&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.withScriptStateObj(exec)));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -3296,7 +3296,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptStateVoidException&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     impl.withScriptStateVoidException(exec, ec);
</span><span class="cx">     setDOMException(exec, ec);
</span><span class="lines">@@ -3310,7 +3310,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptStateObjException&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.withScriptStateObjException(exec, ec)));
</span><span class="cx"> 
</span><span class="lines">@@ -3327,8 +3327,8 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContext&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     impl.withScriptExecutionContext(scriptContext);
</span><span class="lines">@@ -3342,8 +3342,8 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAndScriptState&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     impl.withScriptExecutionContextAndScriptState(exec, scriptContext);
</span><span class="lines">@@ -3357,9 +3357,9 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAndScriptStateObjException&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     ExceptionCode ec = 0;
</span><del>-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.withScriptExecutionContextAndScriptStateObjException(exec, scriptContext, ec)));
</span><span class="lines">@@ -3377,8 +3377,8 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptExecutionContextAndScriptStateWithSpaces&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
-    ScriptExecutionContext* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
+    auto* scriptContext = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!scriptContext)
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.withScriptExecutionContextAndScriptStateWithSpaces(exec, scriptContext)));
</span><span class="lines">@@ -3394,7 +3394,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;withScriptArgumentsAndCallStack&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     RefPtr&lt;Inspector::ScriptArguments&gt; scriptArguments(Inspector::createScriptArguments(exec, 0));
</span><span class="cx">     impl.withScriptArgumentsAndCallStack(scriptArguments.release());
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -3407,7 +3407,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithOptionalArg&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx"> 
</span><span class="cx">     size_t argsCount = exec-&gt;argumentCount();
</span><span class="cx">     if (argsCount &lt;= 0) {
</span><span class="lines">@@ -3429,7 +3429,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithNonOptionalArgAndOptionalArg&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     int nonOpt(toInt32(exec, exec-&gt;argument(0), NormalConversion));
</span><span class="lines">@@ -3456,7 +3456,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithNonOptionalArgAndTwoOptionalArgs&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     int nonOpt(toInt32(exec, exec-&gt;argument(0), NormalConversion));
</span><span class="lines">@@ -3491,7 +3491,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithOptionalString&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx"> 
</span><span class="cx">     size_t argsCount = exec-&gt;argumentCount();
</span><span class="cx">     if (argsCount &lt;= 0) {
</span><span class="lines">@@ -3513,7 +3513,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithOptionalStringIsUndefined&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String&amp; str(exec-&gt;argument(0).isEmpty() ? String() : exec-&gt;argument(0).toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -3528,7 +3528,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithOptionalStringIsNullString&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String&amp; str(argumentOrNull(exec, 0).isEmpty() ? String() : argumentOrNull(exec, 0).toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -3543,7 +3543,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithCallbackArg&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     if (!exec-&gt;argument(0).isFunction())
</span><span class="lines">@@ -3560,7 +3560,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithNonCallbackArgAndCallbackArg&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 2))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     int nonCallback(toInt32(exec, exec-&gt;argument(0), NormalConversion));
</span><span class="lines">@@ -3580,7 +3580,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithCallbackAndOptionalArg&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     RefPtr&lt;TestCallback&gt; callback;
</span><span class="cx">     if (!exec-&gt;argument(0).isUndefinedOrNull()) {
</span><span class="cx">         if (!exec-&gt;uncheckedArgument(0).isFunction())
</span><span class="lines">@@ -3622,7 +3622,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalMethod1&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.conditionalMethod1());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -3637,7 +3637,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalMethod2&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     impl.conditionalMethod2();
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="cx"> }
</span><span class="lines">@@ -3652,7 +3652,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalMethod3&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     impl.conditionalMethod3();
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="cx"> }
</span><span class="lines">@@ -3666,7 +3666,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;overloadedMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 2))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     TestObj* objArg(JSTestObj::toWrapped(exec-&gt;argument(0)));
</span><span class="lines">@@ -3686,7 +3686,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;overloadedMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     TestObj* objArg(JSTestObj::toWrapped(exec-&gt;argument(0)));
</span><span class="lines">@@ -3713,7 +3713,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;overloadedMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     const String&amp; strArg(exec-&gt;argument(0).isEmpty() ? String() : exec-&gt;argument(0).toString(exec)-&gt;value(exec));
</span><span class="lines">@@ -3730,7 +3730,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;overloadedMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     int longArg(toInt32(exec, exec-&gt;argument(0), NormalConversion));
</span><span class="lines">@@ -3747,7 +3747,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;overloadedMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     if (!exec-&gt;argument(0).isFunction())
</span><span class="lines">@@ -3764,7 +3764,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;overloadedMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     RefPtr&lt;DOMStringList&gt; listArg(toDOMStringList(exec, exec-&gt;argument(0)));
</span><span class="lines">@@ -3781,7 +3781,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;overloadedMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     Vector&lt;String&gt; arrayArg(toNativeArray&lt;String&gt;(exec, exec-&gt;argument(0)));
</span><span class="lines">@@ -3798,7 +3798,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;overloadedMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     TestObj* objArg(JSTestObj::toWrapped(exec-&gt;argument(0)));
</span><span class="lines">@@ -3815,7 +3815,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;overloadedMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     Vector&lt;String&gt; arrayArg(toNativeArray&lt;String&gt;(exec, exec-&gt;argument(0)));
</span><span class="lines">@@ -3832,7 +3832,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;overloadedMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     Vector&lt;unsigned&gt; arrayArg(toNativeArray&lt;unsigned&gt;(exec, exec-&gt;argument(0)));
</span><span class="lines">@@ -3849,7 +3849,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;overloadedMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     const String&amp; strArg(exec-&gt;argument(0).isEmpty() ? String() : exec-&gt;argument(0).toString(exec)-&gt;value(exec));
</span><span class="lines">@@ -3974,7 +3974,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;classMethodWithClamp&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 2))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     unsigned short objArgsShort = 0;
</span><span class="lines">@@ -4004,7 +4004,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithUnsignedLongSequence&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     Vector&lt;unsigned&gt; unsignedLongSequence(toNativeArray&lt;unsigned&gt;(exec, exec-&gt;argument(0)));
</span><span class="lines">@@ -4021,7 +4021,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;stringArrayFunction&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="lines">@@ -4041,7 +4041,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;domStringListFunction&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="lines">@@ -4061,7 +4061,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithAndWithoutNullableSequence&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 2))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     Vector&lt;unsigned&gt; arrayArg(toNativeArray&lt;unsigned&gt;(exec, exec-&gt;argument(0)));
</span><span class="lines">@@ -4081,7 +4081,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;methodWithAndWithoutNullableSequence2&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 2))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     Vector&lt;unsigned&gt; arrayArg(toNativeArray&lt;unsigned&gt;(exec, exec-&gt;argument(0)));
</span><span class="lines">@@ -4101,7 +4101,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;getSVGDocument&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     if (!shouldAllowAccessToNode(exec, impl.getSVGDocument(ec)))
</span><span class="cx">         return JSValue::encode(jsNull());
</span><span class="lines">@@ -4118,7 +4118,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;convert1&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     TestNode* value(JSTestNode::toWrapped(exec-&gt;argument(0)));
</span><span class="lines">@@ -4135,7 +4135,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;convert2&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     TestNode* value(JSTestNode::toWrapped(exec-&gt;argument(0)));
</span><span class="lines">@@ -4152,7 +4152,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;convert4&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     TestNode* value(JSTestNode::toWrapped(exec-&gt;argument(0)));
</span><span class="lines">@@ -4169,7 +4169,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;convert5&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     TestNode* value(JSTestNode::toWrapped(exec-&gt;argument(0)));
</span><span class="lines">@@ -4186,7 +4186,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;mutablePointFunction&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(SVGPropertyTearOff&lt;SVGPoint&gt;::create(impl.mutablePointFunction())));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -4198,7 +4198,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;immutablePointFunction&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(SVGPropertyTearOff&lt;SVGPoint&gt;::create(impl.immutablePointFunction())));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -4210,7 +4210,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;orange&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     impl.banana();
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="cx"> }
</span><span class="lines">@@ -4222,7 +4222,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;strictFunction&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 3))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="lines">@@ -4248,7 +4248,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;strictFunctionWithSequence&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 2))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="lines">@@ -4273,7 +4273,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;strictFunctionWithArray&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 2))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="lines">@@ -4298,7 +4298,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;variadicStringMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     const String&amp; head(exec-&gt;argument(0).isEmpty() ? String() : exec-&gt;argument(0).toString(exec)-&gt;value(exec));
</span><span class="lines">@@ -4318,7 +4318,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;variadicDoubleMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     double head(exec-&gt;argument(0).toNumber(exec));
</span><span class="lines">@@ -4338,7 +4338,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;variadicNodeMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     Node* head(JSNode::toWrapped(exec-&gt;argument(0)));
</span><span class="lines">@@ -4361,7 +4361,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestObj&quot;, &quot;any&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    TestObj&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 2))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     float a(exec-&gt;argument(0).toFloat(exec));
</span><span class="lines">@@ -4376,7 +4376,7 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestObj::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
</span><span class="cx"> {
</span><del>-    JSTestObj* thisObject = jsCast&lt;JSTestObj*&gt;(cell);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestObj*&gt;(cell);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_cachedAttribute1);
</span><span class="lines">@@ -4392,8 +4392,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestObjOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSTestObj* jsTestObj = jsCast&lt;JSTestObj*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsTestObj = jsCast&lt;JSTestObj*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsTestObj-&gt;impl(), jsTestObj);
</span><span class="cx">     jsTestObj-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors1(ExecState* exec)
</span><span class="cx"> {
</span><del>-    JSTestOverloadedConstructorsConstructor* castedThis = jsCast&lt;JSTestOverloadedConstructorsConstructor*&gt;(exec-&gt;callee());
</del><ins>+    auto* castedThis = jsCast&lt;JSTestOverloadedConstructorsConstructor*&gt;(exec-&gt;callee());
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     ArrayBuffer* arrayBuffer(toArrayBuffer(exec-&gt;argument(0)));
</span><span class="lines">@@ -103,7 +103,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors2(ExecState* exec)
</span><span class="cx"> {
</span><del>-    JSTestOverloadedConstructorsConstructor* castedThis = jsCast&lt;JSTestOverloadedConstructorsConstructor*&gt;(exec-&gt;callee());
</del><ins>+    auto* castedThis = jsCast&lt;JSTestOverloadedConstructorsConstructor*&gt;(exec-&gt;callee());
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     RefPtr&lt;ArrayBufferView&gt; arrayBufferView(toArrayBufferView(exec-&gt;argument(0)));
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors3(ExecState* exec)
</span><span class="cx"> {
</span><del>-    JSTestOverloadedConstructorsConstructor* castedThis = jsCast&lt;JSTestOverloadedConstructorsConstructor*&gt;(exec-&gt;callee());
</del><ins>+    auto* castedThis = jsCast&lt;JSTestOverloadedConstructorsConstructor*&gt;(exec-&gt;callee());
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     Blob* blob(JSBlob::toWrapped(exec-&gt;argument(0)));
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors4(ExecState* exec)
</span><span class="cx"> {
</span><del>-    JSTestOverloadedConstructorsConstructor* castedThis = jsCast&lt;JSTestOverloadedConstructorsConstructor*&gt;(exec-&gt;callee());
</del><ins>+    auto* castedThis = jsCast&lt;JSTestOverloadedConstructorsConstructor*&gt;(exec-&gt;callee());
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     const String&amp; string(exec-&gt;argument(0).isEmpty() ? String() : exec-&gt;argument(0).toString(exec)-&gt;value(exec));
</span><span class="lines">@@ -241,8 +241,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestOverloadedConstructorsOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSTestOverloadedConstructors* jsTestOverloadedConstructors = jsCast&lt;JSTestOverloadedConstructors*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsTestOverloadedConstructors = jsCast&lt;JSTestOverloadedConstructors*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsTestOverloadedConstructors-&gt;impl(), jsTestOverloadedConstructors);
</span><span class="cx">     jsTestOverloadedConstructors-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -169,7 +169,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestSerializedScriptValueInterface&quot;, &quot;value&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestSerializedScriptValueInterface&quot;, &quot;value&quot;);
</span><span class="cx">     }
</span><del>-    TestSerializedScriptValueInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = impl.value() ? impl.value()-&gt;deserialize(exec, castedThis-&gt;globalObject(), 0) : jsNull();
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -186,7 +186,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestSerializedScriptValueInterface&quot;, &quot;readonlyValue&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestSerializedScriptValueInterface&quot;, &quot;readonlyValue&quot;);
</span><span class="cx">     }
</span><del>-    TestSerializedScriptValueInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = impl.readonlyValue() ? impl.readonlyValue()-&gt;deserialize(exec, castedThis-&gt;globalObject(), 0) : jsNull();
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -205,7 +205,7 @@
</span><span class="cx">     }
</span><span class="cx">     if (JSValue cachedValue = castedThis-&gt;m_cachedValue.get())
</span><span class="cx">         return JSValue::encode(cachedValue);
</span><del>-    TestSerializedScriptValueInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = impl.cachedValue() ? impl.cachedValue()-&gt;deserialize(exec, castedThis-&gt;globalObject(), 0) : jsNull();
</span><span class="cx">     castedThis-&gt;m_cachedValue.set(exec-&gt;vm(), castedThis, result);
</span><span class="cx">     return JSValue::encode(result);
</span><span class="lines">@@ -223,7 +223,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestSerializedScriptValueInterface&quot;, &quot;ports&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestSerializedScriptValueInterface&quot;, &quot;ports&quot;);
</span><span class="cx">     }
</span><del>-    TestSerializedScriptValueInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsArray(exec, castedThis-&gt;globalObject(), impl.ports());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -242,7 +242,7 @@
</span><span class="cx">     }
</span><span class="cx">     if (JSValue cachedValue = castedThis-&gt;m_cachedReadonlyValue.get())
</span><span class="cx">         return JSValue::encode(cachedValue);
</span><del>-    TestSerializedScriptValueInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = impl.cachedReadonlyValue() ? impl.cachedReadonlyValue()-&gt;deserialize(exec, castedThis-&gt;globalObject(), 0) : jsNull();
</span><span class="cx">     castedThis-&gt;m_cachedReadonlyValue.set(exec-&gt;vm(), castedThis, result);
</span><span class="cx">     return JSValue::encode(result);
</span><span class="lines">@@ -269,7 +269,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestSerializedScriptValueInterface&quot;, &quot;value&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestSerializedScriptValueInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     RefPtr&lt;SerializedScriptValue&gt; nativeValue(SerializedScriptValue::create(exec, value, 0, 0));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -289,7 +289,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestSerializedScriptValueInterface&quot;, &quot;cachedValue&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestSerializedScriptValueInterface&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     RefPtr&lt;SerializedScriptValue&gt; nativeValue(SerializedScriptValue::create(exec, value, 0, 0));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -304,7 +304,7 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestSerializedScriptValueInterface::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
</span><span class="cx"> {
</span><del>-    JSTestSerializedScriptValueInterface* thisObject = jsCast&lt;JSTestSerializedScriptValueInterface*&gt;(cell);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestSerializedScriptValueInterface*&gt;(cell);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_cachedValue);
</span><span class="lines">@@ -320,8 +320,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestSerializedScriptValueInterfaceOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSTestSerializedScriptValueInterface* jsTestSerializedScriptValueInterface = jsCast&lt;JSTestSerializedScriptValueInterface*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsTestSerializedScriptValueInterface = jsCast&lt;JSTestSerializedScriptValueInterface*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsTestSerializedScriptValueInterface-&gt;impl(), jsTestSerializedScriptValueInterface);
</span><span class="cx">     jsTestSerializedScriptValueInterface-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -146,7 +146,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL JSTestTypedefsConstructor::constructJSTestTypedefs(ExecState* exec)
</span><span class="cx"> {
</span><del>-    JSTestTypedefsConstructor* castedThis = jsCast&lt;JSTestTypedefsConstructor*&gt;(exec-&gt;callee());
</del><ins>+    auto* castedThis = jsCast&lt;JSTestTypedefsConstructor*&gt;(exec-&gt;callee());
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 2))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     const String&amp; hello(exec-&gt;argument(0).isEmpty() ? String() : exec-&gt;argument(0).toString(exec)-&gt;value(exec));
</span><span class="lines">@@ -243,7 +243,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool JSTestTypedefs::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
</span><span class="cx"> {
</span><del>-    JSTestTypedefs* thisObject = jsCast&lt;JSTestTypedefs*&gt;(object);
</del><ins>+    auto* thisObject = jsCast&lt;JSTestTypedefs*&gt;(object);
</ins><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     return getStaticValueSlot&lt;JSTestTypedefs, Base&gt;(exec, JSTestTypedefsTable, thisObject, propertyName, slot);
</span><span class="cx"> }
</span><span class="lines">@@ -259,7 +259,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestTypedefs&quot;, &quot;unsignedLongLongAttr&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestTypedefs&quot;, &quot;unsignedLongLongAttr&quot;);
</span><span class="cx">     }
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.unsignedLongLongAttr());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -276,7 +276,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestTypedefs&quot;, &quot;immutableSerializedScriptValue&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestTypedefs&quot;, &quot;immutableSerializedScriptValue&quot;);
</span><span class="cx">     }
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = impl.immutableSerializedScriptValue() ? impl.immutableSerializedScriptValue()-&gt;deserialize(exec, castedThis-&gt;globalObject(), 0) : jsNull();
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -287,7 +287,7 @@
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><del>-    JSTestTypedefs* castedThis = jsCast&lt;JSTestTypedefs*&gt;(slotBase);
</del><ins>+    auto* castedThis = jsCast&lt;JSTestTypedefs*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(JSTestSubObj::getConstructor(exec-&gt;vm(), castedThis-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -304,7 +304,7 @@
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestTypedefs&quot;, &quot;attrWithGetterException&quot;);
</span><span class="cx">     }
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.attrWithGetterException(ec));
</span><span class="cx">     setDOMException(exec, ec);
</span><span class="cx">     return JSValue::encode(result);
</span><span class="lines">@@ -322,7 +322,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestTypedefs&quot;, &quot;attrWithSetterException&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestTypedefs&quot;, &quot;attrWithSetterException&quot;);
</span><span class="cx">     }
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsNumber(impl.attrWithSetterException());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -340,7 +340,7 @@
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestTypedefs&quot;, &quot;stringAttrWithGetterException&quot;);
</span><span class="cx">     }
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.stringAttrWithGetterException(ec));
</span><span class="cx">     setDOMException(exec, ec);
</span><span class="cx">     return JSValue::encode(result);
</span><span class="lines">@@ -358,7 +358,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;TestTypedefs&quot;, &quot;stringAttrWithSetterException&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;TestTypedefs&quot;, &quot;stringAttrWithSetterException&quot;);
</span><span class="cx">     }
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.stringAttrWithSetterException());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -384,7 +384,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestTypedefs&quot;, &quot;unsignedLongLongAttr&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     unsigned long long nativeValue(toUInt64(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -404,7 +404,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestTypedefs&quot;, &quot;immutableSerializedScriptValue&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     RefPtr&lt;SerializedScriptValue&gt; nativeValue(SerializedScriptValue::create(exec, value, 0, 0));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -424,7 +424,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestTypedefs&quot;, &quot;attrWithGetterException&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -444,7 +444,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestTypedefs&quot;, &quot;attrWithSetterException&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     int nativeValue(toInt32(exec, value, NormalConversion));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="lines">@@ -466,7 +466,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestTypedefs&quot;, &quot;stringAttrWithGetterException&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     const String&amp; nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -486,7 +486,7 @@
</span><span class="cx">             throwSetterTypeError(*exec, &quot;TestTypedefs&quot;, &quot;stringAttrWithSetterException&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     const String&amp; nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="lines">@@ -508,7 +508,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestTypedefs&quot;, &quot;func&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestTypedefs::info());
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx"> 
</span><span class="cx">     size_t argsCount = exec-&gt;argumentCount();
</span><span class="cx">     if (argsCount &lt;= 0) {
</span><span class="lines">@@ -530,7 +530,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestTypedefs&quot;, &quot;setShadow&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestTypedefs::info());
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 3))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     float width(exec-&gt;argument(0).toFloat(exec));
</span><span class="lines">@@ -571,7 +571,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestTypedefs&quot;, &quot;methodWithSequenceArg&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestTypedefs::info());
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     Vector&lt;RefPtr&lt;SerializedScriptValue&gt;&gt; sequenceArg((toRefPtrNativeArray&lt;SerializedScriptValue, JSSerializedScriptValue&gt;(exec, exec-&gt;argument(0), &amp;JSSerializedScriptValue::toWrapped)));
</span><span class="lines">@@ -588,7 +588,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestTypedefs&quot;, &quot;nullableArrayArg&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestTypedefs::info());
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     Vector&lt;String&gt; arrayArg(toNativeArray&lt;String&gt;(exec, exec-&gt;argument(0)));
</span><span class="lines">@@ -605,7 +605,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestTypedefs&quot;, &quot;funcWithClamp&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestTypedefs::info());
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     unsigned long long arg1 = 0;
</span><span class="lines">@@ -642,7 +642,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestTypedefs&quot;, &quot;immutablePointFunction&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestTypedefs::info());
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(SVGPropertyTearOff&lt;SVGPoint&gt;::create(impl.immutablePointFunction())));
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -654,7 +654,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestTypedefs&quot;, &quot;stringArrayFunction&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestTypedefs::info());
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="lines">@@ -674,7 +674,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestTypedefs&quot;, &quot;stringArrayFunction2&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestTypedefs::info());
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="lines">@@ -694,7 +694,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestTypedefs&quot;, &quot;callWithSequenceThatRequiresInclude&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestTypedefs::info());
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     if (UNLIKELY(exec-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(exec, createNotEnoughArgumentsError(exec));
</span><span class="cx">     Vector&lt;RefPtr&lt;TestEventTarget&gt;&gt; sequenceArg((toRefPtrNativeArray&lt;TestEventTarget, JSTestEventTarget&gt;(exec, exec-&gt;argument(0), &amp;JSTestEventTarget::toWrapped)));
</span><span class="lines">@@ -711,7 +711,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*exec, &quot;TestTypedefs&quot;, &quot;methodWithException&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestTypedefs::info());
</span><del>-    TestTypedefs&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     impl.methodWithException(ec);
</span><span class="cx">     setDOMException(exec, ec);
</span><span class="lines">@@ -727,8 +727,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSTestTypedefsOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSTestTypedefs* jsTestTypedefs = jsCast&lt;JSTestTypedefs*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsTestTypedefs = jsCast&lt;JSTestTypedefs*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsTestTypedefs-&gt;impl(), jsTestTypedefs);
</span><span class="cx">     jsTestTypedefs-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSattributecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -154,7 +154,7 @@
</span><span class="cx">             return reportDeprecatedGetterError(*exec, &quot;attribute&quot;, &quot;readonly&quot;);
</span><span class="cx">         return throwGetterTypeError(*exec, &quot;attribute&quot;, &quot;readonly&quot;);
</span><span class="cx">     }
</span><del>-    attribute&amp; impl = castedThis-&gt;impl();
</del><ins>+    auto&amp; impl = castedThis-&gt;impl();
</ins><span class="cx">     JSValue result = jsStringWithCache(exec, impl.readonly());
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -182,8 +182,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSattributeOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSattribute* jsattribute = jsCast&lt;JSattribute*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsattribute = jsCast&lt;JSattribute*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsattribute-&gt;impl(), jsattribute);
</span><span class="cx">     jsattribute-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSreadonlycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -160,8 +160,8 @@
</span><span class="cx"> 
</span><span class="cx"> void JSreadonlyOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt; handle, void* context)
</span><span class="cx"> {
</span><del>-    JSreadonly* jsreadonly = jsCast&lt;JSreadonly*&gt;(handle.slot()-&gt;asCell());
-    DOMWrapperWorld&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</del><ins>+    auto* jsreadonly = jsCast&lt;JSreadonly*&gt;(handle.slot()-&gt;asCell());
+    auto&amp; world = *static_cast&lt;DOMWrapperWorld*&gt;(context);
</ins><span class="cx">     uncacheWrapper(world, &amp;jsreadonly-&gt;impl(), jsreadonly);
</span><span class="cx">     jsreadonly-&gt;releaseImpl();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomMessagePortcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MessagePort.cpp (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MessagePort.cpp        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/dom/MessagePort.cpp        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -224,4 +224,11 @@
</span><span class="cx">     return portArray;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool MessagePort::addEventListener(const AtomicString&amp; eventType, PassRefPtr&lt;EventListener&gt; listener, bool useCapture)
+{
+    if (listener &amp;&amp; listener-&gt;isAttribute() &amp;&amp; eventType == eventNames().messageEvent)
+        start();
+    return EventTargetWithInlineData::addEventListener(eventType, listener, useCapture);
+}
+
</ins><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoredomMessagePorth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MessagePort.h (181155 => 181156)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MessagePort.h        2015-03-06 15:37:07 UTC (rev 181155)
+++ trunk/Source/WebCore/dom/MessagePort.h        2015-03-06 16:30:23 UTC (rev 181156)
</span><span class="lines">@@ -85,7 +85,6 @@
</span><span class="cx">         void setOnmessage(PassRefPtr&lt;EventListener&gt; listener)
</span><span class="cx">         {
</span><span class="cx">             setAttributeEventListener(eventNames().messageEvent, listener);
</span><del>-            start();
</del><span class="cx">         }
</span><span class="cx">         EventListener* onmessage() { return getAttributeEventListener(eventNames().messageEvent); }
</span><span class="cx"> 
</span><span class="lines">@@ -100,6 +99,8 @@
</span><span class="cx">         // A port gets neutered when it is transferred to a new owner via postMessage().
</span><span class="cx">         bool isNeutered() { return !m_entangledChannel; }
</span><span class="cx"> 
</span><ins>+        bool addEventListener(const AtomicString&amp; eventType, PassRefPtr&lt;EventListener&gt;, bool useCapture) override;
+
</ins><span class="cx">     private:
</span><span class="cx">         explicit MessagePort(ScriptExecutionContext&amp;);
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>