<!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>[190036] 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/190036">190036</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2015-09-20 19:42:29 -0700 (Sun, 20 Sep 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Pass JSC::ExecState to the custom bindings by reference
https://bugs.webkit.org/show_bug.cgi?id=149393

Reviewed by Sam Weinig.

Pass JSC::ExecState to the custom bindings by reference instead of by
pointer as it is expected to be non-null.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulespluginsQuickTimePluginReplacementmm">trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSAudioBufferSourceNodeCustomcpp">trunk/Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSAudioTrackCustomcpp">trunk/Source/WebCore/bindings/js/JSAudioTrackCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSBiquadFilterNodeCustomcpp">trunk/Source/WebCore/bindings/js/JSBiquadFilterNodeCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCSSStyleDeclarationCustomcpp">trunk/Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCanvasRenderingContext2DCustomcpp">trunk/Source/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCharacterDataCustomcpp">trunk/Source/WebCore/bindings/js/JSCharacterDataCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCommandLineAPIHostCustomcpp">trunk/Source/WebCore/bindings/js/JSCommandLineAPIHostCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCryptoCustomcpp">trunk/Source/WebCore/bindings/js/JSCryptoCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCryptoKeyCustomcpp">trunk/Source/WebCore/bindings/js/JSCryptoKeyCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCustomEventCustomcpp">trunk/Source/WebCore/bindings/js/JSCustomEventCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMFormDataCustomcpp">trunk/Source/WebCore/bindings/js/JSDOMFormDataCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMTokenListCustomcpp">trunk/Source/WebCore/bindings/js/JSDOMTokenListCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMWindowCustomcpp">trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDataCueCustomcpp">trunk/Source/WebCore/bindings/js/JSDataCueCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDataTransferCustomcpp">trunk/Source/WebCore/bindings/js/JSDataTransferCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDedicatedWorkerGlobalScopeCustomcpp">trunk/Source/WebCore/bindings/js/JSDedicatedWorkerGlobalScopeCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDeviceMotionEventCustomcpp">trunk/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDeviceOrientationEventCustomcpp">trunk/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDictionarycpp">trunk/Source/WebCore/bindings/js/JSDictionary.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDocumentCustomcpp">trunk/Source/WebCore/bindings/js/JSDocumentCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDocumentFragmentCustomcpp">trunk/Source/WebCore/bindings/js/JSDocumentFragmentCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDocumentTypeCustomcpp">trunk/Source/WebCore/bindings/js/JSDocumentTypeCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSElementCustomcpp">trunk/Source/WebCore/bindings/js/JSElementCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSEventCustomcpp">trunk/Source/WebCore/bindings/js/JSEventCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSFileReaderCustomcpp">trunk/Source/WebCore/bindings/js/JSFileReaderCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSGeolocationCustomcpp">trunk/Source/WebCore/bindings/js/JSGeolocationCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLAllCollectionCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLCanvasElementCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLDocumentCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLDocumentCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLFormControlsCollectionCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLFormControlsCollectionCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLFrameElementCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLFrameElementCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLInputElementCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLInputElementCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLMediaElementCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLMediaElementCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLOptionsCollectionCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLSelectElementCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLTemplateElementCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLTemplateElementCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHistoryCustomcpp">trunk/Source/WebCore/bindings/js/JSHistoryCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSIDBDatabaseCustomcpp">trunk/Source/WebCore/bindings/js/JSIDBDatabaseCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSIDBObjectStoreCustomcpp">trunk/Source/WebCore/bindings/js/JSIDBObjectStoreCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSInspectorFrontendHostCustomcpp">trunk/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSLocationCustomcpp">trunk/Source/WebCore/bindings/js/JSLocationCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSMediaSourceStatesCustomcpp">trunk/Source/WebCore/bindings/js/JSMediaSourceStatesCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSMessageEventCustomcpp">trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSMessagePortCustomcpp">trunk/Source/WebCore/bindings/js/JSMessagePortCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSMessagePortCustomh">trunk/Source/WebCore/bindings/js/JSMessagePortCustom.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSMockContentFilterSettingsCustomcpp">trunk/Source/WebCore/bindings/js/JSMockContentFilterSettingsCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSNavigatorCustomcpp">trunk/Source/WebCore/bindings/js/JSNavigatorCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSNodeCustomcpp">trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSOscillatorNodeCustomcpp">trunk/Source/WebCore/bindings/js/JSOscillatorNodeCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSPannerNodeCustomcpp">trunk/Source/WebCore/bindings/js/JSPannerNodeCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSPopStateEventCustomcpp">trunk/Source/WebCore/bindings/js/JSPopStateEventCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSReadableStreamCustomcpp">trunk/Source/WebCore/bindings/js/JSReadableStreamCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSReadableStreamReaderCustomcpp">trunk/Source/WebCore/bindings/js/JSReadableStreamReaderCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSSQLResultSetRowListCustomcpp">trunk/Source/WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSSQLTransactionCustomcpp">trunk/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSSVGLengthCustomcpp">trunk/Source/WebCore/bindings/js/JSSVGLengthCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSSubtleCryptoCustomcpp">trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSTextTrackCustomcpp">trunk/Source/WebCore/bindings/js/JSTextTrackCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSTrackEventCustomcpp">trunk/Source/WebCore/bindings/js/JSTrackEventCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSVideoTrackCustomcpp">trunk/Source/WebCore/bindings/js/JSVideoTrackCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSWebGLRenderingContextBaseCustomcpp">trunk/Source/WebCore/bindings/js/JSWebGLRenderingContextBaseCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSWorkerCustomcpp">trunk/Source/WebCore/bindings/js/JSWorkerCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSWorkerGlobalScopeCustomcpp">trunk/Source/WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSXMLHttpRequestCustomcpp">trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSXSLTProcessorCustomcpp">trunk/Source/WebCore/bindings/js/JSXSLTProcessorCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfaceh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/ChangeLog        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -1,5 +1,15 @@
</span><span class="cx"> 2015-09-20  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Pass JSC::ExecState to the custom bindings by reference
+        https://bugs.webkit.org/show_bug.cgi?id=149393
+
+        Reviewed by Sam Weinig.
+
+        Pass JSC::ExecState to the custom bindings by reference instead of by
+        pointer as it is expected to be non-null.
+
+2015-09-20  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Regression(r190023): fast/dom/navigation-with-sideeffects-crash.html is crashing
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=149392
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulespluginsQuickTimePluginReplacementmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -366,7 +366,7 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-JSC::JSValue JSQuickTimePluginReplacement::timedMetaData(JSC::ExecState* exec) const
</del><ins>+JSC::JSValue JSQuickTimePluginReplacement::timedMetaData(JSC::ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     HTMLVideoElement* parent = impl().parentElement();
</span><span class="lines">@@ -384,14 +384,14 @@
</span><span class="cx">     JSContext *jsContext = frame-&gt;script().javaScriptContext();
</span><span class="cx">     JSValue *metaDataValue = jsValueWithValueInContext(metaData, jsContext);
</span><span class="cx">     
</span><del>-    return toJS(exec, [metaDataValue JSValueRef]);
</del><ins>+    return toJS(&amp;state, [metaDataValue JSValueRef]);
</ins><span class="cx"> #else
</span><del>-    UNUSED_PARAM(exec);
</del><ins>+    UNUSED_PARAM(state);
</ins><span class="cx">     return JSC::jsNull();
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSQuickTimePluginReplacement::accessLog(JSC::ExecState* exec) const
</del><ins>+JSC::JSValue JSQuickTimePluginReplacement::accessLog(JSC::ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     HTMLVideoElement* parent = impl().parentElement();
</span><span class="lines">@@ -406,14 +406,14 @@
</span><span class="cx">     String accessLogString = parent-&gt;player()-&gt;accessLog();
</span><span class="cx">     [dictionary setValue:static_cast&lt;NSString *&gt;(accessLogString) forProperty:(NSString *)CFSTR(&quot;extendedLog&quot;)];
</span><span class="cx"> 
</span><del>-    return toJS(exec, [dictionary JSValueRef]);
</del><ins>+    return toJS(&amp;state, [dictionary JSValueRef]);
</ins><span class="cx"> #else
</span><del>-    UNUSED_PARAM(exec);
</del><ins>+    UNUSED_PARAM(state);
</ins><span class="cx">     return JSC::jsNull();
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSQuickTimePluginReplacement::errorLog(JSC::ExecState* exec) const
</del><ins>+JSC::JSValue JSQuickTimePluginReplacement::errorLog(JSC::ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     HTMLVideoElement* parent = impl().parentElement();
</span><span class="lines">@@ -428,9 +428,9 @@
</span><span class="cx">     String errorLogString = parent-&gt;player()-&gt;errorLog();
</span><span class="cx">     [dictionary setValue:static_cast&lt;NSString *&gt;(errorLogString) forProperty:(NSString *)CFSTR(&quot;extendedLog&quot;)];
</span><span class="cx"> 
</span><del>-    return toJS(exec, [dictionary JSValueRef]);
</del><ins>+    return toJS(&amp;state, [dictionary JSValueRef]);
</ins><span class="cx"> #else
</span><del>-    UNUSED_PARAM(exec);
</del><ins>+    UNUSED_PARAM(state);
</ins><span class="cx">     return JSC::jsNull();
</span><span class="cx"> #endif
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSAudioBufferSourceNodeCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -39,16 +39,16 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-void JSAudioBufferSourceNode::setBuffer(ExecState* exec, JSValue value)
</del><ins>+void JSAudioBufferSourceNode::setBuffer(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     AudioBuffer* buffer = JSAudioBuffer::toWrapped(value);
</span><span class="cx">     if (!buffer) {
</span><del>-        exec-&gt;vm().throwException(exec, createTypeError(exec, &quot;Value is not of type AudioBuffer&quot;));
</del><ins>+        state.vm().throwException(&amp;state, createTypeError(&amp;state, &quot;Value is not of type AudioBuffer&quot;));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (!impl().setBuffer(buffer))
</span><del>-        exec-&gt;vm().throwException(exec, createTypeError(exec, &quot;AudioBuffer unsupported number of channels&quot;));
</del><ins>+        state.vm().throwException(&amp;state, createTypeError(&amp;state, &quot;AudioBuffer unsupported number of channels&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSAudioTrackCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSAudioTrackCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSAudioTrackCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSAudioTrackCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -40,28 +40,28 @@
</span><span class="cx">     visitor.addOpaqueRoot(root(&amp;impl()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSAudioTrack::setKind(ExecState* exec, JSValue value)
</del><ins>+void JSAudioTrack::setKind(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(MEDIA_SOURCE)
</span><del>-    auto&amp; string = value.toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    auto&amp; string = value.toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx">     impl().setKind(string);
</span><span class="cx"> #else
</span><del>-    UNUSED_PARAM(exec);
</del><ins>+    UNUSED_PARAM(state);
</ins><span class="cx">     UNUSED_PARAM(value);
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSAudioTrack::setLanguage(ExecState* exec, JSValue value)
</del><ins>+void JSAudioTrack::setLanguage(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(MEDIA_SOURCE)
</span><del>-    auto&amp; string = value.toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    auto&amp; string = value.toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx">     impl().setLanguage(string);
</span><span class="cx"> #else
</span><del>-    UNUSED_PARAM(exec);
</del><ins>+    UNUSED_PARAM(state);
</ins><span class="cx">     UNUSED_PARAM(value);
</span><span class="cx"> #endif
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSBiquadFilterNodeCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSBiquadFilterNodeCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSBiquadFilterNodeCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSBiquadFilterNodeCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -37,26 +37,26 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-void JSBiquadFilterNode::setType(ExecState* exec, JSValue value)
</del><ins>+void JSBiquadFilterNode::setType(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(LEGACY_WEB_AUDIO)
</span><span class="cx">     if (value.isNumber()) {
</span><del>-        uint32_t type = value.toUInt32(exec);
</del><ins>+        uint32_t type = value.toUInt32(&amp;state);
</ins><span class="cx">         if (!impl().setType(type))
</span><del>-            exec-&gt;vm().throwException(exec, createTypeError(exec, &quot;Illegal BiquadFilterNode type&quot;));
</del><ins>+            state.vm().throwException(&amp;state, createTypeError(&amp;state, &quot;Illegal BiquadFilterNode type&quot;));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     if (value.isString()) {
</span><del>-        String type = value.toString(exec)-&gt;value(exec);
</del><ins>+        String type = value.toString(&amp;state)-&gt;value(&amp;state);
</ins><span class="cx">         if (type == &quot;lowpass&quot; || type == &quot;highpass&quot; || type == &quot;bandpass&quot; || type == &quot;lowshelf&quot; || type == &quot;highshelf&quot; || type == &quot;peaking&quot; || type == &quot;notch&quot; || type == &quot;allpass&quot;) {
</span><span class="cx">             impl().setType(type);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    exec-&gt;vm().throwException(exec, createTypeError(exec, &quot;Illegal BiquadFilterNode type&quot;));
</del><ins>+    state.vm().throwException(&amp;state, createTypeError(&amp;state, &quot;Illegal BiquadFilterNode type&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCSSStyleDeclarationCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -347,10 +347,10 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSCSSStyleDeclaration::getPropertyCSSValue(ExecState* exec)
</del><ins>+JSValue JSCSSStyleDeclaration::getPropertyCSSValue(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    const String&amp; propertyName = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    const String&amp; propertyName = state.argument(0).toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;CSSValue&gt; cssValue = impl().getPropertyCSSValue(propertyName);
</span><span class="lines">@@ -358,7 +358,7 @@
</span><span class="cx">         return jsNull();
</span><span class="cx"> 
</span><span class="cx">     globalObject()-&gt;world().m_cssValueRoots.add(cssValue.get(), root(&amp;impl())); // Balanced by JSCSSValueOwner::finalize().
</span><del>-    return toJS(exec, globalObject(), WTF::getPtr(cssValue));
</del><ins>+    return toJS(&amp;state, globalObject(), WTF::getPtr(cssValue));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void JSCSSStyleDeclaration::getOwnPropertyNames(JSObject* object, ExecState* exec, PropertyNameArray&amp; propertyNames, EnumerationMode mode)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCanvasRenderingContext2DCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -59,37 +59,37 @@
</span><span class="cx">     return CanvasStyle();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSCanvasRenderingContext2D::strokeStyle(ExecState* exec) const
</del><ins>+JSValue JSCanvasRenderingContext2D::strokeStyle(ExecState&amp; state) const
</ins><span class="cx"> {
</span><del>-    return toJS(exec, globalObject(), impl().strokeStyle());
</del><ins>+    return toJS(&amp;state, globalObject(), impl().strokeStyle());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSCanvasRenderingContext2D::setStrokeStyle(ExecState* exec, JSValue value)
</del><ins>+void JSCanvasRenderingContext2D::setStrokeStyle(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     CanvasRenderingContext2D&amp; context = impl();
</span><span class="cx">     if (value.isString()) {
</span><del>-        context.setStrokeColor(asString(value)-&gt;value(exec));
</del><ins>+        context.setStrokeColor(asString(value)-&gt;value(&amp;state));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    context.setStrokeStyle(toHTMLCanvasStyle(exec, value));
</del><ins>+    context.setStrokeStyle(toHTMLCanvasStyle(&amp;state, value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSCanvasRenderingContext2D::fillStyle(ExecState* exec) const
</del><ins>+JSValue JSCanvasRenderingContext2D::fillStyle(ExecState&amp; state) const
</ins><span class="cx"> {
</span><del>-    return toJS(exec, globalObject(), impl().fillStyle());
</del><ins>+    return toJS(&amp;state, globalObject(), impl().fillStyle());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSCanvasRenderingContext2D::setFillStyle(ExecState* exec, JSValue value)
</del><ins>+void JSCanvasRenderingContext2D::setFillStyle(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     CanvasRenderingContext2D&amp; context = impl();
</span><span class="cx">     if (value.isString()) {
</span><del>-        context.setFillColor(asString(value)-&gt;value(exec));
</del><ins>+        context.setFillColor(asString(value)-&gt;value(&amp;state));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    context.setFillStyle(toHTMLCanvasStyle(exec, value));
</del><ins>+    context.setFillStyle(toHTMLCanvasStyle(&amp;state, value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSCanvasRenderingContext2D::webkitLineDash(ExecState* exec) const
</del><ins>+JSValue JSCanvasRenderingContext2D::webkitLineDash(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     const Vector&lt;float&gt;&amp; dash = impl().getLineDash();
</span><span class="cx"> 
</span><span class="lines">@@ -97,10 +97,10 @@
</span><span class="cx">     Vector&lt;float&gt;::const_iterator end = dash.end();
</span><span class="cx">     for (Vector&lt;float&gt;::const_iterator it = dash.begin(); it != end; ++it)
</span><span class="cx">         list.append(JSValue(*it));
</span><del>-    return constructArray(exec, 0, globalObject(), list);
</del><ins>+    return constructArray(&amp;state, 0, globalObject(), list);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSCanvasRenderingContext2D::setWebkitLineDash(ExecState* exec, JSValue value)
</del><ins>+void JSCanvasRenderingContext2D::setWebkitLineDash(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     if (!isJSArray(value))
</span><span class="cx">         return;
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">     Vector&lt;float&gt; dash;
</span><span class="cx">     JSArray* valueArray = asArray(value);
</span><span class="cx">     for (unsigned i = 0; i &lt; valueArray-&gt;length(); ++i) {
</span><del>-        float elem = valueArray-&gt;getIndex(exec, i).toFloat(exec);
</del><ins>+        float elem = valueArray-&gt;getIndex(&amp;state, i).toFloat(&amp;state);
</ins><span class="cx">         if (elem &lt;= 0 || !std::isfinite(elem))
</span><span class="cx">             return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCharacterDataCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCharacterDataCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCharacterDataCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSCharacterDataCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -33,29 +33,29 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSCharacterData::before(ExecState* state)
</del><ins>+JSValue JSCharacterData::before(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().before(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().before(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSCharacterData::after(ExecState* state)
</del><ins>+JSValue JSCharacterData::after(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().after(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().after(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSCharacterData::replaceWith(ExecState* state)
</del><ins>+JSValue JSCharacterData::replaceWith(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().replaceWith(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().replaceWith(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCommandLineAPIHostCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCommandLineAPIHostCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCommandLineAPIHostCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSCommandLineAPIHostCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -55,23 +55,23 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSCommandLineAPIHost::inspectedObject(ExecState* exec)
</del><ins>+JSValue JSCommandLineAPIHost::inspectedObject(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     CommandLineAPIHost::InspectableObject* object = impl().inspectedObject();
</span><span class="cx">     if (!object)
</span><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    JSLockHolder lock(exec);
-    Deprecated::ScriptValue scriptValue = object-&gt;get(exec);
</del><ins>+    JSLockHolder lock(&amp;state);
+    Deprecated::ScriptValue scriptValue = object-&gt;get(&amp;state);
</ins><span class="cx">     if (scriptValue.hasNoValue())
</span><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">     return scriptValue.jsValue();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static JSArray* getJSListenerFunctions(ExecState* exec, Document* document, const EventListenerInfo&amp; listenerInfo)
</del><ins>+static JSArray* getJSListenerFunctions(ExecState&amp; state, Document* document, const EventListenerInfo&amp; listenerInfo)
</ins><span class="cx"> {
</span><del>-    JSArray* result = constructEmptyArray(exec, nullptr);
</del><ins>+    JSArray* result = constructEmptyArray(&amp;state, nullptr);
</ins><span class="cx">     size_t handlersCount = listenerInfo.eventListenerVector.size();
</span><span class="cx">     for (size_t i = 0, outputIndex = 0; i &lt; handlersCount; ++i) {
</span><span class="cx">         const JSEventListener* jsListener = JSEventListener::cast(listenerInfo.eventListenerVector[i].listener.get());
</span><span class="lines">@@ -81,27 +81,27 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         // Hide listeners from other contexts.
</span><del>-        if (&amp;jsListener-&gt;isolatedWorld() != &amp;currentWorld(exec))
</del><ins>+        if (&amp;jsListener-&gt;isolatedWorld() != &amp;currentWorld(&amp;state))
</ins><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="cx">         JSObject* function = jsListener-&gt;jsFunction(document);
</span><span class="cx">         if (!function)
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        JSObject* listenerEntry = constructEmptyObject(exec);
-        listenerEntry-&gt;putDirect(exec-&gt;vm(), Identifier::fromString(exec, &quot;listener&quot;), function);
-        listenerEntry-&gt;putDirect(exec-&gt;vm(), Identifier::fromString(exec, &quot;useCapture&quot;), jsBoolean(listenerInfo.eventListenerVector[i].useCapture));
-        result-&gt;putDirectIndex(exec, outputIndex++, JSValue(listenerEntry));
</del><ins>+        JSObject* listenerEntry = constructEmptyObject(&amp;state);
+        listenerEntry-&gt;putDirect(state.vm(), Identifier::fromString(&amp;state, &quot;listener&quot;), function);
+        listenerEntry-&gt;putDirect(state.vm(), Identifier::fromString(&amp;state, &quot;useCapture&quot;), jsBoolean(listenerInfo.eventListenerVector[i].useCapture));
+        result-&gt;putDirectIndex(&amp;state, outputIndex++, JSValue(listenerEntry));
</ins><span class="cx">     }
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSCommandLineAPIHost::getEventListeners(ExecState* exec)
</del><ins>+JSValue JSCommandLineAPIHost::getEventListeners(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 1)
</del><ins>+    if (state.argumentCount() &lt; 1)
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    JSValue value = exec-&gt;uncheckedArgument(0);
</del><ins>+    JSValue value = state.uncheckedArgument(0);
</ins><span class="cx">     if (!value.isObject() || value.isNull())
</span><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><span class="lines">@@ -112,49 +112,49 @@
</span><span class="cx">     Vector&lt;EventListenerInfo&gt; listenersArray;
</span><span class="cx">     impl().getEventListenersImpl(node, listenersArray);
</span><span class="cx"> 
</span><del>-    JSObject* result = constructEmptyObject(exec);
</del><ins>+    JSObject* result = constructEmptyObject(&amp;state);
</ins><span class="cx">     for (size_t i = 0; i &lt; listenersArray.size(); ++i) {
</span><del>-        JSArray* listeners = getJSListenerFunctions(exec, &amp;node-&gt;document(), listenersArray[i]);
</del><ins>+        JSArray* listeners = getJSListenerFunctions(state, &amp;node-&gt;document(), listenersArray[i]);
</ins><span class="cx">         if (!listeners-&gt;length())
</span><span class="cx">             continue;
</span><span class="cx">         AtomicString eventType = listenersArray[i].eventType;
</span><del>-        result-&gt;putDirect(exec-&gt;vm(), Identifier::fromString(exec, eventType.impl()), JSValue(listeners));
</del><ins>+        result-&gt;putDirect(state.vm(), Identifier::fromString(&amp;state, eventType.impl()), JSValue(listeners));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSCommandLineAPIHost::inspect(ExecState* exec)
</del><ins>+JSValue JSCommandLineAPIHost::inspect(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &gt;= 2) {
-        Deprecated::ScriptValue object(exec-&gt;vm(), exec-&gt;uncheckedArgument(0));
-        Deprecated::ScriptValue hints(exec-&gt;vm(), exec-&gt;uncheckedArgument(1));
-        impl().inspectImpl(object.toInspectorValue(exec), hints.toInspectorValue(exec));
</del><ins>+    if (state.argumentCount() &gt;= 2) {
+        Deprecated::ScriptValue object(state.vm(), state.uncheckedArgument(0));
+        Deprecated::ScriptValue hints(state.vm(), state.uncheckedArgument(1));
+        impl().inspectImpl(object.toInspectorValue(&amp;state), hints.toInspectorValue(&amp;state));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSCommandLineAPIHost::databaseId(ExecState* exec)
</del><ins>+JSValue JSCommandLineAPIHost::databaseId(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 1)
</del><ins>+    if (state.argumentCount() &lt; 1)
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    Database* database = JSDatabase::toWrapped(exec-&gt;uncheckedArgument(0));
</del><ins>+    Database* database = JSDatabase::toWrapped(state.uncheckedArgument(0));
</ins><span class="cx">     if (database)
</span><del>-        return jsStringWithCache(exec, impl().databaseIdImpl(database));
</del><ins>+        return jsStringWithCache(&amp;state, impl().databaseIdImpl(database));
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSCommandLineAPIHost::storageId(ExecState* exec)
</del><ins>+JSValue JSCommandLineAPIHost::storageId(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 1)
</del><ins>+    if (state.argumentCount() &lt; 1)
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    Storage* storage = JSStorage::toWrapped(exec-&gt;uncheckedArgument(0));
</del><ins>+    Storage* storage = JSStorage::toWrapped(state.uncheckedArgument(0));
</ins><span class="cx">     if (storage)
</span><del>-        return jsStringWithCache(exec, impl().storageIdImpl(storage));
</del><ins>+        return jsStringWithCache(&amp;state, impl().storageIdImpl(storage));
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCryptoCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCryptoCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCryptoCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSCryptoCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -35,21 +35,21 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSCrypto::getRandomValues(ExecState* exec)
</del><ins>+JSValue JSCrypto::getRandomValues(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 1)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 1)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><del>-    JSValue buffer = exec-&gt;argument(0);
</del><ins>+    JSValue buffer = state.argument(0);
</ins><span class="cx">     RefPtr&lt;ArrayBufferView&gt; arrayBufferView = toArrayBufferView(buffer);
</span><span class="cx">     if (!arrayBufferView)
</span><del>-        return throwTypeError(exec);
</del><ins>+        return throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     impl().getRandomValues(arrayBufferView.get(), ec);
</span><span class="cx"> 
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCryptoKeyCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCryptoKeyCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCryptoKeyCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSCryptoKeyCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -35,9 +35,9 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSCryptoKey::algorithm(JSC::ExecState* exec) const
</del><ins>+JSValue JSCryptoKey::algorithm(JSC::ExecState&amp; state) const
</ins><span class="cx"> {
</span><del>-    JSCryptoAlgorithmBuilder builder(exec);
</del><ins>+    JSCryptoAlgorithmBuilder builder(&amp;state);
</ins><span class="cx">     impl().buildAlgorithmDescription(builder);
</span><span class="cx">     return builder.result();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCustomEventCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCustomEventCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCustomEventCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSCustomEventCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx">     
</span><del>-JSValue JSCustomEvent::detail(ExecState* exec) const
</del><ins>+JSValue JSCustomEvent::detail(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     CustomEvent&amp; event = impl();
</span><span class="cx">     
</span><span class="lines">@@ -45,15 +45,15 @@
</span><span class="cx"> 
</span><span class="cx">     JSValue detail = event.detail().jsValue();
</span><span class="cx">     
</span><del>-    if (detail.isObject() &amp;&amp; &amp;worldForDOMObject(detail.getObject()) != &amp;currentWorld(exec)) {
</del><ins>+    if (detail.isObject() &amp;&amp; &amp;worldForDOMObject(detail.getObject()) != &amp;currentWorld(&amp;state)) {
</ins><span class="cx">         // We need to make sure CustomEvents do not leak their detail property across isolated DOM worlds.
</span><span class="cx">         // Ideally, we would check that the worlds have different privileges but that's not possible yet.
</span><del>-        RefPtr&lt;SerializedScriptValue&gt; serializedDetail = event.trySerializeDetail(exec);
</del><ins>+        RefPtr&lt;SerializedScriptValue&gt; serializedDetail = event.trySerializeDetail(&amp;state);
</ins><span class="cx">         
</span><span class="cx">         if (!serializedDetail)
</span><span class="cx">             return jsNull();
</span><span class="cx">         
</span><del>-        return serializedDetail-&gt;deserialize(exec, globalObject(), nullptr);
</del><ins>+        return serializedDetail-&gt;deserialize(&amp;state, globalObject(), nullptr);
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     return detail;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMFormDataCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMFormDataCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMFormDataCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSDOMFormDataCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -55,18 +55,18 @@
</span><span class="cx">     return JSValue::encode(asObject(toJS(exec, jsConstructor-&gt;globalObject(), domFormData.get())));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDOMFormData::append(ExecState* exec)
</del><ins>+JSValue JSDOMFormData::append(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &gt;= 2) {
-        String name = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
-        JSValue value = exec-&gt;argument(1);
</del><ins>+    if (state.argumentCount() &gt;= 2) {
+        String name = state.argument(0).toString(&amp;state)-&gt;value(&amp;state);
+        JSValue value = state.argument(1);
</ins><span class="cx">         if (value.inherits(JSBlob::info())) {
</span><span class="cx">             String filename;
</span><del>-            if (exec-&gt;argumentCount() &gt;= 3 &amp;&amp; !exec-&gt;argument(2).isUndefinedOrNull())
-                filename = exec-&gt;argument(2).toString(exec)-&gt;value(exec);
</del><ins>+            if (state.argumentCount() &gt;= 3 &amp;&amp; !state.argument(2).isUndefinedOrNull())
+                filename = state.argument(2).toString(&amp;state)-&gt;value(&amp;state);
</ins><span class="cx">             impl().append(name, JSBlob::toWrapped(value), filename);
</span><span class="cx">         } else
</span><del>-            impl().append(name, value.toString(exec)-&gt;value(exec));
</del><ins>+            impl().append(name, value.toString(&amp;state)-&gt;value(&amp;state));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMTokenListCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMTokenListCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMTokenListCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSDOMTokenListCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -34,23 +34,23 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSDOMTokenList::toggle(ExecState* state)
</del><ins>+JSValue JSDOMTokenList::toggle(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (UNLIKELY(state-&gt;argumentCount() &lt; 1))
-        return state-&gt;vm().throwException(state, createNotEnoughArgumentsError(state));
</del><ins>+    if (UNLIKELY(state.argumentCount() &lt; 1))
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    String token = state-&gt;argument(0).toString(state)-&gt;value(state);
-    if (UNLIKELY(state-&gt;hadException()))
</del><ins>+    String token = state.argument(0).toString(&amp;state)-&gt;value(&amp;state);
+    if (UNLIKELY(state.hadException()))
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">     // toggle() needs to be able to distinguish undefined/missing from the false value for the 'force' parameter.
</span><del>-    Optional&lt;bool&gt; force = state-&gt;argument(1).isUndefined() ? Nullopt : Optional&lt;bool&gt;(state-&gt;uncheckedArgument(1).toBoolean(state));
-    if (UNLIKELY(state-&gt;hadException()))
</del><ins>+    Optional&lt;bool&gt; force = state.argument(1).isUndefined() ? Nullopt : Optional&lt;bool&gt;(state.uncheckedArgument(1).toBoolean(&amp;state));
+    if (UNLIKELY(state.hadException()))
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     JSValue result = jsBoolean(impl().toggle(token, force, ec));
</span><span class="cx"> 
</span><del>-    setDOMException(state, ec);
</del><ins>+    setDOMException(&amp;state, ec);
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMWindowCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -469,76 +469,76 @@
</span><span class="cx"> 
</span><span class="cx"> // Custom Attributes
</span><span class="cx"> 
</span><del>-void JSDOMWindow::setLocation(ExecState* exec, JSValue value)
</del><ins>+void JSDOMWindow::setLocation(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><span class="cx">     // To avoid breaking old widgets, make &quot;var location =&quot; in a top-level frame create
</span><span class="cx">     // a property named &quot;location&quot; instead of performing a navigation (&lt;rdar://problem/5688039&gt;).
</span><del>-    if (Frame* activeFrame = activeDOMWindow(exec).frame()) {
</del><ins>+    if (Frame* activeFrame = activeDOMWindow(&amp;state).frame()) {
</ins><span class="cx">         if (activeFrame-&gt;settings().usesDashboardBackwardCompatibilityMode() &amp;&amp; !activeFrame-&gt;tree().parent()) {
</span><del>-            if (BindingSecurity::shouldAllowAccessToDOMWindow(exec, impl()))
-                putDirect(exec-&gt;vm(), Identifier::fromString(exec, &quot;location&quot;), value);
</del><ins>+            if (BindingSecurity::shouldAllowAccessToDOMWindow(&amp;state, impl()))
+                putDirect(state.vm(), Identifier::fromString(&amp;state, &quot;location&quot;), value);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    String locationString = value.toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    String locationString = value.toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (Location* location = impl().location())
</span><del>-        location-&gt;setHref(activeDOMWindow(exec), firstDOMWindow(exec), locationString);
</del><ins>+        location-&gt;setHref(activeDOMWindow(&amp;state), firstDOMWindow(&amp;state), locationString);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDOMWindow::event(ExecState* exec) const
</del><ins>+JSValue JSDOMWindow::event(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     Event* event = currentEvent();
</span><span class="cx">     if (!event)
</span><span class="cx">         return jsUndefined();
</span><del>-    return toJS(exec, const_cast&lt;JSDOMWindow*&gt;(this), event);
</del><ins>+    return toJS(&amp;state, const_cast&lt;JSDOMWindow*&gt;(this), event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDOMWindow::image(ExecState* exec) const
</del><ins>+JSValue JSDOMWindow::image(ExecState&amp; state) const
</ins><span class="cx"> {
</span><del>-    return getDOMConstructor&lt;JSImageConstructor&gt;(exec-&gt;vm(), this);
</del><ins>+    return getDOMConstructor&lt;JSImageConstructor&gt;(state.vm(), this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(IOS_TOUCH_EVENTS)
</span><del>-JSValue JSDOMWindow::touch(ExecState* exec) const
</del><ins>+JSValue JSDOMWindow::touch(ExecState&amp; state) const
</ins><span class="cx"> {
</span><del>-    return getDOMConstructor&lt;JSTouchConstructor&gt;(exec-&gt;vm(), this);
</del><ins>+    return getDOMConstructor&lt;JSTouchConstructor&gt;(state.vm(), this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDOMWindow::touchList(ExecState* exec) const
</del><ins>+JSValue JSDOMWindow::touchList(ExecState&amp; state) const
</ins><span class="cx"> {
</span><del>-    return getDOMConstructor&lt;JSTouchListConstructor&gt;(exec-&gt;vm(), this);
</del><ins>+    return getDOMConstructor&lt;JSTouchListConstructor&gt;(state.vm(), this);
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> // Custom functions
</span><span class="cx"> 
</span><del>-JSValue JSDOMWindow::open(ExecState* exec)
</del><ins>+JSValue JSDOMWindow::open(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    String urlString = valueToStringWithUndefinedOrNullCheck(exec, exec-&gt;argument(0));
-    if (exec-&gt;hadException())
</del><ins>+    String urlString = valueToStringWithUndefinedOrNullCheck(&amp;state, state.argument(0));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><del>-    AtomicString frameName = exec-&gt;argument(1).isUndefinedOrNull() ? &quot;_blank&quot; : exec-&gt;argument(1).toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    AtomicString frameName = state.argument(1).isUndefinedOrNull() ? &quot;_blank&quot; : state.argument(1).toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><del>-    String windowFeaturesString = valueToStringWithUndefinedOrNullCheck(exec, exec-&gt;argument(2));
-    if (exec-&gt;hadException())
</del><ins>+    String windowFeaturesString = valueToStringWithUndefinedOrNullCheck(&amp;state, state.argument(2));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;DOMWindow&gt; openedWindow = impl().open(urlString, frameName, windowFeaturesString, activeDOMWindow(exec), firstDOMWindow(exec));
</del><ins>+    RefPtr&lt;DOMWindow&gt; openedWindow = impl().open(urlString, frameName, windowFeaturesString, activeDOMWindow(&amp;state), firstDOMWindow(&amp;state));
</ins><span class="cx">     if (!openedWindow)
</span><span class="cx">         return jsUndefined();
</span><del>-    return toJS(exec, openedWindow.get());
</del><ins>+    return toJS(&amp;state, openedWindow.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> class DialogHandler {
</span><span class="cx"> public:
</span><del>-    explicit DialogHandler(ExecState* exec)
</del><ins>+    explicit DialogHandler(ExecState&amp; exec)
</ins><span class="cx">         : m_exec(exec)
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="lines">@@ -547,7 +547,7 @@
</span><span class="cx">     JSValue returnValue() const;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    ExecState* m_exec;
</del><ins>+    ExecState&amp; m_exec;
</ins><span class="cx">     RefPtr&lt;Frame&gt; m_frame;
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -557,42 +557,42 @@
</span><span class="cx">     
</span><span class="cx">     // FIXME: This looks like a leak between the normal world and an isolated
</span><span class="cx">     //        world if dialogArguments comes from an isolated world.
</span><del>-    JSDOMWindow* globalObject = toJSDOMWindow(m_frame.get(), normalWorld(m_exec-&gt;vm()));
-    if (JSValue dialogArguments = m_exec-&gt;argument(1))
-        globalObject-&gt;putDirect(m_exec-&gt;vm(), Identifier::fromString(m_exec, &quot;dialogArguments&quot;), dialogArguments);
</del><ins>+    JSDOMWindow* globalObject = toJSDOMWindow(m_frame.get(), normalWorld(m_exec.vm()));
+    if (JSValue dialogArguments = m_exec.argument(1))
+        globalObject-&gt;putDirect(m_exec.vm(), Identifier::fromString(&amp;m_exec, &quot;dialogArguments&quot;), dialogArguments);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline JSValue DialogHandler::returnValue() const
</span><span class="cx"> {
</span><del>-    JSDOMWindow* globalObject = toJSDOMWindow(m_frame.get(), normalWorld(m_exec-&gt;vm()));
</del><ins>+    JSDOMWindow* globalObject = toJSDOMWindow(m_frame.get(), normalWorld(m_exec.vm()));
</ins><span class="cx">     if (!globalObject)
</span><span class="cx">         return jsUndefined();
</span><del>-    Identifier identifier = Identifier::fromString(m_exec, &quot;returnValue&quot;);
</del><ins>+    Identifier identifier = Identifier::fromString(&amp;m_exec, &quot;returnValue&quot;);
</ins><span class="cx">     PropertySlot slot(globalObject);
</span><del>-    if (!JSGlobalObject::getOwnPropertySlot(globalObject, m_exec, identifier, slot))
</del><ins>+    if (!JSGlobalObject::getOwnPropertySlot(globalObject, &amp;m_exec, identifier, slot))
</ins><span class="cx">         return jsUndefined();
</span><del>-    return slot.getValue(m_exec, identifier);
</del><ins>+    return slot.getValue(&amp;m_exec, identifier);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDOMWindow::showModalDialog(ExecState* exec)
</del><ins>+JSValue JSDOMWindow::showModalDialog(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    String urlString = valueToStringWithUndefinedOrNullCheck(exec, exec-&gt;argument(0));
-    if (exec-&gt;hadException())
</del><ins>+    String urlString = valueToStringWithUndefinedOrNullCheck(&amp;state, state.argument(0));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><del>-    String dialogFeaturesString = valueToStringWithUndefinedOrNullCheck(exec, exec-&gt;argument(2));
-    if (exec-&gt;hadException())
</del><ins>+    String dialogFeaturesString = valueToStringWithUndefinedOrNullCheck(&amp;state, state.argument(2));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    DialogHandler handler(exec);
</del><ins>+    DialogHandler handler(state);
</ins><span class="cx"> 
</span><del>-    impl().showModalDialog(urlString, dialogFeaturesString, activeDOMWindow(exec), firstDOMWindow(exec), [&amp;handler](DOMWindow&amp; dialog) {
</del><ins>+    impl().showModalDialog(urlString, dialogFeaturesString, activeDOMWindow(&amp;state), firstDOMWindow(&amp;state), [&amp;handler](DOMWindow&amp; dialog) {
</ins><span class="cx">         handler.dialogCreated(dialog);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="cx">     return handler.returnValue();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static JSValue handlePostMessage(DOMWindow* impl, ExecState* exec)
</del><ins>+static JSValue handlePostMessage(DOMWindow&amp; impl, ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     MessagePortArray messagePorts;
</span><span class="cx">     ArrayBufferArray arrayBuffers;
</span><span class="lines">@@ -604,102 +604,102 @@
</span><span class="cx">     // Legacy non-standard implementations in webkit allowed:
</span><span class="cx">     //   postMessage(message, {sequence of transferrables}, targetOrigin);
</span><span class="cx">     int targetOriginArgIndex = 1;
</span><del>-    if (exec-&gt;argumentCount() &gt; 2) {
</del><ins>+    if (state.argumentCount() &gt; 2) {
</ins><span class="cx">         int transferablesArgIndex = 2;
</span><del>-        if (exec-&gt;argument(2).isString()) {
</del><ins>+        if (state.argument(2).isString()) {
</ins><span class="cx">             targetOriginArgIndex = 2;
</span><span class="cx">             transferablesArgIndex = 1;
</span><span class="cx">         }
</span><del>-        fillMessagePortArray(exec, exec-&gt;argument(transferablesArgIndex), messagePorts, arrayBuffers);
</del><ins>+        fillMessagePortArray(state, state.argument(transferablesArgIndex), messagePorts, arrayBuffers);
</ins><span class="cx">     }
</span><del>-    if (exec-&gt;hadException())
</del><ins>+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;SerializedScriptValue&gt; message = SerializedScriptValue::create(exec, exec-&gt;argument(0),
</del><ins>+    RefPtr&lt;SerializedScriptValue&gt; message = SerializedScriptValue::create(&amp;state, state.argument(0),
</ins><span class="cx">                                                                          &amp;messagePorts,
</span><span class="cx">                                                                          &amp;arrayBuffers);
</span><span class="cx"> 
</span><del>-    if (exec-&gt;hadException())
</del><ins>+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    String targetOrigin = valueToStringWithUndefinedOrNullCheck(exec, exec-&gt;argument(targetOriginArgIndex));
-    if (exec-&gt;hadException())
</del><ins>+    String targetOrigin = valueToStringWithUndefinedOrNullCheck(&amp;state, state.argument(targetOriginArgIndex));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl-&gt;postMessage(message.release(), &amp;messagePorts, targetOrigin, activeDOMWindow(exec), ec);
-    setDOMException(exec, ec);
</del><ins>+    impl.postMessage(message.release(), &amp;messagePorts, targetOrigin, activeDOMWindow(&amp;state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDOMWindow::postMessage(ExecState* exec)
</del><ins>+JSValue JSDOMWindow::postMessage(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return handlePostMessage(&amp;impl(), exec);
</del><ins>+    return handlePostMessage(impl(), state);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDOMWindow::setTimeout(ExecState* exec)
</del><ins>+JSValue JSDOMWindow::setTimeout(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    ContentSecurityPolicy* contentSecurityPolicy = impl().document() ? impl().document()-&gt;contentSecurityPolicy() : 0;
-    std::unique_ptr&lt;ScheduledAction&gt; action = ScheduledAction::create(exec, globalObject()-&gt;world(), contentSecurityPolicy);
-    if (exec-&gt;hadException())
</del><ins>+    ContentSecurityPolicy* contentSecurityPolicy = impl().document() ? impl().document()-&gt;contentSecurityPolicy() : nullptr;
+    std::unique_ptr&lt;ScheduledAction&gt; action = ScheduledAction::create(&amp;state, globalObject()-&gt;world(), contentSecurityPolicy);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">     if (!action)
</span><span class="cx">         return jsNumber(0);
</span><span class="cx"> 
</span><del>-    int delay = exec-&gt;argument(1).toInt32(exec);
</del><ins>+    int delay = state.argument(1).toInt32(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     int result = impl().setTimeout(WTF::move(action), delay, ec);
</span><del>-    setDOMException(exec, ec);
</del><ins>+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsNumber(result);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDOMWindow::setInterval(ExecState* exec)
</del><ins>+JSValue JSDOMWindow::setInterval(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    ContentSecurityPolicy* contentSecurityPolicy = impl().document() ? impl().document()-&gt;contentSecurityPolicy() : 0;
-    std::unique_ptr&lt;ScheduledAction&gt; action = ScheduledAction::create(exec, globalObject()-&gt;world(), contentSecurityPolicy);
-    if (exec-&gt;hadException())
</del><ins>+    ContentSecurityPolicy* contentSecurityPolicy = impl().document() ? impl().document()-&gt;contentSecurityPolicy() : nullptr;
+    std::unique_ptr&lt;ScheduledAction&gt; action = ScheduledAction::create(&amp;state, globalObject()-&gt;world(), contentSecurityPolicy);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><del>-    int delay = exec-&gt;argument(1).toInt32(exec);
</del><ins>+    int delay = state.argument(1).toInt32(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     if (!action)
</span><span class="cx">         return jsNumber(0);
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     int result = impl().setInterval(WTF::move(action), delay, ec);
</span><del>-    setDOMException(exec, ec);
</del><ins>+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsNumber(result);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDOMWindow::addEventListener(ExecState* exec)
</del><ins>+JSValue JSDOMWindow::addEventListener(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     Frame* frame = impl().frame();
</span><span class="cx">     if (!frame)
</span><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    JSValue listener = exec-&gt;argument(1);
</del><ins>+    JSValue listener = state.argument(1);
</ins><span class="cx">     if (!listener.isObject())
</span><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    impl().addEventListener(exec-&gt;argument(0).toString(exec)-&gt;toAtomicString(exec), JSEventListener::create(asObject(listener), this, false, globalObject()-&gt;world()), exec-&gt;argument(2).toBoolean(exec));
</del><ins>+    impl().addEventListener(state.argument(0).toString(&amp;state)-&gt;toAtomicString(&amp;state), JSEventListener::create(asObject(listener), this, false, globalObject()-&gt;world()), state.argument(2).toBoolean(&amp;state));
</ins><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDOMWindow::removeEventListener(ExecState* exec)
</del><ins>+JSValue JSDOMWindow::removeEventListener(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     Frame* frame = impl().frame();
</span><span class="cx">     if (!frame)
</span><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    JSValue listener = exec-&gt;argument(1);
</del><ins>+    JSValue listener = state.argument(1);
</ins><span class="cx">     if (!listener.isObject())
</span><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    impl().removeEventListener(exec-&gt;argument(0).toString(exec)-&gt;toAtomicString(exec), JSEventListener::create(asObject(listener), this, false, globalObject()-&gt;world()).ptr(), exec-&gt;argument(2).toBoolean(exec));
</del><ins>+    impl().removeEventListener(state.argument(0).toString(&amp;state)-&gt;toAtomicString(&amp;state), JSEventListener::create(asObject(listener), this, false, globalObject()-&gt;world()).ptr(), state.argument(2).toBoolean(&amp;state));
</ins><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDataCueCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDataCueCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDataCueCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSDataCueCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -36,14 +36,14 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DATACUE_VALUE)
</span><del>-JSValue JSDataCue::value(ExecState* exec) const
</del><ins>+JSValue JSDataCue::value(ExecState&amp; state) const
</ins><span class="cx"> {
</span><del>-    return impl().value(exec);
</del><ins>+    return impl().value(&amp;state);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSDataCue::setValue(ExecState* exec, JSValue value)
</del><ins>+void JSDataCue::setValue(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><del>-    impl().setValue(exec, value);
</del><ins>+    impl().setValue(&amp;state, value);
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDataTransferCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDataTransferCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDataTransferCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSDataTransferCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -35,10 +35,10 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSDataTransfer::types(ExecState* exec) const
</del><ins>+JSValue JSDataTransfer::types(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     Vector&lt;String&gt; types = impl().types();
</span><del>-    return types.isEmpty() ? jsNull() : jsArray(exec, globalObject(), types);
</del><ins>+    return types.isEmpty() ? jsNull() : jsArray(&amp;state, globalObject(), types);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDedicatedWorkerGlobalScopeCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDedicatedWorkerGlobalScopeCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDedicatedWorkerGlobalScopeCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSDedicatedWorkerGlobalScopeCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -39,9 +39,9 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSC::JSValue JSDedicatedWorkerGlobalScope::postMessage(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSDedicatedWorkerGlobalScope::postMessage(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return handlePostMessage(exec, &amp;impl());
</del><ins>+    return handlePostMessage(state, &amp;impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDeviceMotionEventCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -40,36 +40,36 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-static RefPtr&lt;DeviceMotionData::Acceleration&gt; readAccelerationArgument(JSValue value, ExecState* exec)
</del><ins>+static RefPtr&lt;DeviceMotionData::Acceleration&gt; readAccelerationArgument(JSValue value, ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     if (value.isUndefinedOrNull())
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     // Given the above test, this will always yield an object.
</span><del>-    JSObject* object = value.toObject(exec);
</del><ins>+    JSObject* object = value.toObject(&amp;state);
</ins><span class="cx"> 
</span><del>-    JSValue xValue = object-&gt;get(exec, Identifier::fromString(exec, &quot;x&quot;));
-    if (exec-&gt;hadException())
</del><ins>+    JSValue xValue = object-&gt;get(&amp;state, Identifier::fromString(&amp;state, &quot;x&quot;));
+    if (state.hadException())
</ins><span class="cx">         return nullptr;
</span><span class="cx">     bool canProvideX = !xValue.isUndefinedOrNull();
</span><del>-    double x = xValue.toNumber(exec);
-    if (exec-&gt;hadException())
</del><ins>+    double x = xValue.toNumber(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    JSValue yValue = object-&gt;get(exec, Identifier::fromString(exec, &quot;y&quot;));
-    if (exec-&gt;hadException())
</del><ins>+    JSValue yValue = object-&gt;get(&amp;state, Identifier::fromString(&amp;state, &quot;y&quot;));
+    if (state.hadException())
</ins><span class="cx">         return nullptr;
</span><span class="cx">     bool canProvideY = !yValue.isUndefinedOrNull();
</span><del>-    double y = yValue.toNumber(exec);
-    if (exec-&gt;hadException())
</del><ins>+    double y = yValue.toNumber(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    JSValue zValue = object-&gt;get(exec, Identifier::fromString(exec, &quot;z&quot;));
-    if (exec-&gt;hadException())
</del><ins>+    JSValue zValue = object-&gt;get(&amp;state, Identifier::fromString(&amp;state, &quot;z&quot;));
+    if (state.hadException())
</ins><span class="cx">         return nullptr;
</span><span class="cx">     bool canProvideZ = !zValue.isUndefinedOrNull();
</span><del>-    double z = zValue.toNumber(exec);
-    if (exec-&gt;hadException())
</del><ins>+    double z = zValue.toNumber(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     if (!canProvideX &amp;&amp; !canProvideY &amp;&amp; !canProvideZ)
</span><span class="lines">@@ -78,36 +78,36 @@
</span><span class="cx">     return DeviceMotionData::Acceleration::create(canProvideX, x, canProvideY, y, canProvideZ, z);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static RefPtr&lt;DeviceMotionData::RotationRate&gt; readRotationRateArgument(JSValue value, ExecState* exec)
</del><ins>+static RefPtr&lt;DeviceMotionData::RotationRate&gt; readRotationRateArgument(JSValue value, ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     if (value.isUndefinedOrNull())
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     // Given the above test, this will always yield an object.
</span><del>-    JSObject* object = value.toObject(exec);
</del><ins>+    JSObject* object = value.toObject(&amp;state);
</ins><span class="cx"> 
</span><del>-    JSValue alphaValue = object-&gt;get(exec, Identifier::fromString(exec, &quot;alpha&quot;));
-    if (exec-&gt;hadException())
</del><ins>+    JSValue alphaValue = object-&gt;get(&amp;state, Identifier::fromString(&amp;state, &quot;alpha&quot;));
+    if (state.hadException())
</ins><span class="cx">         return nullptr;
</span><span class="cx">     bool canProvideAlpha = !alphaValue.isUndefinedOrNull();
</span><del>-    double alpha = alphaValue.toNumber(exec);
-    if (exec-&gt;hadException())
</del><ins>+    double alpha = alphaValue.toNumber(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    JSValue betaValue = object-&gt;get(exec, Identifier::fromString(exec, &quot;beta&quot;));
-    if (exec-&gt;hadException())
</del><ins>+    JSValue betaValue = object-&gt;get(&amp;state, Identifier::fromString(&amp;state, &quot;beta&quot;));
+    if (state.hadException())
</ins><span class="cx">         return nullptr;
</span><span class="cx">     bool canProvideBeta = !betaValue.isUndefinedOrNull();
</span><del>-    double beta = betaValue.toNumber(exec);
-    if (exec-&gt;hadException())
</del><ins>+    double beta = betaValue.toNumber(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    JSValue gammaValue = object-&gt;get(exec, Identifier::fromString(exec, &quot;gamma&quot;));
-    if (exec-&gt;hadException())
</del><ins>+    JSValue gammaValue = object-&gt;get(&amp;state, Identifier::fromString(&amp;state, &quot;gamma&quot;));
+    if (state.hadException())
</ins><span class="cx">         return nullptr;
</span><span class="cx">     bool canProvideGamma = !gammaValue.isUndefinedOrNull();
</span><del>-    double gamma = gammaValue.toNumber(exec);
-    if (exec-&gt;hadException())
</del><ins>+    double gamma = gammaValue.toNumber(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     if (!canProvideAlpha &amp;&amp; !canProvideBeta &amp;&amp; !canProvideGamma)
</span><span class="lines">@@ -116,49 +116,49 @@
</span><span class="cx">     return DeviceMotionData::RotationRate::create(canProvideAlpha, alpha, canProvideBeta, beta, canProvideGamma, gamma);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static JSObject* createAccelerationObject(const DeviceMotionData::Acceleration* acceleration, ExecState* exec)
</del><ins>+static JSObject* createAccelerationObject(const DeviceMotionData::Acceleration* acceleration, ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    JSObject* object = constructEmptyObject(exec);
-    object-&gt;putDirect(exec-&gt;vm(), Identifier::fromString(exec, &quot;x&quot;), acceleration-&gt;canProvideX() ? jsNumber(acceleration-&gt;x()) : jsNull());
-    object-&gt;putDirect(exec-&gt;vm(), Identifier::fromString(exec, &quot;y&quot;), acceleration-&gt;canProvideY() ? jsNumber(acceleration-&gt;y()) : jsNull());
-    object-&gt;putDirect(exec-&gt;vm(), Identifier::fromString(exec, &quot;z&quot;), acceleration-&gt;canProvideZ() ? jsNumber(acceleration-&gt;z()) : jsNull());
</del><ins>+    JSObject* object = constructEmptyObject(&amp;state);
+    object-&gt;putDirect(state.vm(), Identifier::fromString(&amp;state, &quot;x&quot;), acceleration-&gt;canProvideX() ? jsNumber(acceleration-&gt;x()) : jsNull());
+    object-&gt;putDirect(state.vm(), Identifier::fromString(&amp;state, &quot;y&quot;), acceleration-&gt;canProvideY() ? jsNumber(acceleration-&gt;y()) : jsNull());
+    object-&gt;putDirect(state.vm(), Identifier::fromString(&amp;state, &quot;z&quot;), acceleration-&gt;canProvideZ() ? jsNumber(acceleration-&gt;z()) : jsNull());
</ins><span class="cx">     return object;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static JSObject* createRotationRateObject(const DeviceMotionData::RotationRate* rotationRate, ExecState* exec)
</del><ins>+static JSObject* createRotationRateObject(const DeviceMotionData::RotationRate* rotationRate, ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    JSObject* object = constructEmptyObject(exec);
-    object-&gt;putDirect(exec-&gt;vm(), Identifier::fromString(exec, &quot;alpha&quot;), rotationRate-&gt;canProvideAlpha() ? jsNumber(rotationRate-&gt;alpha()) : jsNull());
-    object-&gt;putDirect(exec-&gt;vm(), Identifier::fromString(exec, &quot;beta&quot;),  rotationRate-&gt;canProvideBeta()  ? jsNumber(rotationRate-&gt;beta())  : jsNull());
-    object-&gt;putDirect(exec-&gt;vm(), Identifier::fromString(exec, &quot;gamma&quot;), rotationRate-&gt;canProvideGamma() ? jsNumber(rotationRate-&gt;gamma()) : jsNull());
</del><ins>+    JSObject* object = constructEmptyObject(&amp;state);
+    object-&gt;putDirect(state.vm(), Identifier::fromString(&amp;state, &quot;alpha&quot;), rotationRate-&gt;canProvideAlpha() ? jsNumber(rotationRate-&gt;alpha()) : jsNull());
+    object-&gt;putDirect(state.vm(), Identifier::fromString(&amp;state, &quot;beta&quot;),  rotationRate-&gt;canProvideBeta()  ? jsNumber(rotationRate-&gt;beta())  : jsNull());
+    object-&gt;putDirect(state.vm(), Identifier::fromString(&amp;state, &quot;gamma&quot;), rotationRate-&gt;canProvideGamma() ? jsNumber(rotationRate-&gt;gamma()) : jsNull());
</ins><span class="cx">     return object;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDeviceMotionEvent::acceleration(ExecState* exec) const
</del><ins>+JSValue JSDeviceMotionEvent::acceleration(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     DeviceMotionEvent&amp; imp = impl();
</span><span class="cx">     if (!imp.deviceMotionData()-&gt;acceleration())
</span><span class="cx">         return jsNull();
</span><del>-    return createAccelerationObject(imp.deviceMotionData()-&gt;acceleration(), exec);
</del><ins>+    return createAccelerationObject(imp.deviceMotionData()-&gt;acceleration(), state);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDeviceMotionEvent::accelerationIncludingGravity(ExecState* exec) const
</del><ins>+JSValue JSDeviceMotionEvent::accelerationIncludingGravity(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     DeviceMotionEvent&amp; imp = impl();
</span><span class="cx">     if (!imp.deviceMotionData()-&gt;accelerationIncludingGravity())
</span><span class="cx">         return jsNull();
</span><del>-    return createAccelerationObject(imp.deviceMotionData()-&gt;accelerationIncludingGravity(), exec);
</del><ins>+    return createAccelerationObject(imp.deviceMotionData()-&gt;accelerationIncludingGravity(), state);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDeviceMotionEvent::rotationRate(ExecState* exec) const
</del><ins>+JSValue JSDeviceMotionEvent::rotationRate(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     DeviceMotionEvent&amp; imp = impl();
</span><span class="cx">     if (!imp.deviceMotionData()-&gt;rotationRate())
</span><span class="cx">         return jsNull();
</span><del>-    return createRotationRateObject(imp.deviceMotionData()-&gt;rotationRate(), exec);
</del><ins>+    return createRotationRateObject(imp.deviceMotionData()-&gt;rotationRate(), state);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDeviceMotionEvent::interval(ExecState*) const
</del><ins>+JSValue JSDeviceMotionEvent::interval(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     DeviceMotionEvent&amp; imp = impl();
</span><span class="cx">     if (!imp.deviceMotionData()-&gt;canProvideInterval())
</span><span class="lines">@@ -166,28 +166,28 @@
</span><span class="cx">     return jsNumber(imp.deviceMotionData()-&gt;interval());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDeviceMotionEvent::initDeviceMotionEvent(ExecState* exec)
</del><ins>+JSValue JSDeviceMotionEvent::initDeviceMotionEvent(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    const String type = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
-    bool bubbles = exec-&gt;argument(1).toBoolean(exec);
-    bool cancelable = exec-&gt;argument(2).toBoolean(exec);
</del><ins>+    const String type = state.argument(0).toString(&amp;state)-&gt;value(&amp;state);
+    bool bubbles = state.argument(1).toBoolean(&amp;state);
+    bool cancelable = state.argument(2).toBoolean(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     // If any of the parameters are null or undefined, mark them as not provided.
</span><span class="cx">     // Otherwise, use the standard JavaScript conversion.
</span><del>-    RefPtr&lt;DeviceMotionData::Acceleration&gt; acceleration = readAccelerationArgument(exec-&gt;argument(3), exec);
-    if (exec-&gt;hadException())
</del><ins>+    RefPtr&lt;DeviceMotionData::Acceleration&gt; acceleration = readAccelerationArgument(state.argument(3), state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;DeviceMotionData::Acceleration&gt; accelerationIncludingGravity = readAccelerationArgument(exec-&gt;argument(4), exec);
-    if (exec-&gt;hadException())
</del><ins>+    RefPtr&lt;DeviceMotionData::Acceleration&gt; accelerationIncludingGravity = readAccelerationArgument(state.argument(4), state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;DeviceMotionData::RotationRate&gt; rotationRate = readRotationRateArgument(exec-&gt;argument(5), exec);
-    if (exec-&gt;hadException())
</del><ins>+    RefPtr&lt;DeviceMotionData::RotationRate&gt; rotationRate = readRotationRateArgument(state.argument(5), state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    bool intervalProvided = !exec-&gt;argument(6).isUndefinedOrNull();
-    double interval = exec-&gt;argument(6).toNumber(exec);
</del><ins>+    bool intervalProvided = !state.argument(6).isUndefinedOrNull();
+    double interval = state.argument(6).toNumber(&amp;state);
</ins><span class="cx">     RefPtr&lt;DeviceMotionData&gt; deviceMotionData = DeviceMotionData::create(acceleration, accelerationIncludingGravity, rotationRate, intervalProvided, interval);
</span><span class="cx">     impl().initDeviceMotionEvent(type, bubbles, cancelable, deviceMotionData.get());
</span><span class="cx">     return jsUndefined();
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDeviceOrientationEventCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSDeviceOrientationEvent::alpha(ExecState*) const
</del><ins>+JSValue JSDeviceOrientationEvent::alpha(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     DeviceOrientationEvent&amp; imp = impl();
</span><span class="cx">     if (!imp.orientation()-&gt;canProvideAlpha())
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx">     return jsNumber(imp.orientation()-&gt;alpha());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDeviceOrientationEvent::beta(ExecState*) const
</del><ins>+JSValue JSDeviceOrientationEvent::beta(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     DeviceOrientationEvent&amp; imp = impl();
</span><span class="cx">     if (!imp.orientation()-&gt;canProvideBeta())
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">     return jsNumber(imp.orientation()-&gt;beta());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDeviceOrientationEvent::gamma(ExecState*) const
</del><ins>+JSValue JSDeviceOrientationEvent::gamma(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     DeviceOrientationEvent&amp; imp = impl();
</span><span class="cx">     if (!imp.orientation()-&gt;canProvideGamma())
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-JSValue JSDeviceOrientationEvent::webkitCompassHeading(ExecState*) const
</del><ins>+JSValue JSDeviceOrientationEvent::webkitCompassHeading(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     DeviceOrientationEvent&amp; imp = impl();
</span><span class="cx">     if (!imp.orientation()-&gt;canProvideCompassHeading())
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx">     return jsNumber(imp.orientation()-&gt;compassHeading());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDeviceOrientationEvent::webkitCompassAccuracy(ExecState*) const
</del><ins>+JSValue JSDeviceOrientationEvent::webkitCompassAccuracy(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     DeviceOrientationEvent&amp; imp = impl();
</span><span class="cx">     if (!imp.orientation()-&gt;canProvideCompassAccuracy())
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if !PLATFORM(IOS)
</span><del>-JSValue JSDeviceOrientationEvent::absolute(ExecState*) const
</del><ins>+JSValue JSDeviceOrientationEvent::absolute(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     DeviceOrientationEvent&amp; imp = impl();
</span><span class="cx">     if (!imp.orientation()-&gt;canProvideAbsolute())
</span><span class="lines">@@ -90,28 +90,28 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-JSValue JSDeviceOrientationEvent::initDeviceOrientationEvent(ExecState* exec)
</del><ins>+JSValue JSDeviceOrientationEvent::initDeviceOrientationEvent(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    const String type = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
-    bool bubbles = exec-&gt;argument(1).toBoolean(exec);
-    bool cancelable = exec-&gt;argument(2).toBoolean(exec);
</del><ins>+    const String type = state.argument(0).toString(&amp;state)-&gt;value(&amp;state);
+    bool bubbles = state.argument(1).toBoolean(&amp;state);
+    bool cancelable = state.argument(2).toBoolean(&amp;state);
</ins><span class="cx">     // If alpha, beta or gamma are null or undefined, mark them as not provided.
</span><span class="cx">     // Otherwise, use the standard JavaScript conversion.
</span><del>-    bool alphaProvided = !exec-&gt;argument(3).isUndefinedOrNull();
-    double alpha = exec-&gt;argument(3).toNumber(exec);
-    bool betaProvided = !exec-&gt;argument(4).isUndefinedOrNull();
-    double beta = exec-&gt;argument(4).toNumber(exec);
-    bool gammaProvided = !exec-&gt;argument(5).isUndefinedOrNull();
-    double gamma = exec-&gt;argument(5).toNumber(exec);
</del><ins>+    bool alphaProvided = !state.argument(3).isUndefinedOrNull();
+    double alpha = state.argument(3).toNumber(&amp;state);
+    bool betaProvided = !state.argument(4).isUndefinedOrNull();
+    double beta = state.argument(4).toNumber(&amp;state);
+    bool gammaProvided = !state.argument(5).isUndefinedOrNull();
+    double gamma = state.argument(5).toNumber(&amp;state);
</ins><span class="cx"> #if PLATFORM(IOS)
</span><del>-    bool compassHeadingProvided = !exec-&gt;argument(6).isUndefinedOrNull();
-    double compassHeading = exec-&gt;argument(6).toNumber(exec);
-    bool compassAccuracyProvided = !exec-&gt;argument(7).isUndefinedOrNull();
-    double compassAccuracy = exec-&gt;argument(7).toNumber(exec);
</del><ins>+    bool compassHeadingProvided = !state.argument(6).isUndefinedOrNull();
+    double compassHeading = state.argument(6).toNumber(&amp;state);
+    bool compassAccuracyProvided = !state.argument(7).isUndefinedOrNull();
+    double compassAccuracy = state.argument(7).toNumber(&amp;state);
</ins><span class="cx">     RefPtr&lt;DeviceOrientationData&gt; orientation = DeviceOrientationData::create(alphaProvided, alpha, betaProvided, beta, gammaProvided, gamma, compassHeadingProvided, compassHeading, compassAccuracyProvided, compassAccuracy);
</span><span class="cx"> #else
</span><del>-    bool absoluteProvided = !exec-&gt;argument(6).isUndefinedOrNull();
-    bool absolute = exec-&gt;argument(6).toBoolean(exec);
</del><ins>+    bool absoluteProvided = !state.argument(6).isUndefinedOrNull();
+    bool absolute = state.argument(6).toBoolean(&amp;state);
</ins><span class="cx">     RefPtr&lt;DeviceOrientationData&gt; orientation = DeviceOrientationData::create(alphaProvided, alpha, betaProvided, beta, gammaProvided, gamma, absoluteProvided, absolute);
</span><span class="cx"> #endif
</span><span class="cx">     impl().initDeviceOrientationEvent(type, bubbles, cancelable, orientation.get());
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDictionarycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDictionary.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDictionary.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSDictionary.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -176,7 +176,7 @@
</span><span class="cx"> void JSDictionary::convertValue(ExecState* exec, JSValue value, MessagePortArray&amp; result)
</span><span class="cx"> {
</span><span class="cx">     ArrayBufferArray arrayBuffers;
</span><del>-    fillMessagePortArray(exec, value, result, arrayBuffers);
</del><ins>+    fillMessagePortArray(*exec, value, result, arrayBuffers);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDocumentCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDocumentCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDocumentCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSDocumentCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -100,33 +100,33 @@
</span><span class="cx">     return document ? createNewDocumentWrapper(*state, *globalObject, *document) : jsNull();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDocument::prepend(ExecState* state)
</del><ins>+JSValue JSDocument::prepend(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().prepend(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().prepend(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDocument::append(ExecState* state)
</del><ins>+JSValue JSDocument::append(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().append(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().append(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><del>-JSValue JSDocument::createTouchList(ExecState* exec)
</del><ins>+JSValue JSDocument::createTouchList(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;TouchList&gt; touchList = TouchList::create();
</span><span class="cx"> 
</span><del>-    for (size_t i = 0; i &lt; exec-&gt;argumentCount(); i++)
-        touchList-&gt;append(JSTouch::toWrapped(exec-&gt;argument(i)));
</del><ins>+    for (size_t i = 0; i &lt; state.argumentCount(); i++)
+        touchList-&gt;append(JSTouch::toWrapped(state.argument(i)));
</ins><span class="cx"> 
</span><del>-    return toJS(exec, globalObject(), touchList.release());
</del><ins>+    return toJS(&amp;state, globalObject(), touchList.release());
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDocumentFragmentCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDocumentFragmentCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDocumentFragmentCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSDocumentFragmentCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -34,20 +34,20 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSDocumentFragment::prepend(ExecState* state)
</del><ins>+JSValue JSDocumentFragment::prepend(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().prepend(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().prepend(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDocumentFragment::append(ExecState* state)
</del><ins>+JSValue JSDocumentFragment::append(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().append(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().append(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDocumentTypeCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDocumentTypeCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDocumentTypeCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSDocumentTypeCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -33,29 +33,29 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSDocumentType::before(ExecState* state)
</del><ins>+JSValue JSDocumentType::before(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().before(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().before(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDocumentType::after(ExecState* state)
</del><ins>+JSValue JSDocumentType::after(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().after(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().after(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSDocumentType::replaceWith(ExecState* state)
</del><ins>+JSValue JSDocumentType::replaceWith(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().replaceWith(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().replaceWith(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSElementCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSElementCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSElementCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSElementCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -67,47 +67,47 @@
</span><span class="cx">     return wrapper;    
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSElement::before(ExecState* state)
</del><ins>+JSValue JSElement::before(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().before(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().before(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSElement::after(ExecState* state)
</del><ins>+JSValue JSElement::after(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().after(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().after(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSElement::replaceWith(ExecState* state)
</del><ins>+JSValue JSElement::replaceWith(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().replaceWith(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().replaceWith(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSElement::prepend(ExecState* state)
</del><ins>+JSValue JSElement::prepend(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().prepend(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().prepend(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSElement::append(ExecState* state)
</del><ins>+JSValue JSElement::append(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    impl().append(toNodeOrStringVector(*state), ec);
-    setDOMException(state, ec);
</del><ins>+    impl().append(toNodeOrStringVector(state), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSEventCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSEventCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSEventCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSEventCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -44,9 +44,9 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSEvent::clipboardData(ExecState* exec) const
</del><ins>+JSValue JSEvent::clipboardData(ExecState&amp; state) const
</ins><span class="cx"> {
</span><del>-    return impl().isClipboardEvent() ? toJS(exec, globalObject(), impl().clipboardData()) : jsUndefined();
</del><ins>+    return impl().isClipboardEvent() ? toJS(&amp;state, globalObject(), impl().clipboardData()) : jsUndefined();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #define TRY_TO_WRAP_WITH_INTERFACE(interfaceName) \
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSFileReaderCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSFileReaderCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSFileReaderCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSFileReaderCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -41,12 +41,12 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSFileReader::result(ExecState* exec) const
</del><ins>+JSValue JSFileReader::result(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     FileReader&amp; imp = impl();
</span><span class="cx">     if (imp.readType() == FileReaderLoader::ReadAsArrayBuffer)
</span><del>-        return toJS(exec, globalObject(), WTF::getPtr(imp.arrayBufferResult()));
-    return jsOwnedStringOrNull(exec, imp.stringResult());
</del><ins>+        return toJS(&amp;state, globalObject(), WTF::getPtr(imp.arrayBufferResult()));
+    return jsOwnedStringOrNull(&amp;state, imp.stringResult());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSGeolocationCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSGeolocationCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSGeolocationCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSGeolocationCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -96,21 +96,21 @@
</span><span class="cx">     return options;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSGeolocation::getCurrentPosition(ExecState* exec)
</del><ins>+JSValue JSGeolocation::getCurrentPosition(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     // Arguments: PositionCallback, (optional)PositionErrorCallback, (optional)PositionOptions
</span><span class="cx"> 
</span><del>-    RefPtr&lt;PositionCallback&gt; positionCallback = createFunctionOnlyCallback&lt;JSPositionCallback&gt;(exec, globalObject(), exec-&gt;argument(0));
-    if (exec-&gt;hadException())
</del><ins>+    RefPtr&lt;PositionCallback&gt; positionCallback = createFunctionOnlyCallback&lt;JSPositionCallback&gt;(&amp;state, globalObject(), state.argument(0));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     ASSERT(positionCallback);
</span><span class="cx"> 
</span><del>-    RefPtr&lt;PositionErrorCallback&gt; positionErrorCallback = createFunctionOnlyCallback&lt;JSPositionErrorCallback&gt;(exec, globalObject(), exec-&gt;argument(1), CallbackAllowUndefined | CallbackAllowNull);
-    if (exec-&gt;hadException())
</del><ins>+    RefPtr&lt;PositionErrorCallback&gt; positionErrorCallback = createFunctionOnlyCallback&lt;JSPositionErrorCallback&gt;(&amp;state, globalObject(), state.argument(1), CallbackAllowUndefined | CallbackAllowNull);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;PositionOptions&gt; positionOptions = createPositionOptions(exec, exec-&gt;argument(2));
-    if (exec-&gt;hadException())
</del><ins>+    RefPtr&lt;PositionOptions&gt; positionOptions = createPositionOptions(&amp;state, state.argument(2));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     ASSERT(positionOptions);
</span><span class="cx"> 
</span><span class="lines">@@ -118,21 +118,21 @@
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSGeolocation::watchPosition(ExecState* exec)
</del><ins>+JSValue JSGeolocation::watchPosition(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     // Arguments: PositionCallback, (optional)PositionErrorCallback, (optional)PositionOptions
</span><span class="cx"> 
</span><del>-    RefPtr&lt;PositionCallback&gt; positionCallback = createFunctionOnlyCallback&lt;JSPositionCallback&gt;(exec, globalObject(), exec-&gt;argument(0));
-    if (exec-&gt;hadException())
</del><ins>+    RefPtr&lt;PositionCallback&gt; positionCallback = createFunctionOnlyCallback&lt;JSPositionCallback&gt;(&amp;state, globalObject(), state.argument(0));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     ASSERT(positionCallback);
</span><span class="cx"> 
</span><del>-    RefPtr&lt;PositionErrorCallback&gt; positionErrorCallback = createFunctionOnlyCallback&lt;JSPositionErrorCallback&gt;(exec, globalObject(), exec-&gt;argument(1), CallbackAllowUndefined | CallbackAllowNull);
-    if (exec-&gt;hadException())
</del><ins>+    RefPtr&lt;PositionErrorCallback&gt; positionErrorCallback = createFunctionOnlyCallback&lt;JSPositionErrorCallback&gt;(&amp;state, globalObject(), state.argument(1), CallbackAllowUndefined | CallbackAllowNull);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;PositionOptions&gt; positionOptions = createPositionOptions(exec, exec-&gt;argument(2));
-    if (exec-&gt;hadException())
</del><ins>+    RefPtr&lt;PositionOptions&gt; positionOptions = createPositionOptions(&amp;state, state.argument(2));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     ASSERT(positionOptions);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLAllCollectionCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -36,18 +36,18 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-static JSValue namedItems(ExecState* exec, JSHTMLAllCollection* collection, PropertyName propertyName)
</del><ins>+static JSValue namedItems(ExecState&amp; state, JSHTMLAllCollection* collection, PropertyName propertyName)
</ins><span class="cx"> {
</span><span class="cx">     Vector&lt;Ref&lt;Element&gt;&gt; namedItems = collection-&gt;impl().namedItems(propertyNameToAtomicString(propertyName));
</span><span class="cx"> 
</span><span class="cx">     if (namedItems.isEmpty())
</span><span class="cx">         return jsUndefined();
</span><span class="cx">     if (namedItems.size() == 1)
</span><del>-        return toJS(exec, collection-&gt;globalObject(), namedItems[0].ptr());
</del><ins>+        return toJS(&amp;state, collection-&gt;globalObject(), namedItems[0].ptr());
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: HTML5 specification says this should be a HTMLCollection.
</span><span class="cx">     // http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmlallcollection
</span><del>-    return toJS(exec, collection-&gt;globalObject(), StaticElementList::adopt(namedItems).get());
</del><ins>+    return toJS(&amp;state, collection-&gt;globalObject(), StaticElementList::adopt(namedItems).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // HTMLAllCollections are strange objects, they support both get and call.
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx">             return JSValue::encode(toJS(exec, jsCollection-&gt;globalObject(), collection.item(index.value())));
</span><span class="cx"> 
</span><span class="cx">         // Support for document.images('&lt;name&gt;') etc.
</span><del>-        return JSValue::encode(namedItems(exec, jsCollection, Identifier::fromString(exec, string)));
</del><ins>+        return JSValue::encode(namedItems(*exec, jsCollection, Identifier::fromString(exec, string)));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // The second arg, if set, is the index of the item we want
</span><span class="lines">@@ -88,9 +88,9 @@
</span><span class="cx">     return CallTypeHost;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSHTMLAllCollection::nameGetter(ExecState* exec, PropertyName propertyName, JSValue&amp; value)
</del><ins>+bool JSHTMLAllCollection::nameGetter(ExecState* state, PropertyName propertyName, JSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    JSValue items = namedItems(exec, this, propertyName);
</del><ins>+    JSValue items = namedItems(*state, this, propertyName);
</ins><span class="cx">     if (items.isUndefined())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="lines">@@ -98,16 +98,16 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSHTMLAllCollection::item(ExecState* exec)
</del><ins>+JSValue JSHTMLAllCollection::item(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(*exec-&gt;argument(0).toString(exec)-&gt;value(exec).impl()))
-        return toJS(exec, globalObject(), impl().item(index.value()));
-    return namedItems(exec, this, Identifier::fromString(exec, exec-&gt;argument(0).toString(exec)-&gt;value(exec)));
</del><ins>+    if (Optional&lt;uint32_t&gt; index = parseIndex(*state.argument(0).toString(&amp;state)-&gt;value(&amp;state).impl()))
+        return toJS(&amp;state, globalObject(), impl().item(index.value()));
+    return namedItems(state, this, Identifier::fromString(&amp;state, state.argument(0).toString(&amp;state)-&gt;value(&amp;state)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSHTMLAllCollection::namedItem(ExecState* exec)
</del><ins>+JSValue JSHTMLAllCollection::namedItem(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    JSValue value = namedItems(exec, this, Identifier::fromString(exec, exec-&gt;argument(0).toString(exec)-&gt;value(exec)));
</del><ins>+    JSValue value = namedItems(state, this, Identifier::fromString(&amp;state, state.argument(0).toString(&amp;state)-&gt;value(&amp;state)));
</ins><span class="cx">     return value.isUndefined() ? jsNull() : value;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLCanvasElementCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -44,14 +44,14 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEBGL)
</span><del>-static void get3DContextAttributes(ExecState* exec, RefPtr&lt;CanvasContextAttributes&gt;&amp; attrs)
</del><ins>+static void get3DContextAttributes(ExecState&amp; state, RefPtr&lt;CanvasContextAttributes&gt;&amp; attrs)
</ins><span class="cx"> {
</span><del>-    JSValue initializerValue = exec-&gt;argument(1);
</del><ins>+    JSValue initializerValue = state.argument(1);
</ins><span class="cx">     if (initializerValue.isUndefinedOrNull())
</span><span class="cx">         return;
</span><span class="cx">     
</span><del>-    JSObject* initializerObject = initializerValue.toObject(exec);
-    JSDictionary dictionary(exec, initializerObject);
</del><ins>+    JSObject* initializerObject = initializerValue.toObject(&amp;state);
+    JSDictionary dictionary(&amp;state, initializerObject);
</ins><span class="cx">     
</span><span class="cx">     GraphicsContext3D::Attributes graphicsAttrs;
</span><span class="cx">     
</span><span class="lines">@@ -66,16 +66,16 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-JSValue JSHTMLCanvasElement::getContext(ExecState* exec)
</del><ins>+JSValue JSHTMLCanvasElement::getContext(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     HTMLCanvasElement&amp; canvas = impl();
</span><del>-    const String&amp; contextId = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
</del><ins>+    const String&amp; contextId = state.argument(0).toString(&amp;state)-&gt;value(&amp;state);
</ins><span class="cx">     
</span><span class="cx">     RefPtr&lt;CanvasContextAttributes&gt; attrs;
</span><span class="cx"> #if ENABLE(WEBGL)
</span><span class="cx">     if (HTMLCanvasElement::is3dType(contextId)) {
</span><del>-        get3DContextAttributes(exec, attrs);
-        if (exec-&gt;hadException())
</del><ins>+        get3DContextAttributes(state, attrs);
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="lines">@@ -83,23 +83,23 @@
</span><span class="cx">     CanvasRenderingContext* context = canvas.getContext(contextId, attrs.get());
</span><span class="cx">     if (!context)
</span><span class="cx">         return jsNull();
</span><del>-    return toJS(exec, globalObject(), WTF::getPtr(context));
</del><ins>+    return toJS(&amp;state, globalObject(), WTF::getPtr(context));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSHTMLCanvasElement::probablySupportsContext(ExecState* exec)
</del><ins>+JSValue JSHTMLCanvasElement::probablySupportsContext(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     HTMLCanvasElement&amp; canvas = impl();
</span><del>-    if (!exec-&gt;argumentCount())
</del><ins>+    if (!state.argumentCount())
</ins><span class="cx">         return jsBoolean(false);
</span><del>-    const String&amp; contextId = exec-&gt;uncheckedArgument(0).toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    const String&amp; contextId = state.uncheckedArgument(0).toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     
</span><span class="cx">     RefPtr&lt;CanvasContextAttributes&gt; attrs;
</span><span class="cx"> #if ENABLE(WEBGL)
</span><span class="cx">     if (HTMLCanvasElement::is3dType(contextId)) {
</span><del>-        get3DContextAttributes(exec, attrs);
-        if (exec-&gt;hadException())
</del><ins>+        get3DContextAttributes(state, attrs);
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="lines">@@ -107,24 +107,24 @@
</span><span class="cx">     return jsBoolean(canvas.probablySupportsContext(contextId, attrs.get()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSHTMLCanvasElement::toDataURL(ExecState* exec)
</del><ins>+JSValue JSHTMLCanvasElement::toDataURL(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     HTMLCanvasElement&amp; canvas = impl();
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx"> 
</span><del>-    const String&amp; type = valueToStringWithUndefinedOrNullCheck(exec, exec-&gt;argument(0));
</del><ins>+    const String&amp; type = valueToStringWithUndefinedOrNullCheck(&amp;state, state.argument(0));
</ins><span class="cx">     double quality;
</span><span class="cx">     double* qualityPtr = 0;
</span><del>-    if (exec-&gt;argumentCount() &gt; 1) {
-        JSValue v = exec-&gt;uncheckedArgument(1);
</del><ins>+    if (state.argumentCount() &gt; 1) {
+        JSValue v = state.uncheckedArgument(1);
</ins><span class="cx">         if (v.isNumber()) {
</span><del>-            quality = v.toNumber(exec);
</del><ins>+            quality = v.toNumber(&amp;state);
</ins><span class="cx">             qualityPtr = &amp;quality;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    JSValue result = JSC::jsString(exec, canvas.toDataURL(type, qualityPtr, ec));
-    setDOMException(exec, ec);
</del><ins>+    JSValue result = JSC::jsString(&amp;state, canvas.toDataURL(type, qualityPtr, ec));
+    setDOMException(&amp;state, ec);
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLDocumentCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLDocumentCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLDocumentCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSHTMLDocumentCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -108,26 +108,26 @@
</span><span class="cx"> 
</span><span class="cx"> // Custom attributes
</span><span class="cx"> 
</span><del>-JSValue JSHTMLDocument::all(ExecState* exec) const
</del><ins>+JSValue JSHTMLDocument::all(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     // If &quot;all&quot; has been overwritten, return the overwritten value
</span><del>-    JSValue v = getDirect(exec-&gt;vm(), Identifier::fromString(exec, &quot;all&quot;));
</del><ins>+    JSValue v = getDirect(state.vm(), Identifier::fromString(&amp;state, &quot;all&quot;));
</ins><span class="cx">     if (v)
</span><span class="cx">         return v;
</span><span class="cx"> 
</span><del>-    return toJS(exec, globalObject(), impl().all());
</del><ins>+    return toJS(&amp;state, globalObject(), impl().all());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSHTMLDocument::setAll(ExecState* exec, JSValue value)
</del><ins>+void JSHTMLDocument::setAll(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     // Add &quot;all&quot; to the property map.
</span><del>-    putDirect(exec-&gt;vm(), Identifier::fromString(exec, &quot;all&quot;), value);
</del><ins>+    putDirect(state.vm(), Identifier::fromString(&amp;state, &quot;all&quot;), value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Document* findCallingDocument(ExecState* exec)
</del><ins>+static Document* findCallingDocument(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     CallerFunctor functor;
</span><del>-    exec-&gt;iterate(functor);
</del><ins>+    state.iterate(functor);
</ins><span class="cx">     CallFrame* callerFrame = functor.callerFrame();
</span><span class="cx">     if (!callerFrame)
</span><span class="cx">         return nullptr;
</span><span class="lines">@@ -137,19 +137,19 @@
</span><span class="cx"> 
</span><span class="cx"> // Custom functions
</span><span class="cx"> 
</span><del>-JSValue JSHTMLDocument::open(ExecState* exec)
</del><ins>+JSValue JSHTMLDocument::open(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     // For compatibility with other browsers, pass open calls with more than 2 parameters to the window.
</span><del>-    if (exec-&gt;argumentCount() &gt; 2) {
</del><ins>+    if (state.argumentCount() &gt; 2) {
</ins><span class="cx">         if (Frame* frame = impl().frame()) {
</span><del>-            JSDOMWindowShell* wrapper = toJSDOMWindowShell(frame, currentWorld(exec));
</del><ins>+            JSDOMWindowShell* wrapper = toJSDOMWindowShell(frame, currentWorld(&amp;state));
</ins><span class="cx">             if (wrapper) {
</span><del>-                JSValue function = wrapper-&gt;get(exec, Identifier::fromString(exec, &quot;open&quot;));
</del><ins>+                JSValue function = wrapper-&gt;get(&amp;state, Identifier::fromString(&amp;state, &quot;open&quot;));
</ins><span class="cx">                 CallData callData;
</span><span class="cx">                 CallType callType = ::getCallData(function, callData);
</span><span class="cx">                 if (callType == CallTypeNone)
</span><del>-                    return throwTypeError(exec);
-                return JSC::call(exec, function, callType, callData, wrapper, ArgList(exec));
</del><ins>+                    return throwTypeError(&amp;state);
+                return JSC::call(&amp;state, function, callType, callData, wrapper, ArgList(&amp;state));
</ins><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx">         return jsUndefined();
</span><span class="lines">@@ -157,7 +157,7 @@
</span><span class="cx"> 
</span><span class="cx">     // document.open clobbers the security context of the document and
</span><span class="cx">     // aliases it with the active security context.
</span><del>-    Document* activeDocument = asJSDOMWindow(exec-&gt;lexicalGlobalObject())-&gt;impl().document();
</del><ins>+    Document* activeDocument = asJSDOMWindow(state.lexicalGlobalObject())-&gt;impl().document();
</ins><span class="cx"> 
</span><span class="cx">     // In the case of two parameters or fewer, do a normal document open.
</span><span class="cx">     impl().open(activeDocument);
</span><span class="lines">@@ -166,21 +166,21 @@
</span><span class="cx"> 
</span><span class="cx"> enum NewlineRequirement { DoNotAddNewline, DoAddNewline };
</span><span class="cx"> 
</span><del>-static inline void documentWrite(ExecState* exec, JSHTMLDocument* thisDocument, NewlineRequirement addNewline)
</del><ins>+static inline void documentWrite(ExecState&amp; state, JSHTMLDocument* thisDocument, NewlineRequirement addNewline)
</ins><span class="cx"> {
</span><span class="cx">     HTMLDocument* document = &amp;thisDocument-&gt;impl();
</span><span class="cx">     // DOM only specifies single string argument, but browsers allow multiple or no arguments.
</span><span class="cx"> 
</span><del>-    size_t size = exec-&gt;argumentCount();
</del><ins>+    size_t size = state.argumentCount();
</ins><span class="cx"> 
</span><del>-    String firstString = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
</del><ins>+    String firstString = state.argument(0).toString(&amp;state)-&gt;value(&amp;state);
</ins><span class="cx">     SegmentedString segmentedString = firstString;
</span><span class="cx">     if (size != 1) {
</span><span class="cx">         if (!size)
</span><span class="cx">             segmentedString.clear();
</span><span class="cx">         else {
</span><span class="cx">             for (size_t i = 1; i &lt; size; ++i) {
</span><del>-                String subsequentString = exec-&gt;uncheckedArgument(i).toString(exec)-&gt;value(exec);
</del><ins>+                String subsequentString = state.uncheckedArgument(i).toString(&amp;state)-&gt;value(&amp;state);
</ins><span class="cx">                 segmentedString.append(SegmentedString(subsequentString));
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -188,19 +188,19 @@
</span><span class="cx">     if (addNewline)
</span><span class="cx">         segmentedString.append(SegmentedString(String(&amp;newlineCharacter, 1)));
</span><span class="cx"> 
</span><del>-    Document* activeDocument = findCallingDocument(exec);
</del><ins>+    Document* activeDocument = findCallingDocument(state);
</ins><span class="cx">     document-&gt;write(segmentedString, activeDocument);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSHTMLDocument::write(ExecState* exec)
</del><ins>+JSValue JSHTMLDocument::write(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    documentWrite(exec, this, DoNotAddNewline);
</del><ins>+    documentWrite(state, this, DoNotAddNewline);
</ins><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSHTMLDocument::writeln(ExecState* exec)
</del><ins>+JSValue JSHTMLDocument::writeln(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    documentWrite(exec, this, DoAddNewline);
</del><ins>+    documentWrite(state, this, DoAddNewline);
</ins><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLFormControlsCollectionCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLFormControlsCollectionCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLFormControlsCollectionCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSHTMLFormControlsCollectionCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-static JSValue namedItems(ExecState* exec, JSHTMLFormControlsCollection* collection, PropertyName propertyName)
</del><ins>+static JSValue namedItems(ExecState&amp; state, JSHTMLFormControlsCollection* collection, PropertyName propertyName)
</ins><span class="cx"> {
</span><span class="cx">     const AtomicString&amp; name = propertyNameToAtomicString(propertyName);
</span><span class="cx">     Vector&lt;Ref&lt;Element&gt;&gt; namedItems = collection-&gt;impl().namedItems(name);
</span><span class="lines">@@ -38,15 +38,15 @@
</span><span class="cx">     if (namedItems.isEmpty())
</span><span class="cx">         return jsUndefined();
</span><span class="cx">     if (namedItems.size() == 1)
</span><del>-        return toJS(exec, collection-&gt;globalObject(), namedItems[0].ptr());
</del><ins>+        return toJS(&amp;state, collection-&gt;globalObject(), namedItems[0].ptr());
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(collection-&gt;impl().type() == FormControls);
</span><del>-    return toJS(exec, collection-&gt;globalObject(), collection-&gt;impl().ownerNode().radioNodeList(name).get());
</del><ins>+    return toJS(&amp;state, collection-&gt;globalObject(), collection-&gt;impl().ownerNode().radioNodeList(name).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSHTMLFormControlsCollection::nameGetter(ExecState* exec, PropertyName propertyName, JSValue&amp; value)
</del><ins>+bool JSHTMLFormControlsCollection::nameGetter(ExecState* state, PropertyName propertyName, JSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    auto items = namedItems(exec, this, propertyName);
</del><ins>+    auto items = namedItems(*state, this, propertyName);
</ins><span class="cx">     if (items.isUndefined())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="lines">@@ -54,9 +54,9 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSHTMLFormControlsCollection::namedItem(ExecState* exec)
</del><ins>+JSValue JSHTMLFormControlsCollection::namedItem(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    JSValue value = namedItems(exec, this, Identifier::fromString(exec, exec-&gt;argument(0).toString(exec)-&gt;value(exec)));
</del><ins>+    JSValue value = namedItems(state, this, Identifier::fromString(&amp;state, state.argument(0).toString(&amp;state)-&gt;value(&amp;state)));
</ins><span class="cx">     return value.isUndefined() ? jsNull() : value;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLFrameElementCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLFrameElementCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLFrameElementCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSHTMLFrameElementCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -41,22 +41,22 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx"> 
</span><del>-static inline bool allowSettingJavascriptURL(ExecState* exec, HTMLFrameElement* imp, const String&amp; value)
</del><ins>+static inline bool allowSettingJavascriptURL(ExecState&amp; state, HTMLFrameElement* imp, const String&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     if (protocolIsJavaScript(stripLeadingAndTrailingHTMLSpaces(value))) {
</span><span class="cx">         Document* contentDocument = imp-&gt;contentDocument();
</span><del>-        if (contentDocument &amp;&amp; !shouldAllowAccessToNode(exec, contentDocument))
</del><ins>+        if (contentDocument &amp;&amp; !shouldAllowAccessToNode(&amp;state, contentDocument))
</ins><span class="cx">             return false;
</span><span class="cx">     }
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSHTMLFrameElement::setLocation(ExecState* exec, JSValue value)
</del><ins>+void JSHTMLFrameElement::setLocation(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     HTMLFrameElement&amp; imp = impl();
</span><del>-    String locationValue = valueToStringWithNullCheck(exec, value);
</del><ins>+    String locationValue = valueToStringWithNullCheck(&amp;state, value);
</ins><span class="cx"> 
</span><del>-    if (!allowSettingJavascriptURL(exec, &amp;imp, locationValue))
</del><ins>+    if (!allowSettingJavascriptURL(state, &amp;imp, locationValue))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     imp.setLocation(locationValue);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLInputElementCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLInputElementCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLInputElementCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSHTMLInputElementCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -33,71 +33,71 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSHTMLInputElement::selectionStart(ExecState* exec) const
</del><ins>+JSValue JSHTMLInputElement::selectionStart(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     HTMLInputElement&amp; input = impl();
</span><span class="cx">     if (!input.canHaveSelection())
</span><del>-        return throwTypeError(exec);
</del><ins>+        return throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     return jsNumber(input.selectionStart());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSHTMLInputElement::setSelectionStart(ExecState* exec, JSValue value)
</del><ins>+void JSHTMLInputElement::setSelectionStart(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     HTMLInputElement&amp; input = impl();
</span><span class="cx">     if (!input.canHaveSelection())
</span><del>-        throwTypeError(exec);
</del><ins>+        throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><del>-    input.setSelectionStart(value.toInt32(exec));
</del><ins>+    input.setSelectionStart(value.toInt32(&amp;state));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSHTMLInputElement::selectionEnd(ExecState* exec) const
</del><ins>+JSValue JSHTMLInputElement::selectionEnd(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     HTMLInputElement&amp; input = impl();
</span><span class="cx">     if (!input.canHaveSelection())
</span><del>-        return throwTypeError(exec);
</del><ins>+        return throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     return jsNumber(input.selectionEnd());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSHTMLInputElement::setSelectionEnd(ExecState* exec, JSValue value)
</del><ins>+void JSHTMLInputElement::setSelectionEnd(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     HTMLInputElement&amp; input = impl();
</span><span class="cx">     if (!input.canHaveSelection())
</span><del>-        throwTypeError(exec);
</del><ins>+        throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><del>-    input.setSelectionEnd(value.toInt32(exec));
</del><ins>+    input.setSelectionEnd(value.toInt32(&amp;state));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSHTMLInputElement::selectionDirection(ExecState* exec) const
</del><ins>+JSValue JSHTMLInputElement::selectionDirection(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     HTMLInputElement&amp; input = impl();
</span><span class="cx">     if (!input.canHaveSelection())
</span><del>-        return throwTypeError(exec);
</del><ins>+        return throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><del>-    return jsStringWithCache(exec, input.selectionDirection());
</del><ins>+    return jsStringWithCache(&amp;state, input.selectionDirection());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSHTMLInputElement::setSelectionDirection(ExecState* exec, JSValue value)
</del><ins>+void JSHTMLInputElement::setSelectionDirection(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     HTMLInputElement&amp; input = impl();
</span><span class="cx">     if (!input.canHaveSelection()) {
</span><del>-        throwTypeError(exec);
</del><ins>+        throwTypeError(&amp;state);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    input.setSelectionDirection(value.toString(exec)-&gt;value(exec));
</del><ins>+    input.setSelectionDirection(value.toString(&amp;state)-&gt;value(&amp;state));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSHTMLInputElement::setSelectionRange(ExecState* exec)
</del><ins>+JSValue JSHTMLInputElement::setSelectionRange(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     HTMLInputElement&amp; input = impl();
</span><span class="cx">     if (!input.canHaveSelection())
</span><del>-        return throwTypeError(exec);
</del><ins>+        return throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><del>-    int start = exec-&gt;argument(0).toInt32(exec);
-    int end = exec-&gt;argument(1).toInt32(exec);
-    String direction = exec-&gt;argument(2).toString(exec)-&gt;value(exec);
</del><ins>+    int start = state.argument(0).toInt32(&amp;state);
+    int end = state.argument(1).toInt32(&amp;state);
+    String direction = state.argument(2).toString(&amp;state)-&gt;value(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     input.setSelectionRange(start, end, direction);
</span><span class="cx">     return jsUndefined();
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLMediaElementCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLMediaElementCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLMediaElementCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSHTMLMediaElementCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace JSC;
</span><span class="cx"> 
</span><del>-void JSHTMLMediaElement::setController(ExecState*, JSValue value)
</del><ins>+void JSHTMLMediaElement::setController(ExecState&amp;, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     // 4.8.10.11.2 Media controllers: controller attribute.
</span><span class="cx">     // On setting, it must first remove the element's mediagroup attribute, if any, 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLOptionsCollectionCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -47,11 +47,11 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSHTMLOptionsCollection::setLength(ExecState* exec, JSValue value)
</del><ins>+void JSHTMLOptionsCollection::setLength(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     unsigned newLength = 0;
</span><del>-    double lengthValue = value.toNumber(exec);
</del><ins>+    double lengthValue = value.toNumber(&amp;state);
</ins><span class="cx">     if (!std::isnan(lengthValue) &amp;&amp; !std::isinf(lengthValue)) {
</span><span class="cx">         if (lengthValue &lt; 0.0)
</span><span class="cx">             ec = INDEX_SIZE_ERR;
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx">     }
</span><span class="cx">     if (!ec)
</span><span class="cx">         impl().setLength(newLength, ec);
</span><del>-    setDOMException(exec, ec);
</del><ins>+    setDOMException(&amp;state, ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void JSHTMLOptionsCollection::indexSetter(ExecState* exec, unsigned index, JSValue value)
</span><span class="lines">@@ -70,14 +70,14 @@
</span><span class="cx">     selectIndexSetter(&amp;impl().selectElement(), exec, index, value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSHTMLOptionsCollection::remove(ExecState* exec)
</del><ins>+JSValue JSHTMLOptionsCollection::remove(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     // The argument can be an HTMLOptionElement or an index.
</span><del>-    JSValue argument = exec-&gt;argument(0);
</del><ins>+    JSValue argument = state.argument(0);
</ins><span class="cx">     if (HTMLOptionElement* option = JSHTMLOptionElement::toWrapped(argument))
</span><span class="cx">         impl().remove(option);
</span><span class="cx">     else
</span><del>-        impl().remove(argument.toInt32(exec));
</del><ins>+        impl().remove(argument.toInt32(&amp;state));
</ins><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLSelectElementCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -32,21 +32,21 @@
</span><span class="cx"> using namespace JSC;
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx"> 
</span><del>-JSValue JSHTMLSelectElement::remove(ExecState* exec)
</del><ins>+JSValue JSHTMLSelectElement::remove(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     HTMLSelectElement&amp; select = impl();
</span><span class="cx"> 
</span><del>-    if (!exec-&gt;argumentCount()) {
</del><ins>+    if (!state.argumentCount()) {
</ins><span class="cx">         // When called with no argument, we should call Element::remove() to detach.
</span><span class="cx">         ExceptionCode ec = 0;
</span><span class="cx">         select.remove(ec);
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">     } else {
</span><span class="cx">         // The HTMLSelectElement::remove() function can take either an option object or the index of an option.
</span><del>-        if (HTMLOptionElement* option = JSHTMLOptionElement::toWrapped(exec-&gt;argument(0)))
</del><ins>+        if (HTMLOptionElement* option = JSHTMLOptionElement::toWrapped(state.argument(0)))
</ins><span class="cx">             select.remove(option);
</span><span class="cx">         else
</span><del>-            select.removeByIndex(exec-&gt;argument(0).toInt32(exec));
</del><ins>+            select.removeByIndex(state.argument(0).toInt32(&amp;state));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLTemplateElementCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLTemplateElementCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLTemplateElementCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSHTMLTemplateElementCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -43,9 +43,9 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSHTMLTemplateElement::content(ExecState* exec) const
</del><ins>+JSValue JSHTMLTemplateElement::content(ExecState&amp; state) const
</ins><span class="cx"> {
</span><del>-    JSLockHolder lock(exec);
</del><ins>+    JSLockHolder lock(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     DocumentFragment* content = impl().content();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHistoryCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHistoryCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHistoryCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSHistoryCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx">     Base::getOwnPropertyNames(thisObject, exec, propertyNames, mode);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSHistory::state(ExecState *exec) const
</del><ins>+JSValue JSHistory::state(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     History&amp; history = impl();
</span><span class="cx"> 
</span><span class="lines">@@ -114,63 +114,63 @@
</span><span class="cx">         return cachedValue;
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;SerializedScriptValue&gt; serialized = history.state();
</span><del>-    JSValue result = serialized ? serialized-&gt;deserialize(exec, globalObject(), 0) : jsNull();
-    const_cast&lt;JSHistory*&gt;(this)-&gt;m_state.set(exec-&gt;vm(), this, result);
</del><ins>+    JSValue result = serialized ? serialized-&gt;deserialize(&amp;state, globalObject(), 0) : jsNull();
+    const_cast&lt;JSHistory*&gt;(this)-&gt;m_state.set(state.vm(), this, result);
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSHistory::pushState(ExecState* exec)
</del><ins>+JSValue JSHistory::pushState(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (!shouldAllowAccessToFrame(exec, impl().frame()))
</del><ins>+    if (!shouldAllowAccessToFrame(&amp;state, impl().frame()))
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;SerializedScriptValue&gt; historyState = SerializedScriptValue::create(exec, exec-&gt;argument(0), 0, 0);
-    if (exec-&gt;hadException())
</del><ins>+    RefPtr&lt;SerializedScriptValue&gt; historyState = SerializedScriptValue::create(&amp;state, state.argument(0), 0, 0);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    String title = valueToStringWithUndefinedOrNullCheck(exec, exec-&gt;argument(1));
-    if (exec-&gt;hadException())
</del><ins>+    String title = valueToStringWithUndefinedOrNullCheck(&amp;state, state.argument(1));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><del>-        
</del><ins>+
</ins><span class="cx">     String url;
</span><del>-    if (exec-&gt;argumentCount() &gt; 2) {
-        url = valueToStringWithUndefinedOrNullCheck(exec, exec-&gt;argument(2));
-        if (exec-&gt;hadException())
</del><ins>+    if (state.argumentCount() &gt; 2) {
+        url = valueToStringWithUndefinedOrNullCheck(&amp;state, state.argument(2));
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     impl().stateObjectAdded(historyState.release(), title, url, History::StateObjectType::Push, ec);
</span><del>-    setDOMException(exec, ec);
</del><ins>+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     m_state.clear();
</span><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSHistory::replaceState(ExecState* exec)
</del><ins>+JSValue JSHistory::replaceState(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (!shouldAllowAccessToFrame(exec, impl().frame()))
</del><ins>+    if (!shouldAllowAccessToFrame(&amp;state, impl().frame()))
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;SerializedScriptValue&gt; historyState = SerializedScriptValue::create(exec, exec-&gt;argument(0), 0, 0);
-    if (exec-&gt;hadException())
</del><ins>+    RefPtr&lt;SerializedScriptValue&gt; historyState = SerializedScriptValue::create(&amp;state, state.argument(0), 0, 0);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    String title = valueToStringWithUndefinedOrNullCheck(exec, exec-&gt;argument(1));
-    if (exec-&gt;hadException())
</del><ins>+    String title = valueToStringWithUndefinedOrNullCheck(&amp;state, state.argument(1));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><del>-        
</del><ins>+
</ins><span class="cx">     String url;
</span><del>-    if (exec-&gt;argumentCount() &gt; 2) {
-        url = valueToStringWithUndefinedOrNullCheck(exec, exec-&gt;argument(2));
-        if (exec-&gt;hadException())
</del><ins>+    if (state.argumentCount() &gt; 2) {
+        url = valueToStringWithUndefinedOrNullCheck(&amp;state, state.argument(2));
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     impl().stateObjectAdded(historyState.release(), title, url, History::StateObjectType::Replace, ec);
</span><del>-    setDOMException(exec, ec);
</del><ins>+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     m_state.clear();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSIDBDatabaseCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSIDBDatabaseCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSIDBDatabaseCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSIDBDatabaseCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -44,40 +44,40 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSIDBDatabase::createObjectStore(ExecState* exec)
</del><ins>+JSValue JSIDBDatabase::createObjectStore(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 1)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 1)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><del>-    String name = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    String name = state.argument(0).toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    JSValue optionsValue = exec-&gt;argument(1);
</del><ins>+    JSValue optionsValue = state.argument(1);
</ins><span class="cx">     if (!optionsValue.isUndefinedOrNull() &amp;&amp; !optionsValue.isObject())
</span><del>-        return throwTypeError(exec, &quot;Not an object.&quot;);
</del><ins>+        return throwTypeError(&amp;state, &quot;Not an object.&quot;);
</ins><span class="cx"> 
</span><span class="cx">     IDBKeyPath keyPath;
</span><span class="cx">     bool autoIncrement = false;
</span><span class="cx">     if (!optionsValue.isUndefinedOrNull()) {
</span><del>-        JSValue keyPathValue = optionsValue.get(exec, Identifier::fromString(exec, &quot;keyPath&quot;));
-        if (exec-&gt;hadException())
</del><ins>+        JSValue keyPathValue = optionsValue.get(&amp;state, Identifier::fromString(&amp;state, &quot;keyPath&quot;));
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">         if (!keyPathValue.isUndefinedOrNull()) {
</span><del>-            keyPath = idbKeyPathFromValue(exec, keyPathValue);
-            if (exec-&gt;hadException())
</del><ins>+            keyPath = idbKeyPathFromValue(&amp;state, keyPathValue);
+            if (state.hadException())
</ins><span class="cx">                 return jsUndefined();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        autoIncrement = optionsValue.get(exec, Identifier::fromString(exec, &quot;autoIncrement&quot;)).toBoolean(exec);
-        if (exec-&gt;hadException())
</del><ins>+        autoIncrement = optionsValue.get(&amp;state, Identifier::fromString(&amp;state, &quot;autoIncrement&quot;)).toBoolean(&amp;state);
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    JSValue result = toJS(exec, globalObject(), impl().createObjectStore(name, keyPath, autoIncrement, ec).get());
-    setDOMException(exec, ec);
</del><ins>+    JSValue result = toJS(&amp;state, globalObject(), impl().createObjectStore(name, keyPath, autoIncrement, ec).get());
+    setDOMException(&amp;state, ec);
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSIDBObjectStoreCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSIDBObjectStoreCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSIDBObjectStoreCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSIDBObjectStoreCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -43,42 +43,42 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSIDBObjectStore::createIndex(ExecState* exec)
</del><ins>+JSValue JSIDBObjectStore::createIndex(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    ScriptExecutionContext* context = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject())-&gt;scriptExecutionContext();
</del><ins>+    ScriptExecutionContext* context = jsCast&lt;JSDOMGlobalObject*&gt;(state.lexicalGlobalObject())-&gt;scriptExecutionContext();
</ins><span class="cx">     if (!context)
</span><del>-        return exec-&gt;vm().throwException(exec, createReferenceError(exec, &quot;IDBObjectStore script execution context is unavailable&quot;));
</del><ins>+        return state.vm().throwException(&amp;state, createReferenceError(&amp;state, &quot;IDBObjectStore script &amp;stateution context is unavailable&quot;));
</ins><span class="cx"> 
</span><del>-    if (exec-&gt;argumentCount() &lt; 2)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 2)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><del>-    String name = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    String name = state.argument(0).toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    IDBKeyPath keyPath = idbKeyPathFromValue(exec, exec-&gt;argument(1));
-    if (exec-&gt;hadException())
</del><ins>+    IDBKeyPath keyPath = idbKeyPathFromValue(&amp;state, state.argument(1));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    JSValue optionsValue = exec-&gt;argument(2);
</del><ins>+    JSValue optionsValue = state.argument(2);
</ins><span class="cx">     if (!optionsValue.isUndefinedOrNull() &amp;&amp; !optionsValue.isObject())
</span><del>-        return throwTypeError(exec, &quot;Not an object.&quot;);
</del><ins>+        return throwTypeError(&amp;state, &quot;Not an object.&quot;);
</ins><span class="cx"> 
</span><span class="cx">     bool unique = false;
</span><span class="cx">     bool multiEntry = false;
</span><span class="cx">     if (!optionsValue.isUndefinedOrNull()) {
</span><del>-        unique = optionsValue.get(exec, Identifier::fromString(exec, &quot;unique&quot;)).toBoolean(exec);
-        if (exec-&gt;hadException())
</del><ins>+        unique = optionsValue.get(&amp;state, Identifier::fromString(&amp;state, &quot;unique&quot;)).toBoolean(&amp;state);
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><span class="cx"> 
</span><del>-        multiEntry = optionsValue.get(exec, Identifier::fromString(exec, &quot;multiEntry&quot;)).toBoolean(exec);
-        if (exec-&gt;hadException())
</del><ins>+        multiEntry = optionsValue.get(&amp;state, Identifier::fromString(&amp;state, &quot;multiEntry&quot;)).toBoolean(&amp;state);
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    JSValue result = toJS(exec, globalObject(), impl().createIndex(context, name, keyPath, unique, multiEntry, ec).get());
-    setDOMException(exec, ec);
</del><ins>+    JSValue result = toJS(&amp;state, globalObject(), impl().createIndex(context, name, keyPath, unique, multiEntry, ec).get());
+    setDOMException(&amp;state, ec);
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSInspectorFrontendHostCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -91,16 +91,16 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-JSValue JSInspectorFrontendHost::showContextMenu(ExecState* exec)
</del><ins>+JSValue JSInspectorFrontendHost::showContextMenu(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(CONTEXT_MENUS)
</span><del>-    if (exec-&gt;argumentCount() &lt; 2)
</del><ins>+    if (state.argumentCount() &lt; 2)
</ins><span class="cx">         return jsUndefined();
</span><del>-    Event* event = JSEvent::toWrapped(exec-&gt;argument(0));
</del><ins>+    Event* event = JSEvent::toWrapped(state.argument(0));
</ins><span class="cx"> 
</span><del>-    JSArray* array = asArray(exec-&gt;argument(1));
</del><ins>+    JSArray* array = asArray(state.argument(1));
</ins><span class="cx">     ContextMenu menu;
</span><del>-    populateContextMenuItems(exec, array, menu);
</del><ins>+    populateContextMenuItems(&amp;state, array, menu);
</ins><span class="cx"> 
</span><span class="cx"> #if !USE(CROSS_PLATFORM_CONTEXT_MENUS)
</span><span class="cx">     Vector&lt;ContextMenuItem&gt; items = contextMenuItemVector(menu.platformDescription());
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx"> #endif
</span><span class="cx">     impl().showContextMenu(event, items);
</span><span class="cx"> #else
</span><del>-    UNUSED_PARAM(exec);
</del><ins>+    UNUSED_PARAM(state);
</ins><span class="cx"> #endif
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSLocationCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSLocationCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSLocationCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSLocationCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -132,13 +132,13 @@
</span><span class="cx">     return Base::defineOwnProperty(object, exec, propertyName, descriptor, throwException);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSLocation::toStringFunction(ExecState* exec)
</del><ins>+JSValue JSLocation::toStringFunction(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     Frame* frame = impl().frame();
</span><del>-    if (!frame || !shouldAllowAccessToFrame(exec, frame))
</del><ins>+    if (!frame || !shouldAllowAccessToFrame(&amp;state, frame))
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><del>-    return jsStringWithCache(exec, impl().toString());
</del><ins>+    return jsStringWithCache(&amp;state, impl().toString());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool JSLocationPrototype::putDelegate(ExecState* exec, PropertyName propertyName, JSValue, PutPropertySlot&amp;)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSMediaSourceStatesCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSMediaSourceStatesCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSMediaSourceStatesCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSMediaSourceStatesCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSMediaSourceStates::width(ExecState*) const
</del><ins>+JSValue JSMediaSourceStates::width(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     if (!impl().hasVideoSource())
</span><span class="cx">         return jsUndefined();
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">     return jsNumber(impl().width());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSMediaSourceStates::height(ExecState*) const
</del><ins>+JSValue JSMediaSourceStates::height(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     if (!impl().hasVideoSource())
</span><span class="cx">         return jsUndefined();
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx">     return jsNumber(impl().height());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSMediaSourceStates::frameRate(ExecState*) const
</del><ins>+JSValue JSMediaSourceStates::frameRate(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     if (!impl().hasVideoSource())
</span><span class="cx">         return jsUndefined();
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">     return jsNumber(impl().frameRate());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSMediaSourceStates::aspectRatio(ExecState*) const
</del><ins>+JSValue JSMediaSourceStates::aspectRatio(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     if (!impl().hasVideoSource())
</span><span class="cx">         return jsUndefined();
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx">     return jsNumber(impl().aspectRatio());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSMediaSourceStates::facingMode(ExecState* exec) const
</del><ins>+JSValue JSMediaSourceStates::facingMode(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     if (!impl().hasVideoSource())
</span><span class="cx">         return jsUndefined();
</span><span class="lines">@@ -76,10 +76,10 @@
</span><span class="cx">     if (mode.isEmpty())
</span><span class="cx">         return jsUndefined();
</span><span class="cx">     
</span><del>-    return jsStringWithCache(exec, impl().facingMode());
</del><ins>+    return jsStringWithCache(&amp;state, impl().facingMode());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSMediaSourceStates::volume(ExecState*) const
</del><ins>+JSValue JSMediaSourceStates::volume(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     if (impl().hasVideoSource())
</span><span class="cx">         return jsUndefined();
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSMessageEventCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -44,11 +44,11 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSMessageEvent::data(ExecState* exec) const
</del><ins>+JSValue JSMessageEvent::data(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     if (JSValue cachedValue = m_data.get()) {
</span><span class="cx">         // We cannot use a cached object if we are in a different world than the one it was created in.
</span><del>-        if (!cachedValue.isObject() || &amp;worldForDOMObject(cachedValue.getObject()) == &amp;currentWorld(exec))
</del><ins>+        if (!cachedValue.isObject() || &amp;worldForDOMObject(cachedValue.getObject()) == &amp;currentWorld(&amp;state))
</ins><span class="cx">             return cachedValue;
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">     }
</span><span class="lines">@@ -64,10 +64,10 @@
</span><span class="cx">             JSValue dataValue = scriptValue.jsValue();
</span><span class="cx">             // We need to make sure MessageEvents do not leak objects in their state property across isolated DOM worlds.
</span><span class="cx">             // Ideally, we would check that the worlds have different privileges but that's not possible yet.
</span><del>-            if (dataValue.isObject() &amp;&amp; &amp;worldForDOMObject(dataValue.getObject()) != &amp;currentWorld(exec)) {
-                RefPtr&lt;SerializedScriptValue&gt; serializedValue = event.trySerializeData(exec);
</del><ins>+            if (dataValue.isObject() &amp;&amp; &amp;worldForDOMObject(dataValue.getObject()) != &amp;currentWorld(&amp;state)) {
+                RefPtr&lt;SerializedScriptValue&gt; serializedValue = event.trySerializeData(&amp;state);
</ins><span class="cx">                 if (serializedValue)
</span><del>-                    result = serializedValue-&gt;deserialize(exec, globalObject(), nullptr);
</del><ins>+                    result = serializedValue-&gt;deserialize(&amp;state, globalObject(), nullptr);
</ins><span class="cx">                 else
</span><span class="cx">                     result = jsNull();
</span><span class="cx">             } else
</span><span class="lines">@@ -80,64 +80,64 @@
</span><span class="cx">         if (RefPtr&lt;SerializedScriptValue&gt; serializedValue = event.dataAsSerializedScriptValue()) {
</span><span class="cx">             MessagePortArray ports = impl().ports();
</span><span class="cx">             // FIXME: Why does this suppress exceptions?
</span><del>-            result = serializedValue-&gt;deserialize(exec, globalObject(), &amp;ports, NonThrowing);
</del><ins>+            result = serializedValue-&gt;deserialize(&amp;state, globalObject(), &amp;ports, NonThrowing);
</ins><span class="cx">         } else
</span><span class="cx">             result = jsNull();
</span><span class="cx">         break;
</span><span class="cx"> 
</span><span class="cx">     case MessageEvent::DataTypeString:
</span><del>-        result = jsStringWithCache(exec, event.dataAsString());
</del><ins>+        result = jsStringWithCache(&amp;state, event.dataAsString());
</ins><span class="cx">         break;
</span><span class="cx"> 
</span><span class="cx">     case MessageEvent::DataTypeBlob:
</span><del>-        result = toJS(exec, globalObject(), event.dataAsBlob());
</del><ins>+        result = toJS(&amp;state, globalObject(), event.dataAsBlob());
</ins><span class="cx">         break;
</span><span class="cx"> 
</span><span class="cx">     case MessageEvent::DataTypeArrayBuffer:
</span><del>-        result = toJS(exec, globalObject(), event.dataAsArrayBuffer());
</del><ins>+        result = toJS(&amp;state, globalObject(), event.dataAsArrayBuffer());
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Save the result so we don't have to deserialize the value again.
</span><del>-    const_cast&lt;JSMessageEvent*&gt;(this)-&gt;m_data.set(exec-&gt;vm(), this, result);
</del><ins>+    const_cast&lt;JSMessageEvent*&gt;(this)-&gt;m_data.set(state.vm(), this, result);
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static JSC::JSValue handleInitMessageEvent(JSMessageEvent* jsEvent, JSC::ExecState* exec)
</del><ins>+static JSC::JSValue handleInitMessageEvent(JSMessageEvent* jsEvent, JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    const String&amp; typeArg = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
-    bool canBubbleArg = exec-&gt;argument(1).toBoolean(exec);
-    bool cancelableArg = exec-&gt;argument(2).toBoolean(exec);
-    const String originArg = exec-&gt;argument(4).toString(exec)-&gt;value(exec);
-    const String lastEventIdArg = exec-&gt;argument(5).toString(exec)-&gt;value(exec);
-    DOMWindow* sourceArg = JSDOMWindow::toWrapped(exec-&gt;argument(6));
</del><ins>+    const String&amp; typeArg = state.argument(0).toString(&amp;state)-&gt;value(&amp;state);
+    bool canBubbleArg = state.argument(1).toBoolean(&amp;state);
+    bool cancelableArg = state.argument(2).toBoolean(&amp;state);
+    const String originArg = state.argument(4).toString(&amp;state)-&gt;value(&amp;state);
+    const String lastEventIdArg = state.argument(5).toString(&amp;state)-&gt;value(&amp;state);
+    DOMWindow* sourceArg = JSDOMWindow::toWrapped(state.argument(6));
</ins><span class="cx">     std::unique_ptr&lt;MessagePortArray&gt; messagePorts;
</span><span class="cx">     std::unique_ptr&lt;ArrayBufferArray&gt; arrayBuffers;
</span><del>-    if (!exec-&gt;argument(7).isUndefinedOrNull()) {
</del><ins>+    if (!state.argument(7).isUndefinedOrNull()) {
</ins><span class="cx">         messagePorts = std::make_unique&lt;MessagePortArray&gt;();
</span><span class="cx">         arrayBuffers = std::make_unique&lt;ArrayBufferArray&gt;();
</span><del>-        fillMessagePortArray(exec, exec-&gt;argument(7), *messagePorts, *arrayBuffers);
-        if (exec-&gt;hadException())
</del><ins>+        fillMessagePortArray(state, state.argument(7), *messagePorts, *arrayBuffers);
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">     }
</span><del>-    Deprecated::ScriptValue dataArg = Deprecated::ScriptValue(exec-&gt;vm(), exec-&gt;argument(3));
-    if (exec-&gt;hadException())
</del><ins>+    Deprecated::ScriptValue dataArg = Deprecated::ScriptValue(state.vm(), state.argument(3));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">     MessageEvent&amp; event = jsEvent-&gt;impl();
</span><span class="cx">     event.initMessageEvent(typeArg, canBubbleArg, cancelableArg, dataArg, originArg, lastEventIdArg, sourceArg, WTF::move(messagePorts));
</span><del>-    jsEvent-&gt;m_data.set(exec-&gt;vm(), jsEvent, dataArg.jsValue());
</del><ins>+    jsEvent-&gt;m_data.set(state.vm(), jsEvent, dataArg.jsValue());
</ins><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSMessageEvent::initMessageEvent(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSMessageEvent::initMessageEvent(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return handleInitMessageEvent(this, exec);
</del><ins>+    return handleInitMessageEvent(this, state);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSMessageEvent::webkitInitMessageEvent(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSMessageEvent::webkitInitMessageEvent(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return handleInitMessageEvent(this, exec);
</del><ins>+    return handleInitMessageEvent(this, state);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSMessagePortCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSMessagePortCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSMessagePortCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSMessagePortCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -52,12 +52,12 @@
</span><span class="cx">         visitor.addOpaqueRoot(port);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSMessagePort::postMessage(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSMessagePort::postMessage(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return handlePostMessage(exec, &amp;impl());
</del><ins>+    return handlePostMessage(state, &amp;impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void fillMessagePortArray(JSC::ExecState* exec, JSC::JSValue value, MessagePortArray&amp; portArray, ArrayBufferArray&amp; arrayBuffers)
</del><ins>+void fillMessagePortArray(JSC::ExecState&amp; state, JSC::JSValue value, MessagePortArray&amp; portArray, ArrayBufferArray&amp; arrayBuffers)
</ins><span class="cx"> {
</span><span class="cx">     // Convert from the passed-in JS array-like object to a MessagePortArray.
</span><span class="cx">     // Also validates the elements per sections 4.1.13 and 4.1.15 of the WebIDL spec and section 8.3.3 of the HTML5 spec.
</span><span class="lines">@@ -69,17 +69,17 @@
</span><span class="cx"> 
</span><span class="cx">     // Validation of sequence types, per WebIDL spec 4.1.13.
</span><span class="cx">     unsigned length = 0;
</span><del>-    JSObject* object = toJSSequence(exec, value, length);
-    if (exec-&gt;hadException())
</del><ins>+    JSObject* object = toJSSequence(&amp;state, value, length);
+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     for (unsigned i = 0 ; i &lt; length; ++i) {
</span><del>-        JSValue value = object-&gt;get(exec, i);
-        if (exec-&gt;hadException())
</del><ins>+        JSValue value = object-&gt;get(&amp;state, i);
+        if (state.hadException())
</ins><span class="cx">             return;
</span><span class="cx">         // Validation of non-null objects, per HTML5 spec 10.3.3.
</span><span class="cx">         if (value.isUndefinedOrNull()) {
</span><del>-            setDOMException(exec, INVALID_STATE_ERR);
</del><ins>+            setDOMException(&amp;state, INVALID_STATE_ERR);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">         if (port) {
</span><span class="cx">             // Check for duplicate ports.
</span><span class="cx">             if (portArray.contains(port)) {
</span><del>-                setDOMException(exec, INVALID_STATE_ERR);
</del><ins>+                setDOMException(&amp;state, INVALID_STATE_ERR);
</ins><span class="cx">                 return;
</span><span class="cx">             }
</span><span class="cx">             portArray.append(port.release());
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx">             if (arrayBuffer)
</span><span class="cx">                 arrayBuffers.append(arrayBuffer);
</span><span class="cx">             else {
</span><del>-                throwTypeError(exec);
</del><ins>+                throwTypeError(&amp;state);
</ins><span class="cx">                 return;
</span><span class="cx">             }
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSMessagePortCustomh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSMessagePortCustom.h (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSMessagePortCustom.h        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSMessagePortCustom.h        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -43,22 +43,22 @@
</span><span class="cx">     // Helper function which pulls the values out of a JS sequence and into a MessagePortArray.
</span><span class="cx">     // Also validates the elements per sections 4.1.13 and 4.1.15 of the WebIDL spec and section 8.3.3 of the HTML5 spec.
</span><span class="cx">     // May generate an exception via the passed ExecState.
</span><del>-    void fillMessagePortArray(JSC::ExecState*, JSC::JSValue, MessagePortArray&amp;, ArrayBufferArray&amp;);
</del><ins>+    void fillMessagePortArray(JSC::ExecState&amp;, JSC::JSValue, MessagePortArray&amp;, ArrayBufferArray&amp;);
</ins><span class="cx"> 
</span><span class="cx">     // Helper function to convert from JS postMessage arguments to WebCore postMessage arguments.
</span><span class="cx">     template &lt;typename T&gt;
</span><del>-    inline JSC::JSValue handlePostMessage(JSC::ExecState* exec, T* impl)
</del><ins>+    inline JSC::JSValue handlePostMessage(JSC::ExecState&amp; state, T* impl)
</ins><span class="cx">     {
</span><span class="cx">         MessagePortArray portArray;
</span><span class="cx">         ArrayBufferArray arrayBufferArray;
</span><del>-        fillMessagePortArray(exec, exec-&gt;argument(1), portArray, arrayBufferArray);
-        RefPtr&lt;SerializedScriptValue&gt; message = SerializedScriptValue::create(exec, exec-&gt;argument(0), &amp;portArray, &amp;arrayBufferArray);
-        if (exec-&gt;hadException())
</del><ins>+        fillMessagePortArray(state, state.argument(1), portArray, arrayBufferArray);
+        RefPtr&lt;SerializedScriptValue&gt; message = SerializedScriptValue::create(&amp;state, state.argument(0), &amp;portArray, &amp;arrayBufferArray);
+        if (state.hadException())
</ins><span class="cx">             return JSC::jsUndefined();
</span><span class="cx"> 
</span><span class="cx">         ExceptionCode ec = 0;
</span><span class="cx">         impl-&gt;postMessage(message.release(), &amp;portArray, ec);
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return JSC::jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSMockContentFilterSettingsCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSMockContentFilterSettingsCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSMockContentFilterSettingsCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSMockContentFilterSettingsCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> using Decision = MockContentFilterSettings::Decision;
</span><span class="cx"> using DecisionPoint = MockContentFilterSettings::DecisionPoint;
</span><span class="cx"> 
</span><del>-JSValue JSMockContentFilterSettings::decisionPoint(ExecState*) const
</del><ins>+JSValue JSMockContentFilterSettings::decisionPoint(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     DecisionPoint decisionPoint = impl().decisionPoint();
</span><span class="cx">     switch (decisionPoint) {
</span><span class="lines">@@ -55,10 +55,10 @@
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSMockContentFilterSettings::setDecisionPoint(ExecState* exec, JSValue value)
</del><ins>+void JSMockContentFilterSettings::setDecisionPoint(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><del>-    uint8_t nativeValue { toUInt8(exec, value, EnforceRange) };
-    if (exec-&gt;hadException())
</del><ins>+    uint8_t nativeValue { toUInt8(&amp;state, value, EnforceRange) };
+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     DecisionPoint decisionPoint { static_cast&lt;DecisionPoint&gt;(nativeValue) };
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    throwTypeError(exec, String::format(&quot;%u is not a valid decisionPoint value.&quot;, nativeValue));
</del><ins>+    throwTypeError(&amp;state, String::format(&quot;%u is not a valid decisionPoint value.&quot;, nativeValue));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline JSValue toJSValue(Decision decision)
</span><span class="lines">@@ -88,10 +88,10 @@
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline Decision toDecision(ExecState* exec, JSValue value)
</del><ins>+static inline Decision toDecision(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><del>-    uint8_t nativeValue { toUInt8(exec, value, EnforceRange) };
-    if (exec-&gt;hadException())
</del><ins>+    uint8_t nativeValue { toUInt8(&amp;state, value, EnforceRange) };
+    if (state.hadException())
</ins><span class="cx">         return Decision::Allow;
</span><span class="cx"> 
</span><span class="cx">     Decision decision { static_cast&lt;Decision&gt;(nativeValue) };
</span><span class="lines">@@ -101,33 +101,33 @@
</span><span class="cx">         return decision;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    throwTypeError(exec, String::format(&quot;%u is not a valid decision value.&quot;, nativeValue));
</del><ins>+    throwTypeError(&amp;state, String::format(&quot;%u is not a valid decision value.&quot;, nativeValue));
</ins><span class="cx">     return Decision::Allow;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSMockContentFilterSettings::decision(ExecState*) const
</del><ins>+JSValue JSMockContentFilterSettings::decision(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     return toJSValue(impl().decision());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSMockContentFilterSettings::setDecision(ExecState* exec, JSValue value)
</del><ins>+void JSMockContentFilterSettings::setDecision(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><del>-    Decision decision { toDecision(exec, value) };
-    if (exec-&gt;hadException())
</del><ins>+    Decision decision { toDecision(state, value) };
+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     impl().setDecision(decision);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSMockContentFilterSettings::unblockRequestDecision(ExecState*) const
</del><ins>+JSValue JSMockContentFilterSettings::unblockRequestDecision(ExecState&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     return toJSValue(impl().unblockRequestDecision());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSMockContentFilterSettings::setUnblockRequestDecision(ExecState* exec, JSValue value)
</del><ins>+void JSMockContentFilterSettings::setUnblockRequestDecision(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><del>-    Decision unblockRequestDecision { toDecision(exec, value) };
-    if (exec-&gt;hadException())
</del><ins>+    Decision unblockRequestDecision { toDecision(state, value) };
+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     impl().setUnblockRequestDecision(unblockRequestDecision);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSNavigatorCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSNavigatorCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSNavigatorCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSNavigatorCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -42,41 +42,41 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSNavigator::webkitGetUserMedia(ExecState* exec)
</del><ins>+JSValue JSNavigator::webkitGetUserMedia(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 3) {
-        throwVMError(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 3) {
+        throwVMError(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Dictionary options(exec, exec-&gt;argument(0));
-    if (exec-&gt;hadException())
</del><ins>+    Dictionary options(&amp;state, state.argument(0));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">     if (!options.isObject()) {
</span><del>-        throwVMError(exec, createTypeError(exec, &quot;First argument of webkitGetUserMedia must be a valid Dictionary&quot;));
</del><ins>+        throwVMError(&amp;state, createTypeError(&amp;state, &quot;First argument of webkitGetUserMedia must be a valid Dictionary&quot;));
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!exec-&gt;argument(1).isFunction()) {
-        throwVMTypeError(exec, &quot;Argument 2 ('successCallback') to Navigator.webkitGetUserMedia must be a function&quot;);
</del><ins>+    if (!state.argument(1).isFunction()) {
+        throwVMTypeError(&amp;state, &quot;Argument 2 ('successCallback') to Navigator.webkitGetUserMedia must be a function&quot;);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!exec-&gt;argument(2).isFunction()) {
-        throwVMTypeError(exec, &quot;Argument 3 ('errorCallback') to Navigator.webkitGetUserMedia must be a function&quot;);
</del><ins>+    if (!state.argument(2).isFunction()) {
+        throwVMTypeError(&amp;state, &quot;Argument 3 ('errorCallback') to Navigator.webkitGetUserMedia must be a function&quot;);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!impl().frame()) {
</span><del>-        setDOMException(exec, NOT_SUPPORTED_ERR);
</del><ins>+        setDOMException(&amp;state, NOT_SUPPORTED_ERR);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // We do not need to protect the context (i.e. document) here as UserMediaRequest is observing context destruction and will check validity before resolving/rejecting promise.
</span><span class="cx">     Document* document = impl().frame()-&gt;document();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;NavigatorUserMediaSuccessCallback&gt; successCallback = JSNavigatorUserMediaSuccessCallback::create(asObject(exec-&gt;uncheckedArgument(1)), globalObject());
</del><ins>+    RefPtr&lt;NavigatorUserMediaSuccessCallback&gt; successCallback = JSNavigatorUserMediaSuccessCallback::create(asObject(state.uncheckedArgument(1)), globalObject());
</ins><span class="cx">     auto resolveCallback = [successCallback, document](const RefPtr&lt;MediaStream&gt;&amp; stream) mutable {
</span><span class="cx">         RefPtr&lt;MediaStream&gt; protectedStream = stream;
</span><span class="cx">         document-&gt;postTask([successCallback, protectedStream](ScriptExecutionContext&amp;) {
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx">         });
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    RefPtr&lt;NavigatorUserMediaErrorCallback&gt; errorCallback = JSNavigatorUserMediaErrorCallback::create(asObject(exec-&gt;uncheckedArgument(2)), globalObject());
</del><ins>+    RefPtr&lt;NavigatorUserMediaErrorCallback&gt; errorCallback = JSNavigatorUserMediaErrorCallback::create(asObject(state.uncheckedArgument(2)), globalObject());
</ins><span class="cx">     auto rejectCallback = [errorCallback, document](const RefPtr&lt;NavigatorUserMediaError&gt;&amp; error) mutable {
</span><span class="cx">         RefPtr&lt;NavigatorUserMediaError&gt; protectedError = error;
</span><span class="cx">         document-&gt;postTask([errorCallback, protectedError](ScriptExecutionContext&amp;) {
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     UserMediaRequest::start(document, options, MediaDevices::Promise(WTF::move(resolveCallback), WTF::move(rejectCallback)), ec);
</span><del>-    setDOMException(exec, ec);
</del><ins>+    setDOMException(&amp;state, ec);
</ins><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSNodeCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -113,43 +113,43 @@
</span><span class="cx">     return isReachableFromDOM(jsNode.impl(), visitor);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSNode::insertBefore(ExecState* exec)
</del><ins>+JSValue JSNode::insertBefore(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    bool ok = impl().insertBefore(JSNode::toWrapped(exec-&gt;argument(0)), JSNode::toWrapped(exec-&gt;argument(1)), ec);
-    setDOMException(exec, ec);
</del><ins>+    bool ok = impl().insertBefore(JSNode::toWrapped(state.argument(0)), JSNode::toWrapped(state.argument(1)), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx">     if (ok)
</span><del>-        return exec-&gt;argument(0);
</del><ins>+        return state.argument(0);
</ins><span class="cx">     return jsNull();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSNode::replaceChild(ExecState* exec)
</del><ins>+JSValue JSNode::replaceChild(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    bool ok = impl().replaceChild(JSNode::toWrapped(exec-&gt;argument(0)), JSNode::toWrapped(exec-&gt;argument(1)), ec);
-    setDOMException(exec, ec);
</del><ins>+    bool ok = impl().replaceChild(JSNode::toWrapped(state.argument(0)), JSNode::toWrapped(state.argument(1)), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx">     if (ok)
</span><del>-        return exec-&gt;argument(1);
</del><ins>+        return state.argument(1);
</ins><span class="cx">     return jsNull();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSNode::removeChild(ExecState* exec)
</del><ins>+JSValue JSNode::removeChild(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    bool ok = impl().removeChild(JSNode::toWrapped(exec-&gt;argument(0)), ec);
-    setDOMException(exec, ec);
</del><ins>+    bool ok = impl().removeChild(JSNode::toWrapped(state.argument(0)), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx">     if (ok)
</span><del>-        return exec-&gt;argument(0);
</del><ins>+        return state.argument(0);
</ins><span class="cx">     return jsNull();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSNode::appendChild(ExecState* exec)
</del><ins>+JSValue JSNode::appendChild(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    bool ok = impl().appendChild(JSNode::toWrapped(exec-&gt;argument(0)), ec);
-    setDOMException(exec, ec);
</del><ins>+    bool ok = impl().appendChild(JSNode::toWrapped(state.argument(0)), ec);
+    setDOMException(&amp;state, ec);
</ins><span class="cx">     if (ok)
</span><del>-        return exec-&gt;argument(0);
</del><ins>+        return state.argument(0);
</ins><span class="cx">     return jsNull();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSOscillatorNodeCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSOscillatorNodeCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSOscillatorNodeCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSOscillatorNodeCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -37,28 +37,28 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-void JSOscillatorNode::setType(ExecState* exec, JSValue value)
</del><ins>+void JSOscillatorNode::setType(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     OscillatorNode&amp; imp = impl();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(LEGACY_WEB_AUDIO)
</span><span class="cx">     if (value.isNumber()) {
</span><del>-        uint32_t type = value.toUInt32(exec);
</del><ins>+        uint32_t type = value.toUInt32(&amp;state);
</ins><span class="cx">         if (!imp.setType(type))
</span><del>-            exec-&gt;vm().throwException(exec, createTypeError(exec, &quot;Illegal OscillatorNode type&quot;));
</del><ins>+            state.vm().throwException(&amp;state, createTypeError(&amp;state, &quot;Illegal OscillatorNode type&quot;));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     if (value.isString()) {
</span><del>-        String type = value.toString(exec)-&gt;value(exec);
</del><ins>+        String type = value.toString(&amp;state)-&gt;value(&amp;state);
</ins><span class="cx">         if (type == &quot;sine&quot; || type == &quot;square&quot; || type == &quot;sawtooth&quot; || type == &quot;triangle&quot;) {
</span><span class="cx">             imp.setType(type);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    exec-&gt;vm().throwException(exec, createTypeError(exec, &quot;Illegal OscillatorNode type&quot;));
</del><ins>+    state.vm().throwException(&amp;state, createTypeError(&amp;state, &quot;Illegal OscillatorNode type&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSPannerNodeCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSPannerNodeCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSPannerNodeCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSPannerNodeCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -37,52 +37,52 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-void JSPannerNode::setPanningModel(ExecState* exec, JSValue value)
</del><ins>+void JSPannerNode::setPanningModel(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     PannerNode&amp; imp = impl();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(LEGACY_WEB_AUDIO)
</span><span class="cx">     if (value.isNumber()) {
</span><del>-        uint32_t model = value.toUInt32(exec);
</del><ins>+        uint32_t model = value.toUInt32(&amp;state);
</ins><span class="cx">         if (!imp.setPanningModel(model))
</span><del>-            exec-&gt;vm().throwException(exec, createTypeError(exec, &quot;Illegal panningModel&quot;));
</del><ins>+            state.vm().throwException(&amp;state, createTypeError(&amp;state, &quot;Illegal panningModel&quot;));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     if (value.isString()) {
</span><del>-        String model = value.toString(exec)-&gt;value(exec);
</del><ins>+        String model = value.toString(&amp;state)-&gt;value(&amp;state);
</ins><span class="cx">         if (model == &quot;equalpower&quot; || model == &quot;HRTF&quot; || model == &quot;soundfield&quot;) {
</span><span class="cx">             imp.setPanningModel(model);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    exec-&gt;vm().throwException(exec, createTypeError(exec, &quot;Illegal panningModel&quot;));
</del><ins>+    state.vm().throwException(&amp;state, createTypeError(&amp;state, &quot;Illegal panningModel&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSPannerNode::setDistanceModel(ExecState* exec, JSValue value)
</del><ins>+void JSPannerNode::setDistanceModel(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     PannerNode&amp; imp = impl();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(LEGACY_WEB_AUDIO)
</span><span class="cx">     if (value.isNumber()) {
</span><del>-        uint32_t model = value.toUInt32(exec);
</del><ins>+        uint32_t model = value.toUInt32(&amp;state);
</ins><span class="cx">         if (!imp.setDistanceModel(model))
</span><del>-            exec-&gt;vm().throwException(exec, createTypeError(exec, &quot;Illegal distanceModel&quot;));
</del><ins>+            state.vm().throwException(&amp;state, createTypeError(&amp;state, &quot;Illegal distanceModel&quot;));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     if (value.isString()) {
</span><del>-        String model = value.toString(exec)-&gt;value(exec);
</del><ins>+        String model = value.toString(&amp;state)-&gt;value(&amp;state);
</ins><span class="cx">         if (model == &quot;linear&quot; || model == &quot;inverse&quot; || model == &quot;exponential&quot;) {
</span><span class="cx">             imp.setDistanceModel(model);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    exec-&gt;vm().throwException(exec, createTypeError(exec, &quot;Illegal distanceModel&quot;));
</del><ins>+    state.vm().throwException(&amp;state, createTypeError(&amp;state, &quot;Illegal distanceModel&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSPopStateEventCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSPopStateEventCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSPopStateEventCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSPopStateEventCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -40,18 +40,18 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> // Save the state value to the m_state member of a JSPopStateEvent, and return it, for convenience.
</span><del>-static const JSValue&amp; cacheState(ExecState* exec, JSPopStateEvent* event, const JSValue&amp; state)
</del><ins>+static const JSValue&amp; cacheState(ExecState&amp; state, JSPopStateEvent* event, const JSValue&amp; eventState)
</ins><span class="cx"> {
</span><del>-    event-&gt;m_state.set(exec-&gt;vm(), event, state);
-    return state;
</del><ins>+    event-&gt;m_state.set(state.vm(), event, eventState);
+    return eventState;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSPopStateEvent::state(ExecState* exec) const
</del><ins>+JSValue JSPopStateEvent::state(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     JSValue cachedValue = m_state.get();
</span><span class="cx">     if (!cachedValue.isEmpty()) {
</span><span class="cx">         // We cannot use a cached object if we are in a different world than the one it was created in.
</span><del>-        if (!cachedValue.isObject() || &amp;worldForDOMObject(cachedValue.getObject()) == &amp;currentWorld(exec))
</del><ins>+        if (!cachedValue.isObject() || &amp;worldForDOMObject(cachedValue.getObject()) == &amp;currentWorld(&amp;state))
</ins><span class="cx">             return cachedValue;
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">     }
</span><span class="lines">@@ -61,20 +61,20 @@
</span><span class="cx">     if (!event.state().hasNoValue()) {
</span><span class="cx">         // We need to make sure a PopStateEvent does not leak objects in its state property across isolated DOM worlds.
</span><span class="cx">         // Ideally, we would check that the worlds have different privileges but that's not possible yet.
</span><del>-        JSValue state = event.state().jsValue();
-        if (state.isObject() &amp;&amp; &amp;worldForDOMObject(state.getObject()) != &amp;currentWorld(exec)) {
-            if (RefPtr&lt;SerializedScriptValue&gt; serializedValue = event.trySerializeState(exec))
-                state = serializedValue-&gt;deserialize(exec, globalObject(), nullptr);
</del><ins>+        JSValue eventState = event.state().jsValue();
+        if (eventState.isObject() &amp;&amp; &amp;worldForDOMObject(eventState.getObject()) != &amp;currentWorld(&amp;state)) {
+            if (RefPtr&lt;SerializedScriptValue&gt; serializedValue = event.trySerializeState(&amp;state))
+                eventState = serializedValue-&gt;deserialize(&amp;state, globalObject(), nullptr);
</ins><span class="cx">             else
</span><del>-                state = jsNull();
</del><ins>+                eventState = jsNull();
</ins><span class="cx">         }
</span><span class="cx">         
</span><del>-        return cacheState(exec, const_cast&lt;JSPopStateEvent*&gt;(this), state);
</del><ins>+        return cacheState(state, const_cast&lt;JSPopStateEvent*&gt;(this), eventState);
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     History* history = event.history();
</span><span class="cx">     if (!history || !event.serializedState())
</span><del>-        return cacheState(exec, const_cast&lt;JSPopStateEvent*&gt;(this), jsNull());
</del><ins>+        return cacheState(state, const_cast&lt;JSPopStateEvent*&gt;(this), jsNull());
</ins><span class="cx"> 
</span><span class="cx">     // There's no cached value from a previous invocation, nor a state value was provided by the
</span><span class="cx">     // event, but there is a history object, so first we need to see if the state object has been
</span><span class="lines">@@ -86,12 +86,12 @@
</span><span class="cx">     JSValue result;
</span><span class="cx"> 
</span><span class="cx">     if (isSameState) {
</span><del>-        JSHistory* jsHistory = jsCast&lt;JSHistory*&gt;(toJS(exec, globalObject(), history).asCell());
-        result = jsHistory-&gt;state(exec);
</del><ins>+        JSHistory* jsHistory = jsCast&lt;JSHistory*&gt;(toJS(&amp;state, globalObject(), history).asCell());
+        result = jsHistory-&gt;state(state);
</ins><span class="cx">     } else
</span><del>-        result = event.serializedState()-&gt;deserialize(exec, globalObject(), 0);
</del><ins>+        result = event.serializedState()-&gt;deserialize(&amp;state, globalObject(), 0);
</ins><span class="cx"> 
</span><del>-    return cacheState(exec, const_cast&lt;JSPopStateEvent*&gt;(this), result);
</del><ins>+    return cacheState(state, const_cast&lt;JSPopStateEvent*&gt;(this), result);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSReadableStreamCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSReadableStreamCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSReadableStreamCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSReadableStreamCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -47,16 +47,16 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSReadableStream::pipeTo(ExecState* exec)
</del><ins>+JSValue JSReadableStream::pipeTo(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    JSValue error = createError(exec, ASCIILiteral(&quot;pipeTo is not implemented&quot;));
-    return exec-&gt;vm().throwException(exec, error);
</del><ins>+    JSValue error = createError(&amp;state, ASCIILiteral(&quot;pipeTo is not implemented&quot;));
+    return state.vm().throwException(&amp;state, error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSReadableStream::pipeThrough(ExecState* exec)
</del><ins>+JSValue JSReadableStream::pipeThrough(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    JSValue error = createError(exec, ASCIILiteral(&quot;pipeThrough is not implemented&quot;));
-    return exec-&gt;vm().throwException(exec, error);
</del><ins>+    JSValue error = createError(&amp;state, ASCIILiteral(&quot;pipeThrough is not implemented&quot;));
+    return state.vm().throwException(&amp;state, error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSReadableStreamReaderCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSReadableStreamReaderCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSReadableStreamReaderCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSReadableStreamReaderCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -44,12 +44,12 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSReadableStreamReader::closed(ExecState* exec) const
</del><ins>+JSValue JSReadableStreamReader::closed(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_closed) {
</span><del>-        JSPromiseDeferred* closedPromise = JSPromiseDeferred::create(exec, globalObject());
-        const_cast&lt;JSReadableStreamReader*&gt;(this)-&gt;m_closed.set(exec-&gt;vm(), this, closedPromise-&gt;promise());
-        impl().closed(DeferredWrapper(exec, globalObject(), closedPromise));
</del><ins>+        JSPromiseDeferred* closedPromise = JSPromiseDeferred::create(&amp;state, globalObject());
+        const_cast&lt;JSReadableStreamReader*&gt;(this)-&gt;m_closed.set(state.vm(), this, closedPromise-&gt;promise());
+        impl().closed(DeferredWrapper(&amp;state, globalObject(), closedPromise));
</ins><span class="cx">     }
</span><span class="cx">     return m_closed.get();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSSQLResultSetRowListCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -39,20 +39,20 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSSQLResultSetRowList::item(ExecState* exec)
</del><ins>+JSValue JSSQLResultSetRowList::item(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     bool indexOk;
</span><del>-    int index = finiteInt32Value(exec-&gt;argument(0), exec, indexOk);
</del><ins>+    int index = finiteInt32Value(state.argument(0), &amp;state, indexOk);
</ins><span class="cx">     if (!indexOk) {
</span><del>-        setDOMException(exec, TYPE_MISMATCH_ERR);
</del><ins>+        setDOMException(&amp;state, TYPE_MISMATCH_ERR);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx">     if (index &lt; 0 || (unsigned)index &gt;= m_impl-&gt;length()) {
</span><del>-        setDOMException(exec, INDEX_SIZE_ERR);
</del><ins>+        setDOMException(&amp;state, INDEX_SIZE_ERR);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    JSObject* object = constructEmptyObject(exec);
</del><ins>+    JSObject* object = constructEmptyObject(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     unsigned numColumns = m_impl-&gt;columnNames().size();
</span><span class="cx">     unsigned valuesIndex = index * numColumns;
</span><span class="lines">@@ -61,20 +61,20 @@
</span><span class="cx">         JSValue jsValue;
</span><span class="cx"> 
</span><span class="cx">         switch (value.type()) {
</span><del>-            case SQLValue::StringValue:
-              jsValue = jsStringWithCache(exec, value.string());
-              break;
-          case SQLValue::NullValue:
-              jsValue = jsNull();
-              break;
-          case SQLValue::NumberValue:
-              jsValue = jsNumber(value.number());
-              break;
-          default:
-              ASSERT_NOT_REACHED();
</del><ins>+        case SQLValue::StringValue:
+            jsValue = jsStringWithCache(&amp;state, value.string());
+            break;
+        case SQLValue::NullValue:
+            jsValue = jsNull();
+            break;
+        case SQLValue::NumberValue:
+            jsValue = jsNumber(value.number());
+            break;
+        default:
+            ASSERT_NOT_REACHED();
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        object-&gt;putDirect(exec-&gt;vm(), Identifier::fromString(exec, m_impl-&gt;columnNames()[i]), jsValue, DontDelete | ReadOnly);
</del><ins>+        object-&gt;putDirect(state.vm(), Identifier::fromString(&amp;state, m_impl-&gt;columnNames()[i]), jsValue, DontDelete | ReadOnly);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return object;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSSQLTransactionCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -41,36 +41,36 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSSQLTransaction::executeSql(ExecState* exec)
</del><ins>+JSValue JSSQLTransaction::executeSql(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (!exec-&gt;argumentCount()) {
-        setDOMException(exec, SYNTAX_ERR);
</del><ins>+    if (!state.argumentCount()) {
+        setDOMException(&amp;state, SYNTAX_ERR);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    String sqlStatement = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    String sqlStatement = state.argument(0).toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">     // Now assemble the list of SQL arguments
</span><span class="cx">     Vector&lt;SQLValue&gt; sqlValues;
</span><del>-    if (!exec-&gt;argument(1).isUndefinedOrNull()) {
-        JSObject* object = exec-&gt;argument(1).getObject();
</del><ins>+    if (!state.argument(1).isUndefinedOrNull()) {
+        JSObject* object = state.argument(1).getObject();
</ins><span class="cx">         if (!object) {
</span><del>-            setDOMException(exec, TYPE_MISMATCH_ERR);
</del><ins>+            setDOMException(&amp;state, TYPE_MISMATCH_ERR);
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        JSValue lengthValue = object-&gt;get(exec, exec-&gt;propertyNames().length);
-        if (exec-&gt;hadException())
</del><ins>+        JSValue lengthValue = object-&gt;get(&amp;state, state.propertyNames().length);
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><del>-        unsigned length = lengthValue.toUInt32(exec);
-        if (exec-&gt;hadException())
</del><ins>+        unsigned length = lengthValue.toUInt32(&amp;state);
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">         for (unsigned i = 0 ; i &lt; length; ++i) {
</span><del>-            JSValue value = object-&gt;get(exec, i);
-            if (exec-&gt;hadException())
</del><ins>+            JSValue value = object-&gt;get(&amp;state, i);
+            if (state.hadException())
</ins><span class="cx">                 return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">             if (value.isUndefinedOrNull())
</span><span class="lines">@@ -79,18 +79,18 @@
</span><span class="cx">                 sqlValues.append(value.asNumber());
</span><span class="cx">             else {
</span><span class="cx">                 // Convert the argument to a string and append it
</span><del>-                sqlValues.append(value.toString(exec)-&gt;value(exec));
-                if (exec-&gt;hadException())
</del><ins>+                sqlValues.append(value.toString(&amp;state)-&gt;value(&amp;state));
+                if (state.hadException())
</ins><span class="cx">                     return jsUndefined();
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;SQLStatementCallback&gt; callback;
</span><del>-    if (!exec-&gt;argument(2).isUndefinedOrNull()) {
-        JSObject* object = exec-&gt;argument(2).getObject();
</del><ins>+    if (!state.argument(2).isUndefinedOrNull()) {
+        JSObject* object = state.argument(2).getObject();
</ins><span class="cx">         if (!object) {
</span><del>-            setDOMException(exec, TYPE_MISMATCH_ERR);
</del><ins>+            setDOMException(&amp;state, TYPE_MISMATCH_ERR);
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -98,10 +98,10 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;SQLStatementErrorCallback&gt; errorCallback;
</span><del>-    if (!exec-&gt;argument(3).isUndefinedOrNull()) {
-        JSObject* object = exec-&gt;argument(3).getObject();
</del><ins>+    if (!state.argument(3).isUndefinedOrNull()) {
+        JSObject* object = state.argument(3).getObject();
</ins><span class="cx">         if (!object) {
</span><del>-            setDOMException(exec, TYPE_MISMATCH_ERR);
</del><ins>+            setDOMException(&amp;state, TYPE_MISMATCH_ERR);
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -110,7 +110,7 @@
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     m_impl-&gt;executeSQL(sqlStatement, sqlValues, callback.release(), errorCallback.release(), ec);
</span><del>-    setDOMException(exec, ec);
</del><ins>+    setDOMException(&amp;state, ec);
</ins><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSSVGLengthCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSSVGLengthCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSSVGLengthCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSSVGLengthCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -31,29 +31,29 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSSVGLength::value(ExecState* exec) const
</del><ins>+JSValue JSSVGLength::value(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     SVGLength&amp; podImp = impl().propertyReference();
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     SVGLengthContext lengthContext(impl().contextElement());
</span><span class="cx">     float value = podImp.value(lengthContext, ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return jsNumber(value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSSVGLength::setValue(ExecState* exec, JSValue value)
</del><ins>+void JSSVGLength::setValue(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     if (impl().isReadOnly()) {
</span><del>-        setDOMException(exec, NO_MODIFICATION_ALLOWED_ERR);
</del><ins>+        setDOMException(&amp;state, NO_MODIFICATION_ALLOWED_ERR);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!value.isUndefinedOrNull() &amp;&amp; !value.isNumber() &amp;&amp; !value.isBoolean()) {
</span><del>-        throwVMTypeError(exec);
</del><ins>+        throwVMTypeError(&amp;state);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -61,36 +61,36 @@
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     SVGLengthContext lengthContext(impl().contextElement());
</span><del>-    podImp.setValue(value.toFloat(exec), lengthContext, ec);
</del><ins>+    podImp.setValue(value.toFloat(&amp;state), lengthContext, ec);
</ins><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     impl().commitChange();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSSVGLength::convertToSpecifiedUnits(ExecState* exec)
</del><ins>+JSValue JSSVGLength::convertToSpecifiedUnits(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     if (impl().isReadOnly()) {
</span><del>-        setDOMException(exec, NO_MODIFICATION_ALLOWED_ERR);
</del><ins>+        setDOMException(&amp;state, NO_MODIFICATION_ALLOWED_ERR);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     SVGLength&amp; podImp = impl().propertyReference();
</span><span class="cx"> 
</span><del>-    if (exec-&gt;argumentCount() &lt; 1)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 1)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><del>-    unsigned short unitType = exec-&gt;uncheckedArgument(0).toUInt32(exec);
-    if (exec-&gt;hadException())
</del><ins>+    unsigned short unitType = state.uncheckedArgument(0).toUInt32(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     SVGLengthContext lengthContext(impl().contextElement());
</span><span class="cx">     podImp.convertToSpecifiedUnits(unitType, lengthContext, ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSSubtleCryptoCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -61,24 +61,24 @@
</span><span class="cx">     JWK
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-static std::unique_ptr&lt;CryptoAlgorithm&gt; createAlgorithmFromJSValue(ExecState* exec, JSValue value)
</del><ins>+static std::unique_ptr&lt;CryptoAlgorithm&gt; createAlgorithmFromJSValue(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     CryptoAlgorithmIdentifier algorithmIdentifier;
</span><del>-    if (!JSCryptoAlgorithmDictionary::getAlgorithmIdentifier(exec, value, algorithmIdentifier)) {
-        ASSERT(exec-&gt;hadException());
</del><ins>+    if (!JSCryptoAlgorithmDictionary::getAlgorithmIdentifier(&amp;state, value, algorithmIdentifier)) {
+        ASSERT(state.hadException());
</ins><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     auto result = CryptoAlgorithmRegistry::singleton().create(algorithmIdentifier);
</span><span class="cx">     if (!result)
</span><del>-        setDOMException(exec, NOT_SUPPORTED_ERR);
</del><ins>+        setDOMException(&amp;state, NOT_SUPPORTED_ERR);
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool cryptoKeyFormatFromJSValue(ExecState* exec, JSValue value, CryptoKeyFormat&amp; result)
</del><ins>+static bool cryptoKeyFormatFromJSValue(ExecState&amp; state, JSValue value, CryptoKeyFormat&amp; result)
</ins><span class="cx"> {
</span><del>-    String keyFormatString = value.toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    String keyFormatString = value.toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return false;
</span><span class="cx">     if (keyFormatString == &quot;raw&quot;)
</span><span class="cx">         result = CryptoKeyFormat::Raw;
</span><span class="lines">@@ -89,16 +89,16 @@
</span><span class="cx">     else if (keyFormatString == &quot;jwk&quot;)
</span><span class="cx">         result = CryptoKeyFormat::JWK;
</span><span class="cx">     else {
</span><del>-        throwTypeError(exec, &quot;Unknown key format&quot;);
</del><ins>+        throwTypeError(&amp;state, &quot;Unknown key format&quot;);
</ins><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool cryptoKeyUsagesFromJSValue(ExecState* exec, JSValue value, CryptoKeyUsage&amp; result)
</del><ins>+static bool cryptoKeyUsagesFromJSValue(ExecState&amp; state, JSValue value, CryptoKeyUsage&amp; result)
</ins><span class="cx"> {
</span><span class="cx">     if (!isJSArray(value)) {
</span><del>-        throwTypeError(exec);
</del><ins>+        throwTypeError(&amp;state);
</ins><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -106,9 +106,9 @@
</span><span class="cx"> 
</span><span class="cx">     JSArray* array = asArray(value);
</span><span class="cx">     for (size_t i = 0; i &lt; array-&gt;length(); ++i) {
</span><del>-        JSValue element = array-&gt;getIndex(exec, i);
-        String usageString = element.toString(exec)-&gt;value(exec);
-        if (exec-&gt;hadException())
</del><ins>+        JSValue element = array-&gt;getIndex(&amp;state, i);
+        String usageString = element.toString(&amp;state)-&gt;value(&amp;state);
+        if (state.hadException())
</ins><span class="cx">             return false;
</span><span class="cx">         if (usageString == &quot;encrypt&quot;)
</span><span class="cx">             result |= CryptoKeyUsageEncrypt;
</span><span class="lines">@@ -130,42 +130,42 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSSubtleCrypto::encrypt(ExecState* exec)
</del><ins>+JSValue JSSubtleCrypto::encrypt(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 3)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 3)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><del>-    auto algorithm = createAlgorithmFromJSValue(exec, exec-&gt;uncheckedArgument(0));
</del><ins>+    auto algorithm = createAlgorithmFromJSValue(state, state.uncheckedArgument(0));
</ins><span class="cx">     if (!algorithm) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto parameters = JSCryptoAlgorithmDictionary::createParametersForEncrypt(exec, algorithm-&gt;identifier(), exec-&gt;uncheckedArgument(0));
</del><ins>+    auto parameters = JSCryptoAlgorithmDictionary::createParametersForEncrypt(&amp;state, algorithm-&gt;identifier(), state.uncheckedArgument(0));
</ins><span class="cx">     if (!parameters) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;CryptoKey&gt; key = JSCryptoKey::toWrapped(exec-&gt;uncheckedArgument(1));
</del><ins>+    RefPtr&lt;CryptoKey&gt; key = JSCryptoKey::toWrapped(state.uncheckedArgument(1));
</ins><span class="cx">     if (!key)
</span><del>-        return throwTypeError(exec);
</del><ins>+        return throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     if (!key-&gt;allows(CryptoKeyUsageEncrypt)) {
</span><span class="cx">         m_impl-&gt;document()-&gt;addConsoleMessage(MessageSource::JS, MessageLevel::Error, ASCIILiteral(&quot;Key usages do not include 'encrypt'&quot;));
</span><del>-        setDOMException(exec, NOT_SUPPORTED_ERR);
</del><ins>+        setDOMException(&amp;state, NOT_SUPPORTED_ERR);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     CryptoOperationData data;
</span><del>-    if (!cryptoOperationDataFromJSValue(exec, exec-&gt;uncheckedArgument(2), data)) {
-        ASSERT(exec-&gt;hadException());
</del><ins>+    if (!cryptoOperationDataFromJSValue(&amp;state, state.uncheckedArgument(2), data)) {
+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     
</span><del>-    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(exec, globalObject());
-    DeferredWrapper wrapper(exec, globalObject(), promiseDeferred);
</del><ins>+    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(&amp;state, globalObject());
+    DeferredWrapper wrapper(&amp;state, globalObject(), promiseDeferred);
</ins><span class="cx">     auto successCallback = [wrapper](const Vector&lt;uint8_t&gt;&amp; result) mutable {
</span><span class="cx">         wrapper.resolve(result);
</span><span class="cx">     };
</span><span class="lines">@@ -176,48 +176,48 @@
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     algorithm-&gt;encrypt(*parameters, *key, data, WTF::move(successCallback), WTF::move(failureCallback), ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return promiseDeferred-&gt;promise();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSSubtleCrypto::decrypt(ExecState* exec)
</del><ins>+JSValue JSSubtleCrypto::decrypt(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 3)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 3)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><del>-    auto algorithm = createAlgorithmFromJSValue(exec, exec-&gt;uncheckedArgument(0));
</del><ins>+    auto algorithm = createAlgorithmFromJSValue(state, state.uncheckedArgument(0));
</ins><span class="cx">     if (!algorithm) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto parameters = JSCryptoAlgorithmDictionary::createParametersForDecrypt(exec, algorithm-&gt;identifier(), exec-&gt;uncheckedArgument(0));
</del><ins>+    auto parameters = JSCryptoAlgorithmDictionary::createParametersForDecrypt(&amp;state, algorithm-&gt;identifier(), state.uncheckedArgument(0));
</ins><span class="cx">     if (!parameters) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;CryptoKey&gt; key = JSCryptoKey::toWrapped(exec-&gt;uncheckedArgument(1));
</del><ins>+    RefPtr&lt;CryptoKey&gt; key = JSCryptoKey::toWrapped(state.uncheckedArgument(1));
</ins><span class="cx">     if (!key)
</span><del>-        return throwTypeError(exec);
</del><ins>+        return throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     if (!key-&gt;allows(CryptoKeyUsageDecrypt)) {
</span><span class="cx">         m_impl-&gt;document()-&gt;addConsoleMessage(MessageSource::JS, MessageLevel::Error, ASCIILiteral(&quot;Key usages do not include 'decrypt'&quot;));
</span><del>-        setDOMException(exec, NOT_SUPPORTED_ERR);
</del><ins>+        setDOMException(&amp;state, NOT_SUPPORTED_ERR);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     CryptoOperationData data;
</span><del>-    if (!cryptoOperationDataFromJSValue(exec, exec-&gt;uncheckedArgument(2), data)) {
-        ASSERT(exec-&gt;hadException());
</del><ins>+    if (!cryptoOperationDataFromJSValue(&amp;state, state.uncheckedArgument(2), data)) {
+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(exec, globalObject());
-    DeferredWrapper wrapper(exec, globalObject(), promiseDeferred);
</del><ins>+    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(&amp;state, globalObject());
+    DeferredWrapper wrapper(&amp;state, globalObject(), promiseDeferred);
</ins><span class="cx">     auto successCallback = [wrapper](const Vector&lt;uint8_t&gt;&amp; result) mutable {
</span><span class="cx">         wrapper.resolve(result);
</span><span class="cx">     };
</span><span class="lines">@@ -228,48 +228,48 @@
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     algorithm-&gt;decrypt(*parameters, *key, data, WTF::move(successCallback), WTF::move(failureCallback), ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return promiseDeferred-&gt;promise();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSSubtleCrypto::sign(ExecState* exec)
</del><ins>+JSValue JSSubtleCrypto::sign(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 3)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 3)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><del>-    auto algorithm = createAlgorithmFromJSValue(exec, exec-&gt;uncheckedArgument(0));
</del><ins>+    auto algorithm = createAlgorithmFromJSValue(state, state.uncheckedArgument(0));
</ins><span class="cx">     if (!algorithm) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto parameters = JSCryptoAlgorithmDictionary::createParametersForSign(exec, algorithm-&gt;identifier(), exec-&gt;uncheckedArgument(0));
</del><ins>+    auto parameters = JSCryptoAlgorithmDictionary::createParametersForSign(&amp;state, algorithm-&gt;identifier(), state.uncheckedArgument(0));
</ins><span class="cx">     if (!parameters) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;CryptoKey&gt; key = JSCryptoKey::toWrapped(exec-&gt;uncheckedArgument(1));
</del><ins>+    RefPtr&lt;CryptoKey&gt; key = JSCryptoKey::toWrapped(state.uncheckedArgument(1));
</ins><span class="cx">     if (!key)
</span><del>-        return throwTypeError(exec);
</del><ins>+        return throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     if (!key-&gt;allows(CryptoKeyUsageSign)) {
</span><span class="cx">         m_impl-&gt;document()-&gt;addConsoleMessage(MessageSource::JS, MessageLevel::Error, ASCIILiteral(&quot;Key usages do not include 'sign'&quot;));
</span><del>-        setDOMException(exec, NOT_SUPPORTED_ERR);
</del><ins>+        setDOMException(&amp;state, NOT_SUPPORTED_ERR);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     CryptoOperationData data;
</span><del>-    if (!cryptoOperationDataFromJSValue(exec, exec-&gt;uncheckedArgument(2), data)) {
-        ASSERT(exec-&gt;hadException());
</del><ins>+    if (!cryptoOperationDataFromJSValue(&amp;state, state.uncheckedArgument(2), data)) {
+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(exec, globalObject());
-    DeferredWrapper wrapper(exec, globalObject(), promiseDeferred);
</del><ins>+    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(&amp;state, globalObject());
+    DeferredWrapper wrapper(&amp;state, globalObject(), promiseDeferred);
</ins><span class="cx">     auto successCallback = [wrapper](const Vector&lt;uint8_t&gt;&amp; result) mutable {
</span><span class="cx">         wrapper.resolve(result);
</span><span class="cx">     };
</span><span class="lines">@@ -280,54 +280,54 @@
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     algorithm-&gt;sign(*parameters, *key, data, WTF::move(successCallback), WTF::move(failureCallback), ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return promiseDeferred-&gt;promise();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSSubtleCrypto::verify(ExecState* exec)
</del><ins>+JSValue JSSubtleCrypto::verify(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 4)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 4)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><del>-    auto algorithm = createAlgorithmFromJSValue(exec, exec-&gt;uncheckedArgument(0));
</del><ins>+    auto algorithm = createAlgorithmFromJSValue(state, state.uncheckedArgument(0));
</ins><span class="cx">     if (!algorithm) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto parameters = JSCryptoAlgorithmDictionary::createParametersForVerify(exec, algorithm-&gt;identifier(), exec-&gt;uncheckedArgument(0));
</del><ins>+    auto parameters = JSCryptoAlgorithmDictionary::createParametersForVerify(&amp;state, algorithm-&gt;identifier(), state.uncheckedArgument(0));
</ins><span class="cx">     if (!parameters) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;CryptoKey&gt; key = JSCryptoKey::toWrapped(exec-&gt;uncheckedArgument(1));
</del><ins>+    RefPtr&lt;CryptoKey&gt; key = JSCryptoKey::toWrapped(state.uncheckedArgument(1));
</ins><span class="cx">     if (!key)
</span><del>-        return throwTypeError(exec);
</del><ins>+        return throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     if (!key-&gt;allows(CryptoKeyUsageVerify)) {
</span><span class="cx">         m_impl-&gt;document()-&gt;addConsoleMessage(MessageSource::JS, MessageLevel::Error, ASCIILiteral(&quot;Key usages do not include 'verify'&quot;));
</span><del>-        setDOMException(exec, NOT_SUPPORTED_ERR);
</del><ins>+        setDOMException(&amp;state, NOT_SUPPORTED_ERR);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     CryptoOperationData signature;
</span><del>-    if (!cryptoOperationDataFromJSValue(exec, exec-&gt;uncheckedArgument(2), signature)) {
-        ASSERT(exec-&gt;hadException());
</del><ins>+    if (!cryptoOperationDataFromJSValue(&amp;state, state.uncheckedArgument(2), signature)) {
+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     CryptoOperationData data;
</span><del>-    if (!cryptoOperationDataFromJSValue(exec, exec-&gt;uncheckedArgument(3), data)) {
-        ASSERT(exec-&gt;hadException());
</del><ins>+    if (!cryptoOperationDataFromJSValue(&amp;state, state.uncheckedArgument(3), data)) {
+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(exec, globalObject());
-    DeferredWrapper wrapper(exec, globalObject(), promiseDeferred);
</del><ins>+    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(&amp;state, globalObject());
+    DeferredWrapper wrapper(&amp;state, globalObject(), promiseDeferred);
</ins><span class="cx">     auto successCallback = [wrapper](bool result) mutable {
</span><span class="cx">         wrapper.resolve(result);
</span><span class="cx">     };
</span><span class="lines">@@ -338,38 +338,38 @@
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     algorithm-&gt;verify(*parameters, *key, signature, data, WTF::move(successCallback), WTF::move(failureCallback), ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return promiseDeferred-&gt;promise();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSSubtleCrypto::digest(ExecState* exec)
</del><ins>+JSValue JSSubtleCrypto::digest(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 2)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 2)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><del>-    auto algorithm = createAlgorithmFromJSValue(exec, exec-&gt;uncheckedArgument(0));
</del><ins>+    auto algorithm = createAlgorithmFromJSValue(state, state.uncheckedArgument(0));
</ins><span class="cx">     if (!algorithm) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto parameters = JSCryptoAlgorithmDictionary::createParametersForDigest(exec, algorithm-&gt;identifier(), exec-&gt;uncheckedArgument(0));
</del><ins>+    auto parameters = JSCryptoAlgorithmDictionary::createParametersForDigest(&amp;state, algorithm-&gt;identifier(), state.uncheckedArgument(0));
</ins><span class="cx">     if (!parameters) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     CryptoOperationData data;
</span><del>-    if (!cryptoOperationDataFromJSValue(exec, exec-&gt;uncheckedArgument(1), data)) {
-        ASSERT(exec-&gt;hadException());
</del><ins>+    if (!cryptoOperationDataFromJSValue(&amp;state, state.uncheckedArgument(1), data)) {
+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(exec, globalObject());
-    DeferredWrapper wrapper(exec, globalObject(), promiseDeferred);
</del><ins>+    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(&amp;state, globalObject());
+    DeferredWrapper wrapper(&amp;state, globalObject(), promiseDeferred);
</ins><span class="cx">     auto successCallback = [wrapper](const Vector&lt;uint8_t&gt;&amp; result) mutable {
</span><span class="cx">         wrapper.resolve(result);
</span><span class="cx">     };
</span><span class="lines">@@ -380,47 +380,47 @@
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     algorithm-&gt;digest(*parameters, data, WTF::move(successCallback), WTF::move(failureCallback), ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return promiseDeferred-&gt;promise();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSSubtleCrypto::generateKey(ExecState* exec)
</del><ins>+JSValue JSSubtleCrypto::generateKey(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 1)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 1)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><del>-    auto algorithm = createAlgorithmFromJSValue(exec, exec-&gt;uncheckedArgument(0));
</del><ins>+    auto algorithm = createAlgorithmFromJSValue(state, state.uncheckedArgument(0));
</ins><span class="cx">     if (!algorithm) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto parameters = JSCryptoAlgorithmDictionary::createParametersForGenerateKey(exec, algorithm-&gt;identifier(), exec-&gt;uncheckedArgument(0));
</del><ins>+    auto parameters = JSCryptoAlgorithmDictionary::createParametersForGenerateKey(&amp;state, algorithm-&gt;identifier(), state.uncheckedArgument(0));
</ins><span class="cx">     if (!parameters) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     bool extractable = false;
</span><del>-    if (exec-&gt;argumentCount() &gt;= 2) {
-        extractable = exec-&gt;uncheckedArgument(1).toBoolean(exec);
-        if (exec-&gt;hadException())
</del><ins>+    if (state.argumentCount() &gt;= 2) {
+        extractable = state.uncheckedArgument(1).toBoolean(&amp;state);
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     CryptoKeyUsage keyUsages = 0;
</span><del>-    if (exec-&gt;argumentCount() &gt;= 3) {
-        if (!cryptoKeyUsagesFromJSValue(exec, exec-&gt;argument(2), keyUsages)) {
-            ASSERT(exec-&gt;hadException());
</del><ins>+    if (state.argumentCount() &gt;= 3) {
+        if (!cryptoKeyUsagesFromJSValue(state, state.argument(2), keyUsages)) {
+            ASSERT(state.hadException());
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(exec, globalObject());
-    DeferredWrapper wrapper(exec, globalObject(), promiseDeferred);
</del><ins>+    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(&amp;state, globalObject());
+    DeferredWrapper wrapper(&amp;state, globalObject(), promiseDeferred);
</ins><span class="cx">     auto successCallback = [wrapper](CryptoKey* key, CryptoKeyPair* keyPair) mutable {
</span><span class="cx">         ASSERT(key || keyPair);
</span><span class="cx">         ASSERT(!key || !keyPair);
</span><span class="lines">@@ -436,14 +436,14 @@
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     algorithm-&gt;generateKey(*parameters, extractable, keyUsages, WTF::move(successCallback), WTF::move(failureCallback), ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return promiseDeferred-&gt;promise();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void importKey(ExecState* exec, CryptoKeyFormat keyFormat, CryptoOperationData data, std::unique_ptr&lt;CryptoAlgorithm&gt; algorithm, std::unique_ptr&lt;CryptoAlgorithmParameters&gt; parameters, bool extractable, CryptoKeyUsage keyUsages, CryptoAlgorithm::KeyCallback callback, CryptoAlgorithm::VoidCallback failureCallback)
</del><ins>+static void importKey(ExecState&amp; state, CryptoKeyFormat keyFormat, CryptoOperationData data, std::unique_ptr&lt;CryptoAlgorithm&gt; algorithm, std::unique_ptr&lt;CryptoAlgorithmParameters&gt; parameters, bool extractable, CryptoKeyUsage keyUsages, CryptoAlgorithm::KeyCallback callback, CryptoAlgorithm::VoidCallback failureCallback)
</ins><span class="cx"> {
</span><span class="cx">     std::unique_ptr&lt;CryptoKeySerialization&gt; keySerialization;
</span><span class="cx">     switch (keyFormat) {
</span><span class="lines">@@ -453,102 +453,102 @@
</span><span class="cx">     case CryptoKeyFormat::JWK: {
</span><span class="cx">         String jwkString = String::fromUTF8(data.first, data.second);
</span><span class="cx">         if (jwkString.isNull()) {
</span><del>-            throwTypeError(exec, &quot;JWK JSON serialization is not valid UTF-8&quot;);
</del><ins>+            throwTypeError(&amp;state, &quot;JWK JSON serialization is not valid UTF-8&quot;);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><del>-        keySerialization = std::make_unique&lt;JSCryptoKeySerializationJWK&gt;(exec, jwkString);
-        if (exec-&gt;hadException())
</del><ins>+        keySerialization = std::make_unique&lt;JSCryptoKeySerializationJWK&gt;(&amp;state, jwkString);
+        if (state.hadException())
</ins><span class="cx">             return;
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     default:
</span><del>-        throwTypeError(exec, &quot;Unsupported key format for import&quot;);
</del><ins>+        throwTypeError(&amp;state, &quot;Unsupported key format for import&quot;);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ASSERT(keySerialization);
</span><span class="cx"> 
</span><span class="cx">     if (!keySerialization-&gt;reconcileAlgorithm(algorithm, parameters)) {
</span><del>-        if (!exec-&gt;hadException())
-            throwTypeError(exec, &quot;Algorithm specified in key is not compatible with one passed to importKey as argument&quot;);
</del><ins>+        if (!state.hadException())
+            throwTypeError(&amp;state, &quot;Algorithm specified in key is not compatible with one passed to importKey as argument&quot;);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    if (exec-&gt;hadException())
</del><ins>+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (!algorithm) {
</span><del>-        throwTypeError(exec, &quot;Neither key nor function argument has crypto algorithm specified&quot;);
</del><ins>+        throwTypeError(&amp;state, &quot;Neither key nor function argument has crypto algorithm specified&quot;);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     ASSERT(parameters);
</span><span class="cx"> 
</span><span class="cx">     keySerialization-&gt;reconcileExtractable(extractable);
</span><del>-    if (exec-&gt;hadException())
</del><ins>+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     keySerialization-&gt;reconcileUsages(keyUsages);
</span><del>-    if (exec-&gt;hadException())
</del><ins>+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     auto keyData = keySerialization-&gt;keyData();
</span><del>-    if (exec-&gt;hadException())
</del><ins>+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     algorithm-&gt;importKey(*parameters, *keyData, extractable, keyUsages, WTF::move(callback), WTF::move(failureCallback), ec);
</span><span class="cx">     if (ec)
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSSubtleCrypto::importKey(ExecState* exec)
</del><ins>+JSValue JSSubtleCrypto::importKey(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 3)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 3)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><span class="cx">     CryptoKeyFormat keyFormat;
</span><del>-    if (!cryptoKeyFormatFromJSValue(exec, exec-&gt;argument(0), keyFormat)) {
-        ASSERT(exec-&gt;hadException());
</del><ins>+    if (!cryptoKeyFormatFromJSValue(state, state.argument(0), keyFormat)) {
+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     CryptoOperationData data;
</span><del>-    if (!cryptoOperationDataFromJSValue(exec, exec-&gt;uncheckedArgument(1), data)) {
-        ASSERT(exec-&gt;hadException());
</del><ins>+    if (!cryptoOperationDataFromJSValue(&amp;state, state.uncheckedArgument(1), data)) {
+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;CryptoAlgorithm&gt; algorithm;
</span><span class="cx">     std::unique_ptr&lt;CryptoAlgorithmParameters&gt; parameters;
</span><del>-    if (!exec-&gt;uncheckedArgument(2).isNull()) {
-        algorithm = createAlgorithmFromJSValue(exec, exec-&gt;uncheckedArgument(2));
</del><ins>+    if (!state.uncheckedArgument(2).isNull()) {
+        algorithm = createAlgorithmFromJSValue(state, state.uncheckedArgument(2));
</ins><span class="cx">         if (!algorithm) {
</span><del>-            ASSERT(exec-&gt;hadException());
</del><ins>+            ASSERT(state.hadException());
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">         }
</span><del>-        parameters = JSCryptoAlgorithmDictionary::createParametersForImportKey(exec, algorithm-&gt;identifier(), exec-&gt;uncheckedArgument(2));
</del><ins>+        parameters = JSCryptoAlgorithmDictionary::createParametersForImportKey(&amp;state, algorithm-&gt;identifier(), state.uncheckedArgument(2));
</ins><span class="cx">         if (!parameters) {
</span><del>-            ASSERT(exec-&gt;hadException());
</del><ins>+            ASSERT(state.hadException());
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     bool extractable = false;
</span><del>-    if (exec-&gt;argumentCount() &gt;= 4) {
-        extractable = exec-&gt;uncheckedArgument(3).toBoolean(exec);
-        if (exec-&gt;hadException())
</del><ins>+    if (state.argumentCount() &gt;= 4) {
+        extractable = state.uncheckedArgument(3).toBoolean(&amp;state);
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     CryptoKeyUsage keyUsages = 0;
</span><del>-    if (exec-&gt;argumentCount() &gt;= 5) {
-        if (!cryptoKeyUsagesFromJSValue(exec, exec-&gt;argument(4), keyUsages)) {
-            ASSERT(exec-&gt;hadException());
</del><ins>+    if (state.argumentCount() &gt;= 5) {
+        if (!cryptoKeyUsagesFromJSValue(state, state.argument(4), keyUsages)) {
+            ASSERT(state.hadException());
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(exec, globalObject());
-    DeferredWrapper wrapper(exec, globalObject(), promiseDeferred);
</del><ins>+    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(&amp;state, globalObject());
+    DeferredWrapper wrapper(&amp;state, globalObject(), promiseDeferred);
</ins><span class="cx">     auto successCallback = [wrapper](CryptoKey&amp; result) mutable {
</span><span class="cx">         wrapper.resolve(&amp;result);
</span><span class="cx">     };
</span><span class="lines">@@ -556,17 +556,17 @@
</span><span class="cx">         wrapper.reject(nullptr);
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    WebCore::importKey(exec, keyFormat, data, WTF::move(algorithm), WTF::move(parameters), extractable, keyUsages, WTF::move(successCallback), WTF::move(failureCallback));
-    if (exec-&gt;hadException())
</del><ins>+    WebCore::importKey(state, keyFormat, data, WTF::move(algorithm), WTF::move(parameters), extractable, keyUsages, WTF::move(successCallback), WTF::move(failureCallback));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">     return promiseDeferred-&gt;promise();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void exportKey(ExecState* exec, CryptoKeyFormat keyFormat, const CryptoKey&amp; key, CryptoAlgorithm::VectorCallback callback, CryptoAlgorithm::VoidCallback failureCallback)
</del><ins>+static void exportKey(ExecState&amp; state, CryptoKeyFormat keyFormat, const CryptoKey&amp; key, CryptoAlgorithm::VectorCallback callback, CryptoAlgorithm::VoidCallback failureCallback)
</ins><span class="cx"> {
</span><span class="cx">     if (!key.extractable()) {
</span><del>-        throwTypeError(exec, &quot;Key is not extractable&quot;);
</del><ins>+        throwTypeError(&amp;state, &quot;Key is not extractable&quot;);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -580,8 +580,8 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     case CryptoKeyFormat::JWK: {
</span><del>-        String result = JSCryptoKeySerializationJWK::serialize(exec, key);
-        if (exec-&gt;hadException())
</del><ins>+        String result = JSCryptoKeySerializationJWK::serialize(&amp;state, key);
+        if (state.hadException())
</ins><span class="cx">             return;
</span><span class="cx">         CString utf8String = result.utf8(StrictConversion);
</span><span class="cx">         Vector&lt;uint8_t&gt; resultBuffer;
</span><span class="lines">@@ -590,28 +590,28 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     default:
</span><del>-        throwTypeError(exec, &quot;Unsupported key format for export&quot;);
</del><ins>+        throwTypeError(&amp;state, &quot;Unsupported key format for export&quot;);
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSSubtleCrypto::exportKey(ExecState* exec)
</del><ins>+JSValue JSSubtleCrypto::exportKey(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 2)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 2)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><span class="cx">     CryptoKeyFormat keyFormat;
</span><del>-    if (!cryptoKeyFormatFromJSValue(exec, exec-&gt;argument(0), keyFormat)) {
-        ASSERT(exec-&gt;hadException());
</del><ins>+    if (!cryptoKeyFormatFromJSValue(state, state.argument(0), keyFormat)) {
+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;CryptoKey&gt; key = JSCryptoKey::toWrapped(exec-&gt;uncheckedArgument(1));
</del><ins>+    RefPtr&lt;CryptoKey&gt; key = JSCryptoKey::toWrapped(state.uncheckedArgument(1));
</ins><span class="cx">     if (!key)
</span><del>-        return throwTypeError(exec);
</del><ins>+        return throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><del>-    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(exec, globalObject());
-    DeferredWrapper wrapper(exec, globalObject(), promiseDeferred);
</del><ins>+    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(&amp;state, globalObject());
+    DeferredWrapper wrapper(&amp;state, globalObject(), promiseDeferred);
</ins><span class="cx">     auto successCallback = [wrapper](const Vector&lt;uint8_t&gt;&amp; result) mutable {
</span><span class="cx">         wrapper.resolve(result);
</span><span class="cx">     };
</span><span class="lines">@@ -619,52 +619,52 @@
</span><span class="cx">         wrapper.reject(nullptr);
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    WebCore::exportKey(exec, keyFormat, *key, WTF::move(successCallback), WTF::move(failureCallback));
-    if (exec-&gt;hadException())
</del><ins>+    WebCore::exportKey(state, keyFormat, *key, WTF::move(successCallback), WTF::move(failureCallback));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">     return promiseDeferred-&gt;promise();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSSubtleCrypto::wrapKey(ExecState* exec)
</del><ins>+JSValue JSSubtleCrypto::wrapKey(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 4)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 4)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><span class="cx">     CryptoKeyFormat keyFormat;
</span><del>-    if (!cryptoKeyFormatFromJSValue(exec, exec-&gt;argument(0), keyFormat)) {
-        ASSERT(exec-&gt;hadException());
</del><ins>+    if (!cryptoKeyFormatFromJSValue(state, state.argument(0), keyFormat)) {
+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;CryptoKey&gt; key = JSCryptoKey::toWrapped(exec-&gt;uncheckedArgument(1));
</del><ins>+    RefPtr&lt;CryptoKey&gt; key = JSCryptoKey::toWrapped(state.uncheckedArgument(1));
</ins><span class="cx">     if (!key)
</span><del>-        return throwTypeError(exec);
</del><ins>+        return throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;CryptoKey&gt; wrappingKey = JSCryptoKey::toWrapped(exec-&gt;uncheckedArgument(2));
</del><ins>+    RefPtr&lt;CryptoKey&gt; wrappingKey = JSCryptoKey::toWrapped(state.uncheckedArgument(2));
</ins><span class="cx">     if (!key)
</span><del>-        return throwTypeError(exec);
</del><ins>+        return throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     if (!wrappingKey-&gt;allows(CryptoKeyUsageWrapKey)) {
</span><span class="cx">         m_impl-&gt;document()-&gt;addConsoleMessage(MessageSource::JS, MessageLevel::Error, ASCIILiteral(&quot;Key usages do not include 'wrapKey'&quot;));
</span><del>-        setDOMException(exec, NOT_SUPPORTED_ERR);
</del><ins>+        setDOMException(&amp;state, NOT_SUPPORTED_ERR);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto algorithm = createAlgorithmFromJSValue(exec, exec-&gt;uncheckedArgument(3));
</del><ins>+    auto algorithm = createAlgorithmFromJSValue(state, state.uncheckedArgument(3));
</ins><span class="cx">     if (!algorithm) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto parameters = JSCryptoAlgorithmDictionary::createParametersForEncrypt(exec, algorithm-&gt;identifier(), exec-&gt;uncheckedArgument(3));
</del><ins>+    auto parameters = JSCryptoAlgorithmDictionary::createParametersForEncrypt(&amp;state, algorithm-&gt;identifier(), state.uncheckedArgument(3));
</ins><span class="cx">     if (!parameters) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(exec, globalObject());
-    DeferredWrapper wrapper(exec, globalObject(), promiseDeferred);
</del><ins>+    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(&amp;state, globalObject());
+    DeferredWrapper wrapper(&amp;state, globalObject(), promiseDeferred);
</ins><span class="cx"> 
</span><span class="cx">     CryptoAlgorithm* algorithmPtr = algorithm.release();
</span><span class="cx">     CryptoAlgorithmParameters* parametersPtr = parameters.release();
</span><span class="lines">@@ -695,90 +695,90 @@
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    WebCore::exportKey(exec, keyFormat, *key, WTF::move(exportSuccessCallback), WTF::move(exportFailureCallback));
</del><ins>+    WebCore::exportKey(state, keyFormat, *key, WTF::move(exportSuccessCallback), WTF::move(exportFailureCallback));
</ins><span class="cx">     if (ec) {
</span><span class="cx">         delete algorithmPtr;
</span><span class="cx">         delete parametersPtr;
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return promiseDeferred-&gt;promise();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSSubtleCrypto::unwrapKey(ExecState* exec)
</del><ins>+JSValue JSSubtleCrypto::unwrapKey(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 5)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 5)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><span class="cx">     CryptoKeyFormat keyFormat;
</span><del>-    if (!cryptoKeyFormatFromJSValue(exec, exec-&gt;argument(0), keyFormat)) {
-        ASSERT(exec-&gt;hadException());
</del><ins>+    if (!cryptoKeyFormatFromJSValue(state, state.argument(0), keyFormat)) {
+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     CryptoOperationData wrappedKeyData;
</span><del>-    if (!cryptoOperationDataFromJSValue(exec, exec-&gt;uncheckedArgument(1), wrappedKeyData)) {
-        ASSERT(exec-&gt;hadException());
</del><ins>+    if (!cryptoOperationDataFromJSValue(&amp;state, state.uncheckedArgument(1), wrappedKeyData)) {
+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;CryptoKey&gt; unwrappingKey = JSCryptoKey::toWrapped(exec-&gt;uncheckedArgument(2));
</del><ins>+    RefPtr&lt;CryptoKey&gt; unwrappingKey = JSCryptoKey::toWrapped(state.uncheckedArgument(2));
</ins><span class="cx">     if (!unwrappingKey)
</span><del>-        return throwTypeError(exec);
</del><ins>+        return throwTypeError(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     if (!unwrappingKey-&gt;allows(CryptoKeyUsageUnwrapKey)) {
</span><span class="cx">         m_impl-&gt;document()-&gt;addConsoleMessage(MessageSource::JS, MessageLevel::Error, ASCIILiteral(&quot;Key usages do not include 'unwrapKey'&quot;));
</span><del>-        setDOMException(exec, NOT_SUPPORTED_ERR);
</del><ins>+        setDOMException(&amp;state, NOT_SUPPORTED_ERR);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;CryptoAlgorithm&gt; unwrapAlgorithm;
</span><span class="cx">     std::unique_ptr&lt;CryptoAlgorithmParameters&gt; unwrapAlgorithmParameters;
</span><del>-    unwrapAlgorithm = createAlgorithmFromJSValue(exec, exec-&gt;uncheckedArgument(3));
</del><ins>+    unwrapAlgorithm = createAlgorithmFromJSValue(state, state.uncheckedArgument(3));
</ins><span class="cx">     if (!unwrapAlgorithm) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><del>-    unwrapAlgorithmParameters = JSCryptoAlgorithmDictionary::createParametersForDecrypt(exec, unwrapAlgorithm-&gt;identifier(), exec-&gt;uncheckedArgument(3));
</del><ins>+    unwrapAlgorithmParameters = JSCryptoAlgorithmDictionary::createParametersForDecrypt(&amp;state, unwrapAlgorithm-&gt;identifier(), state.uncheckedArgument(3));
</ins><span class="cx">     if (!unwrapAlgorithmParameters) {
</span><del>-        ASSERT(exec-&gt;hadException());
</del><ins>+        ASSERT(state.hadException());
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;CryptoAlgorithm&gt; unwrappedKeyAlgorithm;
</span><span class="cx">     std::unique_ptr&lt;CryptoAlgorithmParameters&gt; unwrappedKeyAlgorithmParameters;
</span><del>-    if (!exec-&gt;uncheckedArgument(4).isNull()) {
-        unwrappedKeyAlgorithm = createAlgorithmFromJSValue(exec, exec-&gt;uncheckedArgument(4));
</del><ins>+    if (!state.uncheckedArgument(4).isNull()) {
+        unwrappedKeyAlgorithm = createAlgorithmFromJSValue(state, state.uncheckedArgument(4));
</ins><span class="cx">         if (!unwrappedKeyAlgorithm) {
</span><del>-            ASSERT(exec-&gt;hadException());
</del><ins>+            ASSERT(state.hadException());
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">         }
</span><del>-        unwrappedKeyAlgorithmParameters = JSCryptoAlgorithmDictionary::createParametersForImportKey(exec, unwrappedKeyAlgorithm-&gt;identifier(), exec-&gt;uncheckedArgument(4));
</del><ins>+        unwrappedKeyAlgorithmParameters = JSCryptoAlgorithmDictionary::createParametersForImportKey(&amp;state, unwrappedKeyAlgorithm-&gt;identifier(), state.uncheckedArgument(4));
</ins><span class="cx">         if (!unwrappedKeyAlgorithmParameters) {
</span><del>-            ASSERT(exec-&gt;hadException());
</del><ins>+            ASSERT(state.hadException());
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     bool extractable = false;
</span><del>-    if (exec-&gt;argumentCount() &gt;= 6) {
-        extractable = exec-&gt;uncheckedArgument(5).toBoolean(exec);
-        if (exec-&gt;hadException())
</del><ins>+    if (state.argumentCount() &gt;= 6) {
+        extractable = state.uncheckedArgument(5).toBoolean(&amp;state);
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     CryptoKeyUsage keyUsages = 0;
</span><del>-    if (exec-&gt;argumentCount() &gt;= 7) {
-        if (!cryptoKeyUsagesFromJSValue(exec, exec-&gt;argument(6), keyUsages)) {
-            ASSERT(exec-&gt;hadException());
</del><ins>+    if (state.argumentCount() &gt;= 7) {
+        if (!cryptoKeyUsagesFromJSValue(state, state.argument(6), keyUsages)) {
+            ASSERT(state.hadException());
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(exec, globalObject());
-    DeferredWrapper wrapper(exec, globalObject(), promiseDeferred);
-    Strong&lt;JSDOMGlobalObject&gt; domGlobalObject(exec-&gt;vm(), globalObject());
</del><ins>+    JSPromiseDeferred* promiseDeferred = JSPromiseDeferred::create(&amp;state, globalObject());
+    DeferredWrapper wrapper(&amp;state, globalObject(), promiseDeferred);
+    Strong&lt;JSDOMGlobalObject&gt; domGlobalObject(state.vm(), globalObject());
</ins><span class="cx"> 
</span><span class="cx">     CryptoAlgorithm* unwrappedKeyAlgorithmPtr = unwrappedKeyAlgorithm.release();
</span><span class="cx">     CryptoAlgorithmParameters* unwrappedKeyAlgorithmParametersPtr = unwrappedKeyAlgorithmParameters.release();
</span><span class="lines">@@ -790,11 +790,11 @@
</span><span class="cx">         auto importFailureCallback = [wrapper]() mutable {
</span><span class="cx">             wrapper.reject(nullptr);
</span><span class="cx">         };
</span><del>-        ExecState* exec = domGlobalObject-&gt;globalExec();
-        WebCore::importKey(exec, keyFormat, std::make_pair(result.data(), result.size()), std::unique_ptr&lt;CryptoAlgorithm&gt;(unwrappedKeyAlgorithmPtr), std::unique_ptr&lt;CryptoAlgorithmParameters&gt;(unwrappedKeyAlgorithmParametersPtr), extractable, keyUsages, WTF::move(importSuccessCallback), WTF::move(importFailureCallback));
-        if (exec-&gt;hadException()) {
</del><ins>+        ExecState&amp; state = *domGlobalObject-&gt;globalExec();
+        WebCore::importKey(state, keyFormat, std::make_pair(result.data(), result.size()), std::unique_ptr&lt;CryptoAlgorithm&gt;(unwrappedKeyAlgorithmPtr), std::unique_ptr&lt;CryptoAlgorithmParameters&gt;(unwrappedKeyAlgorithmParametersPtr), extractable, keyUsages, WTF::move(importSuccessCallback), WTF::move(importFailureCallback));
+        if (state.hadException()) {
</ins><span class="cx">             // FIXME: Report exception details to console, and possibly to calling script once there is a standardized way to pass errors to WebCrypto promise reject functions.
</span><del>-            exec-&gt;clearException();
</del><ins>+            state.clearException();
</ins><span class="cx">             importFailureCallback();
</span><span class="cx">         }
</span><span class="cx">     };
</span><span class="lines">@@ -810,7 +810,7 @@
</span><span class="cx">     if (ec) {
</span><span class="cx">         delete unwrappedKeyAlgorithmPtr;
</span><span class="cx">         delete unwrappedKeyAlgorithmParametersPtr;
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSTextTrackCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSTextTrackCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSTextTrackCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSTextTrackCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -41,28 +41,28 @@
</span><span class="cx">     visitor.addOpaqueRoot(root(&amp;impl()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSTextTrack::setKind(ExecState* exec, JSValue value)
</del><ins>+void JSTextTrack::setKind(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(MEDIA_SOURCE)
</span><del>-    auto&amp; string = value.toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    auto&amp; string = value.toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx">     impl().setKind(string);
</span><span class="cx"> #else
</span><del>-    UNUSED_PARAM(exec);
</del><ins>+    UNUSED_PARAM(state);
</ins><span class="cx">     UNUSED_PARAM(value);
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSTextTrack::setLanguage(ExecState* exec, JSValue value)
</del><ins>+void JSTextTrack::setLanguage(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(MEDIA_SOURCE)
</span><del>-    auto&amp; string = value.toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    auto&amp; string = value.toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx">     impl().setLanguage(string);
</span><span class="cx"> #else
</span><del>-    UNUSED_PARAM(exec);
</del><ins>+    UNUSED_PARAM(state);
</ins><span class="cx">     UNUSED_PARAM(value);
</span><span class="cx"> #endif
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSTrackEventCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSTrackEventCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSTrackEventCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSTrackEventCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -36,13 +36,13 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSTrackEvent::track(ExecState* exec) const
</del><ins>+JSValue JSTrackEvent::track(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     TrackBase* track = impl().track();
</span><span class="cx">     if (!track)
</span><span class="cx">         return jsNull();
</span><span class="cx"> 
</span><del>-    return toJS(exec, globalObject(), track);
</del><ins>+    return toJS(&amp;state, globalObject(), track);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSVideoTrackCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSVideoTrackCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSVideoTrackCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSVideoTrackCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -40,28 +40,28 @@
</span><span class="cx">     visitor.addOpaqueRoot(root(&amp;impl()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSVideoTrack::setKind(ExecState* exec, JSValue value)
</del><ins>+void JSVideoTrack::setKind(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(MEDIA_SOURCE)
</span><del>-    auto&amp; string = value.toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    auto&amp; string = value.toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx">     impl().setKind(string);
</span><span class="cx"> #else
</span><del>-    UNUSED_PARAM(exec);
</del><ins>+    UNUSED_PARAM(state);
</ins><span class="cx">     UNUSED_PARAM(value);
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSVideoTrack::setLanguage(ExecState* exec, JSValue value)
</del><ins>+void JSVideoTrack::setLanguage(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(MEDIA_SOURCE)
</span><del>-    auto&amp; string = value.toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    auto&amp; string = value.toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return;
</span><span class="cx">     impl().setLanguage(string);
</span><span class="cx"> #else
</span><del>-    UNUSED_PARAM(exec);
</del><ins>+    UNUSED_PARAM(state);
</ins><span class="cx">     UNUSED_PARAM(value);
</span><span class="cx"> #endif
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSWebGLRenderingContextBaseCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSWebGLRenderingContextBaseCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSWebGLRenderingContextBaseCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSWebGLRenderingContextBaseCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -168,18 +168,18 @@
</span><span class="cx">     kBuffer, kRenderbuffer, kTexture, kVertexAttrib
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-static JSValue getObjectParameter(JSWebGLRenderingContextBase* obj, ExecState* exec, ObjectType objectType)
</del><ins>+static JSValue getObjectParameter(JSWebGLRenderingContextBase* obj, ExecState&amp; state, ObjectType objectType)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() != 2)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() != 2)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx">     
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     WebGLRenderingContextBase&amp; context = obj-&gt;impl();
</span><del>-    unsigned target = exec-&gt;uncheckedArgument(0).toInt32(exec);
-    if (exec-&gt;hadException())
</del><ins>+    unsigned target = state.uncheckedArgument(0).toInt32(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><del>-    unsigned pname = exec-&gt;uncheckedArgument(1).toInt32(exec);
-    if (exec-&gt;hadException())
</del><ins>+    unsigned pname = state.uncheckedArgument(1).toInt32(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     WebGLGetInfo info;
</span><span class="cx">     switch (objectType) {
</span><span class="lines">@@ -201,10 +201,10 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><del>-    return toJS(exec, obj-&gt;globalObject(), info);
</del><ins>+    return toJS(&amp;state, obj-&gt;globalObject(), info);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> enum WhichProgramCall {
</span><span class="lines">@@ -268,137 +268,137 @@
</span><span class="cx">     visitor.addOpaqueRoot(&amp;impl());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWebGLRenderingContextBase::getAttachedShaders(ExecState* exec)
</del><ins>+JSValue JSWebGLRenderingContextBase::getAttachedShaders(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 1)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 1)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     WebGLRenderingContextBase&amp; context = impl();
</span><del>-    WebGLProgram* program = JSWebGLProgram::toWrapped(exec-&gt;uncheckedArgument(0));
-    if (!program &amp;&amp; !exec-&gt;uncheckedArgument(0).isUndefinedOrNull())
-        return throwTypeError(exec);
</del><ins>+    WebGLProgram* program = JSWebGLProgram::toWrapped(state.uncheckedArgument(0));
+    if (!program &amp;&amp; !state.uncheckedArgument(0).isUndefinedOrNull())
+        return throwTypeError(&amp;state);
</ins><span class="cx">     Vector&lt;RefPtr&lt;WebGLShader&gt;&gt; shaders;
</span><span class="cx">     bool succeed = context.getAttachedShaders(program, shaders, ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsNull();
</span><span class="cx">     }
</span><span class="cx">     if (!succeed)
</span><span class="cx">         return jsNull();
</span><span class="cx">     JSC::MarkedArgumentBuffer list;
</span><span class="cx">     for (size_t ii = 0; ii &lt; shaders.size(); ++ii)
</span><del>-        list.append(toJS(exec, globalObject(), shaders[ii].get()));
-    return constructArray(exec, 0, globalObject(), list);
</del><ins>+        list.append(toJS(&amp;state, globalObject(), shaders[ii].get()));
+    return constructArray(&amp;state, 0, globalObject(), list);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWebGLRenderingContextBase::getExtension(ExecState* exec)
</del><ins>+JSValue JSWebGLRenderingContextBase::getExtension(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 1)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 1)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx">     
</span><span class="cx">     WebGLRenderingContextBase&amp; context = impl();
</span><del>-    const String name = exec-&gt;uncheckedArgument(0).toString(exec)-&gt;value(exec);
-    if (exec-&gt;hadException())
</del><ins>+    const String name = state.uncheckedArgument(0).toString(&amp;state)-&gt;value(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     WebGLExtension* extension = context.getExtension(name);
</span><del>-    return toJS(exec, globalObject(), extension);
</del><ins>+    return toJS(&amp;state, globalObject(), extension);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWebGLRenderingContextBase::getBufferParameter(ExecState* exec)
</del><ins>+JSValue JSWebGLRenderingContextBase::getBufferParameter(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return getObjectParameter(this, exec, kBuffer);
</del><ins>+    return getObjectParameter(this, state, kBuffer);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWebGLRenderingContextBase::getFramebufferAttachmentParameter(ExecState* exec)
</del><ins>+JSValue JSWebGLRenderingContextBase::getFramebufferAttachmentParameter(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() != 3)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() != 3)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx">     
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     WebGLRenderingContextBase&amp; context = impl();
</span><del>-    unsigned target = exec-&gt;uncheckedArgument(0).toInt32(exec);
-    if (exec-&gt;hadException())
</del><ins>+    unsigned target = state.uncheckedArgument(0).toInt32(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><del>-    unsigned attachment = exec-&gt;uncheckedArgument(1).toInt32(exec);
-    if (exec-&gt;hadException())
</del><ins>+    unsigned attachment = state.uncheckedArgument(1).toInt32(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><del>-    unsigned pname = exec-&gt;uncheckedArgument(2).toInt32(exec);
-    if (exec-&gt;hadException())
</del><ins>+    unsigned pname = state.uncheckedArgument(2).toInt32(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     WebGLGetInfo info = context.getFramebufferAttachmentParameter(target, attachment, pname, ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><del>-    return toJS(exec, globalObject(), info);
</del><ins>+    return toJS(&amp;state, globalObject(), info);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWebGLRenderingContextBase::getParameter(ExecState* exec)
</del><ins>+JSValue JSWebGLRenderingContextBase::getParameter(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() != 1)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() != 1)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx">     
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     WebGLRenderingContextBase&amp; context = impl();
</span><del>-    unsigned pname = exec-&gt;uncheckedArgument(0).toInt32(exec);
-    if (exec-&gt;hadException())
</del><ins>+    unsigned pname = state.uncheckedArgument(0).toInt32(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     WebGLGetInfo info = context.getParameter(pname, ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><del>-    return toJS(exec, globalObject(), info);
</del><ins>+    return toJS(&amp;state, globalObject(), info);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWebGLRenderingContextBase::getProgramParameter(ExecState* exec)
</del><ins>+JSValue JSWebGLRenderingContextBase::getProgramParameter(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() != 2)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() != 2)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx">     
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     WebGLRenderingContextBase&amp; context = impl();
</span><del>-    WebGLProgram* program = JSWebGLProgram::toWrapped(exec-&gt;uncheckedArgument(0));
-    if (!program &amp;&amp; !exec-&gt;uncheckedArgument(0).isUndefinedOrNull())
-        return throwTypeError(exec);
-    unsigned pname = exec-&gt;uncheckedArgument(1).toInt32(exec);
-    if (exec-&gt;hadException())
</del><ins>+    WebGLProgram* program = JSWebGLProgram::toWrapped(state.uncheckedArgument(0));
+    if (!program &amp;&amp; !state.uncheckedArgument(0).isUndefinedOrNull())
+        return throwTypeError(&amp;state);
+    unsigned pname = state.uncheckedArgument(1).toInt32(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     WebGLGetInfo info = context.getProgramParameter(program, pname, ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><del>-    return toJS(exec, globalObject(), info);
</del><ins>+    return toJS(&amp;state, globalObject(), info);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWebGLRenderingContextBase::getRenderbufferParameter(ExecState* exec)
</del><ins>+JSValue JSWebGLRenderingContextBase::getRenderbufferParameter(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return getObjectParameter(this, exec, kRenderbuffer);
</del><ins>+    return getObjectParameter(this, state, kRenderbuffer);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWebGLRenderingContextBase::getShaderParameter(ExecState* exec)
</del><ins>+JSValue JSWebGLRenderingContextBase::getShaderParameter(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() != 2)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() != 2)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx">     
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     WebGLRenderingContextBase&amp; context = impl();
</span><del>-    if (!exec-&gt;uncheckedArgument(0).isUndefinedOrNull() &amp;&amp; !exec-&gt;uncheckedArgument(0).inherits(JSWebGLShader::info()))
-        return throwTypeError(exec);
-    WebGLShader* shader = JSWebGLShader::toWrapped(exec-&gt;uncheckedArgument(0));
-    unsigned pname = exec-&gt;uncheckedArgument(1).toInt32(exec);
-    if (exec-&gt;hadException())
</del><ins>+    if (!state.uncheckedArgument(0).isUndefinedOrNull() &amp;&amp; !state.uncheckedArgument(0).inherits(JSWebGLShader::info()))
+        return throwTypeError(&amp;state);
+    WebGLShader* shader = JSWebGLShader::toWrapped(state.uncheckedArgument(0));
+    unsigned pname = state.uncheckedArgument(1).toInt32(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     WebGLGetInfo info = context.getShaderParameter(shader, pname, ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><del>-    return toJS(exec, globalObject(), info);
</del><ins>+    return toJS(&amp;state, globalObject(), info);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWebGLRenderingContextBase::getSupportedExtensions(ExecState* exec)
</del><ins>+JSValue JSWebGLRenderingContextBase::getSupportedExtensions(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     WebGLRenderingContextBase&amp; context = impl();
</span><span class="cx">     if (context.isContextLost())
</span><span class="lines">@@ -406,59 +406,59 @@
</span><span class="cx">     Vector&lt;String&gt; value = context.getSupportedExtensions();
</span><span class="cx">     MarkedArgumentBuffer list;
</span><span class="cx">     for (size_t ii = 0; ii &lt; value.size(); ++ii)
</span><del>-        list.append(jsStringWithCache(exec, value[ii]));
-    return constructArray(exec, 0, globalObject(), list);
</del><ins>+        list.append(jsStringWithCache(&amp;state, value[ii]));
+    return constructArray(&amp;state, 0, globalObject(), list);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWebGLRenderingContextBase::getTexParameter(ExecState* exec)
</del><ins>+JSValue JSWebGLRenderingContextBase::getTexParameter(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return getObjectParameter(this, exec, kTexture);
</del><ins>+    return getObjectParameter(this, state, kTexture);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWebGLRenderingContextBase::getUniform(ExecState* exec)
</del><ins>+JSValue JSWebGLRenderingContextBase::getUniform(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() != 2)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() != 2)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx">     
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     WebGLRenderingContextBase&amp; context = impl();
</span><del>-    WebGLProgram* program = JSWebGLProgram::toWrapped(exec-&gt;uncheckedArgument(0));
-    if (!program &amp;&amp; !exec-&gt;uncheckedArgument(0).isUndefinedOrNull())
-        return throwTypeError(exec);
-    WebGLUniformLocation* location = JSWebGLUniformLocation::toWrapped(exec-&gt;uncheckedArgument(1));
-    if (!location &amp;&amp; !exec-&gt;uncheckedArgument(1).isUndefinedOrNull())
-        return throwTypeError(exec);
</del><ins>+    WebGLProgram* program = JSWebGLProgram::toWrapped(state.uncheckedArgument(0));
+    if (!program &amp;&amp; !state.uncheckedArgument(0).isUndefinedOrNull())
+        return throwTypeError(&amp;state);
+    WebGLUniformLocation* location = JSWebGLUniformLocation::toWrapped(state.uncheckedArgument(1));
+    if (!location &amp;&amp; !state.uncheckedArgument(1).isUndefinedOrNull())
+        return throwTypeError(&amp;state);
</ins><span class="cx">     WebGLGetInfo info = context.getUniform(program, location, ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><del>-    return toJS(exec, globalObject(), info);
</del><ins>+    return toJS(&amp;state, globalObject(), info);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWebGLRenderingContextBase::getVertexAttrib(ExecState* exec)
</del><ins>+JSValue JSWebGLRenderingContextBase::getVertexAttrib(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return getObjectParameter(this, exec, kVertexAttrib);
</del><ins>+    return getObjectParameter(this, state, kVertexAttrib);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename T, size_t inlineCapacity&gt;
</span><del>-bool toVector(JSC::ExecState* exec, JSC::JSValue value, Vector&lt;T, inlineCapacity&gt;&amp; vector)
</del><ins>+bool toVector(JSC::ExecState&amp; state, JSC::JSValue value, Vector&lt;T, inlineCapacity&gt;&amp; vector)
</ins><span class="cx"> {
</span><span class="cx">     if (!value.isObject())
</span><span class="cx">         return false;
</span><span class="cx">     
</span><span class="cx">     JSC::JSObject* object = asObject(value);
</span><del>-    int32_t length = object-&gt;get(exec, exec-&gt;vm().propertyNames-&gt;length).toInt32(exec);
</del><ins>+    int32_t length = object-&gt;get(&amp;state, state.vm().propertyNames-&gt;length).toInt32(&amp;state);
</ins><span class="cx">     
</span><span class="cx">     if (!vector.tryReserveCapacity(length))
</span><span class="cx">         return false;
</span><span class="cx">     vector.resize(length);
</span><span class="cx">     
</span><span class="cx">     for (int32_t i = 0; i &lt; length; ++i) {
</span><del>-        JSC::JSValue v = object-&gt;get(exec, i);
-        if (exec-&gt;hadException())
</del><ins>+        JSC::JSValue v = object-&gt;get(&amp;state, i);
+        if (state.hadException())
</ins><span class="cx">             return false;
</span><del>-        vector[i] = static_cast&lt;T&gt;(v.toNumber(exec));
</del><ins>+        vector[i] = static_cast&lt;T&gt;(v.toNumber(&amp;state));
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     return true;
</span><span class="lines">@@ -486,26 +486,26 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static JSC::JSValue dataFunctionf(DataFunctionToCall f, JSC::ExecState* exec, WebGLRenderingContextBase&amp; context)
</del><ins>+static JSC::JSValue dataFunctionf(DataFunctionToCall f, JSC::ExecState&amp; state, WebGLRenderingContextBase&amp; context)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() != 2)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() != 2)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx">     
</span><span class="cx">     WebGLUniformLocation* location = 0;
</span><span class="cx">     long index = -1;
</span><span class="cx">     
</span><span class="cx">     if (functionForUniform(f)) {
</span><del>-        location = JSWebGLUniformLocation::toWrapped(exec-&gt;uncheckedArgument(0));
-        if (!location &amp;&amp; !exec-&gt;uncheckedArgument(0).isUndefinedOrNull())
-            return throwTypeError(exec);
</del><ins>+        location = JSWebGLUniformLocation::toWrapped(state.uncheckedArgument(0));
+        if (!location &amp;&amp; !state.uncheckedArgument(0).isUndefinedOrNull())
+            return throwTypeError(&amp;state);
</ins><span class="cx">     } else
</span><del>-        index = exec-&gt;uncheckedArgument(0).toInt32(exec);
</del><ins>+        index = state.uncheckedArgument(0).toInt32(&amp;state);
</ins><span class="cx">     
</span><del>-    if (exec-&gt;hadException())
</del><ins>+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     
</span><del>-    RefPtr&lt;Float32Array&gt; webGLArray = toFloat32Array(exec-&gt;uncheckedArgument(1));
-    if (exec-&gt;hadException())    
</del><ins>+    RefPtr&lt;Float32Array&gt; webGLArray = toFloat32Array(state.uncheckedArgument(1));
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="lines">@@ -537,13 +537,13 @@
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     Vector&lt;float, 64&gt; array;
</span><del>-    if (!toVector(exec, exec-&gt;uncheckedArgument(1), array))
-        return throwTypeError(exec);
</del><ins>+    if (!toVector(state, state.uncheckedArgument(1), array))
+        return throwTypeError(&amp;state);
</ins><span class="cx">     
</span><span class="cx">     switch (f) {
</span><span class="cx">     case f_uniform1v:
</span><span class="lines">@@ -572,20 +572,20 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    setDOMException(exec, ec);
</del><ins>+    setDOMException(&amp;state, ec);
</ins><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static JSC::JSValue dataFunctioni(DataFunctionToCall f, JSC::ExecState* exec, WebGLRenderingContextBase&amp; context)
</del><ins>+static JSC::JSValue dataFunctioni(DataFunctionToCall f, JSC::ExecState&amp; state, WebGLRenderingContextBase&amp; context)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() != 2)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() != 2)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx">     
</span><del>-    WebGLUniformLocation* location = JSWebGLUniformLocation::toWrapped(exec-&gt;uncheckedArgument(0));
-    if (!location &amp;&amp; !exec-&gt;uncheckedArgument(0).isUndefinedOrNull())
-        return throwTypeError(exec);
</del><ins>+    WebGLUniformLocation* location = JSWebGLUniformLocation::toWrapped(state.uncheckedArgument(0));
+    if (!location &amp;&amp; !state.uncheckedArgument(0).isUndefinedOrNull())
+        return throwTypeError(&amp;state);
</ins><span class="cx">     
</span><del>-    RefPtr&lt;Int32Array&gt; webGLArray = toInt32Array(exec-&gt;uncheckedArgument(1));
</del><ins>+    RefPtr&lt;Int32Array&gt; webGLArray = toInt32Array(state.uncheckedArgument(1));
</ins><span class="cx">     
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     if (webGLArray) {
</span><span class="lines">@@ -606,14 +606,14 @@
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     
</span><span class="cx">     Vector&lt;int, 64&gt; array;
</span><del>-    if (!toVector(exec, exec-&gt;uncheckedArgument(1), array))
-        return throwTypeError(exec);
</del><ins>+    if (!toVector(state, state.uncheckedArgument(1), array))
+        return throwTypeError(&amp;state);
</ins><span class="cx">     
</span><span class="cx">     switch (f) {
</span><span class="cx">     case f_uniform1v:
</span><span class="lines">@@ -632,24 +632,24 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    setDOMException(exec, ec);
</del><ins>+    setDOMException(&amp;state, ec);
</ins><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static JSC::JSValue dataFunctionMatrix(DataFunctionMatrixToCall f, JSC::ExecState* exec, WebGLRenderingContextBase&amp; context)
</del><ins>+static JSC::JSValue dataFunctionMatrix(DataFunctionMatrixToCall f, JSC::ExecState&amp; state, WebGLRenderingContextBase&amp; context)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() != 3)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() != 3)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx">     
</span><del>-    WebGLUniformLocation* location = JSWebGLUniformLocation::toWrapped(exec-&gt;uncheckedArgument(0));
-    if (!location &amp;&amp; !exec-&gt;uncheckedArgument(0).isUndefinedOrNull())
-        return throwTypeError(exec);
</del><ins>+    WebGLUniformLocation* location = JSWebGLUniformLocation::toWrapped(state.uncheckedArgument(0));
+    if (!location &amp;&amp; !state.uncheckedArgument(0).isUndefinedOrNull())
+        return throwTypeError(&amp;state);
</ins><span class="cx">     
</span><del>-    bool transpose = exec-&gt;uncheckedArgument(1).toBoolean(exec);
-    if (exec-&gt;hadException())    
</del><ins>+    bool transpose = state.uncheckedArgument(1).toBoolean(&amp;state);
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     
</span><del>-    RefPtr&lt;Float32Array&gt; webGLArray = toFloat32Array(exec-&gt;uncheckedArgument(2));
</del><ins>+    RefPtr&lt;Float32Array&gt; webGLArray = toFloat32Array(state.uncheckedArgument(2));
</ins><span class="cx">     
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     if (webGLArray) {
</span><span class="lines">@@ -665,13 +665,13 @@
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     Vector&lt;float, 64&gt; array;
</span><del>-    if (!toVector(exec, exec-&gt;uncheckedArgument(2), array))
-        return throwTypeError(exec);
</del><ins>+    if (!toVector(state, state.uncheckedArgument(2), array))
+        return throwTypeError(&amp;state);
</ins><span class="cx">     
</span><span class="cx">     switch (f) {
</span><span class="cx">     case f_uniformMatrix2fv:
</span><span class="lines">@@ -685,83 +685,83 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    setDOMException(exec, ec);
</del><ins>+    setDOMException(&amp;state, ec);
</ins><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::uniform1fv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::uniform1fv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctionf(f_uniform1v, exec, impl());
</del><ins>+    return dataFunctionf(f_uniform1v, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::uniform1iv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::uniform1iv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctioni(f_uniform1v, exec, impl());
</del><ins>+    return dataFunctioni(f_uniform1v, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::uniform2fv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::uniform2fv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctionf(f_uniform2v, exec, impl());
</del><ins>+    return dataFunctionf(f_uniform2v, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::uniform2iv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::uniform2iv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctioni(f_uniform2v, exec, impl());
</del><ins>+    return dataFunctioni(f_uniform2v, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::uniform3fv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::uniform3fv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctionf(f_uniform3v, exec, impl());
</del><ins>+    return dataFunctionf(f_uniform3v, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::uniform3iv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::uniform3iv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctioni(f_uniform3v, exec, impl());
</del><ins>+    return dataFunctioni(f_uniform3v, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::uniform4fv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::uniform4fv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctionf(f_uniform4v, exec, impl());
</del><ins>+    return dataFunctionf(f_uniform4v, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::uniform4iv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::uniform4iv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctioni(f_uniform4v, exec, impl());
</del><ins>+    return dataFunctioni(f_uniform4v, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::uniformMatrix2fv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::uniformMatrix2fv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctionMatrix(f_uniformMatrix2fv, exec, impl());
</del><ins>+    return dataFunctionMatrix(f_uniformMatrix2fv, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::uniformMatrix3fv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::uniformMatrix3fv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctionMatrix(f_uniformMatrix3fv, exec, impl());
</del><ins>+    return dataFunctionMatrix(f_uniformMatrix3fv, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::uniformMatrix4fv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::uniformMatrix4fv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctionMatrix(f_uniformMatrix4fv, exec, impl());
</del><ins>+    return dataFunctionMatrix(f_uniformMatrix4fv, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::vertexAttrib1fv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::vertexAttrib1fv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctionf(f_vertexAttrib1v, exec, impl());
</del><ins>+    return dataFunctionf(f_vertexAttrib1v, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::vertexAttrib2fv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::vertexAttrib2fv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctionf(f_vertexAttrib2v, exec, impl());
</del><ins>+    return dataFunctionf(f_vertexAttrib2v, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::vertexAttrib3fv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::vertexAttrib3fv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctionf(f_vertexAttrib3v, exec, impl());
</del><ins>+    return dataFunctionf(f_vertexAttrib3v, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWebGLRenderingContextBase::vertexAttrib4fv(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWebGLRenderingContextBase::vertexAttrib4fv(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return dataFunctionf(f_vertexAttrib4v, exec, impl());
</del><ins>+    return dataFunctionf(f_vertexAttrib4v, state, impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSWorkerCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSWorkerCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSWorkerCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSWorkerCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -40,9 +40,9 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSC::JSValue JSWorker::postMessage(JSC::ExecState* exec)
</del><ins>+JSC::JSValue JSWorker::postMessage(JSC::ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    return handlePostMessage(exec, &amp;impl());
</del><ins>+    return handlePostMessage(state, &amp;impl());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL constructJSWorker(ExecState* exec)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSWorkerGlobalScopeCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -67,43 +67,43 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWorkerGlobalScope::importScripts(ExecState* exec)
</del><ins>+JSValue JSWorkerGlobalScope::importScripts(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (!exec-&gt;argumentCount())
</del><ins>+    if (!state.argumentCount())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;String&gt; urls;
</span><del>-    for (unsigned i = 0; i &lt; exec-&gt;argumentCount(); i++) {
-        urls.append(exec-&gt;uncheckedArgument(i).toString(exec)-&gt;value(exec));
-        if (exec-&gt;hadException())
</del><ins>+    for (unsigned i = 0; i &lt; state.argumentCount(); ++i) {
+        urls.append(state.uncheckedArgument(i).toString(&amp;state)-&gt;value(&amp;state));
+        if (state.hadException())
</ins><span class="cx">             return jsUndefined();
</span><span class="cx">     }
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx"> 
</span><span class="cx">     impl().importScripts(urls, ec);
</span><del>-    setDOMException(exec, ec);
</del><ins>+    setDOMException(&amp;state, ec);
</ins><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWorkerGlobalScope::setTimeout(ExecState* exec)
</del><ins>+JSValue JSWorkerGlobalScope::setTimeout(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    std::unique_ptr&lt;ScheduledAction&gt; action = ScheduledAction::create(exec, globalObject()-&gt;world(), impl().contentSecurityPolicy());
-    if (exec-&gt;hadException())
</del><ins>+    std::unique_ptr&lt;ScheduledAction&gt; action = ScheduledAction::create(&amp;state, globalObject()-&gt;world(), impl().contentSecurityPolicy());
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     if (!action)
</span><span class="cx">         return jsNumber(0);
</span><del>-    int delay = exec-&gt;argument(1).toInt32(exec);
</del><ins>+    int delay = state.argument(1).toInt32(&amp;state);
</ins><span class="cx">     return jsNumber(impl().setTimeout(WTF::move(action), delay));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSWorkerGlobalScope::setInterval(ExecState* exec)
</del><ins>+JSValue JSWorkerGlobalScope::setInterval(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    std::unique_ptr&lt;ScheduledAction&gt; action = ScheduledAction::create(exec, globalObject()-&gt;world(), impl().contentSecurityPolicy());
-    if (exec-&gt;hadException())
</del><ins>+    std::unique_ptr&lt;ScheduledAction&gt; action = ScheduledAction::create(&amp;state, globalObject()-&gt;world(), impl().contentSecurityPolicy());
+    if (state.hadException())
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     if (!action)
</span><span class="cx">         return jsNumber(0);
</span><del>-    int delay = exec-&gt;argument(1).toInt32(exec);
</del><ins>+    int delay = state.argument(1).toInt32(&amp;state);
</ins><span class="cx">     return jsNumber(impl().setInterval(WTF::move(action), delay));
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSXMLHttpRequestCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -72,22 +72,22 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Custom functions
</span><del>-JSValue JSXMLHttpRequest::open(ExecState* exec)
</del><ins>+JSValue JSXMLHttpRequest::open(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argumentCount() &lt; 2)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
</del><ins>+    if (state.argumentCount() &lt; 2)
+        return state.vm().throwException(&amp;state, createNotEnoughArgumentsError(&amp;state));
</ins><span class="cx"> 
</span><del>-    const URL&amp; url = impl().scriptExecutionContext()-&gt;completeURL(exec-&gt;uncheckedArgument(1).toString(exec)-&gt;value(exec));
-    String method = exec-&gt;uncheckedArgument(0).toString(exec)-&gt;value(exec);
</del><ins>+    const URL&amp; url = impl().scriptExecutionContext()-&gt;completeURL(state.uncheckedArgument(1).toString(&amp;state)-&gt;value(&amp;state));
+    String method = state.uncheckedArgument(0).toString(&amp;state)-&gt;value(&amp;state);
</ins><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    if (exec-&gt;argumentCount() &gt;= 3) {
-        bool async = exec-&gt;uncheckedArgument(2).toBoolean(exec);
-        if (!exec-&gt;argument(3).isUndefined()) {
-            String user = valueToStringWithNullCheck(exec, exec-&gt;uncheckedArgument(3));
</del><ins>+    if (state.argumentCount() &gt;= 3) {
+        bool async = state.uncheckedArgument(2).toBoolean(&amp;state);
+        if (!state.argument(3).isUndefined()) {
+            String user = valueToStringWithNullCheck(&amp;state, state.uncheckedArgument(3));
</ins><span class="cx"> 
</span><del>-            if (!exec-&gt;argument(4).isUndefined()) {
-                String password = valueToStringWithNullCheck(exec, exec-&gt;uncheckedArgument(4));
</del><ins>+            if (!state.argument(4).isUndefined()) {
+                String password = valueToStringWithNullCheck(&amp;state, state.uncheckedArgument(4));
</ins><span class="cx">                 impl().open(method, url, async, user, password, ec);
</span><span class="cx">             } else
</span><span class="cx">                 impl().open(method, url, async, user, ec);
</span><span class="lines">@@ -96,7 +96,7 @@
</span><span class="cx">     } else
</span><span class="cx">         impl().open(method, url, ec);
</span><span class="cx"> 
</span><del>-    setDOMException(exec, ec);
</del><ins>+    setDOMException(&amp;state, ec);
</ins><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -136,12 +136,12 @@
</span><span class="cx">     String m_url;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-JSValue JSXMLHttpRequest::send(ExecState* exec)
</del><ins>+JSValue JSXMLHttpRequest::send(ExecState&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     InspectorInstrumentation::willSendXMLHttpRequest(impl().scriptExecutionContext(), impl().url());
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    JSValue val = exec-&gt;argument(0);
</del><ins>+    JSValue val = state.argument(0);
</ins><span class="cx">     if (val.isUndefinedOrNull())
</span><span class="cx">         impl().send(ec);
</span><span class="cx">     else if (val.inherits(JSDocument::info()))
</span><span class="lines">@@ -156,28 +156,28 @@
</span><span class="cx">         RefPtr&lt;ArrayBufferView&gt; view = toArrayBufferView(val);
</span><span class="cx">         impl().send(view.get(), ec);
</span><span class="cx">     } else
</span><del>-        impl().send(val.toString(exec)-&gt;value(exec), ec);
</del><ins>+        impl().send(val.toString(&amp;state)-&gt;value(&amp;state), ec);
</ins><span class="cx"> 
</span><span class="cx">     SendFunctor functor;
</span><del>-    exec-&gt;iterate(functor);
</del><ins>+    state.iterate(functor);
</ins><span class="cx">     impl().setLastSendLineAndColumnNumber(functor.line(), functor.column());
</span><span class="cx">     impl().setLastSendURL(functor.url());
</span><del>-    setDOMException(exec, ec);
</del><ins>+    setDOMException(&amp;state, ec);
</ins><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSXMLHttpRequest::responseText(ExecState* exec) const
</del><ins>+JSValue JSXMLHttpRequest::responseText(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     String text = impl().responseText(ec);
</span><span class="cx">     if (ec) {
</span><del>-        setDOMException(exec, ec);
</del><ins>+        setDOMException(&amp;state, ec);
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><del>-    return jsOwnedStringOrNull(exec, text);
</del><ins>+    return jsOwnedStringOrNull(&amp;state, text);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSXMLHttpRequest::response(ExecState* exec) const
</del><ins>+JSValue JSXMLHttpRequest::response(ExecState&amp; state) const
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: Use CachedAttribute for other types than JSON as well.
</span><span class="cx">     if (m_response &amp;&amp; impl().responseCacheIsValid())
</span><span class="lines">@@ -189,15 +189,15 @@
</span><span class="cx">     switch (impl().responseTypeCode()) {
</span><span class="cx">     case XMLHttpRequest::ResponseTypeDefault:
</span><span class="cx">     case XMLHttpRequest::ResponseTypeText:
</span><del>-        return responseText(exec);
</del><ins>+        return responseText(state);
</ins><span class="cx"> 
</span><span class="cx">     case XMLHttpRequest::ResponseTypeJSON:
</span><span class="cx">         {
</span><del>-            JSValue value = JSONParse(exec, impl().responseTextIgnoringResponseType());
</del><ins>+            JSValue value = JSONParse(&amp;state, impl().responseTextIgnoringResponseType());
</ins><span class="cx">             if (!value)
</span><span class="cx">                 value = jsNull();
</span><span class="cx">             JSXMLHttpRequest* jsRequest = const_cast&lt;JSXMLHttpRequest*&gt;(this);
</span><del>-            jsRequest-&gt;m_response.set(exec-&gt;vm(), jsRequest, value);
</del><ins>+            jsRequest-&gt;m_response.set(state.vm(), jsRequest, value);
</ins><span class="cx"> 
</span><span class="cx">             impl().didCacheResponseJSON();
</span><span class="cx"> 
</span><span class="lines">@@ -209,17 +209,17 @@
</span><span class="cx">             ExceptionCode ec = 0;
</span><span class="cx">             Document* document = impl().responseXML(ec);
</span><span class="cx">             if (ec) {
</span><del>-                setDOMException(exec, ec);
</del><ins>+                setDOMException(&amp;state, ec);
</ins><span class="cx">                 return jsUndefined();
</span><span class="cx">             }
</span><del>-            return toJS(exec, globalObject(), document);
</del><ins>+            return toJS(&amp;state, globalObject(), document);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">     case XMLHttpRequest::ResponseTypeBlob:
</span><del>-        return toJS(exec, globalObject(), impl().responseBlob());
</del><ins>+        return toJS(&amp;state, globalObject(), impl().responseBlob());
</ins><span class="cx"> 
</span><span class="cx">     case XMLHttpRequest::ResponseTypeArrayBuffer:
</span><del>-        return toJS(exec, globalObject(), impl().responseArrayBuffer());
</del><ins>+        return toJS(&amp;state, globalObject(), impl().responseArrayBuffer());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return jsUndefined();
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSXSLTProcessorCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSXSLTProcessorCustom.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSXSLTProcessorCustom.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/js/JSXSLTProcessorCustom.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -46,33 +46,33 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSValue JSXSLTProcessor::setParameter(ExecState* exec)
</del><ins>+JSValue JSXSLTProcessor::setParameter(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argument(1).isUndefinedOrNull() || exec-&gt;argument(2).isUndefinedOrNull())
</del><ins>+    if (state.argument(1).isUndefinedOrNull() || state.argument(2).isUndefinedOrNull())
</ins><span class="cx">         return jsUndefined(); // Throw exception?
</span><del>-    String namespaceURI = exec-&gt;uncheckedArgument(0).toString(exec)-&gt;value(exec);
-    String localName = exec-&gt;uncheckedArgument(1).toString(exec)-&gt;value(exec);
-    String value = exec-&gt;uncheckedArgument(2).toString(exec)-&gt;value(exec);
</del><ins>+    String namespaceURI = state.uncheckedArgument(0).toString(&amp;state)-&gt;value(&amp;state);
+    String localName = state.uncheckedArgument(1).toString(&amp;state)-&gt;value(&amp;state);
+    String value = state.uncheckedArgument(2).toString(&amp;state)-&gt;value(&amp;state);
</ins><span class="cx">     impl().setParameter(namespaceURI, localName, value);
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSXSLTProcessor::getParameter(ExecState* exec)
</del><ins>+JSValue JSXSLTProcessor::getParameter(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argument(1).isUndefinedOrNull())
</del><ins>+    if (state.argument(1).isUndefinedOrNull())
</ins><span class="cx">         return jsUndefined();
</span><del>-    String namespaceURI = exec-&gt;uncheckedArgument(0).toString(exec)-&gt;value(exec);
-    String localName = exec-&gt;uncheckedArgument(1).toString(exec)-&gt;value(exec);
</del><ins>+    String namespaceURI = state.uncheckedArgument(0).toString(&amp;state)-&gt;value(&amp;state);
+    String localName = state.uncheckedArgument(1).toString(&amp;state)-&gt;value(&amp;state);
</ins><span class="cx">     String value = impl().getParameter(namespaceURI, localName);
</span><del>-    return jsStringOrUndefined(exec, value);
</del><ins>+    return jsStringOrUndefined(&amp;state, value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSXSLTProcessor::removeParameter(ExecState* exec)
</del><ins>+JSValue JSXSLTProcessor::removeParameter(ExecState&amp; state)
</ins><span class="cx"> {
</span><del>-    if (exec-&gt;argument(1).isUndefinedOrNull())
</del><ins>+    if (state.argument(1).isUndefinedOrNull())
</ins><span class="cx">         return jsUndefined();
</span><del>-    String namespaceURI = exec-&gt;uncheckedArgument(0).toString(exec)-&gt;value(exec);
-    String localName = exec-&gt;uncheckedArgument(1).toString(exec)-&gt;value(exec);
</del><ins>+    String namespaceURI = state.uncheckedArgument(0).toString(&amp;state)-&gt;value(&amp;state);
+    String localName = state.uncheckedArgument(1).toString(&amp;state)-&gt;value(&amp;state);
</ins><span class="cx">     impl().removeParameter(namespaceURI, localName);
</span><span class="cx">     return jsUndefined();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -1077,12 +1077,12 @@
</span><span class="cx">             if (HasCustomGetter($attribute-&gt;signature-&gt;extendedAttributes)) {
</span><span class="cx">                 push(@headerContent, &quot;#if ${conditionalString}\n&quot;) if $conditionalString;
</span><span class="cx">                 my $methodName = $codeGenerator-&gt;WK_lcfirst($attribute-&gt;signature-&gt;name);
</span><del>-                push(@headerContent, &quot;    JSC::JSValue &quot; . $methodName . &quot;(JSC::ExecState*) const;\n&quot;);
</del><ins>+                push(@headerContent, &quot;    JSC::JSValue &quot; . $methodName . &quot;(JSC::ExecState&amp;) const;\n&quot;);
</ins><span class="cx">                 push(@headerContent, &quot;#endif\n&quot;) if $conditionalString;
</span><span class="cx">             }
</span><span class="cx">             if (HasCustomSetter($attribute-&gt;signature-&gt;extendedAttributes) &amp;&amp; !IsReadonly($attribute)) {
</span><span class="cx">                 push(@headerContent, &quot;#if ${conditionalString}\n&quot;) if $conditionalString;
</span><del>-                push(@headerContent, &quot;    void set&quot; . $codeGenerator-&gt;WK_ucfirst($attribute-&gt;signature-&gt;name) . &quot;(JSC::ExecState*, JSC::JSValue);\n&quot;);
</del><ins>+                push(@headerContent, &quot;    void set&quot; . $codeGenerator-&gt;WK_ucfirst($attribute-&gt;signature-&gt;name) . &quot;(JSC::ExecState&amp;, JSC::JSValue);\n&quot;);
</ins><span class="cx">                 push(@headerContent, &quot;#endif\n&quot;) if $conditionalString;
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -1117,7 +1117,7 @@
</span><span class="cx">             my $conditionalString = $codeGenerator-&gt;GenerateConditionalString($function-&gt;signature);
</span><span class="cx">             push(@headerContent, &quot;#if ${conditionalString}\n&quot;) if $conditionalString;
</span><span class="cx">             my $functionImplementationName = $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;ImplementedAs&quot;} || $codeGenerator-&gt;WK_lcfirst($function-&gt;signature-&gt;name);
</span><del>-            push(@headerContent, &quot;    &quot; . ($function-&gt;isStatic ? &quot;static &quot; : &quot;&quot;) . &quot;JSC::JSValue &quot; . $functionImplementationName . &quot;(JSC::ExecState*);\n&quot;);
</del><ins>+            push(@headerContent, &quot;    &quot; . ($function-&gt;isStatic ? &quot;static &quot; : &quot;&quot;) . &quot;JSC::JSValue &quot; . $functionImplementationName . &quot;(JSC::ExecState&amp;);\n&quot;);
</ins><span class="cx">             push(@headerContent, &quot;#endif\n&quot;) if $conditionalString;
</span><span class="cx">         }
</span><span class="cx">         push(@headerContent, $endAppleCopyright) if $inAppleCopyright;
</span><span class="lines">@@ -2333,7 +2333,7 @@
</span><span class="cx">             } # attribute Nondeterministic
</span><span class="cx"> 
</span><span class="cx">             if (HasCustomGetter($attribute-&gt;signature-&gt;extendedAttributes)) {
</span><del>-                push(@implContent, &quot;    return JSValue::encode(castedThis-&gt;$implGetterFunctionName(state));\n&quot;);
</del><ins>+                push(@implContent, &quot;    return JSValue::encode(castedThis-&gt;$implGetterFunctionName(*state));\n&quot;);
</ins><span class="cx">             } elsif ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CheckSecurityForNode&quot;}) {
</span><span class="cx">                 $implIncludes{&quot;JSDOMBinding.h&quot;} = 1;
</span><span class="cx">                 push(@implContent, &quot;    auto&amp; impl = castedThis-&gt;impl();\n&quot;);
</span><span class="lines">@@ -2618,7 +2618,7 @@
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             if (HasCustomSetter($attribute-&gt;signature-&gt;extendedAttributes)) {
</span><del>-                push(@implContent, &quot;    castedThis-&gt;set$implSetterFunctionName(state, value);\n&quot;);
</del><ins>+                push(@implContent, &quot;    castedThis-&gt;set$implSetterFunctionName(*state, value);\n&quot;);
</ins><span class="cx">             } elsif ($type eq &quot;EventHandler&quot;) {
</span><span class="cx">                 $implIncludes{&quot;JSEventListener.h&quot;} = 1;
</span><span class="cx">                 my $eventName = EventHandlerAttributeEventName($attribute);
</span><span class="lines">@@ -2874,7 +2874,7 @@
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="cx">                 if ($isCustom) {
</span><del>-                    push(@implContent, &quot;    return JSValue::encode(castedThis-&gt;&quot; . $functionImplementationName . &quot;(state));\n&quot;);
</del><ins>+                    push(@implContent, &quot;    return JSValue::encode(castedThis-&gt;&quot; . $functionImplementationName . &quot;(*state));\n&quot;);
</ins><span class="cx">                 } else {
</span><span class="cx">                     push(@implContent, &quot;    auto&amp; impl = castedThis-&gt;impl();\n&quot;);
</span><span class="cx">                     if ($svgPropertyType) {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -515,7 +515,7 @@
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><span class="cx">     auto* castedThis = jsCast&lt;JSTestInterface*&gt;(slotBase);
</span><del>-    return JSValue::encode(castedThis-&gt;implementsStr3(state));
</del><ins>+    return JSValue::encode(castedThis-&gt;implementsStr3(*state));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="lines">@@ -608,7 +608,7 @@
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><span class="cx">     auto* castedThis = jsCast&lt;JSTestInterface*&gt;(slotBase);
</span><del>-    return JSValue::encode(castedThis-&gt;supplementalStr3(state));
</del><ins>+    return JSValue::encode(castedThis-&gt;supplementalStr3(*state));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="lines">@@ -704,7 +704,7 @@
</span><span class="cx">     auto* castedThis = jsCast&lt;JSTestInterface*&gt;(baseObject);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><span class="cx">     UNUSED_PARAM(state);
</span><del>-    castedThis-&gt;setImplementsStr3(state, value);
</del><ins>+    castedThis-&gt;setImplementsStr3(*state, value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="lines">@@ -775,7 +775,7 @@
</span><span class="cx">     auto* castedThis = jsCast&lt;JSTestInterface*&gt;(baseObject);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><span class="cx">     UNUSED_PARAM(state);
</span><del>-    castedThis-&gt;setSupplementalStr3(state, value);
</del><ins>+    castedThis-&gt;setSupplementalStr3(*state, value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="lines">@@ -859,7 +859,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*state, &quot;TestInterface&quot;, &quot;implementsMethod3&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestInterface::info());
</span><del>-    return JSValue::encode(castedThis-&gt;implementsMethod3(state));
</del><ins>+    return JSValue::encode(castedThis-&gt;implementsMethod3(*state));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="lines">@@ -925,7 +925,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*state, &quot;TestInterface&quot;, &quot;supplementalMethod3&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestInterface::info());
</span><del>-    return JSValue::encode(castedThis-&gt;supplementalMethod3(state));
</del><ins>+    return JSValue::encode(castedThis-&gt;supplementalMethod3(*state));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfaceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -60,24 +60,24 @@
</span><span class="cx"> 
</span><span class="cx">     // Custom attributes
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-    JSC::JSValue implementsStr3(JSC::ExecState*) const;
</del><ins>+    JSC::JSValue implementsStr3(JSC::ExecState&amp;) const;
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-    void setImplementsStr3(JSC::ExecState*, JSC::JSValue);
</del><ins>+    void setImplementsStr3(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-    JSC::JSValue supplementalStr3(JSC::ExecState*) const;
</del><ins>+    JSC::JSValue supplementalStr3(JSC::ExecState&amp;) const;
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-    void setSupplementalStr3(JSC::ExecState*, JSC::JSValue);
</del><ins>+    void setSupplementalStr3(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     // Custom functions
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-    JSC::JSValue implementsMethod3(JSC::ExecState*);
</del><ins>+    JSC::JSValue implementsMethod3(JSC::ExecState&amp;);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-    JSC::JSValue supplementalMethod3(JSC::ExecState*);
</del><ins>+    JSC::JSValue supplementalMethod3(JSC::ExecState&amp;);
</ins><span class="cx"> #endif
</span><span class="cx">     TestInterface&amp; impl() const { return *m_impl; }
</span><span class="cx">     void releaseImpl() { std::exchange(m_impl, nullptr)-&gt;deref(); }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -1302,7 +1302,7 @@
</span><span class="cx">     UNUSED_PARAM(slotBase);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><span class="cx">     auto* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</span><del>-    return JSValue::encode(castedThis-&gt;customAttr(state));
</del><ins>+    return JSValue::encode(castedThis-&gt;customAttr(*state));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -2573,7 +2573,7 @@
</span><span class="cx">     auto* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</span><span class="cx">     UNUSED_PARAM(thisValue);
</span><span class="cx">     UNUSED_PARAM(state);
</span><del>-    castedThis-&gt;setCustomAttr(state, value);
</del><ins>+    castedThis-&gt;setCustomAttr(*state, value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -3487,7 +3487,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*state, &quot;TestObj&quot;, &quot;customMethod&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    return JSValue::encode(castedThis-&gt;customMethod(state));
</del><ins>+    return JSValue::encode(castedThis-&gt;customMethod(*state));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionCustomMethodWithArgs(ExecState* state)
</span><span class="lines">@@ -3497,7 +3497,7 @@
</span><span class="cx">     if (UNLIKELY(!castedThis))
</span><span class="cx">         return throwThisTypeError(*state, &quot;TestObj&quot;, &quot;customMethodWithArgs&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><del>-    return JSValue::encode(castedThis-&gt;customMethodWithArgs(state));
</del><ins>+    return JSValue::encode(castedThis-&gt;customMethodWithArgs(*state));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionAddEventListener(ExecState* state)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h (190035 => 190036)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h        2015-09-21 00:28:42 UTC (rev 190035)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h        2015-09-21 02:42:29 UTC (rev 190036)
</span><span class="lines">@@ -58,13 +58,13 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     // Custom attributes
</span><del>-    JSC::JSValue customAttr(JSC::ExecState*) const;
-    void setCustomAttr(JSC::ExecState*, JSC::JSValue);
</del><ins>+    JSC::JSValue customAttr(JSC::ExecState&amp;) const;
+    void setCustomAttr(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> 
</span><span class="cx">     // Custom functions
</span><del>-    JSC::JSValue customMethod(JSC::ExecState*);
-    JSC::JSValue customMethodWithArgs(JSC::ExecState*);
-    static JSC::JSValue classMethod2(JSC::ExecState*);
</del><ins>+    JSC::JSValue customMethod(JSC::ExecState&amp;);
+    JSC::JSValue customMethodWithArgs(JSC::ExecState&amp;);
+    static JSC::JSValue classMethod2(JSC::ExecState&amp;);
</ins><span class="cx">     TestObj&amp; impl() const { return *m_impl; }
</span><span class="cx">     void releaseImpl() { std::exchange(m_impl, nullptr)-&gt;deref(); }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>