<!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>[196331] trunk/Source</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/196331">196331</a></dd>
<dt>Author</dt> <dd>barraclough@apple.com</dd>
<dt>Date</dt> <dd>2016-02-09 13:19:59 -0800 (Tue, 09 Feb 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>GetValueFunc/PutValueFunc should not take both slotBase and thisValue
https://bugs.webkit.org/show_bug.cgi?id=154009
Reviewed by Geoff Garen.
In JavaScript there are two types of properties - regular value properties, and accessor properties.
One difference between these is how they are reflected by getOwnPropertyDescriptor, and another is
what object they operate on in the case of a prototype access. If you access a value property of a
prototype object it return a value pertinent to the prototype, but in the case of a prototype object
returning an accessor, then the accessor function is applied to the base object of the access.
JSC supports special 'custom' properties implemented as a c++ callback, and these custom properties
can be used to implement either value- or accessor-like behavior. getOwnPropertyDescriptor behavior
is selected via the CustomAccessor attribute. Value- or accessor-like object selection is current
supported by passing both the slotBase and the thisValue to the callback,and hoping it uses the
right one. This is probably inefficient, bug-prone, and leads to crazy like JSBoundSlotBaseFunction.
Instead, just pass one thisValue to the callback functions, consistent with CustomAccessor.
Source/JavaScriptCore:
* API/JSCallbackObject.h:
* API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::getStaticValue):
(JSC::JSCallbackObject<Parent>::staticFunctionGetter):
(JSC::JSCallbackObject<Parent>::callbackGetter):
- Merged slotBase & thisValue to custom property callbacks.
* bytecode/PolymorphicAccess.cpp:
(JSC::AccessCase::generate):
- Modified the call being JIT generated - GetValueFunc/PutValueFunc now only take 3,
rather than 4 arguments. Selects which one to keep/drop based on access type.
(WTF::printInternal):
* bytecode/PolymorphicAccess.h:
(JSC::AccessCase::isGet):
(JSC::AccessCase::isPut):
(JSC::AccessCase::isIn):
(JSC::AccessCase::doesCalls):
(JSC::AccessCase::isGetter):
* bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::computeForStubInfo):
* jit/Repatch.cpp:
(JSC::tryCacheGetByID):
(JSC::tryCachePutByID):
- Split the CustomGetter/Setter access types into Value/Accessor variants.
* jsc.cpp:
(WTF::CustomGetter::getOwnPropertySlot):
(WTF::CustomGetter::customGetter):
(WTF::RuntimeArray::RuntimeArray):
(WTF::RuntimeArray::lengthGetter):
- Merged slotBase & thisValue to custom property callbacks.
* runtime/CustomGetterSetter.cpp:
(JSC::callCustomSetter):
- Pass 3 arguments when calling PutValueFunc.
* runtime/CustomGetterSetter.h:
* runtime/JSBoundSlotBaseFunction.cpp:
(JSC::boundSlotBaseFunctionCall):
(JSC::JSBoundSlotBaseFunction::JSBoundSlotBaseFunction):
* runtime/JSCJSValue.cpp:
(JSC::JSValue::putToPrimitive):
- callCustomSetter currently takes a flag to distinguish value/accessor calls.
* runtime/JSFunction.cpp:
(JSC::retrieveArguments):
(JSC::JSFunction::argumentsGetter):
(JSC::retrieveCallerFunction):
(JSC::JSFunction::callerGetter):
(JSC::JSFunction::lengthGetter):
(JSC::JSFunction::nameGetter):
* runtime/JSFunction.h:
* runtime/JSModuleNamespaceObject.cpp:
(JSC::JSModuleNamespaceObject::visitChildren):
(JSC::callbackGetter):
- Merged slotBase & thisValue to custom property callbacks.
* runtime/JSObject.cpp:
(JSC::JSObject::putInlineSlow):
- callCustomSetter currently takes a flag to distinguish value/accessor calls.
* runtime/Lookup.h:
(JSC::putEntry):
- split PutPropertySlot setCustom into Value/Accessor variants.
* runtime/PropertySlot.cpp:
(JSC::PropertySlot::functionGetter):
(JSC::PropertySlot::customGetter):
* runtime/PropertySlot.h:
(JSC::PropertySlot::PropertySlot):
(JSC::PropertySlot::getValue):
- added customGetter helper to call GetValueFunc.
* runtime/PutPropertySlot.h:
(JSC::PutPropertySlot::PutPropertySlot):
(JSC::PutPropertySlot::setNewProperty):
(JSC::PutPropertySlot::setCustomValue):
(JSC::PutPropertySlot::setCustomAccessor):
(JSC::PutPropertySlot::setThisValue):
(JSC::PutPropertySlot::customSetter):
(JSC::PutPropertySlot::context):
(JSC::PutPropertySlot::isStrictMode):
(JSC::PutPropertySlot::isCacheablePut):
(JSC::PutPropertySlot::isCacheableSetter):
(JSC::PutPropertySlot::isCacheableCustom):
(JSC::PutPropertySlot::isCustomAccessor):
(JSC::PutPropertySlot::isInitialization):
(JSC::PutPropertySlot::cachedOffset):
(JSC::PutPropertySlot::setCustomProperty): Deleted.
- split PutPropertySlot setCustom into Value/Accessor variants.
* runtime/RegExpConstructor.cpp:
(JSC::RegExpConstructor::getOwnPropertySlot):
(JSC::regExpConstructorDollar1):
(JSC::regExpConstructorDollar2):
(JSC::regExpConstructorDollar3):
(JSC::regExpConstructorDollar4):
(JSC::regExpConstructorDollar5):
(JSC::regExpConstructorDollar6):
(JSC::regExpConstructorDollar7):
(JSC::regExpConstructorDollar8):
(JSC::regExpConstructorDollar9):
(JSC::regExpConstructorInput):
(JSC::regExpConstructorMultiline):
(JSC::regExpConstructorLastMatch):
(JSC::regExpConstructorLastParen):
(JSC::regExpConstructorLeftContext):
(JSC::regExpConstructorRightContext):
(JSC::setRegExpConstructorInput):
(JSC::setRegExpConstructorMultiline):
* runtime/RegExpObject.cpp:
(JSC::RegExpObject::defineOwnProperty):
(JSC::regExpObjectSetLastIndexStrict):
(JSC::regExpObjectSetLastIndexNonStrict):
(JSC::RegExpObject::put):
- Merged slotBase & thisValue to custom property callbacks.
Source/WebCore:
* bindings/js/JSDOMBinding.cpp:
(WebCore::printErrorMessageForFrame):
(WebCore::objectToStringFunctionGetter):
* bindings/js/JSDOMBinding.h:
(WebCore::propertyNameToString):
(WebCore::getStaticValueSlotEntryWithoutCaching<JSDOMObject>):
(WebCore::nonCachingStaticFunctionGetter):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::visitAdditionalChildren):
(WebCore::childFrameGetter):
(WebCore::namedItemGetter):
(WebCore::jsDOMWindowWebKit):
(WebCore::jsDOMWindowIndexedDB):
- add missing null check, in case indexDB acessor is applied to non-window object.
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginScriptObject):
(WebCore::pluginElementPropertyGetter):
* bindings/js/JSPluginElementFunctions.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::destroy):
(JSC::RuntimeArray::lengthGetter):
* bridge/runtime_array.h:
* bridge/runtime_method.cpp:
(JSC::RuntimeMethod::finishCreation):
(JSC::RuntimeMethod::lengthGetter):
* bridge/runtime_method.h:
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::invalidate):
(JSC::Bindings::RuntimeObject::fallbackObjectGetter):
(JSC::Bindings::RuntimeObject::fieldGetter):
(JSC::Bindings::RuntimeObject::methodGetter):
* bridge/runtime_object.h:
- Merged slotBase & thisValue to custom property callbacks.
Source/WebKit2:
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::getOwnPropertyNames):
(WebKit::JSNPObject::propertyGetter):
(WebKit::JSNPObject::methodGetter):
* WebProcess/Plugins/Netscape/JSNPObject.h:
- Merged slotBase & thisValue to custom property callbacks.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreAPIJSCallbackObjecth">trunk/Source/JavaScriptCore/API/JSCallbackObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreAPIJSCallbackObjectFunctionsh">trunk/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodePolymorphicAccesscpp">trunk/Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodePolymorphicAccessh">trunk/Source/JavaScriptCore/bytecode/PolymorphicAccess.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodePutByIdStatuscpp">trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitCCallHelpersh">trunk/Source/JavaScriptCore/jit/CCallHelpers.h</a></li>
<li><a href="#trunkSourceJavaScriptCorejitRepatchcpp">trunk/Source/JavaScriptCore/jit/Repatch.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejsccpp">trunk/Source/JavaScriptCore/jsc.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeCustomGetterSettercpp">trunk/Source/JavaScriptCore/runtime/CustomGetterSetter.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeCustomGetterSetterh">trunk/Source/JavaScriptCore/runtime/CustomGetterSetter.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSBoundSlotBaseFunctioncpp">trunk/Source/JavaScriptCore/runtime/JSBoundSlotBaseFunction.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSCJSValuecpp">trunk/Source/JavaScriptCore/runtime/JSCJSValue.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSFunctioncpp">trunk/Source/JavaScriptCore/runtime/JSFunction.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSFunctionh">trunk/Source/JavaScriptCore/runtime/JSFunction.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSModuleNamespaceObjectcpp">trunk/Source/JavaScriptCore/runtime/JSModuleNamespaceObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSObjectcpp">trunk/Source/JavaScriptCore/runtime/JSObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeLookuph">trunk/Source/JavaScriptCore/runtime/Lookup.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimePropertySlotcpp">trunk/Source/JavaScriptCore/runtime/PropertySlot.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimePropertySloth">trunk/Source/JavaScriptCore/runtime/PropertySlot.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimePutPropertySloth">trunk/Source/JavaScriptCore/runtime/PutPropertySlot.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExpConstructorcpp">trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExpObjectcpp">trunk/Source/JavaScriptCore/runtime/RegExpObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMBindingcpp">trunk/Source/WebCore/bindings/js/JSDOMBinding.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMBindingh">trunk/Source/WebCore/bindings/js/JSDOMBinding.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMWindowCustomcpp">trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSPluginElementFunctionscpp">trunk/Source/WebCore/bindings/js/JSPluginElementFunctions.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSPluginElementFunctionsh">trunk/Source/WebCore/bindings/js/JSPluginElementFunctions.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestClassWithJSBuiltinConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCustomConstructorWithNoInterfaceObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestJSBuiltinConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministiccpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverrideBuiltinscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSattributecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSreadonlycpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp</a></li>
<li><a href="#trunkSourceWebCorebridgeruntime_arraycpp">trunk/Source/WebCore/bridge/runtime_array.cpp</a></li>
<li><a href="#trunkSourceWebCorebridgeruntime_arrayh">trunk/Source/WebCore/bridge/runtime_array.h</a></li>
<li><a href="#trunkSourceWebCorebridgeruntime_methodcpp">trunk/Source/WebCore/bridge/runtime_method.cpp</a></li>
<li><a href="#trunkSourceWebCorebridgeruntime_methodh">trunk/Source/WebCore/bridge/runtime_method.h</a></li>
<li><a href="#trunkSourceWebCorebridgeruntime_objectcpp">trunk/Source/WebCore/bridge/runtime_object.cpp</a></li>
<li><a href="#trunkSourceWebCorebridgeruntime_objecth">trunk/Source/WebCore/bridge/runtime_object.h</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsNetscapeJSNPObjectcpp">trunk/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsNetscapeJSNPObjecth">trunk/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreAPIJSCallbackObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/API/JSCallbackObject.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/API/JSCallbackObject.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/API/JSCallbackObject.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -211,8 +211,8 @@
</span><span class="cx"> static EncodedJSValue JSC_HOST_CALL construct(ExecState*);
</span><span class="cx">
</span><span class="cx"> JSValue getStaticValue(ExecState*, PropertyName);
</span><del>- static EncodedJSValue staticFunctionGetter(ExecState*, JSObject*, EncodedJSValue, PropertyName);
- static EncodedJSValue callbackGetter(ExecState*, JSObject*, EncodedJSValue, PropertyName);
</del><ins>+ static EncodedJSValue staticFunctionGetter(ExecState*, EncodedJSValue, PropertyName);
+ static EncodedJSValue callbackGetter(ExecState*, EncodedJSValue, PropertyName);
</ins><span class="cx">
</span><span class="cx"> std::unique_ptr<JSCallbackObjectData> m_callbackObjectData;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreAPIJSCallbackObjectFunctionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -600,9 +600,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> template <class Parent>
</span><del>-EncodedJSValue JSCallbackObject<Parent>::staticFunctionGetter(ExecState* exec, JSObject* slotParent, EncodedJSValue, PropertyName propertyName)
</del><ins>+EncodedJSValue JSCallbackObject<Parent>::staticFunctionGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName propertyName)
</ins><span class="cx"> {
</span><del>- JSCallbackObject* thisObj = asCallbackObject(slotParent);
</del><ins>+ JSCallbackObject* thisObj = asCallbackObject(thisValue);
</ins><span class="cx">
</span><span class="cx"> // Check for cached or override property.
</span><span class="cx"> PropertySlot slot2(thisObj);
</span><span class="lines">@@ -628,9 +628,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> template <class Parent>
</span><del>-EncodedJSValue JSCallbackObject<Parent>::callbackGetter(ExecState* exec, JSObject* slotParent, EncodedJSValue, PropertyName propertyName)
</del><ins>+EncodedJSValue JSCallbackObject<Parent>::callbackGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName propertyName)
</ins><span class="cx"> {
</span><del>- JSCallbackObject* thisObj = asCallbackObject(slotParent);
</del><ins>+ JSCallbackObject* thisObj = asCallbackObject(thisValue);
</ins><span class="cx">
</span><span class="cx"> JSObjectRef thisRef = toRef(thisObj);
</span><span class="cx"> RefPtr<OpaqueJSString> propertyNameRef;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -1,3 +1,131 @@
</span><ins>+2016-02-07 Gavin Barraclough <barraclough@apple.com>
+
+ GetValueFunc/PutValueFunc should not take both slotBase and thisValue
+ https://bugs.webkit.org/show_bug.cgi?id=154009
+
+ Reviewed by Geoff Garen.
+
+ In JavaScript there are two types of properties - regular value properties, and accessor properties.
+ One difference between these is how they are reflected by getOwnPropertyDescriptor, and another is
+ what object they operate on in the case of a prototype access. If you access a value property of a
+ prototype object it return a value pertinent to the prototype, but in the case of a prototype object
+ returning an accessor, then the accessor function is applied to the base object of the access.
+
+ JSC supports special 'custom' properties implemented as a c++ callback, and these custom properties
+ can be used to implement either value- or accessor-like behavior. getOwnPropertyDescriptor behavior
+ is selected via the CustomAccessor attribute. Value- or accessor-like object selection is current
+ supported by passing both the slotBase and the thisValue to the callback,and hoping it uses the
+ right one. This is probably inefficient, bug-prone, and leads to crazy like JSBoundSlotBaseFunction.
+
+ Instead, just pass one thisValue to the callback functions, consistent with CustomAccessor.
+
+ * API/JSCallbackObject.h:
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::JSCallbackObject<Parent>::getStaticValue):
+ (JSC::JSCallbackObject<Parent>::staticFunctionGetter):
+ (JSC::JSCallbackObject<Parent>::callbackGetter):
+ - Merged slotBase & thisValue to custom property callbacks.
+ * bytecode/PolymorphicAccess.cpp:
+ (JSC::AccessCase::generate):
+ - Modified the call being JIT generated - GetValueFunc/PutValueFunc now only take 3,
+ rather than 4 arguments. Selects which one to keep/drop based on access type.
+ (WTF::printInternal):
+ * bytecode/PolymorphicAccess.h:
+ (JSC::AccessCase::isGet):
+ (JSC::AccessCase::isPut):
+ (JSC::AccessCase::isIn):
+ (JSC::AccessCase::doesCalls):
+ (JSC::AccessCase::isGetter):
+ * bytecode/PutByIdStatus.cpp:
+ (JSC::PutByIdStatus::computeForStubInfo):
+ * jit/Repatch.cpp:
+ (JSC::tryCacheGetByID):
+ (JSC::tryCachePutByID):
+ - Split the CustomGetter/Setter access types into Value/Accessor variants.
+ * jsc.cpp:
+ (WTF::CustomGetter::getOwnPropertySlot):
+ (WTF::CustomGetter::customGetter):
+ (WTF::RuntimeArray::RuntimeArray):
+ (WTF::RuntimeArray::lengthGetter):
+ - Merged slotBase & thisValue to custom property callbacks.
+ * runtime/CustomGetterSetter.cpp:
+ (JSC::callCustomSetter):
+ - Pass 3 arguments when calling PutValueFunc.
+ * runtime/CustomGetterSetter.h:
+ * runtime/JSBoundSlotBaseFunction.cpp:
+ (JSC::boundSlotBaseFunctionCall):
+ (JSC::JSBoundSlotBaseFunction::JSBoundSlotBaseFunction):
+ * runtime/JSCJSValue.cpp:
+ (JSC::JSValue::putToPrimitive):
+ - callCustomSetter currently takes a flag to distinguish value/accessor calls.
+ * runtime/JSFunction.cpp:
+ (JSC::retrieveArguments):
+ (JSC::JSFunction::argumentsGetter):
+ (JSC::retrieveCallerFunction):
+ (JSC::JSFunction::callerGetter):
+ (JSC::JSFunction::lengthGetter):
+ (JSC::JSFunction::nameGetter):
+ * runtime/JSFunction.h:
+ * runtime/JSModuleNamespaceObject.cpp:
+ (JSC::JSModuleNamespaceObject::visitChildren):
+ (JSC::callbackGetter):
+ - Merged slotBase & thisValue to custom property callbacks.
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::putInlineSlow):
+ - callCustomSetter currently takes a flag to distinguish value/accessor calls.
+ * runtime/Lookup.h:
+ (JSC::putEntry):
+ - split PutPropertySlot setCustom into Value/Accessor variants.
+ * runtime/PropertySlot.cpp:
+ (JSC::PropertySlot::functionGetter):
+ (JSC::PropertySlot::customGetter):
+ * runtime/PropertySlot.h:
+ (JSC::PropertySlot::PropertySlot):
+ (JSC::PropertySlot::getValue):
+ - added customGetter helper to call GetValueFunc.
+ * runtime/PutPropertySlot.h:
+ (JSC::PutPropertySlot::PutPropertySlot):
+ (JSC::PutPropertySlot::setNewProperty):
+ (JSC::PutPropertySlot::setCustomValue):
+ (JSC::PutPropertySlot::setCustomAccessor):
+ (JSC::PutPropertySlot::setThisValue):
+ (JSC::PutPropertySlot::customSetter):
+ (JSC::PutPropertySlot::context):
+ (JSC::PutPropertySlot::isStrictMode):
+ (JSC::PutPropertySlot::isCacheablePut):
+ (JSC::PutPropertySlot::isCacheableSetter):
+ (JSC::PutPropertySlot::isCacheableCustom):
+ (JSC::PutPropertySlot::isCustomAccessor):
+ (JSC::PutPropertySlot::isInitialization):
+ (JSC::PutPropertySlot::cachedOffset):
+ (JSC::PutPropertySlot::setCustomProperty): Deleted.
+ - split PutPropertySlot setCustom into Value/Accessor variants.
+ * runtime/RegExpConstructor.cpp:
+ (JSC::RegExpConstructor::getOwnPropertySlot):
+ (JSC::regExpConstructorDollar1):
+ (JSC::regExpConstructorDollar2):
+ (JSC::regExpConstructorDollar3):
+ (JSC::regExpConstructorDollar4):
+ (JSC::regExpConstructorDollar5):
+ (JSC::regExpConstructorDollar6):
+ (JSC::regExpConstructorDollar7):
+ (JSC::regExpConstructorDollar8):
+ (JSC::regExpConstructorDollar9):
+ (JSC::regExpConstructorInput):
+ (JSC::regExpConstructorMultiline):
+ (JSC::regExpConstructorLastMatch):
+ (JSC::regExpConstructorLastParen):
+ (JSC::regExpConstructorLeftContext):
+ (JSC::regExpConstructorRightContext):
+ (JSC::setRegExpConstructorInput):
+ (JSC::setRegExpConstructorMultiline):
+ * runtime/RegExpObject.cpp:
+ (JSC::RegExpObject::defineOwnProperty):
+ (JSC::regExpObjectSetLastIndexStrict):
+ (JSC::regExpObjectSetLastIndexNonStrict):
+ (JSC::RegExpObject::put):
+ - Merged slotBase & thisValue to custom property callbacks.
+
</ins><span class="cx"> 2016-02-09 Filip Pizlo <fpizlo@apple.com>
</span><span class="cx">
</span><span class="cx"> Spread expressions are not fair game for direct binding
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodePolymorphicAccesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -523,8 +523,10 @@
</span><span class="cx"> case Load:
</span><span class="cx"> case Getter:
</span><span class="cx"> case Setter:
</span><del>- case CustomGetter:
- case CustomSetter: {
</del><ins>+ case CustomValueGetter:
+ case CustomAccessorGetter:
+ case CustomValueSetter:
+ case CustomAccessorSetter: {
</ins><span class="cx"> if (isValidOffset(m_offset)) {
</span><span class="cx"> Structure* currStructure;
</span><span class="cx"> if (m_conditionSet.isEmpty())
</span><span class="lines">@@ -553,7 +555,7 @@
</span><span class="cx"> baseForAccessGPR = baseForGetGPR;
</span><span class="cx">
</span><span class="cx"> GPRReg loadedValueGPR = InvalidGPRReg;
</span><del>- if (m_type != CustomGetter && m_type != CustomSetter) {
</del><ins>+ if (m_type != CustomValueGetter && m_type != CustomAccessorGetter && m_type != CustomValueSetter && m_type != CustomAccessorSetter) {
</ins><span class="cx"> if (m_type == Load)
</span><span class="cx"> loadedValueGPR = valueRegs.payloadGPR();
</span><span class="cx"> else
</span><span class="lines">@@ -750,24 +752,26 @@
</span><span class="cx"> if (needsToMakeRoomOnStackForCCall)
</span><span class="cx"> jit.makeSpaceOnStackForCCall();
</span><span class="cx">
</span><del>- // getter: EncodedJSValue (*GetValueFunc)(ExecState*, JSObject* slotBase, EncodedJSValue thisValue, PropertyName);
- // setter: void (*PutValueFunc)(ExecState*, JSObject* base, EncodedJSValue thisObject, EncodedJSValue value);
</del><ins>+ // getter: EncodedJSValue (*GetValueFunc)(ExecState*, EncodedJSValue thisValue, PropertyName);
+ // setter: void (*PutValueFunc)(ExecState*, EncodedJSValue thisObject, EncodedJSValue value);
+ // Custom values are passed the slotBase (the property holder), custom accessors are passed the thisVaule (reciever).
+ GPRReg baseForCustomValue = m_type == CustomValueGetter || m_type == CustomValueSetter ? baseForAccessGPR : baseForGetGPR;
</ins><span class="cx"> #if USE(JSVALUE64)
</span><del>- if (m_type == CustomGetter) {
</del><ins>+ if (m_type == CustomValueGetter || m_type == CustomAccessorGetter) {
</ins><span class="cx"> jit.setupArgumentsWithExecState(
</span><del>- baseForAccessGPR, baseForGetGPR,
</del><ins>+ baseForCustomValue,
</ins><span class="cx"> CCallHelpers::TrustedImmPtr(ident.impl()));
</span><span class="cx"> } else
</span><del>- jit.setupArgumentsWithExecState(baseForAccessGPR, baseForGetGPR, valueRegs.gpr());
</del><ins>+ jit.setupArgumentsWithExecState(baseForCustomValue, valueRegs.gpr());
</ins><span class="cx"> #else
</span><del>- if (m_type == CustomGetter) {
</del><ins>+ if (m_type == CustomValueGetter || m_type == CustomAccessorGetter) {
</ins><span class="cx"> jit.setupArgumentsWithExecState(
</span><del>- baseForAccessGPR, baseForGetGPR,
</del><ins>+ baseForCustomValue,
</ins><span class="cx"> CCallHelpers::TrustedImm32(JSValue::CellTag),
</span><span class="cx"> CCallHelpers::TrustedImmPtr(ident.impl()));
</span><span class="cx"> } else {
</span><span class="cx"> jit.setupArgumentsWithExecState(
</span><del>- baseForAccessGPR, baseForGetGPR,
</del><ins>+ baseForCustomValue,
</ins><span class="cx"> CCallHelpers::TrustedImm32(JSValue::CellTag),
</span><span class="cx"> valueRegs.payloadGPR(), valueRegs.tagGPR());
</span><span class="cx"> }
</span><span class="lines">@@ -775,7 +779,7 @@
</span><span class="cx"> jit.storePtr(GPRInfo::callFrameRegister, &vm.topCallFrame);
</span><span class="cx">
</span><span class="cx"> operationCall = jit.call();
</span><del>- if (m_type == CustomGetter)
</del><ins>+ if (m_type == CustomValueGetter || m_type == CustomAccessorGetter)
</ins><span class="cx"> jit.setupResults(valueRegs);
</span><span class="cx"> if (needsToMakeRoomOnStackForCCall)
</span><span class="cx"> jit.reclaimSpaceOnStackForCCall();
</span><span class="lines">@@ -1418,12 +1422,18 @@
</span><span class="cx"> case AccessCase::Setter:
</span><span class="cx"> out.print("Setter");
</span><span class="cx"> return;
</span><del>- case AccessCase::CustomGetter:
- out.print("CustomGetter");
</del><ins>+ case AccessCase::CustomValueGetter:
+ out.print("CustomValueGetter");
</ins><span class="cx"> return;
</span><del>- case AccessCase::CustomSetter:
- out.print("CustomSetter");
</del><ins>+ case AccessCase::CustomAccessorGetter:
+ out.print("CustomAccessorGetter");
</ins><span class="cx"> return;
</span><ins>+ case AccessCase::CustomValueSetter:
+ out.print("CustomValueSetter");
+ return;
+ case AccessCase::CustomAccessorSetter:
+ out.print("CustomAccessorSetter");
+ return;
</ins><span class="cx"> case AccessCase::IntrinsicGetter:
</span><span class="cx"> out.print("IntrinsicGetter");
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodePolymorphicAccessh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/PolymorphicAccess.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/PolymorphicAccess.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/bytecode/PolymorphicAccess.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -58,8 +58,10 @@
</span><span class="cx"> Miss,
</span><span class="cx"> Getter,
</span><span class="cx"> Setter,
</span><del>- CustomGetter,
- CustomSetter,
</del><ins>+ CustomValueGetter,
+ CustomAccessorGetter,
+ CustomValueSetter,
+ CustomAccessorSetter,
</ins><span class="cx"> IntrinsicGetter,
</span><span class="cx"> InHit,
</span><span class="cx"> InMiss,
</span><span class="lines">@@ -73,14 +75,16 @@
</span><span class="cx"> case Transition:
</span><span class="cx"> case Replace:
</span><span class="cx"> case Setter:
</span><del>- case CustomSetter:
</del><ins>+ case CustomValueSetter:
+ case CustomAccessorSetter:
</ins><span class="cx"> case InHit:
</span><span class="cx"> case InMiss:
</span><span class="cx"> return false;
</span><span class="cx"> case Load:
</span><span class="cx"> case Miss:
</span><span class="cx"> case Getter:
</span><del>- case CustomGetter:
</del><ins>+ case CustomValueGetter:
+ case CustomAccessorGetter:
</ins><span class="cx"> case IntrinsicGetter:
</span><span class="cx"> case ArrayLength:
</span><span class="cx"> case StringLength:
</span><span class="lines">@@ -94,7 +98,8 @@
</span><span class="cx"> case Load:
</span><span class="cx"> case Miss:
</span><span class="cx"> case Getter:
</span><del>- case CustomGetter:
</del><ins>+ case CustomValueGetter:
+ case CustomAccessorGetter:
</ins><span class="cx"> case IntrinsicGetter:
</span><span class="cx"> case InHit:
</span><span class="cx"> case InMiss:
</span><span class="lines">@@ -104,7 +109,8 @@
</span><span class="cx"> case Transition:
</span><span class="cx"> case Replace:
</span><span class="cx"> case Setter:
</span><del>- case CustomSetter:
</del><ins>+ case CustomValueSetter:
+ case CustomAccessorSetter:
</ins><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="lines">@@ -115,12 +121,14 @@
</span><span class="cx"> case Load:
</span><span class="cx"> case Miss:
</span><span class="cx"> case Getter:
</span><del>- case CustomGetter:
</del><ins>+ case CustomValueGetter:
+ case CustomAccessorGetter:
</ins><span class="cx"> case IntrinsicGetter:
</span><span class="cx"> case Transition:
</span><span class="cx"> case Replace:
</span><span class="cx"> case Setter:
</span><del>- case CustomSetter:
</del><ins>+ case CustomValueSetter:
+ case CustomAccessorSetter:
</ins><span class="cx"> case ArrayLength:
</span><span class="cx"> case StringLength:
</span><span class="cx"> return false;
</span><span class="lines">@@ -208,8 +216,10 @@
</span><span class="cx"> switch (type()) {
</span><span class="cx"> case Getter:
</span><span class="cx"> case Setter:
</span><del>- case CustomGetter:
- case CustomSetter:
</del><ins>+ case CustomValueGetter:
+ case CustomAccessorGetter:
+ case CustomValueSetter:
+ case CustomAccessorSetter:
</ins><span class="cx"> return true;
</span><span class="cx"> default:
</span><span class="cx"> return false;
</span><span class="lines">@@ -220,7 +230,8 @@
</span><span class="cx"> {
</span><span class="cx"> switch (type()) {
</span><span class="cx"> case Getter:
</span><del>- case CustomGetter:
</del><ins>+ case CustomValueGetter:
+ case CustomAccessorGetter:
</ins><span class="cx"> return true;
</span><span class="cx"> default:
</span><span class="cx"> return false;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodePutByIdStatuscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -238,7 +238,8 @@
</span><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- case AccessCase::CustomSetter:
</del><ins>+ case AccessCase::CustomValueSetter:
+ case AccessCase::CustomAccessorSetter:
</ins><span class="cx"> return PutByIdStatus(MakesCalls);
</span><span class="cx">
</span><span class="cx"> default:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitCCallHelpersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/CCallHelpers.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/CCallHelpers.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/jit/CCallHelpers.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -678,6 +678,16 @@
</span><span class="cx"> addCallArgument(arg4);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, TrustedImm32 arg2, GPRReg arg3, GPRReg arg4)
+ {
+ resetCallArguments();
+ addCallArgument(GPRInfo::callFrameRegister);
+ addCallArgument(arg1);
+ addCallArgument(arg2);
+ addCallArgument(arg3);
+ addCallArgument(arg4);
+ }
+
</ins><span class="cx"> ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4, GPRReg arg5)
</span><span class="cx"> {
</span><span class="cx"> resetCallArguments();
</span><span class="lines">@@ -1678,6 +1688,12 @@
</span><span class="cx"> setupArgumentsWithExecState(arg1, arg2, arg3);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, TrustedImm32 arg2, GPRReg arg3, GPRReg arg4)
+ {
+ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
</ins><span class="cx"> ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, TrustedImm32 arg3, GPRReg arg4, GPRReg arg5)
</span><span class="cx"> {
</span><span class="cx"> poke(arg5, POKE_ARGUMENT_OFFSET + 1);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitRepatchcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/Repatch.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/Repatch.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/jit/Repatch.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -303,8 +303,10 @@
</span><span class="cx"> type = AccessCase::Miss;
</span><span class="cx"> else if (slot.isCacheableGetter())
</span><span class="cx"> type = AccessCase::Getter;
</span><ins>+ else if (slot.attributes() & CustomAccessor)
+ type = AccessCase::CustomAccessorGetter;
</ins><span class="cx"> else
</span><del>- type = AccessCase::CustomGetter;
</del><ins>+ type = AccessCase::CustomValueGetter;
</ins><span class="cx">
</span><span class="cx"> newCase = AccessCase::get(
</span><span class="cx"> vm, codeBlock, type, offset, structure, conditionSet, loadTargetFromProxy,
</span><span class="lines">@@ -434,7 +436,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> newCase = AccessCase::setter(
</span><del>- vm, codeBlock, AccessCase::CustomSetter, structure, invalidOffset, conditionSet,
</del><ins>+ vm, codeBlock, slot.isCustomAccessor() ? AccessCase::CustomAccessorSetter : AccessCase::CustomValueSetter, structure, invalidOffset, conditionSet,
</ins><span class="cx"> slot.customSetter(), slot.base());
</span><span class="cx"> } else {
</span><span class="cx"> ObjectPropertyConditionSet conditionSet;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejsccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jsc.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jsc.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/jsc.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -349,7 +349,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- static EncodedJSValue customGetter(ExecState* exec, JSObject*, EncodedJSValue thisValue, PropertyName)
</del><ins>+ static EncodedJSValue customGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> CustomGetter* thisObject = jsDynamicCast<CustomGetter*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!thisObject)
</span><span class="lines">@@ -454,7 +454,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- static EncodedJSValue lengthGetter(ExecState* exec, JSObject*, EncodedJSValue thisValue, PropertyName)
</del><ins>+ static EncodedJSValue lengthGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> RuntimeArray* thisObject = jsDynamicCast<RuntimeArray*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!thisObject)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeCustomGetterSettercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/CustomGetterSetter.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/CustomGetterSetter.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/runtime/CustomGetterSetter.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> #include "CustomGetterSetter.h"
</span><span class="cx">
</span><span class="cx"> #include "JSCJSValueInlines.h"
</span><ins>+#include "JSObject.h"
</ins><span class="cx"> #include "SlotVisitorInlines.h"
</span><span class="cx"> #include <wtf/Assertions.h>
</span><span class="cx">
</span><span class="lines">@@ -36,12 +37,14 @@
</span><span class="cx">
</span><span class="cx"> const ClassInfo CustomGetterSetter::s_info = { "CustomGetterSetter", 0, 0, CREATE_METHOD_TABLE(CustomGetterSetter) };
</span><span class="cx">
</span><del>-void callCustomSetter(ExecState* exec, JSValue customGetterSetter, JSObject* base, JSValue thisValue, JSValue value)
</del><ins>+void callCustomSetter(ExecState* exec, JSValue customGetterSetter, bool isAccessor, JSObject* base, JSValue thisValue, JSValue value)
</ins><span class="cx"> {
</span><span class="cx"> CustomGetterSetter::CustomSetter setter = jsCast<CustomGetterSetter*>(customGetterSetter)->setter();
</span><span class="cx"> if (!setter)
</span><span class="cx"> return;
</span><del>- setter(exec, base, JSValue::encode(thisValue), JSValue::encode(value));
</del><ins>+ if (!isAccessor)
+ thisValue = base;
+ setter(exec, JSValue::encode(thisValue), JSValue::encode(value));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeCustomGetterSetterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/CustomGetterSetter.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/CustomGetterSetter.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/runtime/CustomGetterSetter.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> CustomSetter m_setter;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-JS_EXPORT_PRIVATE void callCustomSetter(ExecState*, JSValue customGetterSetter, JSObject* base, JSValue thisValue, JSValue value);
</del><ins>+JS_EXPORT_PRIVATE void callCustomSetter(ExecState*, JSValue customGetterSetter, bool isAccessor, JSObject* slotBase, JSValue thisValue, JSValue);
</ins><span class="cx">
</span><span class="cx"> } // namespace JSC
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSBoundSlotBaseFunctioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSBoundSlotBaseFunction.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSBoundSlotBaseFunction.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/runtime/JSBoundSlotBaseFunction.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> CustomGetterSetter* customGetterSetter = boundSlotBaseFunction->customGetterSetter();
</span><span class="cx">
</span><span class="cx"> if (boundSlotBaseFunction->isSetter()) {
</span><del>- callCustomSetter(exec, customGetterSetter, baseObject, exec->thisValue(), exec->argument(0));
</del><ins>+ callCustomSetter(exec, customGetterSetter, true, baseObject, exec->thisValue(), exec->argument(0));
</ins><span class="cx"> return JSValue::encode(jsUndefined());
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx"> return JSValue::encode(jsUndefined());
</span><span class="cx">
</span><span class="cx"> const String& name = boundSlotBaseFunction->name(exec);
</span><del>- return getter(exec, baseObject, JSValue::encode(exec->thisValue()), PropertyName(Identifier::fromString(exec, name)));
</del><ins>+ return getter(exec, JSValue::encode(exec->thisValue()), PropertyName(Identifier::fromString(exec, name)));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> JSBoundSlotBaseFunction::JSBoundSlotBaseFunction(VM& vm, JSGlobalObject* globalObject, Structure* structure, const Type type)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSCJSValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSCJSValue.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSCJSValue.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/runtime/JSCJSValue.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -169,7 +169,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (gs.isCustomGetterSetter()) {
</span><del>- callCustomSetter(exec, gs, obj, slot.thisValue(), value);
</del><ins>+ callCustomSetter(exec, gs, attributes & CustomAccessor, obj, slot.thisValue(), value);
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSFunctioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSFunction.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSFunction.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/runtime/JSFunction.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -269,9 +269,9 @@
</span><span class="cx"> return functor.result();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue JSFunction::argumentsGetter(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue JSFunction::argumentsGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSFunction* thisObj = jsCast<JSFunction*>(slotBase);
</del><ins>+ JSFunction* thisObj = jsCast<JSFunction*>(JSValue::decode(thisValue));
</ins><span class="cx"> ASSERT(!thisObj->isHostFunction());
</span><span class="cx">
</span><span class="cx"> return JSValue::encode(retrieveArguments(exec, thisObj));
</span><span class="lines">@@ -324,9 +324,9 @@
</span><span class="cx"> return functor.result();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue JSFunction::callerGetter(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue JSFunction::callerGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSFunction* thisObj = jsCast<JSFunction*>(slotBase);
</del><ins>+ JSFunction* thisObj = jsCast<JSFunction*>(JSValue::decode(thisValue));
</ins><span class="cx"> ASSERT(!thisObj->isHostFunction());
</span><span class="cx"> JSValue caller = retrieveCallerFunction(exec, thisObj);
</span><span class="cx">
</span><span class="lines">@@ -343,16 +343,16 @@
</span><span class="cx"> return JSValue::encode(throwTypeError(exec, ASCIILiteral("Function.caller used to retrieve strict caller")));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue JSFunction::lengthGetter(ExecState*, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue JSFunction::lengthGetter(ExecState*, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSFunction* thisObj = jsCast<JSFunction*>(slotBase);
</del><ins>+ JSFunction* thisObj = jsCast<JSFunction*>(JSValue::decode(thisValue));
</ins><span class="cx"> ASSERT(!thisObj->isHostFunction());
</span><span class="cx"> return JSValue::encode(jsNumber(thisObj->jsExecutable()->parameterCount()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue JSFunction::nameGetter(ExecState*, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue JSFunction::nameGetter(ExecState*, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSFunction* thisObj = jsCast<JSFunction*>(slotBase);
</del><ins>+ JSFunction* thisObj = jsCast<JSFunction*>(JSValue::decode(thisValue));
</ins><span class="cx"> ASSERT(!thisObj->isHostFunction());
</span><span class="cx"> return JSValue::encode(thisObj->jsExecutable()->nameValue());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSFunctionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSFunction.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSFunction.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/runtime/JSFunction.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -189,10 +189,10 @@
</span><span class="cx">
</span><span class="cx"> friend class LLIntOffsetsExtractor;
</span><span class="cx">
</span><del>- static EncodedJSValue argumentsGetter(ExecState*, JSObject*, EncodedJSValue, PropertyName);
- static EncodedJSValue callerGetter(ExecState*, JSObject*, EncodedJSValue, PropertyName);
- static EncodedJSValue lengthGetter(ExecState*, JSObject*, EncodedJSValue, PropertyName);
- static EncodedJSValue nameGetter(ExecState*, JSObject*, EncodedJSValue, PropertyName);
</del><ins>+ static EncodedJSValue argumentsGetter(ExecState*, EncodedJSValue, PropertyName);
+ static EncodedJSValue callerGetter(ExecState*, EncodedJSValue, PropertyName);
+ static EncodedJSValue lengthGetter(ExecState*, EncodedJSValue, PropertyName);
+ static EncodedJSValue nameGetter(ExecState*, EncodedJSValue, PropertyName);
</ins><span class="cx">
</span><span class="cx"> WriteBarrier<ExecutableBase> m_executable;
</span><span class="cx"> WriteBarrier<FunctionRareData> m_rareData;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSModuleNamespaceObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSModuleNamespaceObject.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSModuleNamespaceObject.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/runtime/JSModuleNamespaceObject.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx"> visitor.append(&thisObject->m_moduleRecord);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static EncodedJSValue callbackGetter(ExecState* exec, JSObject*, EncodedJSValue thisValue, PropertyName propertyName)
</del><ins>+static EncodedJSValue callbackGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName propertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSModuleNamespaceObject* thisObject = jsCast<JSModuleNamespaceObject*>(JSValue::decode(thisValue));
</span><span class="cx"> JSModuleRecord* moduleRecord = thisObject->moduleRecord();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSObject.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSObject.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/runtime/JSObject.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -400,8 +400,11 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> if (gs.isCustomGetterSetter()) {
</span><del>- callCustomSetter(exec, gs, obj, slot.thisValue(), value);
- slot.setCustomProperty(obj, jsCast<CustomGetterSetter*>(gs.asCell())->setter());
</del><ins>+ callCustomSetter(exec, gs, attributes & CustomAccessor, obj, slot.thisValue(), value);
+ if (attributes & CustomAccessor)
+ slot.setCustomAccessor(obj, jsCast<CustomGetterSetter*>(gs.asCell())->setter());
+ else
+ slot.setCustomValue(obj, jsCast<CustomGetterSetter*>(gs.asCell())->setter());
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> ASSERT(!(attributes & Accessor));
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeLookuph"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Lookup.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Lookup.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/runtime/Lookup.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -276,8 +276,12 @@
</span><span class="cx"> if (slot.isStrictMode())
</span><span class="cx"> throwTypeError(exec, StrictModeReadonlyPropertyWriteError);
</span><span class="cx"> } else if (!(entry->attributes() & ReadOnly)) {
</span><del>- entry->propertyPutter()(exec, base, JSValue::encode(slot.thisValue()), JSValue::encode(value));
- slot.setCustomProperty(base, entry->propertyPutter());
</del><ins>+ JSValue thisValue = entry->attributes() & CustomAccessor ? slot.thisValue() : JSValue(base);
+ entry->propertyPutter()(exec, JSValue::encode(thisValue), JSValue::encode(value));
+ if (entry->attributes() & CustomAccessor)
+ slot.setCustomAccessor(base, entry->propertyPutter());
+ else
+ slot.setCustomValue(base, entry->propertyPutter());
</ins><span class="cx"> } else if (slot.isStrictMode())
</span><span class="cx"> throwTypeError(exec, StrictModeReadonlyPropertyWriteError);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimePropertySlotcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/PropertySlot.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/PropertySlot.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/runtime/PropertySlot.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -23,6 +23,7 @@
</span><span class="cx">
</span><span class="cx"> #include "GetterSetter.h"
</span><span class="cx"> #include "JSCJSValueInlines.h"
</span><ins>+#include "JSObject.h"
</ins><span class="cx">
</span><span class="cx"> namespace JSC {
</span><span class="cx">
</span><span class="lines">@@ -32,4 +33,10 @@
</span><span class="cx"> return callGetter(exec, m_thisValue, m_data.getter.getterSetter);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+JSValue PropertySlot::customGetter(ExecState* exec, PropertyName propertyName) const
+{
+ JSValue thisValue = m_attributes & CustomAccessor ? m_thisValue : JSValue(slotBase());
+ return JSValue::decode(m_data.custom.getValue(exec, JSValue::encode(thisValue), propertyName));
+}
+
</ins><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimePropertySloth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/PropertySlot.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/PropertySlot.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/runtime/PropertySlot.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- typedef EncodedJSValue (*GetValueFunc)(ExecState*, JSObject* slotBase, EncodedJSValue thisValue, PropertyName);
</del><ins>+ typedef EncodedJSValue (*GetValueFunc)(ExecState*, EncodedJSValue thisValue, PropertyName);
</ins><span class="cx">
</span><span class="cx"> JSValue getValue(ExecState*, PropertyName) const;
</span><span class="cx"> JSValue getValue(ExecState*, unsigned propertyName) const;
</span><span class="lines">@@ -249,6 +249,7 @@
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> JS_EXPORT_PRIVATE JSValue functionGetter(ExecState*) const;
</span><ins>+ JS_EXPORT_PRIVATE JSValue customGetter(ExecState*, PropertyName) const;
</ins><span class="cx">
</span><span class="cx"> unsigned m_attributes;
</span><span class="cx"> union {
</span><span class="lines">@@ -275,7 +276,7 @@
</span><span class="cx"> return JSValue::decode(m_data.value);
</span><span class="cx"> if (m_propertyType == TypeGetter)
</span><span class="cx"> return functionGetter(exec);
</span><del>- return JSValue::decode(m_data.custom.getValue(exec, slotBase(), JSValue::encode(m_thisValue), propertyName));
</del><ins>+ return customGetter(exec, propertyName);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ALWAYS_INLINE JSValue PropertySlot::getValue(ExecState* exec, unsigned propertyName) const
</span><span class="lines">@@ -284,7 +285,7 @@
</span><span class="cx"> return JSValue::decode(m_data.value);
</span><span class="cx"> if (m_propertyType == TypeGetter)
</span><span class="cx"> return functionGetter(exec);
</span><del>- return JSValue::decode(m_data.custom.getValue(exec, slotBase(), JSValue::encode(m_thisValue), Identifier::from(exec, propertyName)));
</del><ins>+ return customGetter(exec, Identifier::from(exec, propertyName));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimePutPropertySloth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/PutPropertySlot.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/PutPropertySlot.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/runtime/PutPropertySlot.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -38,9 +38,9 @@
</span><span class="cx">
</span><span class="cx"> class PutPropertySlot {
</span><span class="cx"> public:
</span><del>- enum Type { Uncachable, ExistingProperty, NewProperty, SetterProperty, CustomProperty };
</del><ins>+ enum Type { Uncachable, ExistingProperty, NewProperty, SetterProperty, CustomValue, CustomAccessor };
</ins><span class="cx"> enum Context { UnknownContext, PutById, PutByIdEval };
</span><del>- typedef void (*PutValueFunc)(ExecState*, JSObject* base, EncodedJSValue thisObject, EncodedJSValue value);
</del><ins>+ typedef void (*PutValueFunc)(ExecState*, EncodedJSValue thisObject, EncodedJSValue value);
</ins><span class="cx">
</span><span class="cx"> PutPropertySlot(JSValue thisValue, bool isStrictMode = false, Context context = UnknownContext, bool isInitialization = false)
</span><span class="cx"> : m_type(Uncachable)
</span><span class="lines">@@ -68,13 +68,20 @@
</span><span class="cx"> m_offset = offset;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- void setCustomProperty(JSObject* base, PutValueFunc function)
</del><ins>+ void setCustomValue(JSObject* base, PutValueFunc function)
</ins><span class="cx"> {
</span><del>- m_type = CustomProperty;
</del><ins>+ m_type = CustomValue;
</ins><span class="cx"> m_base = base;
</span><span class="cx"> m_putFunction = function;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ void setCustomAccessor(JSObject* base, PutValueFunc function)
+ {
+ m_type = CustomAccessor;
+ m_base = base;
+ m_putFunction = function;
+ }
+
</ins><span class="cx"> void setCacheableSetter(JSObject* base, PropertyOffset offset)
</span><span class="cx"> {
</span><span class="cx"> m_type = SetterProperty;
</span><span class="lines">@@ -87,7 +94,11 @@
</span><span class="cx"> m_thisValue = thisValue;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- PutValueFunc customSetter() const { return m_putFunction; }
</del><ins>+ PutValueFunc customSetter() const
+ {
+ ASSERT(isCacheableCustom());
+ return m_putFunction;
+ }
</ins><span class="cx">
</span><span class="cx"> Context context() const { return static_cast<Context>(m_context); }
</span><span class="cx">
</span><span class="lines">@@ -98,7 +109,8 @@
</span><span class="cx"> bool isStrictMode() const { return m_isStrictMode; }
</span><span class="cx"> bool isCacheablePut() const { return m_type == NewProperty || m_type == ExistingProperty; }
</span><span class="cx"> bool isCacheableSetter() const { return m_type == SetterProperty; }
</span><del>- bool isCacheableCustom() const { return m_type == CustomProperty; }
</del><ins>+ bool isCacheableCustom() const { return m_type == CustomValue || m_type == CustomAccessor; }
+ bool isCustomAccessor() const { return m_type == CustomAccessor; }
</ins><span class="cx"> bool isInitialization() const { return m_isInitialization; }
</span><span class="cx">
</span><span class="cx"> PropertyOffset cachedOffset() const
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExpConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -31,24 +31,24 @@
</span><span class="cx">
</span><span class="cx"> namespace JSC {
</span><span class="cx">
</span><del>-static EncodedJSValue regExpConstructorInput(ExecState*, JSObject*, EncodedJSValue, PropertyName);
-static EncodedJSValue regExpConstructorMultiline(ExecState*, JSObject*, EncodedJSValue, PropertyName);
-static EncodedJSValue regExpConstructorLastMatch(ExecState*, JSObject*, EncodedJSValue, PropertyName);
-static EncodedJSValue regExpConstructorLastParen(ExecState*, JSObject*, EncodedJSValue, PropertyName);
-static EncodedJSValue regExpConstructorLeftContext(ExecState*, JSObject*, EncodedJSValue, PropertyName);
-static EncodedJSValue regExpConstructorRightContext(ExecState*, JSObject*, EncodedJSValue, PropertyName);
-static EncodedJSValue regExpConstructorDollar1(ExecState*, JSObject*, EncodedJSValue, PropertyName);
-static EncodedJSValue regExpConstructorDollar2(ExecState*, JSObject*, EncodedJSValue, PropertyName);
-static EncodedJSValue regExpConstructorDollar3(ExecState*, JSObject*, EncodedJSValue, PropertyName);
-static EncodedJSValue regExpConstructorDollar4(ExecState*, JSObject*, EncodedJSValue, PropertyName);
-static EncodedJSValue regExpConstructorDollar5(ExecState*, JSObject*, EncodedJSValue, PropertyName);
-static EncodedJSValue regExpConstructorDollar6(ExecState*, JSObject*, EncodedJSValue, PropertyName);
-static EncodedJSValue regExpConstructorDollar7(ExecState*, JSObject*, EncodedJSValue, PropertyName);
-static EncodedJSValue regExpConstructorDollar8(ExecState*, JSObject*, EncodedJSValue, PropertyName);
-static EncodedJSValue regExpConstructorDollar9(ExecState*, JSObject*, EncodedJSValue, PropertyName);
</del><ins>+static EncodedJSValue regExpConstructorInput(ExecState*, EncodedJSValue, PropertyName);
+static EncodedJSValue regExpConstructorMultiline(ExecState*, EncodedJSValue, PropertyName);
+static EncodedJSValue regExpConstructorLastMatch(ExecState*, EncodedJSValue, PropertyName);
+static EncodedJSValue regExpConstructorLastParen(ExecState*, EncodedJSValue, PropertyName);
+static EncodedJSValue regExpConstructorLeftContext(ExecState*, EncodedJSValue, PropertyName);
+static EncodedJSValue regExpConstructorRightContext(ExecState*, EncodedJSValue, PropertyName);
+static EncodedJSValue regExpConstructorDollar1(ExecState*, EncodedJSValue, PropertyName);
+static EncodedJSValue regExpConstructorDollar2(ExecState*, EncodedJSValue, PropertyName);
+static EncodedJSValue regExpConstructorDollar3(ExecState*, EncodedJSValue, PropertyName);
+static EncodedJSValue regExpConstructorDollar4(ExecState*, EncodedJSValue, PropertyName);
+static EncodedJSValue regExpConstructorDollar5(ExecState*, EncodedJSValue, PropertyName);
+static EncodedJSValue regExpConstructorDollar6(ExecState*, EncodedJSValue, PropertyName);
+static EncodedJSValue regExpConstructorDollar7(ExecState*, EncodedJSValue, PropertyName);
+static EncodedJSValue regExpConstructorDollar8(ExecState*, EncodedJSValue, PropertyName);
+static EncodedJSValue regExpConstructorDollar9(ExecState*, EncodedJSValue, PropertyName);
</ins><span class="cx">
</span><del>-static void setRegExpConstructorInput(ExecState*, JSObject*, EncodedJSValue, EncodedJSValue);
-static void setRegExpConstructorMultiline(ExecState*, JSObject*, EncodedJSValue, EncodedJSValue);
</del><ins>+static void setRegExpConstructorInput(ExecState*, EncodedJSValue, EncodedJSValue);
+static void setRegExpConstructorMultiline(ExecState*, EncodedJSValue, EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> } // namespace JSC
</span><span class="cx">
</span><span class="lines">@@ -159,90 +159,90 @@
</span><span class="cx"> return getStaticValueSlot<RegExpConstructor, InternalFunction>(exec, regExpConstructorTable, jsCast<RegExpConstructor*>(object), propertyName, slot);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorDollar1(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorDollar1(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(asRegExpConstructor(slotBase)->getBackref(exec, 1));
</del><ins>+ return JSValue::encode(asRegExpConstructor(JSValue::decode(thisValue))->getBackref(exec, 1));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorDollar2(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorDollar2(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(asRegExpConstructor(slotBase)->getBackref(exec, 2));
</del><ins>+ return JSValue::encode(asRegExpConstructor(JSValue::decode(thisValue))->getBackref(exec, 2));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorDollar3(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorDollar3(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(asRegExpConstructor(slotBase)->getBackref(exec, 3));
</del><ins>+ return JSValue::encode(asRegExpConstructor(JSValue::decode(thisValue))->getBackref(exec, 3));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorDollar4(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorDollar4(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(asRegExpConstructor(slotBase)->getBackref(exec, 4));
</del><ins>+ return JSValue::encode(asRegExpConstructor(JSValue::decode(thisValue))->getBackref(exec, 4));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorDollar5(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorDollar5(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(asRegExpConstructor(slotBase)->getBackref(exec, 5));
</del><ins>+ return JSValue::encode(asRegExpConstructor(JSValue::decode(thisValue))->getBackref(exec, 5));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorDollar6(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorDollar6(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(asRegExpConstructor(slotBase)->getBackref(exec, 6));
</del><ins>+ return JSValue::encode(asRegExpConstructor(JSValue::decode(thisValue))->getBackref(exec, 6));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorDollar7(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorDollar7(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(asRegExpConstructor(slotBase)->getBackref(exec, 7));
</del><ins>+ return JSValue::encode(asRegExpConstructor(JSValue::decode(thisValue))->getBackref(exec, 7));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorDollar8(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorDollar8(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(asRegExpConstructor(slotBase)->getBackref(exec, 8));
</del><ins>+ return JSValue::encode(asRegExpConstructor(JSValue::decode(thisValue))->getBackref(exec, 8));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorDollar9(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorDollar9(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(asRegExpConstructor(slotBase)->getBackref(exec, 9));
</del><ins>+ return JSValue::encode(asRegExpConstructor(JSValue::decode(thisValue))->getBackref(exec, 9));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorInput(ExecState*, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorInput(ExecState*, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(asRegExpConstructor(slotBase)->input());
</del><ins>+ return JSValue::encode(asRegExpConstructor(JSValue::decode(thisValue))->input());
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorMultiline(ExecState*, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorMultiline(ExecState*, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(jsBoolean(asRegExpConstructor(slotBase)->multiline()));
</del><ins>+ return JSValue::encode(jsBoolean(asRegExpConstructor(JSValue::decode(thisValue))->multiline()));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorLastMatch(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorLastMatch(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(asRegExpConstructor(slotBase)->getBackref(exec, 0));
</del><ins>+ return JSValue::encode(asRegExpConstructor(JSValue::decode(thisValue))->getBackref(exec, 0));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorLastParen(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorLastParen(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(asRegExpConstructor(slotBase)->getLastParen(exec));
</del><ins>+ return JSValue::encode(asRegExpConstructor(JSValue::decode(thisValue))->getLastParen(exec));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorLeftContext(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorLeftContext(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(asRegExpConstructor(slotBase)->getLeftContext(exec));
</del><ins>+ return JSValue::encode(asRegExpConstructor(JSValue::decode(thisValue))->getLeftContext(exec));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue regExpConstructorRightContext(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue regExpConstructorRightContext(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(asRegExpConstructor(slotBase)->getRightContext(exec));
</del><ins>+ return JSValue::encode(asRegExpConstructor(JSValue::decode(thisValue))->getRightContext(exec));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void setRegExpConstructorInput(ExecState* exec, JSObject* baseObject, EncodedJSValue, EncodedJSValue value)
</del><ins>+void setRegExpConstructorInput(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue value)
</ins><span class="cx"> {
</span><del>- if (auto constructor = jsDynamicCast<RegExpConstructor*>(baseObject))
</del><ins>+ if (auto constructor = jsDynamicCast<RegExpConstructor*>(JSValue::decode(thisValue)))
</ins><span class="cx"> constructor->setInput(exec, JSValue::decode(value).toString(exec));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setRegExpConstructorMultiline(ExecState* exec, JSObject* baseObject, EncodedJSValue, EncodedJSValue value)
</del><ins>+void setRegExpConstructorMultiline(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue value)
</ins><span class="cx"> {
</span><del>- if (auto constructor = jsDynamicCast<RegExpConstructor*>(baseObject))
</del><ins>+ if (auto constructor = jsDynamicCast<RegExpConstructor*>(JSValue::decode(thisValue)))
</ins><span class="cx"> constructor->setMultiline(JSValue::decode(value).toBoolean(exec));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExpObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExpObject.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExpObject.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/JavaScriptCore/runtime/RegExpObject.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -137,21 +137,21 @@
</span><span class="cx"> return Base::defineOwnProperty(object, exec, propertyName, descriptor, shouldThrow);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static void regExpObjectSetLastIndexStrict(ExecState* exec, JSObject* slotBase, EncodedJSValue, EncodedJSValue value)
</del><ins>+static void regExpObjectSetLastIndexStrict(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue value)
</ins><span class="cx"> {
</span><del>- asRegExpObject(slotBase)->setLastIndex(exec, JSValue::decode(value), true);
</del><ins>+ asRegExpObject(JSValue::decode(thisValue))->setLastIndex(exec, JSValue::decode(value), true);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-static void regExpObjectSetLastIndexNonStrict(ExecState* exec, JSObject* slotBase, EncodedJSValue, EncodedJSValue value)
</del><ins>+static void regExpObjectSetLastIndexNonStrict(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue value)
</ins><span class="cx"> {
</span><del>- asRegExpObject(slotBase)->setLastIndex(exec, JSValue::decode(value), false);
</del><ins>+ asRegExpObject(JSValue::decode(thisValue))->setLastIndex(exec, JSValue::decode(value), false);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void RegExpObject::put(JSCell* cell, ExecState* exec, PropertyName propertyName, JSValue value, PutPropertySlot& slot)
</span><span class="cx"> {
</span><span class="cx"> if (propertyName == exec->propertyNames().lastIndex) {
</span><span class="cx"> asRegExpObject(cell)->setLastIndex(exec, value, slot.isStrictMode());
</span><del>- slot.setCustomProperty(asRegExpObject(cell), slot.isStrictMode()
</del><ins>+ slot.setCustomValue(asRegExpObject(cell), slot.isStrictMode()
</ins><span class="cx"> ? regExpObjectSetLastIndexStrict
</span><span class="cx"> : regExpObjectSetLastIndexNonStrict);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/ChangeLog        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -1,3 +1,61 @@
</span><ins>+2016-02-07 Gavin Barraclough <barraclough@apple.com>
+
+ GetValueFunc/PutValueFunc should not take both slotBase and thisValue
+ https://bugs.webkit.org/show_bug.cgi?id=154009
+
+ Reviewed by Geoff Garen.
+
+ In JavaScript there are two types of properties - regular value properties, and accessor properties.
+ One difference between these is how they are reflected by getOwnPropertyDescriptor, and another is
+ what object they operate on in the case of a prototype access. If you access a value property of a
+ prototype object it return a value pertinent to the prototype, but in the case of a prototype object
+ returning an accessor, then the accessor function is applied to the base object of the access.
+
+ JSC supports special 'custom' properties implemented as a c++ callback, and these custom properties
+ can be used to implement either value- or accessor-like behavior. getOwnPropertyDescriptor behavior
+ is selected via the CustomAccessor attribute. Value- or accessor-like object selection is current
+ supported by passing both the slotBase and the thisValue to the callback,and hoping it uses the
+ right one. This is probably inefficient, bug-prone, and leads to crazy like JSBoundSlotBaseFunction.
+
+ Instead, just pass one thisValue to the callback functions, consistent with CustomAccessor.
+
+ * bindings/js/JSDOMBinding.cpp:
+ (WebCore::printErrorMessageForFrame):
+ (WebCore::objectToStringFunctionGetter):
+ * bindings/js/JSDOMBinding.h:
+ (WebCore::propertyNameToString):
+ (WebCore::getStaticValueSlotEntryWithoutCaching<JSDOMObject>):
+ (WebCore::nonCachingStaticFunctionGetter):
+ * bindings/js/JSDOMWindowCustom.cpp:
+ (WebCore::JSDOMWindow::visitAdditionalChildren):
+ (WebCore::childFrameGetter):
+ (WebCore::namedItemGetter):
+ (WebCore::jsDOMWindowWebKit):
+ (WebCore::jsDOMWindowIndexedDB):
+ - add missing null check, in case indexDB acessor is applied to non-window object.
+ * bindings/js/JSPluginElementFunctions.cpp:
+ (WebCore::pluginScriptObject):
+ (WebCore::pluginElementPropertyGetter):
+ * bindings/js/JSPluginElementFunctions.h:
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateHeader):
+ (GenerateImplementation):
+ * bridge/runtime_array.cpp:
+ (JSC::RuntimeArray::destroy):
+ (JSC::RuntimeArray::lengthGetter):
+ * bridge/runtime_array.h:
+ * bridge/runtime_method.cpp:
+ (JSC::RuntimeMethod::finishCreation):
+ (JSC::RuntimeMethod::lengthGetter):
+ * bridge/runtime_method.h:
+ * bridge/runtime_object.cpp:
+ (JSC::Bindings::RuntimeObject::invalidate):
+ (JSC::Bindings::RuntimeObject::fallbackObjectGetter):
+ (JSC::Bindings::RuntimeObject::fieldGetter):
+ (JSC::Bindings::RuntimeObject::methodGetter):
+ * bridge/runtime_object.h:
+ - Merged slotBase & thisValue to custom property callbacks.
+
</ins><span class="cx"> 2016-02-09 Jer Noble <jer.noble@apple.com>
</span><span class="cx">
</span><span class="cx"> Build-fix; add Nullibility macros around previously un-macro'd class definitions.
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMBindingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMBinding.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMBinding.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/js/JSDOMBinding.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -334,7 +334,7 @@
</span><span class="cx"> frame->document()->domWindow()->printErrorMessage(message);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue objectToStringFunctionGetter(ExecState* exec, JSObject*, EncodedJSValue, PropertyName propertyName)
</del><ins>+EncodedJSValue objectToStringFunctionGetter(ExecState* exec, EncodedJSValue, PropertyName propertyName)
</ins><span class="cx"> {
</span><span class="cx"> return JSValue::encode(JSFunction::create(exec->vm(), exec->lexicalGlobalObject(), 0, propertyName.publicName(), objectProtoFuncToString));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMBindingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMBinding.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMBinding.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/js/JSDOMBinding.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -653,7 +653,7 @@
</span><span class="cx"> bool shouldAllowAccessToDOMWindow(JSC::ExecState*, DOMWindow&, String& message);
</span><span class="cx">
</span><span class="cx"> void printErrorMessageForFrame(Frame*, const String& message);
</span><del>-JSC::EncodedJSValue objectToStringFunctionGetter(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</del><ins>+JSC::EncodedJSValue objectToStringFunctionGetter(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
</ins><span class="cx">
</span><span class="cx"> inline String propertyNameToString(JSC::PropertyName propertyName)
</span><span class="cx"> {
</span><span class="lines">@@ -683,7 +683,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> template<JSC::NativeFunction nativeFunction, int length>
</span><del>-JSC::EncodedJSValue nonCachingStaticFunctionGetter(JSC::ExecState* exec, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName propertyName)
</del><ins>+JSC::EncodedJSValue nonCachingStaticFunctionGetter(JSC::ExecState* exec, JSC::EncodedJSValue, JSC::PropertyName propertyName)
</ins><span class="cx"> {
</span><span class="cx"> return JSC::JSValue::encode(JSC::JSFunction::create(exec->vm(), exec->lexicalGlobalObject(), length, propertyName.publicName(), nativeFunction));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMWindowCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -66,14 +66,14 @@
</span><span class="cx"> visitor.addOpaqueRoot(frame);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static EncodedJSValue childFrameGetter(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName propertyName)
</del><ins>+static EncodedJSValue childFrameGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName propertyName)
</ins><span class="cx"> {
</span><del>- return JSValue::encode(toJS(exec, jsCast<JSDOMWindow*>(slotBase)->wrapped().frame()->tree().scopedChild(propertyNameToAtomicString(propertyName))->document()->domWindow()));
</del><ins>+ return JSValue::encode(toJS(exec, jsCast<JSDOMWindow*>(JSValue::decode(thisValue))->wrapped().frame()->tree().scopedChild(propertyNameToAtomicString(propertyName))->document()->domWindow()));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-static EncodedJSValue namedItemGetter(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName propertyName)
</del><ins>+static EncodedJSValue namedItemGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName propertyName)
</ins><span class="cx"> {
</span><del>- JSDOMWindowBase* thisObj = jsCast<JSDOMWindow*>(slotBase);
</del><ins>+ JSDOMWindowBase* thisObj = jsCast<JSDOMWindow*>(JSValue::decode(thisValue));
</ins><span class="cx"> Document* document = thisObj->wrapped().frame()->document();
</span><span class="cx">
</span><span class="cx"> ASSERT(BindingSecurity::shouldAllowAccessToDOMWindow(exec, thisObj->wrapped()));
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(USER_MESSAGE_HANDLERS)
</span><del>-static EncodedJSValue jsDOMWindowWebKit(ExecState* exec, JSObject*, EncodedJSValue thisValue, PropertyName)
</del><ins>+static EncodedJSValue jsDOMWindowWebKit(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSDOMWindow* castedThis = toJSDOMWindow(JSValue::decode(thisValue));
</span><span class="cx"> if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis->wrapped()))
</span><span class="lines">@@ -103,15 +103,13 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-static EncodedJSValue jsDOMWindowIndexedDB(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+static EncodedJSValue jsDOMWindowIndexedDB(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(exec);
</span><del>- UNUSED_PARAM(slotBase);
- UNUSED_PARAM(thisValue);
</del><span class="cx"> auto* castedThis = toJSDOMWindow(JSValue::decode(thisValue));
</span><span class="cx"> if (!RuntimeEnabledFeatures::sharedFeatures().indexedDBEnabled())
</span><span class="cx"> return JSValue::encode(jsUndefined());
</span><del>- if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis->wrapped()))
</del><ins>+ if (!castedThis || !BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis->wrapped()))
</ins><span class="cx"> return JSValue::encode(jsUndefined());
</span><span class="cx"> auto& impl = castedThis->wrapped();
</span><span class="cx"> JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(DOMWindowIndexedDatabase::indexedDB(&impl)));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSPluginElementFunctionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSPluginElementFunctions.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSPluginElementFunctions.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/js/JSPluginElementFunctions.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx"> return instance->createRuntimeObject(exec);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue pluginElementPropertyGetter(ExecState* exec, JSObject*, EncodedJSValue thisValue, PropertyName propertyName)
</del><ins>+EncodedJSValue pluginElementPropertyGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName propertyName)
</ins><span class="cx"> {
</span><span class="cx">
</span><span class="cx"> JSHTMLElement* thisObject = jsDynamicCast<JSHTMLElement*>(JSValue::decode(thisValue));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSPluginElementFunctionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSPluginElementFunctions.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSPluginElementFunctions.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/js/JSPluginElementFunctions.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -38,7 +38,8 @@
</span><span class="cx"> JSC::Bindings::Instance* pluginInstance(HTMLElement&);
</span><span class="cx"> WEBCORE_EXPORT JSC::JSObject* pluginScriptObject(JSC::ExecState*, JSHTMLElement*);
</span><span class="cx">
</span><del>- JSC::EncodedJSValue pluginElementPropertyGetter(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</del><ins>+ JSC::EncodedJSValue pluginElementPropertyGetter(JSC::ExecState*,
+ JSC::EncodedJSValue, JSC::PropertyName);
</ins><span class="cx"> bool pluginElementCustomGetOwnPropertySlot(JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&, JSHTMLElement*);
</span><span class="cx"> bool pluginElementCustomPut(JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSHTMLElement*, JSC::PutPropertySlot&);
</span><span class="cx"> JSC::CallType pluginElementGetCallData(JSHTMLElement*, JSC::CallData&);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -1302,10 +1302,10 @@
</span><span class="cx"> my $conditionalString = $codeGenerator->GenerateConditionalString($attribute->signature);
</span><span class="cx"> push(@headerContent, "#if ${conditionalString}\n") if $conditionalString;
</span><span class="cx"> my $getter = GetAttributeGetterName($interfaceName, $className, $interface, $attribute);
</span><del>- push(@headerContent, "JSC::EncodedJSValue ${getter}(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);\n");
</del><ins>+ push(@headerContent, "JSC::EncodedJSValue ${getter}(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);\n");
</ins><span class="cx"> if (!IsReadonly($attribute)) {
</span><span class="cx"> my $setter = GetAttributeSetterName($interfaceName, $className, $interface, $attribute);
</span><del>- push(@headerContent, "void ${setter}(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);\n");
</del><ins>+ push(@headerContent, "void ${setter}(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);\n");
</ins><span class="cx"> }
</span><span class="cx"> push(@headerContent, "#endif\n") if $conditionalString;
</span><span class="cx"> }
</span><span class="lines">@@ -1835,21 +1835,21 @@
</span><span class="cx"> my $conditionalString = $codeGenerator->GenerateConditionalString($attribute->signature);
</span><span class="cx"> push(@implContent, "#if ${conditionalString}\n") if $conditionalString;
</span><span class="cx"> my $getter = GetAttributeGetterName($interfaceName, $className, $interface, $attribute);
</span><del>- push(@implContent, "JSC::EncodedJSValue ${getter}(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);\n");
</del><ins>+ push(@implContent, "JSC::EncodedJSValue ${getter}(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);\n");
</ins><span class="cx"> if (!IsReadonly($attribute)) {
</span><span class="cx"> my $setter = GetAttributeSetterName($interfaceName, $className, $interface, $attribute);
</span><del>- push(@implContent, "void ${setter}(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);\n");
</del><ins>+ push(@implContent, "void ${setter}(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);\n");
</ins><span class="cx"> }
</span><span class="cx"> push(@implContent, "#endif\n") if $conditionalString;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (NeedsConstructorProperty($interface)) {
</span><span class="cx"> my $getter = "js" . $interfaceName . "Constructor";
</span><del>- push(@implContent, "JSC::EncodedJSValue ${getter}(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);\n");
</del><ins>+ push(@implContent, "JSC::EncodedJSValue ${getter}(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);\n");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> my $constructorFunctionName = "setJS" . $interfaceName . "Constructor";
</span><del>- push(@implContent, "void ${constructorFunctionName}(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);\n");
</del><ins>+ push(@implContent, "void ${constructorFunctionName}(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);\n");
</ins><span class="cx">
</span><span class="cx"> push(@implContent, "\n");
</span><span class="cx"> }
</span><span class="lines">@@ -2278,11 +2278,10 @@
</span><span class="cx"> my $attributeConditionalString = $codeGenerator->GenerateConditionalString($attribute->signature);
</span><span class="cx"> push(@implContent, "#if ${attributeConditionalString}\n") if $attributeConditionalString;
</span><span class="cx">
</span><del>- push(@implContent, "EncodedJSValue ${getFunctionName}(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)\n");
</del><ins>+ push(@implContent, "EncodedJSValue ${getFunctionName}(ExecState* state, EncodedJSValue thisValue, PropertyName)\n");
</ins><span class="cx"> push(@implContent, "{\n");
</span><span class="cx">
</span><span class="cx"> push(@implContent, " UNUSED_PARAM(state);\n");
</span><del>- push(@implContent, " UNUSED_PARAM(slotBase);\n");
</del><span class="cx"> push(@implContent, " UNUSED_PARAM(thisValue);\n");
</span><span class="cx">
</span><span class="cx"> if (!$attribute->isStatic || $attribute->signature->type =~ /Constructor$/) {
</span><span class="lines">@@ -2488,17 +2487,17 @@
</span><span class="cx"> my $constructorFunctionName = "js" . $interfaceName . "Constructor";
</span><span class="cx">
</span><span class="cx"> if ($interface->extendedAttributes->{"CustomProxyToJSObject"}) {
</span><del>- push(@implContent, "EncodedJSValue ${constructorFunctionName}(ExecState* state, JSObject*, EncodedJSValue thisValue, PropertyName)\n");
</del><ins>+ push(@implContent, "EncodedJSValue ${constructorFunctionName}(ExecState* state, EncodedJSValue thisValue, PropertyName)\n");
</ins><span class="cx"> push(@implContent, "{\n");
</span><span class="cx"> push(@implContent, " ${className}* domObject = to${className}(JSValue::decode(thisValue));\n");
</span><span class="cx"> } elsif (ConstructorShouldBeOnInstance($interface)) {
</span><del>- push(@implContent, "EncodedJSValue ${constructorFunctionName}(ExecState* state, JSObject*, EncodedJSValue thisValue, PropertyName)\n");
</del><ins>+ push(@implContent, "EncodedJSValue ${constructorFunctionName}(ExecState* state, EncodedJSValue thisValue, PropertyName)\n");
</ins><span class="cx"> push(@implContent, "{\n");
</span><span class="cx"> push(@implContent, " ${className}* domObject = " . GetCastingHelperForThisObject($interface) . "(JSValue::decode(thisValue));\n");
</span><span class="cx"> } else {
</span><del>- push(@implContent, "EncodedJSValue ${constructorFunctionName}(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)\n");
</del><ins>+ push(@implContent, "EncodedJSValue ${constructorFunctionName}(ExecState* state, EncodedJSValue thisValue, PropertyName)\n");
</ins><span class="cx"> push(@implContent, "{\n");
</span><del>- push(@implContent, " ${className}Prototype* domObject = jsDynamicCast<${className}Prototype*>(baseValue);\n");
</del><ins>+ push(@implContent, " ${className}Prototype* domObject = jsDynamicCast<${className}Prototype*>(JSValue::decode(thisValue));\n");
</ins><span class="cx"> }
</span><span class="cx"> push(@implContent, " if (!domObject)\n");
</span><span class="cx"> push(@implContent, " return throwVMTypeError(state);\n");
</span><span class="lines">@@ -2522,18 +2521,15 @@
</span><span class="cx">
</span><span class="cx"> my $constructorFunctionName = "setJS" . $interfaceName . "Constructor";
</span><span class="cx">
</span><del>- push(@implContent, "void ${constructorFunctionName}(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)\n");
</del><ins>+ push(@implContent, "void ${constructorFunctionName}(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)\n");
</ins><span class="cx"> push(@implContent, "{\n");
</span><span class="cx"> push(@implContent, " JSValue value = JSValue::decode(encodedValue);\n");
</span><span class="cx"> if ($interface->extendedAttributes->{"CustomProxyToJSObject"}) {
</span><del>- push(@implContent, " UNUSED_PARAM(baseValue);\n");
</del><span class="cx"> push(@implContent, " ${className}* domObject = to${className}(JSValue::decode(thisValue));\n");
</span><span class="cx"> } elsif (ConstructorShouldBeOnInstance($interface)) {
</span><del>- push(@implContent, " UNUSED_PARAM(baseValue);\n");
</del><span class="cx"> push(@implContent, " ${className}* domObject = " . GetCastingHelperForThisObject($interface) . "(JSValue::decode(thisValue));\n");
</span><span class="cx"> } else {
</span><del>- push(@implContent, " UNUSED_PARAM(thisValue);\n");
- push(@implContent, " ${className}Prototype* domObject = jsDynamicCast<${className}Prototype*>(baseValue);\n");
</del><ins>+ push(@implContent, " ${className}Prototype* domObject = jsDynamicCast<${className}Prototype*>(JSValue::decode(thisValue));\n");
</ins><span class="cx"> }
</span><span class="cx"> push(@implContent, " if (UNLIKELY(!domObject)) {\n");
</span><span class="cx"> push(@implContent, " throwVMTypeError(state);\n");
</span><span class="lines">@@ -2620,12 +2616,10 @@
</span><span class="cx"> my $attributeConditionalString = $codeGenerator->GenerateConditionalString($attribute->signature);
</span><span class="cx"> push(@implContent, "#if ${attributeConditionalString}\n") if $attributeConditionalString;
</span><span class="cx">
</span><del>- push(@implContent, "void ${putFunctionName}(ExecState* state, JSObject* baseObject, EncodedJSValue");
- push(@implContent, " thisValue") if !$attribute->isStatic;
- push(@implContent, ", EncodedJSValue encodedValue)\n");
</del><ins>+ push(@implContent, "void ${putFunctionName}(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)\n");
</ins><span class="cx"> push(@implContent, "{\n");
</span><span class="cx"> push(@implContent, " JSValue value = JSValue::decode(encodedValue);\n");
</span><del>- push(@implContent, " UNUSED_PARAM(baseObject);\n");
</del><ins>+ push(@implContent, " UNUSED_PARAM(thisValue);\n") if !$attribute->isStatic;
</ins><span class="cx"> if (!$attribute->isStatic) {
</span><span class="cx"> if ($interface->extendedAttributes->{"CustomProxyToJSObject"}) {
</span><span class="cx"> push(@implContent, " ${className}* castedThis = to${className}(JSValue::decode(thisValue));\n");
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -39,9 +39,9 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestActiveDOMObjectExcitingAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestActiveDOMObjectConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestActiveDOMObjectConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestActiveDOMObjectExcitingAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestActiveDOMObjectConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestActiveDOMObjectConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestActiveDOMObjectPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -144,10 +144,9 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestActiveDOMObjectExcitingAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestActiveDOMObjectExcitingAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestActiveDOMObject*>(decodedThisValue);
</span><span class="lines">@@ -162,7 +161,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestActiveDOMObjectConstructor(ExecState* state, JSObject*, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestActiveDOMObjectConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestActiveDOMObject* domObject = jsDynamicCast<JSTestActiveDOMObject*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="lines">@@ -172,10 +171,9 @@
</span><span class="cx"> return JSValue::encode(JSTestActiveDOMObject::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestActiveDOMObjectConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestActiveDOMObjectConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseValue);
</del><span class="cx"> JSTestActiveDOMObject* domObject = jsDynamicCast<JSTestActiveDOMObject*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestClassWithJSBuiltinConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -32,8 +32,8 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestClassWithJSBuiltinConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestClassWithJSBuiltinConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestClassWithJSBuiltinConstructorConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestClassWithJSBuiltinConstructorConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestClassWithJSBuiltinConstructorPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -119,19 +119,18 @@
</span><span class="cx"> thisObject->JSTestClassWithJSBuiltinConstructor::~JSTestClassWithJSBuiltinConstructor();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestClassWithJSBuiltinConstructorConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestClassWithJSBuiltinConstructorConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestClassWithJSBuiltinConstructorPrototype* domObject = jsDynamicCast<JSTestClassWithJSBuiltinConstructorPrototype*>(baseValue);
</del><ins>+ JSTestClassWithJSBuiltinConstructorPrototype* domObject = jsDynamicCast<JSTestClassWithJSBuiltinConstructorPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestClassWithJSBuiltinConstructor::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestClassWithJSBuiltinConstructorConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestClassWithJSBuiltinConstructorConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestClassWithJSBuiltinConstructorPrototype* domObject = jsDynamicCast<JSTestClassWithJSBuiltinConstructorPrototype*>(baseValue);
</del><ins>+ JSTestClassWithJSBuiltinConstructorPrototype* domObject = jsDynamicCast<JSTestClassWithJSBuiltinConstructorPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomConstructorWithNoInterfaceObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -31,8 +31,8 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestCustomConstructorWithNoInterfaceObjectConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestCustomConstructorWithNoInterfaceObjectConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestCustomConstructorWithNoInterfaceObjectConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestCustomConstructorWithNoInterfaceObjectConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestCustomConstructorWithNoInterfaceObjectPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -113,9 +113,9 @@
</span><span class="cx"> thisObject->JSTestCustomConstructorWithNoInterfaceObject::~JSTestCustomConstructorWithNoInterfaceObject();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestCustomConstructorWithNoInterfaceObjectConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestCustomConstructorWithNoInterfaceObjectConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestCustomConstructorWithNoInterfaceObjectPrototype* domObject = jsDynamicCast<JSTestCustomConstructorWithNoInterfaceObjectPrototype*>(baseValue);
</del><ins>+ JSTestCustomConstructorWithNoInterfaceObjectPrototype* domObject = jsDynamicCast<JSTestCustomConstructorWithNoInterfaceObjectPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> JSValue constructor = JSTestCustomConstructorWithNoInterfaceObjectConstructor::create(state->vm(), JSTestCustomConstructorWithNoInterfaceObjectConstructor::createStructure(state->vm(), *domObject->globalObject(), domObject->globalObject()->objectPrototype()), *jsCast<JSDOMGlobalObject*>(domObject->globalObject()));
</span><span class="lines">@@ -124,11 +124,10 @@
</span><span class="cx"> return JSValue::encode(constructor);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestCustomConstructorWithNoInterfaceObjectConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestCustomConstructorWithNoInterfaceObjectConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestCustomConstructorWithNoInterfaceObjectPrototype* domObject = jsDynamicCast<JSTestCustomConstructorWithNoInterfaceObjectPrototype*>(baseValue);
</del><ins>+ JSTestCustomConstructorWithNoInterfaceObjectPrototype* domObject = jsDynamicCast<JSTestCustomConstructorWithNoInterfaceObjectPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -38,8 +38,8 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestCustomNamedGetterConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestCustomNamedGetterConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestCustomNamedGetterConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestCustomNamedGetterConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestCustomNamedGetterPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -151,19 +151,18 @@
</span><span class="cx"> return Base::getOwnPropertySlotByIndex(thisObject, state, index, slot);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestCustomNamedGetterConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestCustomNamedGetterConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestCustomNamedGetterPrototype* domObject = jsDynamicCast<JSTestCustomNamedGetterPrototype*>(baseValue);
</del><ins>+ JSTestCustomNamedGetterPrototype* domObject = jsDynamicCast<JSTestCustomNamedGetterPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestCustomNamedGetter::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestCustomNamedGetterConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestCustomNamedGetterConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestCustomNamedGetterPrototype* domObject = jsDynamicCast<JSTestCustomNamedGetterPrototype*>(baseValue);
</del><ins>+ JSTestCustomNamedGetterPrototype* domObject = jsDynamicCast<JSTestCustomNamedGetterPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -35,10 +35,10 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestEventConstructorAttr1(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestEventConstructorAttr2(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestEventConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestEventConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestEventConstructorAttr1(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestEventConstructorAttr2(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestEventConstructorConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestEventConstructorConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestEventConstructorPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -156,10 +156,9 @@
</span><span class="cx"> thisObject->JSTestEventConstructor::~JSTestEventConstructor();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestEventConstructorAttr1(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestEventConstructorAttr1(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestEventConstructor*>(decodedThisValue);
</span><span class="lines">@@ -172,10 +171,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestEventConstructorAttr2(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestEventConstructorAttr2(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestEventConstructor*>(decodedThisValue);
</span><span class="lines">@@ -188,19 +186,18 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestEventConstructorConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestEventConstructorConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestEventConstructorPrototype* domObject = jsDynamicCast<JSTestEventConstructorPrototype*>(baseValue);
</del><ins>+ JSTestEventConstructorPrototype* domObject = jsDynamicCast<JSTestEventConstructorPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestEventConstructor::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestEventConstructorConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestEventConstructorConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestEventConstructorPrototype* domObject = jsDynamicCast<JSTestEventConstructorPrototype*>(baseValue);
</del><ins>+ JSTestEventConstructorPrototype* domObject = jsDynamicCast<JSTestEventConstructorPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -47,8 +47,8 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestEventTargetConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestEventTargetConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestEventTargetConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestEventTargetConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestEventTargetPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -167,19 +167,18 @@
</span><span class="cx"> return Base::getOwnPropertySlotByIndex(thisObject, state, index, slot);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestEventTargetConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestEventTargetConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestEventTargetPrototype* domObject = jsDynamicCast<JSTestEventTargetPrototype*>(baseValue);
</del><ins>+ JSTestEventTargetPrototype* domObject = jsDynamicCast<JSTestEventTargetPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestEventTarget::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestEventTargetConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestEventTargetConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestEventTargetPrototype* domObject = jsDynamicCast<JSTestEventTargetPrototype*>(baseValue);
</del><ins>+ JSTestEventTargetPrototype* domObject = jsDynamicCast<JSTestEventTargetPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -33,9 +33,9 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestExceptionName(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestExceptionConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestExceptionConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestExceptionName(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestExceptionConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestExceptionConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestExceptionPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -134,10 +134,9 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestExceptionName(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestExceptionName(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestException*>(decodedThisValue);
</span><span class="lines">@@ -150,19 +149,18 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestExceptionConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestExceptionConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestExceptionPrototype* domObject = jsDynamicCast<JSTestExceptionPrototype*>(baseValue);
</del><ins>+ JSTestExceptionPrototype* domObject = jsDynamicCast<JSTestExceptionPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestException::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestExceptionConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestExceptionConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestExceptionPrototype* domObject = jsDynamicCast<JSTestExceptionPrototype*>(baseValue);
</del><ins>+ JSTestExceptionPrototype* domObject = jsDynamicCast<JSTestExceptionPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -31,8 +31,8 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestGenerateIsReachableConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestGenerateIsReachableConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestGenerateIsReachableConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestGenerateIsReachableConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestGenerateIsReachablePrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -108,19 +108,18 @@
</span><span class="cx"> thisObject->JSTestGenerateIsReachable::~JSTestGenerateIsReachable();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestGenerateIsReachableConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestGenerateIsReachableConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestGenerateIsReachablePrototype* domObject = jsDynamicCast<JSTestGenerateIsReachablePrototype*>(baseValue);
</del><ins>+ JSTestGenerateIsReachablePrototype* domObject = jsDynamicCast<JSTestGenerateIsReachablePrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestGenerateIsReachable::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestGenerateIsReachableConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestGenerateIsReachableConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestGenerateIsReachablePrototype* domObject = jsDynamicCast<JSTestGenerateIsReachablePrototype*>(baseValue);
</del><ins>+ JSTestGenerateIsReachablePrototype* domObject = jsDynamicCast<JSTestGenerateIsReachablePrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -78,51 +78,51 @@
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-JSC::EncodedJSValue jsTestInterfaceConstructorImplementsStaticReadOnlyAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</del><ins>+JSC::EncodedJSValue jsTestInterfaceConstructorImplementsStaticReadOnlyAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-JSC::EncodedJSValue jsTestInterfaceConstructorImplementsStaticAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestInterfaceConstructorImplementsStaticAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestInterfaceConstructorImplementsStaticAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestInterfaceConstructorImplementsStaticAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-JSC::EncodedJSValue jsTestInterfaceImplementsStr1(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</del><ins>+JSC::EncodedJSValue jsTestInterfaceImplementsStr1(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-JSC::EncodedJSValue jsTestInterfaceImplementsStr2(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestInterfaceImplementsStr2(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestInterfaceImplementsStr2(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestInterfaceImplementsStr2(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-JSC::EncodedJSValue jsTestInterfaceImplementsStr3(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestInterfaceImplementsStr3(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestInterfaceImplementsStr3(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestInterfaceImplementsStr3(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-JSC::EncodedJSValue jsTestInterfaceImplementsNode(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestInterfaceImplementsNode(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestInterfaceImplementsNode(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestInterfaceImplementsNode(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-JSC::EncodedJSValue jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</del><ins>+JSC::EncodedJSValue jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-JSC::EncodedJSValue jsTestInterfaceConstructorSupplementalStaticAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestInterfaceConstructorSupplementalStaticAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestInterfaceConstructorSupplementalStaticAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestInterfaceConstructorSupplementalStaticAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-JSC::EncodedJSValue jsTestInterfaceSupplementalStr1(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</del><ins>+JSC::EncodedJSValue jsTestInterfaceSupplementalStr1(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-JSC::EncodedJSValue jsTestInterfaceSupplementalStr2(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestInterfaceSupplementalStr2(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestInterfaceSupplementalStr2(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestInterfaceSupplementalStr2(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-JSC::EncodedJSValue jsTestInterfaceSupplementalStr3(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestInterfaceSupplementalStr3(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestInterfaceSupplementalStr3(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestInterfaceSupplementalStr3(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-JSC::EncodedJSValue jsTestInterfaceSupplementalNode(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestInterfaceSupplementalNode(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestInterfaceSupplementalNode(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestInterfaceSupplementalNode(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #endif
</span><del>-JSC::EncodedJSValue jsTestInterfaceConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestInterfaceConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestInterfaceConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestInterfaceConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestInterfacePrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -404,10 +404,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-EncodedJSValue jsTestInterfaceConstructorImplementsStaticReadOnlyAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceConstructorImplementsStaticReadOnlyAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue result = jsNumber(TestInterface::implementsStaticReadOnlyAttr());
</span><span class="cx"> return JSValue::encode(result);
</span><span class="lines">@@ -416,10 +415,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-EncodedJSValue jsTestInterfaceConstructorImplementsStaticAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceConstructorImplementsStaticAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue result = jsStringWithCache(state, TestInterface::implementsStaticAttr());
</span><span class="cx"> return JSValue::encode(result);
</span><span class="lines">@@ -428,10 +426,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-EncodedJSValue jsTestInterfaceImplementsStr1(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceImplementsStr1(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestInterface*>(decodedThisValue);
</span><span class="lines">@@ -446,10 +443,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-EncodedJSValue jsTestInterfaceImplementsStr2(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceImplementsStr2(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestInterface*>(decodedThisValue);
</span><span class="lines">@@ -464,10 +460,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-EncodedJSValue jsTestInterfaceImplementsStr3(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceImplementsStr3(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestInterface*>(decodedThisValue);
</span><span class="lines">@@ -480,10 +475,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-EncodedJSValue jsTestInterfaceImplementsNode(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceImplementsNode(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestInterface*>(decodedThisValue);
</span><span class="lines">@@ -498,10 +492,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-EncodedJSValue jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue result = jsNumber(WebCore::TestSupplemental::supplementalStaticReadOnlyAttr());
</span><span class="cx"> return JSValue::encode(result);
</span><span class="lines">@@ -510,10 +503,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-EncodedJSValue jsTestInterfaceConstructorSupplementalStaticAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceConstructorSupplementalStaticAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue result = jsStringWithCache(state, WebCore::TestSupplemental::supplementalStaticAttr());
</span><span class="cx"> return JSValue::encode(result);
</span><span class="lines">@@ -522,10 +514,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-EncodedJSValue jsTestInterfaceSupplementalStr1(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceSupplementalStr1(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestInterface*>(decodedThisValue);
</span><span class="lines">@@ -540,10 +531,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-EncodedJSValue jsTestInterfaceSupplementalStr2(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceSupplementalStr2(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestInterface*>(decodedThisValue);
</span><span class="lines">@@ -558,10 +548,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-EncodedJSValue jsTestInterfaceSupplementalStr3(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceSupplementalStr3(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestInterface*>(decodedThisValue);
</span><span class="lines">@@ -574,10 +563,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-EncodedJSValue jsTestInterfaceSupplementalNode(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceSupplementalNode(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestInterface*>(decodedThisValue);
</span><span class="lines">@@ -591,19 +579,18 @@
</span><span class="cx">
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-EncodedJSValue jsTestInterfaceConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestInterfacePrototype* domObject = jsDynamicCast<JSTestInterfacePrototype*>(baseValue);
</del><ins>+ JSTestInterfacePrototype* domObject = jsDynamicCast<JSTestInterfacePrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestInterface::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestInterfaceConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestInterfacePrototype* domObject = jsDynamicCast<JSTestInterfacePrototype*>(baseValue);
</del><ins>+ JSTestInterfacePrototype* domObject = jsDynamicCast<JSTestInterfacePrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span><span class="lines">@@ -633,10 +620,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-void setJSTestInterfaceConstructorImplementsStaticAttr(ExecState* state, JSObject* baseObject, EncodedJSValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceConstructorImplementsStaticAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><span class="cx"> String nativeValue = value.toString(state)->value(state);
</span><span class="cx"> if (UNLIKELY(state->hadException()))
</span><span class="cx"> return;
</span><span class="lines">@@ -646,10 +632,10 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-void setJSTestInterfaceImplementsStr2(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceImplementsStr2(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestInterface* castedThis = jsDynamicCast<JSTestInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestInterface", "implementsStr2");
</span><span class="lines">@@ -665,10 +651,10 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-void setJSTestInterfaceImplementsStr3(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceImplementsStr3(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestInterface* castedThis = jsDynamicCast<JSTestInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestInterface", "implementsStr3");
</span><span class="lines">@@ -680,10 +666,10 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-void setJSTestInterfaceImplementsNode(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceImplementsNode(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestInterface* castedThis = jsDynamicCast<JSTestInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestInterface", "implementsNode");
</span><span class="lines">@@ -699,10 +685,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-void setJSTestInterfaceConstructorSupplementalStaticAttr(ExecState* state, JSObject* baseObject, EncodedJSValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceConstructorSupplementalStaticAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><span class="cx"> String nativeValue = value.toString(state)->value(state);
</span><span class="cx"> if (UNLIKELY(state->hadException()))
</span><span class="cx"> return;
</span><span class="lines">@@ -712,10 +697,10 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-void setJSTestInterfaceSupplementalStr2(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceSupplementalStr2(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestInterface* castedThis = jsDynamicCast<JSTestInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestInterface", "supplementalStr2");
</span><span class="lines">@@ -731,10 +716,10 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-void setJSTestInterfaceSupplementalStr3(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceSupplementalStr3(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestInterface* castedThis = jsDynamicCast<JSTestInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestInterface", "supplementalStr3");
</span><span class="lines">@@ -746,10 +731,10 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-void setJSTestInterfaceSupplementalNode(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceSupplementalNode(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestInterface* castedThis = jsDynamicCast<JSTestInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestInterface", "supplementalNode");
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestJSBuiltinConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -37,11 +37,11 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestJSBuiltinConstructorTestAttributeCustom(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestJSBuiltinConstructorTestAttributeRWCustom(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestJSBuiltinConstructorTestAttributeRWCustom(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestJSBuiltinConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestJSBuiltinConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestJSBuiltinConstructorTestAttributeCustom(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestJSBuiltinConstructorTestAttributeRWCustom(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestJSBuiltinConstructorTestAttributeRWCustom(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestJSBuiltinConstructorConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestJSBuiltinConstructorConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestJSBuiltinConstructorPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -125,10 +125,9 @@
</span><span class="cx"> thisObject->JSTestJSBuiltinConstructor::~JSTestJSBuiltinConstructor();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestJSBuiltinConstructorTestAttributeCustom(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestJSBuiltinConstructorTestAttributeCustom(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestJSBuiltinConstructor*>(decodedThisValue);
</span><span class="lines">@@ -139,10 +138,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestJSBuiltinConstructorTestAttributeRWCustom(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestJSBuiltinConstructorTestAttributeRWCustom(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestJSBuiltinConstructor*>(decodedThisValue);
</span><span class="lines">@@ -153,19 +151,18 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestJSBuiltinConstructorConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestJSBuiltinConstructorConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestJSBuiltinConstructorPrototype* domObject = jsDynamicCast<JSTestJSBuiltinConstructorPrototype*>(baseValue);
</del><ins>+ JSTestJSBuiltinConstructorPrototype* domObject = jsDynamicCast<JSTestJSBuiltinConstructorPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestJSBuiltinConstructor::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestJSBuiltinConstructorConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestJSBuiltinConstructorConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestJSBuiltinConstructorPrototype* domObject = jsDynamicCast<JSTestJSBuiltinConstructorPrototype*>(baseValue);
</del><ins>+ JSTestJSBuiltinConstructorPrototype* domObject = jsDynamicCast<JSTestJSBuiltinConstructorPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span><span class="lines">@@ -174,10 +171,10 @@
</span><span class="cx"> domObject->putDirect(state->vm(), state->propertyNames().constructor, value);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestJSBuiltinConstructorTestAttributeRWCustom(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestJSBuiltinConstructorTestAttributeRWCustom(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestJSBuiltinConstructor* castedThis = jsDynamicCast<JSTestJSBuiltinConstructor*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestJSBuiltinConstructor", "testAttributeRWCustom");
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -38,8 +38,8 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestMediaQueryListListenerConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestMediaQueryListListenerConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestMediaQueryListListenerConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestMediaQueryListListenerConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestMediaQueryListListenerPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -116,19 +116,18 @@
</span><span class="cx"> thisObject->JSTestMediaQueryListListener::~JSTestMediaQueryListListener();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestMediaQueryListListenerConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestMediaQueryListListenerConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestMediaQueryListListenerPrototype* domObject = jsDynamicCast<JSTestMediaQueryListListenerPrototype*>(baseValue);
</del><ins>+ JSTestMediaQueryListListenerPrototype* domObject = jsDynamicCast<JSTestMediaQueryListListenerPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestMediaQueryListListener::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestMediaQueryListListenerConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestMediaQueryListListenerConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestMediaQueryListListenerPrototype* domObject = jsDynamicCast<JSTestMediaQueryListListenerPrototype*>(baseValue);
</del><ins>+ JSTestMediaQueryListListenerPrototype* domObject = jsDynamicCast<JSTestMediaQueryListListenerPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -33,8 +33,8 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestNamedConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestNamedConstructorConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestNamedConstructorConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestNamedConstructorConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestNamedConstructorPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -143,19 +143,18 @@
</span><span class="cx"> thisObject->JSTestNamedConstructor::~JSTestNamedConstructor();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestNamedConstructorConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestNamedConstructorConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestNamedConstructorPrototype* domObject = jsDynamicCast<JSTestNamedConstructorPrototype*>(baseValue);
</del><ins>+ JSTestNamedConstructorPrototype* domObject = jsDynamicCast<JSTestNamedConstructorPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestNamedConstructor::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestNamedConstructorConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestNamedConstructorConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestNamedConstructorPrototype* domObject = jsDynamicCast<JSTestNamedConstructorPrototype*>(baseValue);
</del><ins>+ JSTestNamedConstructorPrototype* domObject = jsDynamicCast<JSTestNamedConstructorPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -35,10 +35,10 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestNodeName(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestNodeName(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestNodeConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestNodeConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestNodeName(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestNodeName(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestNodeConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestNodeConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestNodePrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -116,10 +116,9 @@
</span><span class="cx"> return getDOMPrototype<JSTestNode>(vm, globalObject);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestNodeName(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestNodeName(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestNode*>(decodedThisValue);
</span><span class="lines">@@ -132,19 +131,18 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestNodeConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestNodeConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestNodePrototype* domObject = jsDynamicCast<JSTestNodePrototype*>(baseValue);
</del><ins>+ JSTestNodePrototype* domObject = jsDynamicCast<JSTestNodePrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestNode::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestNodeConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestNodeConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestNodePrototype* domObject = jsDynamicCast<JSTestNodePrototype*>(baseValue);
</del><ins>+ JSTestNodePrototype* domObject = jsDynamicCast<JSTestNodePrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span><span class="lines">@@ -153,10 +151,10 @@
</span><span class="cx"> domObject->putDirect(state->vm(), state->propertyNames().constructor, value);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestNodeName(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestNodeName(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestNode* castedThis = jsDynamicCast<JSTestNode*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestNode", "name");
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministiccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -45,17 +45,17 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestNondeterministicNondeterministicReadonlyAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestNondeterministicNondeterministicWriteableAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestNondeterministicNondeterministicWriteableAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestNondeterministicNondeterministicExceptionAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestNondeterministicNondeterministicExceptionAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestNondeterministicNondeterministicGetterExceptionAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestNondeterministicNondeterministicGetterExceptionAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestNondeterministicNondeterministicSetterExceptionAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestNondeterministicNondeterministicSetterExceptionAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestNondeterministicConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestNondeterministicConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestNondeterministicNondeterministicReadonlyAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestNondeterministicNondeterministicWriteableAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestNondeterministicNondeterministicWriteableAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestNondeterministicNondeterministicExceptionAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestNondeterministicNondeterministicExceptionAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestNondeterministicNondeterministicGetterExceptionAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestNondeterministicNondeterministicGetterExceptionAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestNondeterministicNondeterministicSetterExceptionAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestNondeterministicNondeterministicSetterExceptionAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestNondeterministicConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestNondeterministicConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestNondeterministicPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -137,10 +137,9 @@
</span><span class="cx"> thisObject->JSTestNondeterministic::~JSTestNondeterministic();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestNondeterministicNondeterministicReadonlyAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestNondeterministicNondeterministicReadonlyAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestNondeterministic*>(decodedThisValue);
</span><span class="lines">@@ -173,10 +172,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestNondeterministicNondeterministicWriteableAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestNondeterministicNondeterministicWriteableAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestNondeterministic*>(decodedThisValue);
</span><span class="lines">@@ -209,10 +207,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestNondeterministicNondeterministicExceptionAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestNondeterministicNondeterministicExceptionAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestNondeterministic*>(decodedThisValue);
</span><span class="lines">@@ -245,10 +242,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestNondeterministicNondeterministicGetterExceptionAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestNondeterministicNondeterministicGetterExceptionAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestNondeterministic*>(decodedThisValue);
</span><span class="lines">@@ -285,10 +281,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestNondeterministicNondeterministicSetterExceptionAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestNondeterministicNondeterministicSetterExceptionAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestNondeterministic*>(decodedThisValue);
</span><span class="lines">@@ -321,19 +316,18 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestNondeterministicConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestNondeterministicConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestNondeterministicPrototype* domObject = jsDynamicCast<JSTestNondeterministicPrototype*>(baseValue);
</del><ins>+ JSTestNondeterministicPrototype* domObject = jsDynamicCast<JSTestNondeterministicPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestNondeterministic::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestNondeterministicConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestNondeterministicConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestNondeterministicPrototype* domObject = jsDynamicCast<JSTestNondeterministicPrototype*>(baseValue);
</del><ins>+ JSTestNondeterministicPrototype* domObject = jsDynamicCast<JSTestNondeterministicPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span><span class="lines">@@ -342,10 +336,10 @@
</span><span class="cx"> domObject->putDirect(state->vm(), state->propertyNames().constructor, value);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestNondeterministicNondeterministicWriteableAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestNondeterministicNondeterministicWriteableAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestNondeterministic* castedThis = jsDynamicCast<JSTestNondeterministic*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestNondeterministic", "nondeterministicWriteableAttr");
</span><span class="lines">@@ -359,10 +353,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestNondeterministicNondeterministicExceptionAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestNondeterministicNondeterministicExceptionAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestNondeterministic* castedThis = jsDynamicCast<JSTestNondeterministic*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestNondeterministic", "nondeterministicExceptionAttr");
</span><span class="lines">@@ -376,10 +370,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestNondeterministicNondeterministicGetterExceptionAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestNondeterministicNondeterministicGetterExceptionAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestNondeterministic* castedThis = jsDynamicCast<JSTestNondeterministic*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestNondeterministic", "nondeterministicGetterExceptionAttr");
</span><span class="lines">@@ -393,10 +387,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestNondeterministicNondeterministicSetterExceptionAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestNondeterministicNondeterministicSetterExceptionAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestNondeterministic* castedThis = jsDynamicCast<JSTestNondeterministic*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestNondeterministic", "nondeterministicSetterExceptionAttr");
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -180,159 +180,159 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestObjReadOnlyLongAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjReadOnlyStringAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjReadOnlyTestObjAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjConstructorStaticReadOnlyLongAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjConstructorStaticStringAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjConstructorStaticStringAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjConstructorTestSubObj(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjTestSubObjEnabledBySettingConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjTestSubObjEnabledBySettingConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjEnumAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjEnumAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjByteAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjByteAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjOctetAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjOctetAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjShortAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjShortAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjUnsignedShortAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjUnsignedShortAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjLongAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjLongAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjLongLongAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjLongLongAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjUnsignedLongLongAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjUnsignedLongLongAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjStringAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjStringAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjTestObjAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjTestObjAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjLenientTestObjAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjLenientTestObjAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjXMLObjAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjXMLObjAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjCreate(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjCreate(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjReadOnlySymbolAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjConstructorStaticReadOnlySymbolAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjReflectedStringAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjReflectedStringAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjReflectedIntegralAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjReflectedIntegralAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjReflectedUnsignedIntegralAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjReflectedUnsignedIntegralAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjReflectedBooleanAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjReflectedBooleanAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjReflectedURLAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjReflectedURLAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjReflectedStringAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjReflectedStringAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjReflectedCustomIntegralAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjReflectedCustomIntegralAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjReflectedCustomBooleanAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjReflectedCustomBooleanAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjReflectedCustomURLAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjReflectedCustomURLAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjTypedArrayAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjTypedArrayAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjAttrWithGetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjAttrWithGetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjAttrWithGetterExceptionWithMessage(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjAttrWithGetterExceptionWithMessage(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjAttrWithSetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjAttrWithSetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjAttrWithSetterExceptionWithMessage(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjAttrWithSetterExceptionWithMessage(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjStringAttrWithGetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjStringAttrWithGetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjStringAttrWithSetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjStringAttrWithSetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjStrictTypeCheckingAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjStrictTypeCheckingAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjCustomAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjCustomAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjOnfoo(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjOnfoo(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjWithScriptStateAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjWithScriptStateAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjWithCallWithAndSetterCallWithAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjWithCallWithAndSetterCallWithAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjWithScriptExecutionContextAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjWithScriptExecutionContextAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjWithScriptStateAttributeRaises(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjWithScriptStateAttributeRaises(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjWithScriptExecutionContextAttributeRaises(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjWithScriptExecutionContextAttributeRaises(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjWithScriptExecutionContextAndScriptStateAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjWithScriptExecutionContextAndScriptStateAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjWithScriptArgumentsAndCallStackAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjWithScriptArgumentsAndCallStackAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestObjReadOnlyLongAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjReadOnlyStringAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjReadOnlyTestObjAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjConstructorStaticReadOnlyLongAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjConstructorStaticStringAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjConstructorStaticStringAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjConstructorTestSubObj(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjTestSubObjEnabledBySettingConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjTestSubObjEnabledBySettingConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjEnumAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjEnumAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjByteAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjByteAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjOctetAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjOctetAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjShortAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjShortAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjUnsignedShortAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjUnsignedShortAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjLongAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjLongAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjLongLongAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjLongLongAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjUnsignedLongLongAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjUnsignedLongLongAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjStringAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjStringAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjTestObjAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjTestObjAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjLenientTestObjAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjLenientTestObjAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjXMLObjAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjXMLObjAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjCreate(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjCreate(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjReadOnlySymbolAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjConstructorStaticReadOnlySymbolAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjReflectedStringAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjReflectedStringAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjReflectedIntegralAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjReflectedIntegralAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjReflectedUnsignedIntegralAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjReflectedUnsignedIntegralAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjReflectedBooleanAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjReflectedBooleanAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjReflectedURLAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjReflectedURLAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjReflectedStringAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjReflectedStringAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjReflectedCustomIntegralAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjReflectedCustomIntegralAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjReflectedCustomBooleanAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjReflectedCustomBooleanAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjReflectedCustomURLAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjReflectedCustomURLAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjTypedArrayAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjTypedArrayAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjAttrWithGetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjAttrWithGetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjAttrWithGetterExceptionWithMessage(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjAttrWithGetterExceptionWithMessage(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjAttrWithSetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjAttrWithSetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjAttrWithSetterExceptionWithMessage(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjAttrWithSetterExceptionWithMessage(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjStringAttrWithGetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjStringAttrWithGetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjStringAttrWithSetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjStringAttrWithSetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjStrictTypeCheckingAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjStrictTypeCheckingAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjCustomAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjCustomAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjOnfoo(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjOnfoo(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjWithScriptStateAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjWithScriptStateAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjWithCallWithAndSetterCallWithAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjWithCallWithAndSetterCallWithAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjWithScriptExecutionContextAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjWithScriptExecutionContextAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjWithScriptStateAttributeRaises(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjWithScriptStateAttributeRaises(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjWithScriptExecutionContextAttributeRaises(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjWithScriptExecutionContextAttributeRaises(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjWithScriptExecutionContextAndScriptStateAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjWithScriptExecutionContextAndScriptStateAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjWithScriptArgumentsAndCallStackAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjWithScriptArgumentsAndCallStackAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #if ENABLE(Condition1)
</span><del>-JSC::EncodedJSValue jsTestObjConditionalAttr1(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjConditionalAttr1(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestObjConditionalAttr1(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjConditionalAttr1(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition1) && ENABLE(Condition2)
</span><del>-JSC::EncodedJSValue jsTestObjConditionalAttr2(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjConditionalAttr2(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestObjConditionalAttr2(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjConditionalAttr2(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><del>-JSC::EncodedJSValue jsTestObjConditionalAttr3(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjConditionalAttr3(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestObjConditionalAttr3(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjConditionalAttr3(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition1)
</span><del>-JSC::EncodedJSValue jsTestObjConditionalAttr4Constructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjConditionalAttr4Constructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestObjConditionalAttr4Constructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjConditionalAttr4Constructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition1) && ENABLE(Condition2)
</span><del>-JSC::EncodedJSValue jsTestObjConditionalAttr5Constructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjConditionalAttr5Constructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestObjConditionalAttr5Constructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjConditionalAttr5Constructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><del>-JSC::EncodedJSValue jsTestObjConditionalAttr6Constructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjConditionalAttr6Constructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestObjConditionalAttr6Constructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjConditionalAttr6Constructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> #endif
</span><del>-JSC::EncodedJSValue jsTestObjCachedAttribute1(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjCachedAttribute2(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjAnyAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjAnyAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjContentDocument(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjMutablePoint(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjMutablePoint(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjImmutablePoint(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjImmutablePoint(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjStrawberry(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjStrawberry(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjStrictFloat(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjStrictFloat(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjDescription(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjId(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjId(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjHash(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjReplaceableAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjReplaceableAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjNullableDoubleAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjNullableLongAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjNullableBooleanAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjNullableStringAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjNullableLongSettableAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjNullableLongSettableAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjNullableStringValue(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjNullableStringValue(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjAttributeWithReservedEnumType(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjAttributeWithReservedEnumType(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjPutForwardsAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjPutForwardsAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjPutForwardsNullableAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjPutForwardsNullableAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestObjConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestObjCachedAttribute1(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjCachedAttribute2(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjAnyAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjAnyAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjContentDocument(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjMutablePoint(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjMutablePoint(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjImmutablePoint(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjImmutablePoint(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjStrawberry(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjStrawberry(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjStrictFloat(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjStrictFloat(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjDescription(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjId(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjId(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjHash(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjReplaceableAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjReplaceableAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjNullableDoubleAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjNullableLongAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjNullableBooleanAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjNullableStringAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjNullableLongSettableAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjNullableLongSettableAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjNullableStringValue(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjNullableStringValue(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestObjAttributeWithReservedEnumType(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjAttributeWithReservedEnumType(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjPutForwardsAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjPutForwardsAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjPutForwardsNullableAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjPutForwardsNullableAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestObjPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -742,10 +742,9 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjReadOnlyLongAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjReadOnlyLongAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -758,10 +757,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjReadOnlyStringAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjReadOnlyStringAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -774,10 +772,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjReadOnlyTestObjAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjReadOnlyTestObjAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -790,30 +787,27 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjConstructorStaticReadOnlyLongAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjConstructorStaticReadOnlyLongAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue result = jsNumber(TestObj::staticReadOnlyLongAttr());
</span><span class="cx"> return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjConstructorStaticStringAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjConstructorStaticStringAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue result = jsStringWithCache(state, TestObj::staticStringAttr());
</span><span class="cx"> return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjConstructorTestSubObj(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjConstructorTestSubObj(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -824,10 +818,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjTestSubObjEnabledBySettingConstructor(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjTestSubObjEnabledBySettingConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -843,10 +836,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjEnumAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjEnumAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -859,10 +851,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjByteAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjByteAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -875,10 +866,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjOctetAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjOctetAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -891,10 +881,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjShortAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjShortAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -907,10 +896,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjUnsignedShortAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjUnsignedShortAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -923,10 +911,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjLongAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjLongAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -939,10 +926,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjLongLongAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjLongLongAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -955,10 +941,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjUnsignedLongLongAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjUnsignedLongLongAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -971,10 +956,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjStringAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjStringAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -987,10 +971,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjTestObjAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjTestObjAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1003,10 +986,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjLenientTestObjAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjLenientTestObjAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1019,10 +1001,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjXMLObjAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjXMLObjAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1035,10 +1016,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjCreate(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjCreate(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1051,10 +1031,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjReadOnlySymbolAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjReadOnlySymbolAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1067,20 +1046,18 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjConstructorStaticReadOnlySymbolAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjConstructorStaticReadOnlySymbolAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue result = Symbol::create(state->vm(), *(TestObj::staticReadOnlySymbolAttr()).uid());
</span><span class="cx"> return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjReflectedStringAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjReflectedStringAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1093,10 +1070,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjReflectedIntegralAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjReflectedIntegralAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1109,10 +1085,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjReflectedUnsignedIntegralAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjReflectedUnsignedIntegralAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1125,10 +1100,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjReflectedBooleanAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjReflectedBooleanAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1141,10 +1115,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjReflectedURLAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjReflectedURLAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1157,10 +1130,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjReflectedStringAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjReflectedStringAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1173,10 +1145,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjReflectedCustomIntegralAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjReflectedCustomIntegralAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1189,10 +1160,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjReflectedCustomBooleanAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjReflectedCustomBooleanAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1205,10 +1175,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjReflectedCustomURLAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjReflectedCustomURLAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1221,10 +1190,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjTypedArrayAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjTypedArrayAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1237,10 +1205,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjAttrWithGetterException(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjAttrWithGetterException(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1255,10 +1222,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjAttrWithGetterExceptionWithMessage(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjAttrWithGetterExceptionWithMessage(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1273,10 +1239,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjAttrWithSetterException(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjAttrWithSetterException(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1289,10 +1254,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjAttrWithSetterExceptionWithMessage(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjAttrWithSetterExceptionWithMessage(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1305,10 +1269,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjStringAttrWithGetterException(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjStringAttrWithGetterException(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1323,10 +1286,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjStringAttrWithSetterException(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjStringAttrWithSetterException(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1339,10 +1301,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjStrictTypeCheckingAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjStrictTypeCheckingAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1355,10 +1316,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjCustomAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjCustomAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1369,10 +1329,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjOnfoo(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjOnfoo(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1384,10 +1343,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjWithScriptStateAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjWithScriptStateAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1400,10 +1358,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjWithCallWithAndSetterCallWithAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjWithCallWithAndSetterCallWithAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1416,10 +1373,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjWithScriptExecutionContextAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjWithScriptExecutionContextAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1435,10 +1391,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjWithScriptStateAttributeRaises(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjWithScriptStateAttributeRaises(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1453,10 +1408,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjWithScriptExecutionContextAttributeRaises(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjWithScriptExecutionContextAttributeRaises(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1474,10 +1428,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjWithScriptExecutionContextAndScriptStateAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjWithScriptExecutionContextAndScriptStateAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1493,10 +1446,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1514,10 +1466,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1533,10 +1484,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjWithScriptArgumentsAndCallStackAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjWithScriptArgumentsAndCallStackAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1550,10 +1500,9 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition1)
</span><del>-EncodedJSValue jsTestObjConditionalAttr1(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjConditionalAttr1(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1568,10 +1517,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition1) && ENABLE(Condition2)
</span><del>-EncodedJSValue jsTestObjConditionalAttr2(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjConditionalAttr2(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1586,10 +1534,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><del>-EncodedJSValue jsTestObjConditionalAttr3(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjConditionalAttr3(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1604,10 +1551,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition1)
</span><del>-EncodedJSValue jsTestObjConditionalAttr4Constructor(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjConditionalAttr4Constructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1620,10 +1566,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition1) && ENABLE(Condition2)
</span><del>-EncodedJSValue jsTestObjConditionalAttr5Constructor(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjConditionalAttr5Constructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1636,10 +1581,9 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><del>-EncodedJSValue jsTestObjConditionalAttr6Constructor(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjConditionalAttr6Constructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1651,10 +1595,9 @@
</span><span class="cx">
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjCachedAttribute1(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjCachedAttribute1(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1670,10 +1613,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjCachedAttribute2(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjCachedAttribute2(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1689,10 +1631,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjAnyAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjAnyAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1705,10 +1646,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjContentDocument(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjContentDocument(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1720,10 +1660,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjMutablePoint(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjMutablePoint(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1736,10 +1675,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjImmutablePoint(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjImmutablePoint(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1752,10 +1690,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjStrawberry(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjStrawberry(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1768,10 +1705,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjStrictFloat(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjStrictFloat(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1784,10 +1720,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjDescription(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjDescription(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1800,10 +1735,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjId(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjId(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1816,10 +1750,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjHash(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjHash(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1832,10 +1765,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjReplaceableAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjReplaceableAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1848,10 +1780,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjNullableDoubleAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjNullableDoubleAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1864,10 +1795,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjNullableLongAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjNullableLongAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1880,10 +1810,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjNullableBooleanAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjNullableBooleanAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1896,10 +1825,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjNullableStringAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjNullableStringAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1912,10 +1840,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjNullableLongSettableAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjNullableLongSettableAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1928,10 +1855,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjNullableStringValue(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjNullableStringValue(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1946,10 +1872,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1962,10 +1887,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjAttributeWithReservedEnumType(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjAttributeWithReservedEnumType(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1978,10 +1902,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjPutForwardsAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjPutForwardsAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -1994,10 +1917,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjPutForwardsNullableAttribute(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjPutForwardsNullableAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
</span><span class="lines">@@ -2010,19 +1932,18 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestObjPrototype* domObject = jsDynamicCast<JSTestObjPrototype*>(baseValue);
</del><ins>+ JSTestObjPrototype* domObject = jsDynamicCast<JSTestObjPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestObj::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestObjConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestObjPrototype* domObject = jsDynamicCast<JSTestObjPrototype*>(baseValue);
</del><ins>+ JSTestObjPrototype* domObject = jsDynamicCast<JSTestObjPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span><span class="lines">@@ -2031,10 +1952,9 @@
</span><span class="cx"> domObject->putDirect(state->vm(), state->propertyNames().constructor, value);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestObjConstructorStaticStringAttr(ExecState* state, JSObject* baseObject, EncodedJSValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConstructorStaticStringAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><span class="cx"> String nativeValue = value.toString(state)->value(state);
</span><span class="cx"> if (UNLIKELY(state->hadException()))
</span><span class="cx"> return;
</span><span class="lines">@@ -2042,10 +1962,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjTestSubObjEnabledBySettingConstructor(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjTestSubObjEnabledBySettingConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "TestSubObjEnabledBySetting");
</span><span class="lines">@@ -2056,10 +1976,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjEnumAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjEnumAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "enumAttr");
</span><span class="lines">@@ -2075,10 +1995,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjByteAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjByteAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "byteAttr");
</span><span class="lines">@@ -2092,10 +2012,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjOctetAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjOctetAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "octetAttr");
</span><span class="lines">@@ -2109,10 +2029,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjShortAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjShortAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "shortAttr");
</span><span class="lines">@@ -2126,10 +2046,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjUnsignedShortAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjUnsignedShortAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "unsignedShortAttr");
</span><span class="lines">@@ -2143,10 +2063,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjLongAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjLongAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "longAttr");
</span><span class="lines">@@ -2160,10 +2080,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjLongLongAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjLongLongAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "longLongAttr");
</span><span class="lines">@@ -2177,10 +2097,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjUnsignedLongLongAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjUnsignedLongLongAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "unsignedLongLongAttr");
</span><span class="lines">@@ -2194,10 +2114,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjStringAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjStringAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "stringAttr");
</span><span class="lines">@@ -2211,10 +2131,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjTestObjAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjTestObjAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "testObjAttr");
</span><span class="lines">@@ -2228,10 +2148,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjLenientTestObjAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjLenientTestObjAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> return;
</span><span class="lines">@@ -2244,10 +2164,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjXMLObjAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjXMLObjAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "XMLObjAttr");
</span><span class="lines">@@ -2261,10 +2181,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjCreate(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjCreate(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "create");
</span><span class="lines">@@ -2278,10 +2198,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjReflectedStringAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedStringAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "reflectedStringAttr");
</span><span class="lines">@@ -2295,10 +2215,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjReflectedIntegralAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedIntegralAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "reflectedIntegralAttr");
</span><span class="lines">@@ -2312,10 +2232,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjReflectedUnsignedIntegralAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedUnsignedIntegralAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "reflectedUnsignedIntegralAttr");
</span><span class="lines">@@ -2329,10 +2249,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjReflectedBooleanAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedBooleanAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "reflectedBooleanAttr");
</span><span class="lines">@@ -2346,10 +2266,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjReflectedURLAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedURLAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "reflectedURLAttr");
</span><span class="lines">@@ -2363,10 +2283,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjReflectedStringAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedStringAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "reflectedStringAttr");
</span><span class="lines">@@ -2380,10 +2300,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjReflectedCustomIntegralAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedCustomIntegralAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "reflectedCustomIntegralAttr");
</span><span class="lines">@@ -2397,10 +2317,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjReflectedCustomBooleanAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedCustomBooleanAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "reflectedCustomBooleanAttr");
</span><span class="lines">@@ -2414,10 +2334,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjReflectedCustomURLAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedCustomURLAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "reflectedCustomURLAttr");
</span><span class="lines">@@ -2431,10 +2351,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjTypedArrayAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjTypedArrayAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "typedArrayAttr");
</span><span class="lines">@@ -2448,10 +2368,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjAttrWithGetterException(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjAttrWithGetterException(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "attrWithGetterException");
</span><span class="lines">@@ -2465,10 +2385,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjAttrWithGetterExceptionWithMessage(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjAttrWithGetterExceptionWithMessage(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "attrWithGetterExceptionWithMessage");
</span><span class="lines">@@ -2482,10 +2402,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjAttrWithSetterException(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjAttrWithSetterException(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "attrWithSetterException");
</span><span class="lines">@@ -2501,10 +2421,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjAttrWithSetterExceptionWithMessage(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjAttrWithSetterExceptionWithMessage(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "attrWithSetterExceptionWithMessage");
</span><span class="lines">@@ -2520,10 +2440,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjStringAttrWithGetterException(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjStringAttrWithGetterException(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "stringAttrWithGetterException");
</span><span class="lines">@@ -2537,10 +2457,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjStringAttrWithSetterException(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjStringAttrWithSetterException(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "stringAttrWithSetterException");
</span><span class="lines">@@ -2556,10 +2476,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjStrictTypeCheckingAttribute(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjStrictTypeCheckingAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "strictTypeCheckingAttribute");
</span><span class="lines">@@ -2577,10 +2497,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjCustomAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjCustomAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "customAttr");
</span><span class="lines">@@ -2590,10 +2510,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjOnfoo(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjOnfoo(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "onfoo");
</span><span class="lines">@@ -2603,10 +2523,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjWithScriptStateAttribute(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptStateAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "withScriptStateAttribute");
</span><span class="lines">@@ -2620,10 +2540,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjWithCallWithAndSetterCallWithAttribute(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithCallWithAndSetterCallWithAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "withCallWithAndSetterCallWithAttribute");
</span><span class="lines">@@ -2637,10 +2557,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjWithScriptExecutionContextAttribute(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptExecutionContextAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "withScriptExecutionContextAttribute");
</span><span class="lines">@@ -2657,10 +2577,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjWithScriptStateAttributeRaises(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptStateAttributeRaises(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "withScriptStateAttributeRaises");
</span><span class="lines">@@ -2674,10 +2594,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjWithScriptExecutionContextAttributeRaises(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptExecutionContextAttributeRaises(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "withScriptExecutionContextAttributeRaises");
</span><span class="lines">@@ -2694,10 +2614,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjWithScriptExecutionContextAndScriptStateAttribute(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptExecutionContextAndScriptStateAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "withScriptExecutionContextAndScriptStateAttribute");
</span><span class="lines">@@ -2714,10 +2634,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "withScriptExecutionContextAndScriptStateAttributeRaises");
</span><span class="lines">@@ -2734,10 +2654,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "withScriptExecutionContextAndScriptStateWithSpacesAttribute");
</span><span class="lines">@@ -2754,10 +2674,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjWithScriptArgumentsAndCallStackAttribute(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptArgumentsAndCallStackAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "withScriptArgumentsAndCallStackAttribute");
</span><span class="lines">@@ -2772,10 +2692,10 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition1)
</span><del>-void setJSTestObjConditionalAttr1(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConditionalAttr1(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "conditionalAttr1");
</span><span class="lines">@@ -2791,10 +2711,10 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition1) && ENABLE(Condition2)
</span><del>-void setJSTestObjConditionalAttr2(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConditionalAttr2(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "conditionalAttr2");
</span><span class="lines">@@ -2810,10 +2730,10 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><del>-void setJSTestObjConditionalAttr3(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConditionalAttr3(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "conditionalAttr3");
</span><span class="lines">@@ -2829,10 +2749,10 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition1)
</span><del>-void setJSTestObjConditionalAttr4Constructor(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConditionalAttr4Constructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "conditionalAttr4");
</span><span class="lines">@@ -2845,10 +2765,10 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition1) && ENABLE(Condition2)
</span><del>-void setJSTestObjConditionalAttr5Constructor(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConditionalAttr5Constructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "conditionalAttr5");
</span><span class="lines">@@ -2861,10 +2781,10 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><del>-void setJSTestObjConditionalAttr6Constructor(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConditionalAttr6Constructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "conditionalAttr6");
</span><span class="lines">@@ -2876,10 +2796,10 @@
</span><span class="cx">
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-void setJSTestObjAnyAttribute(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjAnyAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "anyAttribute");
</span><span class="lines">@@ -2893,10 +2813,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjMutablePoint(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjMutablePoint(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "mutablePoint");
</span><span class="lines">@@ -2910,10 +2830,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjImmutablePoint(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjImmutablePoint(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "immutablePoint");
</span><span class="lines">@@ -2927,10 +2847,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjStrawberry(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjStrawberry(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "strawberry");
</span><span class="lines">@@ -2944,10 +2864,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjStrictFloat(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjStrictFloat(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "strictFloat");
</span><span class="lines">@@ -2961,10 +2881,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjId(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjId(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "id");
</span><span class="lines">@@ -2978,10 +2898,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjReplaceableAttribute(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReplaceableAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "replaceableAttribute");
</span><span class="lines">@@ -2992,10 +2912,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjNullableLongSettableAttribute(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjNullableLongSettableAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "nullableLongSettableAttribute");
</span><span class="lines">@@ -3009,10 +2929,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjNullableStringValue(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjNullableStringValue(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "nullableStringValue");
</span><span class="lines">@@ -3026,10 +2946,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjAttributeWithReservedEnumType(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjAttributeWithReservedEnumType(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "attributeWithReservedEnumType");
</span><span class="lines">@@ -3045,10 +2965,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjPutForwardsAttribute(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjPutForwardsAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "putForwardsAttribute");
</span><span class="lines">@@ -3063,10 +2983,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestObjPutForwardsNullableAttribute(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjPutForwardsNullableAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestObj", "putForwardsNullableAttribute");
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -34,8 +34,8 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestOverloadedConstructorsConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestOverloadedConstructorsConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestOverloadedConstructorsConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestOverloadedConstructorsConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestOverloadedConstructorsPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -188,19 +188,18 @@
</span><span class="cx"> thisObject->JSTestOverloadedConstructors::~JSTestOverloadedConstructors();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestOverloadedConstructorsConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestOverloadedConstructorsConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestOverloadedConstructorsPrototype* domObject = jsDynamicCast<JSTestOverloadedConstructorsPrototype*>(baseValue);
</del><ins>+ JSTestOverloadedConstructorsPrototype* domObject = jsDynamicCast<JSTestOverloadedConstructorsPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestOverloadedConstructors::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestOverloadedConstructorsConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestOverloadedConstructorsConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestOverloadedConstructorsPrototype* domObject = jsDynamicCast<JSTestOverloadedConstructorsPrototype*>(baseValue);
</del><ins>+ JSTestOverloadedConstructorsPrototype* domObject = jsDynamicCast<JSTestOverloadedConstructorsPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverrideBuiltinscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -40,8 +40,8 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestOverrideBuiltinsConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestOverrideBuiltinsConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestOverrideBuiltinsConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestOverrideBuiltinsConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestOverrideBuiltinsPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -149,19 +149,18 @@
</span><span class="cx"> return Base::getOwnPropertySlotByIndex(thisObject, state, index, slot);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestOverrideBuiltinsConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestOverrideBuiltinsConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestOverrideBuiltinsPrototype* domObject = jsDynamicCast<JSTestOverrideBuiltinsPrototype*>(baseValue);
</del><ins>+ JSTestOverrideBuiltinsPrototype* domObject = jsDynamicCast<JSTestOverrideBuiltinsPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestOverrideBuiltins::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestOverrideBuiltinsConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestOverrideBuiltinsConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestOverrideBuiltinsPrototype* domObject = jsDynamicCast<JSTestOverrideBuiltinsPrototype*>(baseValue);
</del><ins>+ JSTestOverrideBuiltinsPrototype* domObject = jsDynamicCast<JSTestOverrideBuiltinsPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -38,15 +38,15 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestSerializedScriptValueInterfaceValue(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestSerializedScriptValueInterfaceValue(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestSerializedScriptValueInterfaceReadonlyValue(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestSerializedScriptValueInterfaceCachedValue(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestSerializedScriptValueInterfaceCachedValue(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestSerializedScriptValueInterfacePorts(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestSerializedScriptValueInterfaceCachedReadonlyValue(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestSerializedScriptValueInterfaceConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestSerializedScriptValueInterfaceConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestSerializedScriptValueInterfaceValue(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestSerializedScriptValueInterfaceValue(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestSerializedScriptValueInterfaceReadonlyValue(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestSerializedScriptValueInterfaceCachedValue(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestSerializedScriptValueInterfaceCachedValue(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestSerializedScriptValueInterfacePorts(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestSerializedScriptValueInterfaceCachedReadonlyValue(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestSerializedScriptValueInterfaceConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestSerializedScriptValueInterfaceConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestSerializedScriptValueInterfacePrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -127,10 +127,9 @@
</span><span class="cx"> thisObject->JSTestSerializedScriptValueInterface::~JSTestSerializedScriptValueInterface();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestSerializedScriptValueInterfaceValue(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestSerializedScriptValueInterfaceValue(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestSerializedScriptValueInterface*>(decodedThisValue);
</span><span class="lines">@@ -143,10 +142,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestSerializedScriptValueInterfaceReadonlyValue(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestSerializedScriptValueInterfaceReadonlyValue(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestSerializedScriptValueInterface*>(decodedThisValue);
</span><span class="lines">@@ -159,10 +157,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestSerializedScriptValueInterfaceCachedValue(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestSerializedScriptValueInterfaceCachedValue(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestSerializedScriptValueInterface*>(decodedThisValue);
</span><span class="lines">@@ -178,10 +175,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestSerializedScriptValueInterfacePorts(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestSerializedScriptValueInterfacePorts(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestSerializedScriptValueInterface*>(decodedThisValue);
</span><span class="lines">@@ -194,10 +190,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestSerializedScriptValueInterfaceCachedReadonlyValue(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestSerializedScriptValueInterfaceCachedReadonlyValue(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestSerializedScriptValueInterface*>(decodedThisValue);
</span><span class="lines">@@ -213,19 +208,18 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestSerializedScriptValueInterfaceConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestSerializedScriptValueInterfaceConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestSerializedScriptValueInterfacePrototype* domObject = jsDynamicCast<JSTestSerializedScriptValueInterfacePrototype*>(baseValue);
</del><ins>+ JSTestSerializedScriptValueInterfacePrototype* domObject = jsDynamicCast<JSTestSerializedScriptValueInterfacePrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestSerializedScriptValueInterface::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestSerializedScriptValueInterfaceConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestSerializedScriptValueInterfaceConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestSerializedScriptValueInterfacePrototype* domObject = jsDynamicCast<JSTestSerializedScriptValueInterfacePrototype*>(baseValue);
</del><ins>+ JSTestSerializedScriptValueInterfacePrototype* domObject = jsDynamicCast<JSTestSerializedScriptValueInterfacePrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span><span class="lines">@@ -234,10 +228,10 @@
</span><span class="cx"> domObject->putDirect(state->vm(), state->propertyNames().constructor, value);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestSerializedScriptValueInterfaceValue(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestSerializedScriptValueInterfaceValue(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestSerializedScriptValueInterface* castedThis = jsDynamicCast<JSTestSerializedScriptValueInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestSerializedScriptValueInterface", "value");
</span><span class="lines">@@ -251,10 +245,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestSerializedScriptValueInterfaceCachedValue(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestSerializedScriptValueInterfaceCachedValue(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestSerializedScriptValueInterface* castedThis = jsDynamicCast<JSTestSerializedScriptValueInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestSerializedScriptValueInterface", "cachedValue");
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -58,21 +58,21 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsTestTypedefsUnsignedLongLongAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestTypedefsUnsignedLongLongAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestTypedefsImmutableSerializedScriptValue(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestTypedefsImmutableSerializedScriptValue(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestTypedefsConstructorTestSubObj(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestTypedefsAttrWithGetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestTypedefsAttrWithGetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestTypedefsAttrWithSetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestTypedefsAttrWithSetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestTypedefsStringAttrWithGetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestTypedefsStringAttrWithGetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestTypedefsStringAttrWithSetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestTypedefsStringAttrWithSetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestTypedefsConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSTestTypedefsConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsTestTypedefsUnsignedLongLongAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestTypedefsUnsignedLongLongAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestTypedefsImmutableSerializedScriptValue(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestTypedefsImmutableSerializedScriptValue(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestTypedefsConstructorTestSubObj(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsTestTypedefsAttrWithGetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestTypedefsAttrWithGetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestTypedefsAttrWithSetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestTypedefsAttrWithSetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestTypedefsStringAttrWithGetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestTypedefsStringAttrWithGetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestTypedefsStringAttrWithSetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestTypedefsStringAttrWithSetterException(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestTypedefsConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestTypedefsConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSTestTypedefsPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -210,10 +210,9 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestTypedefsUnsignedLongLongAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestTypedefsUnsignedLongLongAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestTypedefs*>(decodedThisValue);
</span><span class="lines">@@ -226,10 +225,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestTypedefsImmutableSerializedScriptValue(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestTypedefsImmutableSerializedScriptValue(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestTypedefs*>(decodedThisValue);
</span><span class="lines">@@ -242,10 +240,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestTypedefsConstructorTestSubObj(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestTypedefsConstructorTestSubObj(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestTypedefs*>(decodedThisValue);
</span><span class="lines">@@ -256,10 +253,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestTypedefsAttrWithGetterException(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestTypedefsAttrWithGetterException(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestTypedefs*>(decodedThisValue);
</span><span class="lines">@@ -274,10 +270,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestTypedefsAttrWithSetterException(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestTypedefsAttrWithSetterException(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestTypedefs*>(decodedThisValue);
</span><span class="lines">@@ -290,10 +285,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestTypedefsStringAttrWithGetterException(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestTypedefsStringAttrWithGetterException(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestTypedefs*>(decodedThisValue);
</span><span class="lines">@@ -308,10 +302,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestTypedefsStringAttrWithSetterException(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestTypedefsStringAttrWithSetterException(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSTestTypedefs*>(decodedThisValue);
</span><span class="lines">@@ -324,19 +317,18 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestTypedefsConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsTestTypedefsConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSTestTypedefsPrototype* domObject = jsDynamicCast<JSTestTypedefsPrototype*>(baseValue);
</del><ins>+ JSTestTypedefsPrototype* domObject = jsDynamicCast<JSTestTypedefsPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSTestTypedefs::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestTypedefsConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestTypedefsConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSTestTypedefsPrototype* domObject = jsDynamicCast<JSTestTypedefsPrototype*>(baseValue);
</del><ins>+ JSTestTypedefsPrototype* domObject = jsDynamicCast<JSTestTypedefsPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span><span class="lines">@@ -345,10 +337,10 @@
</span><span class="cx"> domObject->putDirect(state->vm(), state->propertyNames().constructor, value);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSTestTypedefsUnsignedLongLongAttr(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestTypedefsUnsignedLongLongAttr(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestTypedefs* castedThis = jsDynamicCast<JSTestTypedefs*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestTypedefs", "unsignedLongLongAttr");
</span><span class="lines">@@ -362,10 +354,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestTypedefsImmutableSerializedScriptValue(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestTypedefsImmutableSerializedScriptValue(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestTypedefs* castedThis = jsDynamicCast<JSTestTypedefs*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestTypedefs", "immutableSerializedScriptValue");
</span><span class="lines">@@ -379,10 +371,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestTypedefsAttrWithGetterException(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestTypedefsAttrWithGetterException(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestTypedefs* castedThis = jsDynamicCast<JSTestTypedefs*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestTypedefs", "attrWithGetterException");
</span><span class="lines">@@ -396,10 +388,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestTypedefsAttrWithSetterException(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestTypedefsAttrWithSetterException(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestTypedefs* castedThis = jsDynamicCast<JSTestTypedefs*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestTypedefs", "attrWithSetterException");
</span><span class="lines">@@ -415,10 +407,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestTypedefsStringAttrWithGetterException(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestTypedefsStringAttrWithGetterException(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestTypedefs* castedThis = jsDynamicCast<JSTestTypedefs*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestTypedefs", "stringAttrWithGetterException");
</span><span class="lines">@@ -432,10 +424,10 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-void setJSTestTypedefsStringAttrWithSetterException(ExecState* state, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestTypedefsStringAttrWithSetterException(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(baseObject);
</del><ins>+ UNUSED_PARAM(thisValue);
</ins><span class="cx"> JSTestTypedefs* castedThis = jsDynamicCast<JSTestTypedefs*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> throwSetterTypeError(*state, "TestTypedefs", "stringAttrWithSetterException");
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSattributecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -33,9 +33,9 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsattributeReadonly(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsattributeConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSattributeConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsattributeReadonly(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+JSC::EncodedJSValue jsattributeConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSattributeConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSattributePrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -112,10 +112,9 @@
</span><span class="cx"> thisObject->JSattribute::~JSattribute();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsattributeReadonly(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsattributeReadonly(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(state);
</span><del>- UNUSED_PARAM(slotBase);
</del><span class="cx"> UNUSED_PARAM(thisValue);
</span><span class="cx"> JSValue decodedThisValue = JSValue::decode(thisValue);
</span><span class="cx"> auto* castedThis = jsDynamicCast<JSattribute*>(decodedThisValue);
</span><span class="lines">@@ -128,19 +127,18 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsattributeConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsattributeConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSattributePrototype* domObject = jsDynamicCast<JSattributePrototype*>(baseValue);
</del><ins>+ JSattributePrototype* domObject = jsDynamicCast<JSattributePrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSattribute::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSattributeConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSattributeConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSattributePrototype* domObject = jsDynamicCast<JSattributePrototype*>(baseValue);
</del><ins>+ JSattributePrototype* domObject = jsDynamicCast<JSattributePrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSreadonlycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -31,8 +31,8 @@
</span><span class="cx">
</span><span class="cx"> // Attributes
</span><span class="cx">
</span><del>-JSC::EncodedJSValue jsreadonlyConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
-void setJSreadonlyConstructor(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</del><ins>+JSC::EncodedJSValue jsreadonlyConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSreadonlyConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx">
</span><span class="cx"> class JSreadonlyPrototype : public JSC::JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="lines">@@ -108,19 +108,18 @@
</span><span class="cx"> thisObject->JSreadonly::~JSreadonly();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsreadonlyConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue, PropertyName)
</del><ins>+EncodedJSValue jsreadonlyConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- JSreadonlyPrototype* domObject = jsDynamicCast<JSreadonlyPrototype*>(baseValue);
</del><ins>+ JSreadonlyPrototype* domObject = jsDynamicCast<JSreadonlyPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(state);
</span><span class="cx"> return JSValue::encode(JSreadonly::getConstructor(state->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void setJSreadonlyConstructor(ExecState* state, JSObject* baseValue, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSreadonlyConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx"> JSValue value = JSValue::decode(encodedValue);
</span><del>- UNUSED_PARAM(thisValue);
- JSreadonlyPrototype* domObject = jsDynamicCast<JSreadonlyPrototype*>(baseValue);
</del><ins>+ JSreadonlyPrototype* domObject = jsDynamicCast<JSreadonlyPrototype*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (UNLIKELY(!domObject)) {
</span><span class="cx"> throwVMTypeError(state);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorebridgeruntime_arraycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bridge/runtime_array.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bridge/runtime_array.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bridge/runtime_array.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx"> static_cast<RuntimeArray*>(cell)->RuntimeArray::~RuntimeArray();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue RuntimeArray::lengthGetter(ExecState* exec, JSObject*, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue RuntimeArray::lengthGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> RuntimeArray* thisObject = jsDynamicCast<RuntimeArray*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!thisObject)
</span></span></pre></div>
<a id="trunkSourceWebCorebridgeruntime_arrayh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bridge/runtime_array.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bridge/runtime_array.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bridge/runtime_array.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> RuntimeArray(ExecState*, Structure*);
</span><del>- static EncodedJSValue lengthGetter(ExecState*, JSObject*, EncodedJSValue, PropertyName);
</del><ins>+ static EncodedJSValue lengthGetter(ExecState*, EncodedJSValue, PropertyName);
</ins><span class="cx">
</span><span class="cx"> BindingsArray* m_array;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorebridgeruntime_methodcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bridge/runtime_method.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bridge/runtime_method.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bridge/runtime_method.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> ASSERT(inherits(info()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue RuntimeMethod::lengthGetter(ExecState* exec, JSObject*, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue RuntimeMethod::lengthGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> RuntimeMethod* thisObject = jsDynamicCast<RuntimeMethod*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!thisObject)
</span></span></pre></div>
<a id="trunkSourceWebCorebridgeruntime_methodh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bridge/runtime_method.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bridge/runtime_method.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bridge/runtime_method.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> static bool getOwnPropertySlot(JSObject*, ExecState*, PropertyName, PropertySlot&);
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- static EncodedJSValue lengthGetter(ExecState*, JSObject*, EncodedJSValue, PropertyName);
</del><ins>+ static EncodedJSValue lengthGetter(ExecState*, EncodedJSValue, PropertyName);
</ins><span class="cx">
</span><span class="cx"> Bindings::Method* m_method;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorebridgeruntime_objectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bridge/runtime_object.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bridge/runtime_object.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bridge/runtime_object.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -62,9 +62,9 @@
</span><span class="cx"> m_instance = nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue RuntimeObject::fallbackObjectGetter(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName propertyName)
</del><ins>+EncodedJSValue RuntimeObject::fallbackObjectGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName propertyName)
</ins><span class="cx"> {
</span><del>- RuntimeObject* thisObj = jsCast<RuntimeObject*>(slotBase);
</del><ins>+ RuntimeObject* thisObj = jsCast<RuntimeObject*>(JSValue::decode(thisValue));
</ins><span class="cx"> RefPtr<Instance> instance = thisObj->m_instance;
</span><span class="cx">
</span><span class="cx"> if (!instance)
</span><span class="lines">@@ -80,9 +80,9 @@
</span><span class="cx"> return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue RuntimeObject::fieldGetter(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName propertyName)
</del><ins>+EncodedJSValue RuntimeObject::fieldGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName propertyName)
</ins><span class="cx"> {
</span><del>- RuntimeObject* thisObj = jsCast<RuntimeObject*>(slotBase);
</del><ins>+ RuntimeObject* thisObj = jsCast<RuntimeObject*>(JSValue::decode(thisValue));
</ins><span class="cx"> RefPtr<Instance> instance = thisObj->m_instance;
</span><span class="cx">
</span><span class="cx"> if (!instance)
</span><span class="lines">@@ -99,9 +99,9 @@
</span><span class="cx"> return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue RuntimeObject::methodGetter(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName propertyName)
</del><ins>+EncodedJSValue RuntimeObject::methodGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName propertyName)
</ins><span class="cx"> {
</span><del>- RuntimeObject* thisObj = jsCast<RuntimeObject*>(slotBase);
</del><ins>+ RuntimeObject* thisObj = jsCast<RuntimeObject*>(JSValue::decode(thisValue));
</ins><span class="cx"> RefPtr<Instance> instance = thisObj->m_instance;
</span><span class="cx">
</span><span class="cx"> if (!instance)
</span></span></pre></div>
<a id="trunkSourceWebCorebridgeruntime_objecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bridge/runtime_object.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bridge/runtime_object.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebCore/bridge/runtime_object.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -78,9 +78,9 @@
</span><span class="cx"> void finishCreation(VM&);
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- static EncodedJSValue fallbackObjectGetter(ExecState*, JSObject*, EncodedJSValue, PropertyName);
- static EncodedJSValue fieldGetter(ExecState*, JSObject*, EncodedJSValue, PropertyName);
- static EncodedJSValue methodGetter(ExecState*, JSObject*, EncodedJSValue, PropertyName);
</del><ins>+ static EncodedJSValue fallbackObjectGetter(ExecState*, EncodedJSValue, PropertyName);
+ static EncodedJSValue fieldGetter(ExecState*, EncodedJSValue, PropertyName);
+ static EncodedJSValue methodGetter(ExecState*, EncodedJSValue, PropertyName);
</ins><span class="cx">
</span><span class="cx"> RefPtr<Instance> m_instance;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebKit2/ChangeLog        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -1,3 +1,31 @@
</span><ins>+2016-02-07 Gavin Barraclough <barraclough@apple.com>
+
+ GetValueFunc/PutValueFunc should not take both slotBase and thisValue
+ https://bugs.webkit.org/show_bug.cgi?id=154009
+
+ Reviewed by Geoff Garen.
+
+ In JavaScript there are two types of properties - regular value properties, and accessor properties.
+ One difference between these is how they are reflected by getOwnPropertyDescriptor, and another is
+ what object they operate on in the case of a prototype access. If you access a value property of a
+ prototype object it return a value pertinent to the prototype, but in the case of a prototype object
+ returning an accessor, then the accessor function is applied to the base object of the access.
+
+ JSC supports special 'custom' properties implemented as a c++ callback, and these custom properties
+ can be used to implement either value- or accessor-like behavior. getOwnPropertyDescriptor behavior
+ is selected via the CustomAccessor attribute. Value- or accessor-like object selection is current
+ supported by passing both the slotBase and the thisValue to the callback,and hoping it uses the
+ right one. This is probably inefficient, bug-prone, and leads to crazy like JSBoundSlotBaseFunction.
+
+ Instead, just pass one thisValue to the callback functions, consistent with CustomAccessor.
+
+ * WebProcess/Plugins/Netscape/JSNPObject.cpp:
+ (WebKit::JSNPObject::getOwnPropertyNames):
+ (WebKit::JSNPObject::propertyGetter):
+ (WebKit::JSNPObject::methodGetter):
+ * WebProcess/Plugins/Netscape/JSNPObject.h:
+ - Merged slotBase & thisValue to custom property callbacks.
+
</ins><span class="cx"> 2016-02-09 Jer Noble <jer.noble@apple.com>
</span><span class="cx">
</span><span class="cx"> [Mac] Exiting fullscreen through the placeholder action leaves window in empty state
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsNetscapeJSNPObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.cpp (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.cpp        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.cpp        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -433,9 +433,9 @@
</span><span class="cx"> npnMemFree(identifiers);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue JSNPObject::propertyGetter(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName propertyName)
</del><ins>+EncodedJSValue JSNPObject::propertyGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName propertyName)
</ins><span class="cx"> {
</span><del>- JSNPObject* thisObj = jsCast<JSNPObject*>(slotBase);
</del><ins>+ JSNPObject* thisObj = jsCast<JSNPObject*>(JSValue::decode(thisValue));
</ins><span class="cx"> ASSERT_GC_OBJECT_INHERITS(thisObj, info());
</span><span class="cx">
</span><span class="cx"> if (!thisObj->m_npObject)
</span><span class="lines">@@ -473,9 +473,9 @@
</span><span class="cx"> return JSValue::encode(propertyValue);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue JSNPObject::methodGetter(ExecState* exec, JSObject* slotBase, EncodedJSValue, PropertyName propertyName)
</del><ins>+EncodedJSValue JSNPObject::methodGetter(ExecState* exec, EncodedJSValue thisValue, PropertyName propertyName)
</ins><span class="cx"> {
</span><del>- JSNPObject* thisObj = jsCast<JSNPObject*>(slotBase);
</del><ins>+ JSNPObject* thisObj = jsCast<JSNPObject*>(JSValue::decode(thisValue));
</ins><span class="cx"> ASSERT_GC_OBJECT_INHERITS(thisObj, info());
</span><span class="cx">
</span><span class="cx"> if (!thisObj->m_npObject)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsNetscapeJSNPObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h (196330 => 196331)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h        2016-02-09 21:17:03 UTC (rev 196330)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h        2016-02-09 21:19:59 UTC (rev 196331)
</span><span class="lines">@@ -94,8 +94,8 @@
</span><span class="cx">
</span><span class="cx"> static void getOwnPropertyNames(JSC::JSObject*, JSC::ExecState*, JSC::PropertyNameArray&, JSC::EnumerationMode);
</span><span class="cx">
</span><del>- static JSC::EncodedJSValue propertyGetter(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
- static JSC::EncodedJSValue methodGetter(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</del><ins>+ static JSC::EncodedJSValue propertyGetter(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+ static JSC::EncodedJSValue methodGetter(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
</ins><span class="cx"> static JSC::JSObject* throwInvalidAccessError(JSC::ExecState*);
</span><span class="cx">
</span><span class="cx"> NPRuntimeObjectMap* m_objectMap;
</span></span></pre>
</div>
</div>
</body>
</html>