<!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>[37812] trunk</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/37812">37812</a></dd>
<dt>Author</dt> <dd>darin@apple.com</dd>
<dt>Date</dt> <dd>2008-10-23 08:55:41 -0700 (Thu, 23 Oct 2008)</dd>
</dl>

<h3>Log Message</h3>
<pre>JavaScriptCore:

2008-10-23  Darin Adler  &lt;darin@apple.com&gt;

        - roll out https://bugs.webkit.org/show_bug.cgi?id=21732
          to remove the JSValuePtr class, to fix two problems

            1) slowness under MSVC, since it doesn't handle a
               class with a single pointer in it as efficiently
               as a pointer

            2) uninitialized pointers in Vector

        * JavaScriptCore.exp: Updated.

        * API/APICast.h:
        (toRef):
        * VM/CTI.cpp:
        (JSC::CTI::asInteger):
        * VM/CodeGenerator.cpp:
        (JSC::CodeGenerator::addConstant):
        * VM/CodeGenerator.h:
        (JSC::CodeGenerator::JSValueHashTraits::constructDeletedValue):
        (JSC::CodeGenerator::JSValueHashTraits::isDeletedValue):
        * VM/Machine.cpp:
        (JSC::Machine::cti_op_add):
        (JSC::Machine::cti_op_pre_inc):
        (JSC::Machine::cti_op_get_by_id):
        (JSC::Machine::cti_op_get_by_id_second):
        (JSC::Machine::cti_op_get_by_id_generic):
        (JSC::Machine::cti_op_get_by_id_fail):
        (JSC::Machine::cti_op_instanceof):
        (JSC::Machine::cti_op_del_by_id):
        (JSC::Machine::cti_op_mul):
        (JSC::Machine::cti_op_call_NotJSFunction):
        (JSC::Machine::cti_op_resolve):
        (JSC::Machine::cti_op_construct_NotJSConstruct):
        (JSC::Machine::cti_op_get_by_val):
        (JSC::Machine::cti_op_sub):
        (JSC::Machine::cti_op_lesseq):
        (JSC::Machine::cti_op_negate):
        (JSC::Machine::cti_op_resolve_base):
        (JSC::Machine::cti_op_resolve_skip):
        (JSC::Machine::cti_op_resolve_global):
        (JSC::Machine::cti_op_div):
        (JSC::Machine::cti_op_pre_dec):
        (JSC::Machine::cti_op_not):
        (JSC::Machine::cti_op_eq):
        (JSC::Machine::cti_op_lshift):
        (JSC::Machine::cti_op_bitand):
        (JSC::Machine::cti_op_rshift):
        (JSC::Machine::cti_op_bitnot):
        (JSC::Machine::cti_op_mod):
        (JSC::Machine::cti_op_less):
        (JSC::Machine::cti_op_neq):
        (JSC::Machine::cti_op_urshift):
        (JSC::Machine::cti_op_bitxor):
        (JSC::Machine::cti_op_bitor):
        (JSC::Machine::cti_op_call_eval):
        (JSC::Machine::cti_op_throw):
        (JSC::Machine::cti_op_next_pname):
        (JSC::Machine::cti_op_typeof):
        (JSC::Machine::cti_op_is_undefined):
        (JSC::Machine::cti_op_is_boolean):
        (JSC::Machine::cti_op_is_number):
        (JSC::Machine::cti_op_is_string):
        (JSC::Machine::cti_op_is_object):
        (JSC::Machine::cti_op_is_function):
        (JSC::Machine::cti_op_stricteq):
        (JSC::Machine::cti_op_nstricteq):
        (JSC::Machine::cti_op_to_jsnumber):
        (JSC::Machine::cti_op_in):
        (JSC::Machine::cti_op_del_by_val):
        (JSC::Machine::cti_vm_throw):
        Removed calls to payload functions.

        * VM/Register.h:
        (JSC::Register::Register): Removed overload for JSCell and call
        to payload function.

        * kjs/JSCell.h: Changed JSCell to derive from JSValue again.
        Removed JSValuePtr constructor.
        (JSC::asCell): Changed cast from reinterpret_cast to static_cast.

        * kjs/JSImmediate.h: Removed JSValuePtr class. Added typedef back.

        * kjs/JSValue.h:
        (JSC::JSValue::JSValue): Added empty protected inline constructor back.
        (JSC::JSValue::~JSValue): Same for destructor.
        Removed == and != operator for JSValuePtr.

        * kjs/PropertySlot.h:
        (JSC::PropertySlot::PropertySlot): Chnaged argument to const JSValue*
        and added a const_cast.

        * kjs/protect.h: Removed overloads and specialization for JSValuePtr.

JavaScriptGlue:

2008-10-23  Darin Adler  &lt;darin@apple.com&gt;

        - roll out https://bugs.webkit.org/show_bug.cgi?id=21732

        * JSValueWrapper.cpp:
        (JSValueWrapper::GetValue): Added missing call to .get().
        * JSValueWrapper.h: ProtectedPtr&lt;JSValue&gt; instead of ProtectedPtr&lt;JSValuePtr&gt;.

WebCore:

2008-10-23  Darin Adler  &lt;darin@apple.com&gt;

        - roll out https://bugs.webkit.org/show_bug.cgi?id=21732

        * bindings/js/ScheduledAction.h:
        * inspector/InspectorController.cpp:
        ProtectedPtr&lt;JSValue&gt; instead of ProtectedPtr&lt;JSValuePtr&gt;.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkJavaScriptCoreAPIAPICasth">trunk/JavaScriptCore/API/APICast.h</a></li>
<li><a href="#trunkJavaScriptCoreChangeLog">trunk/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkJavaScriptCoreJavaScriptCoreexp">trunk/JavaScriptCore/JavaScriptCore.exp</a></li>
<li><a href="#trunkJavaScriptCoreVMCTIcpp">trunk/JavaScriptCore/VM/CTI.cpp</a></li>
<li><a href="#trunkJavaScriptCoreVMCodeGeneratorcpp">trunk/JavaScriptCore/VM/CodeGenerator.cpp</a></li>
<li><a href="#trunkJavaScriptCoreVMCodeGeneratorh">trunk/JavaScriptCore/VM/CodeGenerator.h</a></li>
<li><a href="#trunkJavaScriptCoreVMMachinecpp">trunk/JavaScriptCore/VM/Machine.cpp</a></li>
<li><a href="#trunkJavaScriptCoreVMRegisterh">trunk/JavaScriptCore/VM/Register.h</a></li>
<li><a href="#trunkJavaScriptCorekjsJSCellh">trunk/JavaScriptCore/kjs/JSCell.h</a></li>
<li><a href="#trunkJavaScriptCorekjsJSImmediateh">trunk/JavaScriptCore/kjs/JSImmediate.h</a></li>
<li><a href="#trunkJavaScriptCorekjsJSValueh">trunk/JavaScriptCore/kjs/JSValue.h</a></li>
<li><a href="#trunkJavaScriptCorekjsPropertySloth">trunk/JavaScriptCore/kjs/PropertySlot.h</a></li>
<li><a href="#trunkJavaScriptCorekjsprotecth">trunk/JavaScriptCore/kjs/protect.h</a></li>
<li><a href="#trunkJavaScriptGlueChangeLog">trunk/JavaScriptGlue/ChangeLog</a></li>
<li><a href="#trunkJavaScriptGlueJSValueWrappercpp">trunk/JavaScriptGlue/JSValueWrapper.cpp</a></li>
<li><a href="#trunkJavaScriptGlueJSValueWrapperh">trunk/JavaScriptGlue/JSValueWrapper.h</a></li>
<li><a href="#trunkWebCoreChangeLog">trunk/WebCore/ChangeLog</a></li>
<li><a href="#trunkWebCorebindingsjsScheduledActionh">trunk/WebCore/bindings/js/ScheduledAction.h</a></li>
<li><a href="#trunkWebCoreinspectorInspectorControllercpp">trunk/WebCore/inspector/InspectorController.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkJavaScriptCoreAPIAPICasth"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/API/APICast.h (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/API/APICast.h        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptCore/API/APICast.h        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -70,12 +70,12 @@
</span><span class="cx"> 
</span><span class="cx"> inline JSValueRef toRef(JSC::JSValuePtr v)
</span><span class="cx"> {
</span><del>-    return reinterpret_cast&lt;JSValueRef&gt;(v.payload());
</del><ins>+    return reinterpret_cast&lt;JSValueRef&gt;(v);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline JSValueRef* toRef(JSC::JSValuePtr* v)
</span><span class="cx"> {
</span><del>-    return reinterpret_cast&lt;JSValueRef*&gt;(const_cast&lt;const JSC::JSValue**&gt;(v-&gt;payloadPtr()));
</del><ins>+    return reinterpret_cast&lt;JSValueRef*&gt;(const_cast&lt;const JSC::JSValue**&gt;(v));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline JSObjectRef toRef(JSC::JSObject* o)
</span></span></pre></div>
<a id="trunkJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/ChangeLog (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/ChangeLog        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptCore/ChangeLog        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -1,3 +1,98 @@
</span><ins>+2008-10-23  Darin Adler  &lt;darin@apple.com&gt;
+
+        - roll out https://bugs.webkit.org/show_bug.cgi?id=21732
+          to remove the JSValuePtr class, to fix two problems
+
+            1) slowness under MSVC, since it doesn't handle a
+               class with a single pointer in it as efficiently
+               as a pointer
+
+            2) uninitialized pointers in Vector
+
+        * JavaScriptCore.exp: Updated.
+
+        * API/APICast.h:
+        (toRef):
+        * VM/CTI.cpp:
+        (JSC::CTI::asInteger):
+        * VM/CodeGenerator.cpp:
+        (JSC::CodeGenerator::addConstant):
+        * VM/CodeGenerator.h:
+        (JSC::CodeGenerator::JSValueHashTraits::constructDeletedValue):
+        (JSC::CodeGenerator::JSValueHashTraits::isDeletedValue):
+        * VM/Machine.cpp:
+        (JSC::Machine::cti_op_add):
+        (JSC::Machine::cti_op_pre_inc):
+        (JSC::Machine::cti_op_get_by_id):
+        (JSC::Machine::cti_op_get_by_id_second):
+        (JSC::Machine::cti_op_get_by_id_generic):
+        (JSC::Machine::cti_op_get_by_id_fail):
+        (JSC::Machine::cti_op_instanceof):
+        (JSC::Machine::cti_op_del_by_id):
+        (JSC::Machine::cti_op_mul):
+        (JSC::Machine::cti_op_call_NotJSFunction):
+        (JSC::Machine::cti_op_resolve):
+        (JSC::Machine::cti_op_construct_NotJSConstruct):
+        (JSC::Machine::cti_op_get_by_val):
+        (JSC::Machine::cti_op_sub):
+        (JSC::Machine::cti_op_lesseq):
+        (JSC::Machine::cti_op_negate):
+        (JSC::Machine::cti_op_resolve_base):
+        (JSC::Machine::cti_op_resolve_skip):
+        (JSC::Machine::cti_op_resolve_global):
+        (JSC::Machine::cti_op_div):
+        (JSC::Machine::cti_op_pre_dec):
+        (JSC::Machine::cti_op_not):
+        (JSC::Machine::cti_op_eq):
+        (JSC::Machine::cti_op_lshift):
+        (JSC::Machine::cti_op_bitand):
+        (JSC::Machine::cti_op_rshift):
+        (JSC::Machine::cti_op_bitnot):
+        (JSC::Machine::cti_op_mod):
+        (JSC::Machine::cti_op_less):
+        (JSC::Machine::cti_op_neq):
+        (JSC::Machine::cti_op_urshift):
+        (JSC::Machine::cti_op_bitxor):
+        (JSC::Machine::cti_op_bitor):
+        (JSC::Machine::cti_op_call_eval):
+        (JSC::Machine::cti_op_throw):
+        (JSC::Machine::cti_op_next_pname):
+        (JSC::Machine::cti_op_typeof):
+        (JSC::Machine::cti_op_is_undefined):
+        (JSC::Machine::cti_op_is_boolean):
+        (JSC::Machine::cti_op_is_number):
+        (JSC::Machine::cti_op_is_string):
+        (JSC::Machine::cti_op_is_object):
+        (JSC::Machine::cti_op_is_function):
+        (JSC::Machine::cti_op_stricteq):
+        (JSC::Machine::cti_op_nstricteq):
+        (JSC::Machine::cti_op_to_jsnumber):
+        (JSC::Machine::cti_op_in):
+        (JSC::Machine::cti_op_del_by_val):
+        (JSC::Machine::cti_vm_throw):
+        Removed calls to payload functions.
+
+        * VM/Register.h:
+        (JSC::Register::Register): Removed overload for JSCell and call
+        to payload function.
+
+        * kjs/JSCell.h: Changed JSCell to derive from JSValue again.
+        Removed JSValuePtr constructor.
+        (JSC::asCell): Changed cast from reinterpret_cast to static_cast.
+
+        * kjs/JSImmediate.h: Removed JSValuePtr class. Added typedef back.
+
+        * kjs/JSValue.h:
+        (JSC::JSValue::JSValue): Added empty protected inline constructor back.
+        (JSC::JSValue::~JSValue): Same for destructor.
+        Removed == and != operator for JSValuePtr.
+
+        * kjs/PropertySlot.h:
+        (JSC::PropertySlot::PropertySlot): Chnaged argument to const JSValue*
+        and added a const_cast.
+
+        * kjs/protect.h: Removed overloads and specialization for JSValuePtr.
+
</ins><span class="cx"> 2008-10-22  Oliver Hunt  &lt;oliver@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Maciej Stachowiak.
</span></span></pre></div>
<a id="trunkJavaScriptCoreJavaScriptCoreexp"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/JavaScriptCore.exp (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/JavaScriptCore.exp        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptCore/JavaScriptCore.exp        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -102,11 +102,10 @@
</span><span class="cx"> __ZN3JSC11Interpreter11checkSyntaxEPNS_9ExecStateERKNS_10SourceCodeE
</span><span class="cx"> __ZN3JSC11Interpreter21shouldPrintExceptionsEv
</span><span class="cx"> __ZN3JSC11Interpreter24setShouldPrintExceptionsEb
</span><del>-__ZN3JSC11Interpreter8evaluateEPNS_9ExecStateERNS_10ScopeChainERKNS_10SourceCodeENS_10JSValuePtrE
</del><ins>+__ZN3JSC11Interpreter8evaluateEPNS_9ExecStateERNS_10ScopeChainERKNS_10SourceCodeEPNS_7JSValueE
</ins><span class="cx"> __ZN3JSC11JSImmediate12nonInlineNaNEv
</span><del>-__ZN3JSC11JSImmediate8toObjectENS_10JSValuePtrEPNS_9ExecStateE
-__ZN3JSC11JSImmediate8toStringENS_10JSValuePtrE
-__ZN3JSC11JSImmediate9prototypeENS_10JSValuePtrEPNS_9ExecStateE
</del><ins>+__ZN3JSC11JSImmediate8toObjectEPNS_7JSValueEPNS_9ExecStateE
+__ZN3JSC11JSImmediate8toStringEPNS_7JSValueE
</ins><span class="cx"> __ZN3JSC11ProfileNode4sortEPFbRKN3WTF6RefPtrIS0_EES5_E
</span><span class="cx"> __ZN3JSC11ProgramNode6createEPNS_12JSGlobalDataEPNS_14SourceElementsEPN3WTF6VectorISt4pairINS_10IdentifierEjELm16EEEPNS6_INS5_6RefPtrINS_12FuncDeclNodeEEELm16EEERKNS_10SourceCodeEji
</span><span class="cx"> __ZN3JSC11PropertyMap3getERKNS_10IdentifierERj
</span><span class="lines">@@ -117,9 +116,8 @@
</span><span class="cx"> __ZN3JSC11StructureID21addPropertyTransitionEPS0_RKNS_10IdentifierEjRm
</span><span class="cx"> __ZN3JSC11StructureID21clearEnumerationCacheEv
</span><span class="cx"> __ZN3JSC11StructureID24fromDictionaryTransitionEPS0_
</span><del>-__ZN3JSC11StructureID25changePrototypeTransitionEPS0_NS_10JSValuePtrE
</del><span class="cx"> __ZN3JSC11StructureID27growPropertyStorageCapacityEv
</span><del>-__ZN3JSC11StructureIDC1ENS_10JSValuePtrERKNS_8TypeInfoE
</del><ins>+__ZN3JSC11StructureIDC1EPNS_7JSValueERKNS_8TypeInfoE
</ins><span class="cx"> __ZN3JSC11StructureIDD1Ev
</span><span class="cx"> __ZN3JSC12DateInstance4infoE
</span><span class="cx"> __ZN3JSC12JSGlobalData10ClientDataD2Ev
</span><span class="lines">@@ -135,7 +133,6 @@
</span><span class="cx"> __ZN3JSC12StringObject16getPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayE
</span><span class="cx"> __ZN3JSC12StringObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
</span><span class="cx"> __ZN3JSC12StringObject18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
</span><del>-__ZN3JSC12StringObject3putEPNS_9ExecStateERKNS_10IdentifierENS_10JSValuePtrERNS_15PutPropertySlotE
</del><span class="cx"> __ZN3JSC12StringObject4infoE
</span><span class="cx"> __ZN3JSC12StringObjectC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_11StructureIDEEERKNS_7UStringE
</span><span class="cx"> __ZN3JSC12jsNumberCellEPNS_9ExecStateEd
</span><span class="lines">@@ -147,10 +144,10 @@
</span><span class="cx"> __ZN3JSC14JSGlobalObject12defineSetterEPNS_9ExecStateERKNS_10IdentifierEPNS_8JSObjectE
</span><span class="cx"> __ZN3JSC14JSGlobalObject14setTimeoutTimeEj
</span><span class="cx"> __ZN3JSC14JSGlobalObject16stopTimeoutCheckEv
</span><del>-__ZN3JSC14JSGlobalObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_10JSValuePtrEj
</del><ins>+__ZN3JSC14JSGlobalObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueEj
</ins><span class="cx"> __ZN3JSC14JSGlobalObject17startTimeoutCheckEv
</span><span class="cx"> __ZN3JSC14JSGlobalObject29markCrossHeapDependentObjectsEv
</span><del>-__ZN3JSC14JSGlobalObject3putEPNS_9ExecStateERKNS_10IdentifierENS_10JSValuePtrERNS_15PutPropertySlotE
</del><ins>+__ZN3JSC14JSGlobalObject3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueERNS_15PutPropertySlotE
</ins><span class="cx"> __ZN3JSC14JSGlobalObject4initEPNS_8JSObjectE
</span><span class="cx"> __ZN3JSC14JSGlobalObject4markEv
</span><span class="cx"> __ZN3JSC14JSGlobalObjectD2Ev
</span><span class="lines">@@ -167,13 +164,11 @@
</span><span class="cx"> __ZN3JSC16ParserRefCounted3refEv
</span><span class="cx"> __ZN3JSC16ParserRefCounted5derefEv
</span><span class="cx"> __ZN3JSC17PropertyNameArray3addEPNS_7UString3RepE
</span><del>-__ZN3JSC17PrototypeFunctionC1EPNS_9ExecStateEN3WTF10PassRefPtrINS_11StructureIDEEEiRKNS_10IdentifierEPFNS_10JSValuePtrES2_PNS_8JSObjectESA_RKNS_7ArgListEE
-__ZN3JSC17PrototypeFunctionC1EPNS_9ExecStateEiRKNS_10IdentifierEPFNS_10JSValuePtrES2_PNS_8JSObjectES6_RKNS_7ArgListEE
</del><ins>+__ZN3JSC17PrototypeFunctionC1EPNS_9ExecStateEN3WTF10PassRefPtrINS_11StructureIDEEEiRKNS_10IdentifierEPFPNS_7JSValueES2_PNS_8JSObjectESB_RKNS_7ArgListEE
</ins><span class="cx"> __ZN3JSC17constructFunctionEPNS_9ExecStateERKNS_7ArgListERKNS_10IdentifierERKNS_7UStringEi
</span><span class="cx"> __ZN3JSC19constructEmptyArrayEPNS_9ExecStateE
</span><span class="cx"> __ZN3JSC19initializeThreadingEv
</span><span class="cx"> __ZN3JSC20constructEmptyObjectEPNS_9ExecStateE
</span><del>-__ZN3JSC23objectProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectENS_10JSValuePtrERKNS_7ArgListE
</del><span class="cx"> __ZN3JSC23setUpStaticFunctionSlotEPNS_9ExecStateEPKNS_9HashEntryEPNS_8JSObjectERKNS_10IdentifierERNS_12PropertySlotE
</span><span class="cx"> __ZN3JSC4Heap14allocateNumberEm
</span><span class="cx"> __ZN3JSC4Heap14primaryHeapEndEv
</span><span class="lines">@@ -184,13 +179,13 @@
</span><span class="cx"> __ZN3JSC4Heap24setGCProtectNeedsLockingEv
</span><span class="cx"> __ZN3JSC4Heap25protectedObjectTypeCountsEv
</span><span class="cx"> __ZN3JSC4Heap26protectedGlobalObjectCountEv
</span><del>-__ZN3JSC4Heap4heapENS_10JSValuePtrE
</del><ins>+__ZN3JSC4Heap4heapEPNS_7JSValueE
</ins><span class="cx"> __ZN3JSC4Heap4sizeEv
</span><span class="cx"> __ZN3JSC4Heap7collectEv
</span><del>-__ZN3JSC4Heap7protectENS_10JSValuePtrE
</del><ins>+__ZN3JSC4Heap7protectEPNS_7JSValueE
</ins><span class="cx"> __ZN3JSC4Heap8allocateEm
</span><del>-__ZN3JSC4Heap9unprotectENS_10JSValuePtrE
-__ZN3JSC4callEPNS_9ExecStateENS_10JSValuePtrENS_8CallTypeERKNS_8CallDataES2_RKNS_7ArgListE
</del><ins>+__ZN3JSC4Heap9unprotectEPNS_7JSValueE
+__ZN3JSC4callEPNS_9ExecStateEPNS_7JSValueENS_8CallTypeERKNS_8CallDataES3_RKNS_7ArgListE
</ins><span class="cx"> __ZN3JSC5equalEPKNS_7UString3RepES3_
</span><span class="cx"> __ZN3JSC6JSCell11getCallDataERNS_8CallDataE
</span><span class="cx"> __ZN3JSC6JSCell11getJSNumberEv
</span><span class="lines">@@ -200,8 +195,8 @@
</span><span class="cx"> __ZN3JSC6JSCell16getConstructDataERNS_13ConstructDataE
</span><span class="cx"> __ZN3JSC6JSCell18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
</span><span class="cx"> __ZN3JSC6JSCell18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
</span><del>-__ZN3JSC6JSCell3putEPNS_9ExecStateERKNS_10IdentifierENS_10JSValuePtrERNS_15PutPropertySlotE
-__ZN3JSC6JSCell3putEPNS_9ExecStateEjNS_10JSValuePtrE
</del><ins>+__ZN3JSC6JSCell3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC6JSCell3putEPNS_9ExecStateEjPNS_7JSValueE
</ins><span class="cx"> __ZN3JSC6JSCell9getObjectEv
</span><span class="cx"> __ZN3JSC6JSCellnwEmPNS_9ExecStateE
</span><span class="cx"> __ZN3JSC6JSLock12DropAllLocksC1EPNS_9ExecStateE
</span><span class="lines">@@ -213,7 +208,7 @@
</span><span class="cx"> __ZN3JSC6JSLockC1EPNS_9ExecStateE
</span><span class="cx"> __ZN3JSC6Parser5parseEPNS_12JSGlobalDataEPiPNS_7UStringE
</span><span class="cx"> __ZN3JSC6strtodEPKcPPc
</span><del>-__ZN3JSC7ArgList10slowAppendENS_10JSValuePtrE
</del><ins>+__ZN3JSC7ArgList10slowAppendEPNS_7JSValueE
</ins><span class="cx"> __ZN3JSC7CStringD1Ev
</span><span class="cx"> __ZN3JSC7CStringaSERKS0_
</span><span class="cx"> __ZN3JSC7JSArray4infoE
</span><span class="lines">@@ -235,7 +230,7 @@
</span><span class="cx"> __ZN3JSC8Debugger6detachEPNS_14JSGlobalObjectE
</span><span class="cx"> __ZN3JSC8DebuggerC2Ev
</span><span class="cx"> __ZN3JSC8DebuggerD2Ev
</span><del>-__ZN3JSC8JSObject11hasInstanceEPNS_9ExecStateENS_10JSValuePtrES3_
</del><ins>+__ZN3JSC8JSObject11hasInstanceEPNS_9ExecStateEPNS_7JSValueES4_
</ins><span class="cx"> __ZN3JSC8JSObject12defineGetterEPNS_9ExecStateERKNS_10IdentifierEPS0_
</span><span class="cx"> __ZN3JSC8JSObject12defineSetterEPNS_9ExecStateERKNS_10IdentifierEPS0_
</span><span class="cx"> __ZN3JSC8JSObject12lookupGetterEPNS_9ExecStateERKNS_10IdentifierE
</span><span class="lines">@@ -245,14 +240,14 @@
</span><span class="cx"> __ZN3JSC8JSObject16getPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayE
</span><span class="cx"> __ZN3JSC8JSObject17createInheritorIDEv
</span><span class="cx"> __ZN3JSC8JSObject17putDirectFunctionEPNS_9ExecStateEPNS_16InternalFunctionEj
</span><del>-__ZN3JSC8JSObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_10JSValuePtrEj
-__ZN3JSC8JSObject17putWithAttributesEPNS_9ExecStateEjNS_10JSValuePtrEj
</del><ins>+__ZN3JSC8JSObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueEj
+__ZN3JSC8JSObject17putWithAttributesEPNS_9ExecStateEjPNS_7JSValueEj
</ins><span class="cx"> __ZN3JSC8JSObject18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
</span><del>-__ZN3JSC8JSObject18getPrimitiveNumberEPNS_9ExecStateERdRNS_10JSValuePtrE
-__ZN3JSC8JSObject22fillGetterPropertySlotERNS_12PropertySlotEPNS_10JSValuePtrE
</del><ins>+__ZN3JSC8JSObject18getPrimitiveNumberEPNS_9ExecStateERdRPNS_7JSValueE
+__ZN3JSC8JSObject22fillGetterPropertySlotERNS_12PropertySlotEPPNS_7JSValueE
</ins><span class="cx"> __ZN3JSC8JSObject23allocatePropertyStorageEmm
</span><del>-__ZN3JSC8JSObject3putEPNS_9ExecStateERKNS_10IdentifierENS_10JSValuePtrERNS_15PutPropertySlotE
-__ZN3JSC8JSObject3putEPNS_9ExecStateEjNS_10JSValuePtrE
</del><ins>+__ZN3JSC8JSObject3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC8JSObject3putEPNS_9ExecStateEjPNS_7JSValueE
</ins><span class="cx"> __ZN3JSC8JSObject4markEv
</span><span class="cx"> __ZN3JSC8Profiler13stopProfilingEPNS_9ExecStateERKNS_7UStringE
</span><span class="cx"> __ZN3JSC8Profiler14startProfilingEPNS_9ExecStateERKNS_7UStringE
</span><span class="lines">@@ -260,7 +255,6 @@
</span><span class="cx"> __ZN3JSC8jsStringEPNS_12JSGlobalDataERKNS_7UStringE
</span><span class="cx"> __ZN3JSC9CodeBlockD1Ev
</span><span class="cx"> __ZN3JSC9CodeBlockD2Ev
</span><del>-__ZN3JSC9constructEPNS_9ExecStateENS_10JSValuePtrENS_13ConstructTypeERKNS_13ConstructDataERKNS_7ArgListE
</del><span class="cx"> __ZN3JSCeqERKNS_7UStringEPKc
</span><span class="cx"> __ZN3JSCgtERKNS_7UStringES2_
</span><span class="cx"> __ZN3JSCltERKNS_7UStringES2_
</span><span class="lines">@@ -311,7 +305,6 @@
</span><span class="cx"> __ZNK3JSC17DebuggerCallFrame10thisObjectEv
</span><span class="cx"> __ZNK3JSC17DebuggerCallFrame12functionNameEv
</span><span class="cx"> __ZNK3JSC17DebuggerCallFrame4typeEv
</span><del>-__ZNK3JSC17DebuggerCallFrame8evaluateERKNS_7UStringERNS_10JSValuePtrE
</del><span class="cx"> __ZNK3JSC4Node8toStringEv
</span><span class="cx"> __ZNK3JSC6JSCell12toThisObjectEPNS_9ExecStateE
</span><span class="cx"> __ZNK3JSC6JSCell12toThisStringEPNS_9ExecStateE
</span><span class="lines">@@ -329,7 +322,6 @@
</span><span class="cx"> __ZNK3JSC7JSValue7toFloatEPNS_9ExecStateE
</span><span class="cx"> __ZNK3JSC7JSValue9toIntegerEPNS_9ExecStateE
</span><span class="cx"> __ZNK3JSC7Machine14retrieveCallerEPNS_9ExecStateEPNS_16InternalFunctionE
</span><del>-__ZNK3JSC7Machine18retrieveLastCallerEPNS_9ExecStateERiRlRNS_7UStringERNS_10JSValuePtrE
</del><span class="cx"> __ZNK3JSC7UString10UTF8StringEb
</span><span class="cx"> __ZNK3JSC7UString14toStrictUInt32EPb
</span><span class="cx"> __ZNK3JSC7UString5asciiEv
</span><span class="lines">@@ -361,3 +353,11 @@
</span><span class="cx"> __ZTVN3JSC8JSStringE
</span><span class="cx"> _jscore_fastmalloc_introspection
</span><span class="cx"> _kJSClassDefinitionEmpty
</span><ins>+__ZN3JSC11JSImmediate9prototypeEPNS_7JSValueEPNS_9ExecStateE
+__ZN3JSC11StructureID25changePrototypeTransitionEPS0_PNS_7JSValueE
+__ZN3JSC12StringObject3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC17PrototypeFunctionC1EPNS_9ExecStateEiRKNS_10IdentifierEPFPNS_7JSValueES2_PNS_8JSObjectES7_RKNS_7ArgListEE
+__ZN3JSC23objectProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectEPNS_7JSValueERKNS_7ArgListE
+__ZN3JSC9constructEPNS_9ExecStateEPNS_7JSValueENS_13ConstructTypeERKNS_13ConstructDataERKNS_7ArgListE
+__ZNK3JSC17DebuggerCallFrame8evaluateERKNS_7UStringERPNS_7JSValueE
+__ZNK3JSC7Machine18retrieveLastCallerEPNS_9ExecStateERiRlRNS_7UStringERPNS_7JSValueE
</ins></span></pre></div>
<a id="trunkJavaScriptCoreVMCTIcpp"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/VM/CTI.cpp (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/VM/CTI.cpp        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptCore/VM/CTI.cpp        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -35,10 +35,6 @@
</span><span class="cx"> #include &quot;wrec/WREC.h&quot;
</span><span class="cx"> #include &quot;ResultType.h&quot;
</span><span class="cx"> 
</span><del>-#if PLATFORM(MAC)
-#include &lt;sys/sysctl.h&gt;
-#endif
-
</del><span class="cx"> using namespace std;
</span><span class="cx"> 
</span><span class="cx"> namespace JSC {
</span><span class="lines">@@ -179,7 +175,7 @@
</span><span class="cx"> 
</span><span class="cx"> inline uintptr_t CTI::asInteger(JSValuePtr value)
</span><span class="cx"> {
</span><del>-    return reinterpret_cast&lt;uintptr_t&gt;(value.payload());
</del><ins>+    return reinterpret_cast&lt;uintptr_t&gt;(value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // get arg puts an arg from the SF register array into a h/w register
</span></span></pre></div>
<a id="trunkJavaScriptCoreVMCodeGeneratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/VM/CodeGenerator.cpp (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/VM/CodeGenerator.cpp        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptCore/VM/CodeGenerator.cpp        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -674,7 +674,7 @@
</span><span class="cx"> 
</span><span class="cx"> RegisterID* CodeGenerator::addConstant(JSValuePtr v)
</span><span class="cx"> {
</span><del>-    pair&lt;JSValueMap::iterator, bool&gt; result = m_jsValueMap.add(v.payload(), m_nextConstant);
</del><ins>+    pair&lt;JSValueMap::iterator, bool&gt; result = m_jsValueMap.add(v, m_nextConstant);
</ins><span class="cx">     if (result.second) {
</span><span class="cx">         RegisterID&amp; constant = m_calleeRegisters[m_nextConstant];
</span><span class="cx">         
</span></span></pre></div>
<a id="trunkJavaScriptCoreVMCodeGeneratorh"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/VM/CodeGenerator.h (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/VM/CodeGenerator.h        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptCore/VM/CodeGenerator.h        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -331,8 +331,8 @@
</span><span class="cx">         PassRefPtr&lt;LabelID&gt; emitComplexJumpScopes(LabelID* target, ControlFlowContext* topScope, ControlFlowContext* bottomScope);
</span><span class="cx"> 
</span><span class="cx">         struct JSValueHashTraits : HashTraits&lt;JSValue*&gt; {
</span><del>-            static void constructDeletedValue(JSValue*&amp; slot) { slot = JSImmediate::impossibleValue().payload(); }
-            static bool isDeletedValue(JSValue* value) { return value == JSImmediate::impossibleValue().payload(); }
</del><ins>+            static void constructDeletedValue(JSValue*&amp; slot) { slot = JSImmediate::impossibleValue(); }
+            static bool isDeletedValue(JSValue* value) { return value == JSImmediate::impossibleValue(); }
</ins><span class="cx">         };
</span><span class="cx"> 
</span><span class="cx">         typedef HashMap&lt;JSValue*, unsigned, PtrHash&lt;JSValue*&gt;, JSValueHashTraits&gt; JSValueMap;
</span></span></pre></div>
<a id="trunkJavaScriptCoreVMMachinecpp"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/VM/Machine.cpp (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/VM/Machine.cpp        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptCore/VM/Machine.cpp        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -4385,7 +4385,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool rightIsNumber = fastIsNumber(v2, right);
</span><span class="cx">     if (rightIsNumber &amp;&amp; fastIsNumber(v1, left))
</span><del>-        return jsNumber(ARG_globalData, left + right).payload();
</del><ins>+        return jsNumber(ARG_globalData, left + right);
</ins><span class="cx">     
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx"> 
</span><span class="lines">@@ -4397,7 +4397,7 @@
</span><span class="cx">             VM_THROW_EXCEPTION();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        return JSValuePtr(jsString(ARG_globalData, value.release())).payload();
</del><ins>+        return JSValuePtr(jsString(ARG_globalData, value.release()));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (rightIsNumber &amp; leftIsString) {
</span><span class="lines">@@ -4409,13 +4409,13 @@
</span><span class="cx">             throwOutOfMemoryError(callFrame);
</span><span class="cx">             VM_THROW_EXCEPTION();
</span><span class="cx">         }
</span><del>-        return JSValuePtr(jsString(ARG_globalData, value.release())).payload();
</del><ins>+        return JSValuePtr(jsString(ARG_globalData, value.release()));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // All other cases are pretty uncommon
</span><span class="cx">     JSValuePtr result = jsAddSlowCase(callFrame, v1, v2);
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_pre_inc(CTI_ARGS)
</span><span class="lines">@@ -4427,7 +4427,7 @@
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx">     JSValuePtr result = jsNumber(ARG_globalData, v-&gt;toNumber(callFrame) + 1);
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Machine::cti_timeout_check(CTI_ARGS)
</span><span class="lines">@@ -4555,7 +4555,7 @@
</span><span class="cx">     ctiRepatchCallByReturnAddress(CTI_RETURN_ADDRESS, reinterpret_cast&lt;void*&gt;(cti_op_get_by_id_second));
</span><span class="cx"> 
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_get_by_id_second(CTI_ARGS)
</span><span class="lines">@@ -4572,7 +4572,7 @@
</span><span class="cx">     ARG_globalData-&gt;machine-&gt;tryCTICacheGetByID(callFrame, callFrame-&gt;codeBlock(), CTI_RETURN_ADDRESS, baseValue, ident, slot);
</span><span class="cx"> 
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_get_by_id_generic(CTI_ARGS)
</span><span class="lines">@@ -4587,7 +4587,7 @@
</span><span class="cx">     JSValuePtr result = baseValue-&gt;get(callFrame, ident, slot);
</span><span class="cx"> 
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_get_by_id_fail(CTI_ARGS)
</span><span class="lines">@@ -4605,7 +4605,7 @@
</span><span class="cx">     ctiRepatchCallByReturnAddress(CTI_RETURN_ADDRESS, reinterpret_cast&lt;void*&gt;(cti_op_get_by_id_generic));
</span><span class="cx"> 
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_instanceof(CTI_ARGS)
</span><span class="lines">@@ -4632,7 +4632,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!asObject(baseVal)-&gt;structureID()-&gt;typeInfo().implementsHasInstance())
</span><del>-        return JSValuePtr(jsBoolean(false)).payload();
</del><ins>+        return JSValuePtr(jsBoolean(false));
</ins><span class="cx"> 
</span><span class="cx">     if (!proto-&gt;isObject()) {
</span><span class="cx">         throwError(callFrame, TypeError, &quot;instanceof called on an object with an invalid prototype property.&quot;);
</span><span class="lines">@@ -4640,12 +4640,12 @@
</span><span class="cx">     }
</span><span class="cx">         
</span><span class="cx">     if (!value-&gt;isObject())
</span><del>-        return JSValuePtr(jsBoolean(false)).payload();
</del><ins>+        return JSValuePtr(jsBoolean(false));
</ins><span class="cx"> 
</span><span class="cx">     JSValuePtr result = jsBoolean(asObject(baseVal)-&gt;hasInstance(callFrame, value, proto));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><span class="cx"> 
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_del_by_id(CTI_ARGS)
</span><span class="lines">@@ -4659,7 +4659,7 @@
</span><span class="cx"> 
</span><span class="cx">     JSValuePtr result = jsBoolean(baseObj-&gt;deleteProperty(callFrame, ident));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_mul(CTI_ARGS)
</span><span class="lines">@@ -4672,12 +4672,12 @@
</span><span class="cx">     double left;
</span><span class="cx">     double right;
</span><span class="cx">     if (fastIsNumber(src1, left) &amp;&amp; fastIsNumber(src2, right))
</span><del>-        return jsNumber(ARG_globalData, left * right).payload();
</del><ins>+        return jsNumber(ARG_globalData, left * right);
</ins><span class="cx"> 
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx">     JSValuePtr result = jsNumber(ARG_globalData, src1-&gt;toNumber(callFrame) * src2-&gt;toNumber(callFrame));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSObject* Machine::cti_op_new_func(CTI_ARGS)
</span><span class="lines">@@ -4803,7 +4803,7 @@
</span><span class="cx">         ARG_setCallFrame(previousCallFrame);
</span><span class="cx">         VM_CHECK_EXCEPTION();
</span><span class="cx"> 
</span><del>-        return returnValue.payload();
</del><ins>+        return returnValue;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ASSERT(callType == CallTypeNone);
</span><span class="lines">@@ -4896,7 +4896,7 @@
</span><span class="cx">         if (o-&gt;getPropertySlot(callFrame, ident, slot)) {
</span><span class="cx">             JSValuePtr result = slot.getValue(callFrame, ident);
</span><span class="cx">             VM_CHECK_EXCEPTION_AT_END();
</span><del>-            return result.payload();
</del><ins>+            return result;
</ins><span class="cx">         }
</span><span class="cx">     } while (++iter != end);
</span><span class="cx"> 
</span><span class="lines">@@ -5007,7 +5007,7 @@
</span><span class="cx">         JSValuePtr returnValue = constructData.native.function(callFrame, asObject(constrVal), argList);
</span><span class="cx">         VM_CHECK_EXCEPTION();
</span><span class="cx"> 
</span><del>-        return returnValue.payload();
</del><ins>+        return returnValue;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ASSERT(constructType == ConstructTypeNone);
</span><span class="lines">@@ -5047,7 +5047,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> VoidPtrPair Machine::cti_op_resolve_func(CTI_ARGS)
</span><span class="lines">@@ -5104,12 +5104,12 @@
</span><span class="cx">     double left;
</span><span class="cx">     double right;
</span><span class="cx">     if (fastIsNumber(src1, left) &amp;&amp; fastIsNumber(src2, right))
</span><del>-        return jsNumber(ARG_globalData, left - right).payload();
</del><ins>+        return jsNumber(ARG_globalData, left - right);
</ins><span class="cx"> 
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx">     JSValuePtr result = jsNumber(ARG_globalData, src1-&gt;toNumber(callFrame) - src2-&gt;toNumber(callFrame));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Machine::cti_op_put_by_val(CTI_ARGS)
</span><span class="lines">@@ -5179,7 +5179,7 @@
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx">     JSValuePtr result = jsBoolean(jsLessEq(callFrame, ARG_src1, ARG_src2));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int Machine::cti_op_loop_if_true(CTI_ARGS)
</span><span class="lines">@@ -5203,19 +5203,19 @@
</span><span class="cx"> 
</span><span class="cx">     double v;
</span><span class="cx">     if (fastIsNumber(src, v))
</span><del>-        return jsNumber(ARG_globalData, -v).payload();
</del><ins>+        return jsNumber(ARG_globalData, -v);
</ins><span class="cx"> 
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx">     JSValuePtr result = jsNumber(ARG_globalData, -src-&gt;toNumber(callFrame));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_resolve_base(CTI_ARGS)
</span><span class="cx"> {
</span><span class="cx">     CTI_STACK_HACK();
</span><span class="cx"> 
</span><del>-    return inlineResolveBase(ARG_callFrame, *ARG_id1, ARG_callFrame-&gt;scopeChain()).payload();
</del><ins>+    return inlineResolveBase(ARG_callFrame, *ARG_id1, ARG_callFrame-&gt;scopeChain());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_resolve_skip(CTI_ARGS)
</span><span class="lines">@@ -5241,7 +5241,7 @@
</span><span class="cx">         if (o-&gt;getPropertySlot(callFrame, ident, slot)) {
</span><span class="cx">             JSValuePtr result = slot.getValue(callFrame, ident);
</span><span class="cx">             VM_CHECK_EXCEPTION_AT_END();
</span><del>-            return result.payload();
</del><ins>+            return result;
</ins><span class="cx">         }
</span><span class="cx">     } while (++iter != end);
</span><span class="cx"> 
</span><span class="lines">@@ -5271,11 +5271,11 @@
</span><span class="cx">             globalObject-&gt;structureID()-&gt;ref();
</span><span class="cx">             vPC[4] = globalObject-&gt;structureID();
</span><span class="cx">             vPC[5] = slot.cachedOffset();
</span><del>-            return result.payload();
</del><ins>+            return result;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         VM_CHECK_EXCEPTION_AT_END();
</span><del>-        return result.payload();
</del><ins>+        return result;
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     ARG_globalData-&gt;exception = createUndefinedVariableError(callFrame, ident, vPC, callFrame-&gt;codeBlock());
</span><span class="lines">@@ -5292,12 +5292,12 @@
</span><span class="cx">     double left;
</span><span class="cx">     double right;
</span><span class="cx">     if (fastIsNumber(src1, left) &amp;&amp; fastIsNumber(src2, right))
</span><del>-        return jsNumber(ARG_globalData, left / right).payload();
</del><ins>+        return jsNumber(ARG_globalData, left / right);
</ins><span class="cx"> 
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx">     JSValuePtr result = jsNumber(ARG_globalData, src1-&gt;toNumber(callFrame) / src2-&gt;toNumber(callFrame));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_pre_dec(CTI_ARGS)
</span><span class="lines">@@ -5309,7 +5309,7 @@
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx">     JSValuePtr result = jsNumber(ARG_globalData, v-&gt;toNumber(callFrame) - 1);
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int Machine::cti_op_jless(CTI_ARGS)
</span><span class="lines">@@ -5335,7 +5335,7 @@
</span><span class="cx"> 
</span><span class="cx">     JSValuePtr result = jsBoolean(!src-&gt;toBoolean(callFrame));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int SFX_CALL Machine::cti_op_jtrue(CTI_ARGS)
</span><span class="lines">@@ -5378,7 +5378,7 @@
</span><span class="cx">     ASSERT(!JSImmediate::areBothImmediateNumbers(src1, src2));
</span><span class="cx">     JSValuePtr result = jsBoolean(equalSlowCaseInline(callFrame, src1, src2));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_lshift(CTI_ARGS)
</span><span class="lines">@@ -5391,14 +5391,14 @@
</span><span class="cx">     int32_t left;
</span><span class="cx">     uint32_t right;
</span><span class="cx">     if (JSImmediate::areBothImmediateNumbers(val, shift))
</span><del>-        return jsNumber(ARG_globalData, JSImmediate::getTruncatedInt32(val) &lt;&lt; (JSImmediate::getTruncatedUInt32(shift) &amp; 0x1f)).payload();
</del><ins>+        return jsNumber(ARG_globalData, JSImmediate::getTruncatedInt32(val) &lt;&lt; (JSImmediate::getTruncatedUInt32(shift) &amp; 0x1f));
</ins><span class="cx">     if (fastToInt32(val, left) &amp;&amp; fastToUInt32(shift, right))
</span><del>-        return jsNumber(ARG_globalData, left &lt;&lt; (right &amp; 0x1f)).payload();
</del><ins>+        return jsNumber(ARG_globalData, left &lt;&lt; (right &amp; 0x1f));
</ins><span class="cx"> 
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx">     JSValuePtr result = jsNumber(ARG_globalData, (val-&gt;toInt32(callFrame)) &lt;&lt; (shift-&gt;toUInt32(callFrame) &amp; 0x1f));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_bitand(CTI_ARGS)
</span><span class="lines">@@ -5411,12 +5411,12 @@
</span><span class="cx">     int32_t left;
</span><span class="cx">     int32_t right;
</span><span class="cx">     if (fastToInt32(src1, left) &amp;&amp; fastToInt32(src2, right))
</span><del>-        return jsNumber(ARG_globalData, left &amp; right).payload();
</del><ins>+        return jsNumber(ARG_globalData, left &amp; right);
</ins><span class="cx"> 
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx">     JSValuePtr result = jsNumber(ARG_globalData, src1-&gt;toInt32(callFrame) &amp; src2-&gt;toInt32(callFrame));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_rshift(CTI_ARGS)
</span><span class="lines">@@ -5429,14 +5429,14 @@
</span><span class="cx">     int32_t left;
</span><span class="cx">     uint32_t right;
</span><span class="cx">     if (JSImmediate::areBothImmediateNumbers(val, shift))
</span><del>-        return JSImmediate::rightShiftImmediateNumbers(val, shift).payload();
</del><ins>+        return JSImmediate::rightShiftImmediateNumbers(val, shift);
</ins><span class="cx">     if (fastToInt32(val, left) &amp;&amp; fastToUInt32(shift, right))
</span><del>-        return jsNumber(ARG_globalData, left &gt;&gt; (right &amp; 0x1f)).payload();
</del><ins>+        return jsNumber(ARG_globalData, left &gt;&gt; (right &amp; 0x1f));
</ins><span class="cx"> 
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx">     JSValuePtr result = jsNumber(ARG_globalData, (val-&gt;toInt32(callFrame)) &gt;&gt; (shift-&gt;toUInt32(callFrame) &amp; 0x1f));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_bitnot(CTI_ARGS)
</span><span class="lines">@@ -5447,12 +5447,12 @@
</span><span class="cx"> 
</span><span class="cx">     int value;
</span><span class="cx">     if (fastToInt32(src, value))
</span><del>-        return jsNumber(ARG_globalData, ~value).payload();
</del><ins>+        return jsNumber(ARG_globalData, ~value);
</ins><span class="cx">             
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx">     JSValuePtr result = jsNumber(ARG_globalData, ~src-&gt;toInt32(callFrame));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> VoidPtrPair Machine::cti_op_resolve_with_base(CTI_ARGS)
</span><span class="lines">@@ -5509,7 +5509,7 @@
</span><span class="cx">     double d = dividendValue-&gt;toNumber(callFrame);
</span><span class="cx">     JSValuePtr result = jsNumber(ARG_globalData, fmod(d, divisorValue-&gt;toNumber(callFrame)));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_less(CTI_ARGS)
</span><span class="lines">@@ -5519,7 +5519,7 @@
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx">     JSValuePtr result = jsBoolean(jsLess(callFrame, ARG_src1, ARG_src2));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_neq(CTI_ARGS)
</span><span class="lines">@@ -5534,7 +5534,7 @@
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx">     JSValuePtr result = jsBoolean(!equalSlowCaseInline(callFrame, src1, src2));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> VoidPtrPair Machine::cti_op_post_dec(CTI_ARGS)
</span><span class="lines">@@ -5562,11 +5562,11 @@
</span><span class="cx">     CallFrame* callFrame = ARG_callFrame;
</span><span class="cx"> 
</span><span class="cx">     if (JSImmediate::areBothImmediateNumbers(val, shift) &amp;&amp; !JSImmediate::isNegative(val))
</span><del>-        return JSImmediate::rightShiftImmediateNumbers(val, shift).payload();
</del><ins>+        return JSImmediate::rightShiftImmediateNumbers(val, shift);
</ins><span class="cx">     else {
</span><span class="cx">         JSValuePtr result = jsNumber(ARG_globalData, (val-&gt;toUInt32(callFrame)) &gt;&gt; (shift-&gt;toUInt32(callFrame) &amp; 0x1f));
</span><span class="cx">         VM_CHECK_EXCEPTION_AT_END();
</span><del>-        return result.payload();
</del><ins>+        return result;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -5581,7 +5581,7 @@
</span><span class="cx"> 
</span><span class="cx">     JSValuePtr result = jsNumber(ARG_globalData, src1-&gt;toInt32(callFrame) ^ src2-&gt;toInt32(callFrame));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSObject* Machine::cti_op_new_regexp(CTI_ARGS)
</span><span class="lines">@@ -5602,7 +5602,7 @@
</span><span class="cx"> 
</span><span class="cx">     JSValuePtr result = jsNumber(ARG_globalData, src1-&gt;toInt32(callFrame) | src2-&gt;toInt32(callFrame));
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_call_eval(CTI_ARGS)
</span><span class="lines">@@ -5629,10 +5629,10 @@
</span><span class="cx">             ARG_globalData-&gt;exception = exceptionValue;
</span><span class="cx">             VM_THROW_EXCEPTION_AT_END();
</span><span class="cx">         }
</span><del>-        return result.payload();
</del><ins>+        return result;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return JSImmediate::impossibleValue().payload();
</del><ins>+    return JSImmediate::impossibleValue();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_throw(CTI_ARGS)
</span><span class="lines">@@ -5652,14 +5652,14 @@
</span><span class="cx"> 
</span><span class="cx">     if (!handlerVPC) {
</span><span class="cx">         *ARG_exception = exceptionValue;
</span><del>-        return JSImmediate::nullImmediate().payload();
</del><ins>+        return JSImmediate::nullImmediate();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ARG_setCallFrame(callFrame);
</span><span class="cx">     void* catchRoutine = callFrame-&gt;codeBlock()-&gt;nativeExceptionCodeForHandlerVPC(handlerVPC);
</span><span class="cx">     ASSERT(catchRoutine);
</span><span class="cx">     CTI_SET_RETURN_ADDRESS(catchRoutine);
</span><del>-    return exceptionValue.payload();
</del><ins>+    return exceptionValue;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSPropertyNameIterator* Machine::cti_op_get_pnames(CTI_ARGS)
</span><span class="lines">@@ -5677,7 +5677,7 @@
</span><span class="cx">     JSValuePtr temp = it-&gt;next(ARG_callFrame);
</span><span class="cx">     if (!temp)
</span><span class="cx">         it-&gt;invalidate();
</span><del>-    return temp.payload();
</del><ins>+    return temp;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Machine::cti_op_push_scope(CTI_ARGS)
</span><span class="lines">@@ -5700,7 +5700,7 @@
</span><span class="cx"> {
</span><span class="cx">     CTI_STACK_HACK();
</span><span class="cx"> 
</span><del>-    return jsTypeStringForValue(ARG_callFrame, ARG_src1).payload();
</del><ins>+    return jsTypeStringForValue(ARG_callFrame, ARG_src1);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_is_undefined(CTI_ARGS)
</span><span class="lines">@@ -5708,42 +5708,42 @@
</span><span class="cx">     CTI_STACK_HACK();
</span><span class="cx"> 
</span><span class="cx">     JSValuePtr v = ARG_src1;
</span><del>-    return jsBoolean(JSImmediate::isImmediate(v) ? v-&gt;isUndefined() : v-&gt;asCell()-&gt;structureID()-&gt;typeInfo().masqueradesAsUndefined()).payload();
</del><ins>+    return jsBoolean(JSImmediate::isImmediate(v) ? v-&gt;isUndefined() : v-&gt;asCell()-&gt;structureID()-&gt;typeInfo().masqueradesAsUndefined());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_is_boolean(CTI_ARGS)
</span><span class="cx"> {
</span><span class="cx">     CTI_STACK_HACK();
</span><span class="cx"> 
</span><del>-    return jsBoolean(ARG_src1-&gt;isBoolean()).payload();
</del><ins>+    return jsBoolean(ARG_src1-&gt;isBoolean());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_is_number(CTI_ARGS)
</span><span class="cx"> {
</span><span class="cx">     CTI_STACK_HACK();
</span><span class="cx"> 
</span><del>-    return jsBoolean(ARG_src1-&gt;isNumber()).payload();
</del><ins>+    return jsBoolean(ARG_src1-&gt;isNumber());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_is_string(CTI_ARGS)
</span><span class="cx"> {
</span><span class="cx">     CTI_STACK_HACK();
</span><span class="cx"> 
</span><del>-    return jsBoolean(ARG_globalData-&gt;machine-&gt;isJSString(ARG_src1)).payload();
</del><ins>+    return jsBoolean(ARG_globalData-&gt;machine-&gt;isJSString(ARG_src1));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_is_object(CTI_ARGS)
</span><span class="cx"> {
</span><span class="cx">     CTI_STACK_HACK();
</span><span class="cx"> 
</span><del>-    return jsBoolean(jsIsObjectType(ARG_src1)).payload();
</del><ins>+    return jsBoolean(jsIsObjectType(ARG_src1));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_is_function(CTI_ARGS)
</span><span class="cx"> {
</span><span class="cx">     CTI_STACK_HACK();
</span><span class="cx"> 
</span><del>-    return jsBoolean(jsIsFunctionType(ARG_src1)).payload();
</del><ins>+    return jsBoolean(jsIsFunctionType(ARG_src1));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_stricteq(CTI_ARGS)
</span><span class="lines">@@ -5757,7 +5757,7 @@
</span><span class="cx">     ASSERT(!JSImmediate::areBothImmediate(src1, src2));
</span><span class="cx">     ASSERT(!(JSImmediate::isEitherImmediate(src1, src2) &amp; (src1 != JSImmediate::zeroImmediate()) &amp; (src2 != JSImmediate::zeroImmediate())));
</span><span class="cx"> 
</span><del>-    return jsBoolean(strictEqualSlowCaseInline(src1, src2)).payload();
</del><ins>+    return jsBoolean(strictEqualSlowCaseInline(src1, src2));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_nstricteq(CTI_ARGS)
</span><span class="lines">@@ -5771,7 +5771,7 @@
</span><span class="cx">     ASSERT(!JSImmediate::areBothImmediate(src1, src2));
</span><span class="cx">     ASSERT(!(JSImmediate::isEitherImmediate(src1, src2) &amp; (src1 != JSImmediate::zeroImmediate()) &amp; (src2 != JSImmediate::zeroImmediate())));
</span><span class="cx">     
</span><del>-    return jsBoolean(!strictEqualSlowCaseInline(src1, src2)).payload();
</del><ins>+    return jsBoolean(!strictEqualSlowCaseInline(src1, src2));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_to_jsnumber(CTI_ARGS)
</span><span class="lines">@@ -5783,7 +5783,7 @@
</span><span class="cx"> 
</span><span class="cx">     JSValuePtr result = src-&gt;toJSNumber(callFrame);
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue* Machine::cti_op_in(CTI_ARGS)
</span><span class="lines">@@ -5807,11 +5807,11 @@
</span><span class="cx"> 
</span><span class="cx">     uint32_t i;
</span><span class="cx">     if (propName-&gt;getUInt32(i))
</span><del>-        return jsBoolean(baseObj-&gt;hasProperty(callFrame, i)).payload();
</del><ins>+        return jsBoolean(baseObj-&gt;hasProperty(callFrame, i));
</ins><span class="cx"> 
</span><span class="cx">     Identifier property(callFrame, propName-&gt;toString(callFrame));
</span><span class="cx">     VM_CHECK_EXCEPTION();
</span><del>-    return jsBoolean(baseObj-&gt;hasProperty(callFrame, property)).payload();
</del><ins>+    return jsBoolean(baseObj-&gt;hasProperty(callFrame, property));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSObject* Machine::cti_op_push_new_scope(CTI_ARGS)
</span><span class="lines">@@ -5926,7 +5926,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     VM_CHECK_EXCEPTION_AT_END();
</span><del>-    return result.payload();
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Machine::cti_op_put_getter(CTI_ARGS)
</span><span class="lines">@@ -5999,14 +5999,14 @@
</span><span class="cx"> 
</span><span class="cx">     if (!handlerVPC) {
</span><span class="cx">         *ARG_exception = exceptionValue;
</span><del>-        return JSImmediate::nullImmediate().payload();
</del><ins>+        return JSImmediate::nullImmediate();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ARG_setCallFrame(callFrame);
</span><span class="cx">     void* catchRoutine = callFrame-&gt;codeBlock()-&gt;nativeExceptionCodeForHandlerVPC(handlerVPC);
</span><span class="cx">     ASSERT(catchRoutine);
</span><span class="cx">     CTI_SET_RETURN_ADDRESS(catchRoutine);
</span><del>-    return exceptionValue.payload();
</del><ins>+    return exceptionValue;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #undef CTI_RETURN_ADDRESS
</span></span></pre></div>
<a id="trunkJavaScriptCoreVMRegisterh"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/VM/Register.h (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/VM/Register.h        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptCore/VM/Register.h        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -50,7 +50,6 @@
</span><span class="cx">     public:
</span><span class="cx">         Register();
</span><span class="cx">         Register(JSValuePtr);
</span><del>-        Register(JSCell*);
</del><span class="cx"> 
</span><span class="cx">         JSValuePtr jsValue(CallFrame*) const;
</span><span class="cx">         JSValuePtr getJSValue() const;
</span><span class="lines">@@ -143,15 +142,9 @@
</span><span class="cx">     ALWAYS_INLINE Register::Register(JSValuePtr v)
</span><span class="cx">     {
</span><span class="cx">         SET_TYPE(ValueType);
</span><del>-        u.value = v.payload();
</del><ins>+        u.value = v;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    ALWAYS_INLINE Register::Register(JSCell* v)
-    {
-        SET_TYPE(ValueType);
-        u.value = JSValuePtr(v).payload();
-    }
-
</del><span class="cx">     // This function is scaffolding for legacy clients. It will eventually go away.
</span><span class="cx">     ALWAYS_INLINE JSValuePtr Register::jsValue(CallFrame*) const
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkJavaScriptCorekjsJSCellh"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/kjs/JSCell.h (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/kjs/JSCell.h        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptCore/kjs/JSCell.h        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><del>-    class JSCell : Noncopyable {
</del><ins>+    class JSCell : public JSValue {
</ins><span class="cx">         friend class CTI;
</span><span class="cx">         friend class GetterSetter;
</span><span class="cx">         friend class Heap;
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx">     inline JSCell* asCell(JSValuePtr value)
</span><span class="cx">     {
</span><span class="cx">         ASSERT(!JSImmediate::isImmediate(value));
</span><del>-        return reinterpret_cast&lt;JSCell*&gt;(value.payload());
</del><ins>+        return static_cast&lt;JSCell*&gt;(value);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     inline JSCell::JSCell(StructureID* structureID)
</span><span class="lines">@@ -169,13 +169,6 @@
</span><span class="cx"> #endif
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    // --- JSValuePtr inlines ----------------------------
-
-    inline JSValuePtr::JSValuePtr(const JSCell* cell)
-        : m_payload(reinterpret_cast&lt;JSValue*&gt;(const_cast&lt;JSCell*&gt;(cell)))
-    {
-    }
-
</del><span class="cx">     // --- JSValue inlines ----------------------------
</span><span class="cx"> 
</span><span class="cx">     inline bool JSValue::isNumber() const
</span></span></pre></div>
<a id="trunkJavaScriptCorekjsJSImmediateh"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/kjs/JSImmediate.h (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/kjs/JSImmediate.h        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptCore/kjs/JSImmediate.h        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -39,29 +39,10 @@
</span><span class="cx">     class JSValue;
</span><span class="cx">     class UString;
</span><span class="cx"> 
</span><del>-    class JSValuePtr {
-    public:
-        JSValuePtr() { } // uninitialized (not zero)
-        JSValuePtr(const JSValue* payload) : m_payload(const_cast&lt;JSValue*&gt;(payload)) { }
-        JSValuePtr(const JSCell*);
</del><ins>+    typedef JSValue* JSValuePtr;
</ins><span class="cx"> 
</span><del>-        JSValue* payload() const { return m_payload; }
-        JSValue** payloadPtr() { return &amp;m_payload; }
-
-        bool operator!() const { return !payload(); }
-    
-        // This conversion operator allows implicit conversion to bool but not to other integer types.
-        typedef JSValue* JSValuePtr::*UnspecifiedBoolType;
-        operator UnspecifiedBoolType() const { return payload() ? &amp;JSValuePtr::m_payload : 0; }
-
-        JSValue* operator-&gt;() const { return payload(); }
-
-    private:
-        JSValue* m_payload;
-    };
-
</del><span class="cx">     inline JSValuePtr noValue() { return static_cast&lt;JSValue*&gt;(0); }
</span><del>-    inline void* asPointer(JSValuePtr value) { return value.payload(); }
</del><ins>+    inline void* asPointer(JSValuePtr value) { return value; }
</ins><span class="cx"> 
</span><span class="cx">     /*
</span><span class="cx">      * A JSValuePtr is either a pointer to a cell (a heap-allocated object) or an immediate (a type-tagged 
</span><span class="lines">@@ -321,7 +302,7 @@
</span><span class="cx">         
</span><span class="cx">         static ALWAYS_INLINE uintptr_t rawValue(JSValuePtr v)
</span><span class="cx">         {
</span><del>-            return reinterpret_cast&lt;uintptr_t&gt;(v.payload());
</del><ins>+            return reinterpret_cast&lt;uintptr_t&gt;(v);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         static double nonInlineNaN();
</span></span></pre></div>
<a id="trunkJavaScriptCorekjsJSValueh"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/kjs/JSValue.h (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/kjs/JSValue.h        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptCore/kjs/JSValue.h        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -46,9 +46,9 @@
</span><span class="cx">     enum PreferredPrimitiveType { NoPreference, PreferNumber, PreferString };
</span><span class="cx"> 
</span><span class="cx">     class JSValue : Noncopyable {
</span><del>-    private:
-        JSValue();
-        ~JSValue();
</del><ins>+    protected:
+        JSValue() { }
+        virtual ~JSValue() { }
</ins><span class="cx"> 
</span><span class="cx">     public:
</span><span class="cx">         // Querying the type.
</span><span class="lines">@@ -136,9 +136,6 @@
</span><span class="cx">         uint32_t toUInt32SlowCase(ExecState*, bool&amp; ok) const;
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    bool operator==(JSValuePtr, JSValuePtr);
-    bool operator!=(JSValuePtr, JSValuePtr);
-
</del><span class="cx">     // These are identical logic to the JSValue functions above, and faster than jsNumber(number)-&gt;toInt32().
</span><span class="cx">     int32_t toInt32(double);
</span><span class="cx">     uint32_t toUInt32(double);
</span><span class="lines">@@ -241,16 +238,6 @@
</span><span class="cx">         return toUInt32SlowCase(exec, ok);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    inline bool operator==(JSValuePtr a, JSValuePtr b)
-    {
-        return a.payload() == b.payload();
-    }
-
-    inline bool operator!=(JSValuePtr a, JSValuePtr b)
-    {
-        return a.payload() != b.payload();
-    }
-
</del><span class="cx"> } // namespace JSC
</span><span class="cx"> 
</span><span class="cx"> #endif // JSValue_h
</span></span></pre></div>
<a id="trunkJavaScriptCorekjsPropertySloth"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/kjs/PropertySlot.h (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/kjs/PropertySlot.h        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptCore/kjs/PropertySlot.h        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -44,8 +44,8 @@
</span><span class="cx">             clearValue();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        explicit PropertySlot(JSValuePtr base)
-            : m_slotBase(base)
</del><ins>+        explicit PropertySlot(const JSValue* base)
+            : m_slotBase(const_cast&lt;JSValue*&gt;(base))
</ins><span class="cx">             , m_offset(WTF::notFound)
</span><span class="cx">         {
</span><span class="cx">             clearValue();
</span></span></pre></div>
<a id="trunkJavaScriptCorekjsprotecth"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/kjs/protect.h (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/kjs/protect.h        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptCore/kjs/protect.h        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -89,7 +89,6 @@
</span><span class="cx">         template &lt;class U&gt; ProtectedPtr(const ProtectedPtr&lt;U&gt;&amp;);
</span><span class="cx">         
</span><span class="cx">         T* get() const { return m_ptr; }
</span><del>-        operator JSValuePtr() const { return m_ptr; }
</del><span class="cx">         operator T*() const { return m_ptr; }
</span><span class="cx">         T* operator-&gt;() const { return m_ptr; }
</span><span class="cx">         
</span><span class="lines">@@ -102,29 +101,6 @@
</span><span class="cx">         T* m_ptr;
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    template &lt;&gt; class ProtectedPtr&lt;JSValuePtr&gt; {
-    public:
-        ProtectedPtr() : m_ptr(0) { }
-        ProtectedPtr(JSValuePtr);
-        ProtectedPtr(const ProtectedPtr&amp;);
-        ~ProtectedPtr();
-
-        template &lt;class U&gt; ProtectedPtr(const ProtectedPtr&lt;U&gt;&amp;);
-        
-        JSValue* get() const { return m_ptr; }
-        operator JSValuePtr() const { return m_ptr; }
-        operator JSValue*() const { return m_ptr; }
-        JSValue* operator-&gt;() const { return m_ptr; }
-        
-        bool operator!() const { return !m_ptr; }
-
-        ProtectedPtr&amp; operator=(JSValuePtr);
-        ProtectedPtr&amp; operator=(const ProtectedPtr&amp;);
-        
-    private:
-        JSValue* m_ptr;
-    };
-
</del><span class="cx">     template &lt;class T&gt; ProtectedPtr&lt;T&gt;::ProtectedPtr(T* ptr)
</span><span class="cx">         : m_ptr(ptr)
</span><span class="cx">     {
</span><span class="lines">@@ -165,40 +141,6 @@
</span><span class="cx">         return *this;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    inline ProtectedPtr&lt;JSValuePtr&gt;::ProtectedPtr(JSValuePtr ptr)
-        : m_ptr(ptr.payload())
-    {
-        gcProtectNullTolerant(m_ptr);
-    }
-
-    inline ProtectedPtr&lt;JSValuePtr&gt;::ProtectedPtr(const ProtectedPtr&amp; o)
-        : m_ptr(o.m_ptr)
-    {
-        gcProtectNullTolerant(m_ptr);
-    }
-
-    inline ProtectedPtr&lt;JSValuePtr&gt;::~ProtectedPtr()
-    {
-        gcUnprotectNullTolerant(m_ptr);
-    }
-
-    inline ProtectedPtr&lt;JSValuePtr&gt;&amp; ProtectedPtr&lt;JSValuePtr&gt;::operator=(const ProtectedPtr&amp; o) 
-    {
-        JSValuePtr optr = o.m_ptr;
-        gcProtectNullTolerant(optr);
-        gcUnprotectNullTolerant(m_ptr);
-        m_ptr = optr.payload();
-        return *this;
-    }
-
-    inline ProtectedPtr&lt;JSValuePtr&gt;&amp; ProtectedPtr&lt;JSValuePtr&gt;::operator=(JSValuePtr ptr) 
-    {
-        gcProtectNullTolerant(ptr);
-        gcUnprotectNullTolerant(m_ptr);
-        m_ptr = ptr.payload();
-        return *this;
-    }
-
</del><span class="cx">     template &lt;class T&gt; inline bool operator==(const ProtectedPtr&lt;T&gt;&amp; a, const ProtectedPtr&lt;T&gt;&amp; b) { return a.get() == b.get(); }
</span><span class="cx">     template &lt;class T&gt; inline bool operator==(const ProtectedPtr&lt;T&gt;&amp; a, const T* b) { return a.get() == b; }
</span><span class="cx">     template &lt;class T&gt; inline bool operator==(const T* a, const ProtectedPtr&lt;T&gt;&amp; b) { return a == b.get(); }
</span></span></pre></div>
<a id="trunkJavaScriptGlueChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptGlue/ChangeLog (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptGlue/ChangeLog        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptGlue/ChangeLog        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -1,3 +1,11 @@
</span><ins>+2008-10-23  Darin Adler  &lt;darin@apple.com&gt;
+
+        - roll out https://bugs.webkit.org/show_bug.cgi?id=21732
+
+        * JSValueWrapper.cpp:
+        (JSValueWrapper::GetValue): Added missing call to .get().
+        * JSValueWrapper.h: ProtectedPtr&lt;JSValue&gt; instead of ProtectedPtr&lt;JSValuePtr&gt;.
+
</ins><span class="cx"> 2008-10-22  Darin Adler  &lt;darin@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Sam Weinig.
</span></span></pre></div>
<a id="trunkJavaScriptGlueJSValueWrappercpp"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptGlue/JSValueWrapper.cpp (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptGlue/JSValueWrapper.cpp        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptGlue/JSValueWrapper.cpp        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx"> 
</span><span class="cx"> JSValuePtr JSValueWrapper::GetValue()
</span><span class="cx"> {
</span><del>-    return fValue;
</del><ins>+    return fValue.get();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void JSValueWrapper::GetJSObectCallBacks(JSObjectCallBacks&amp; callBacks)
</span></span></pre></div>
<a id="trunkJavaScriptGlueJSValueWrapperh"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptGlue/JSValueWrapper.h (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptGlue/JSValueWrapper.h        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/JavaScriptGlue/JSValueWrapper.h        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">     JSValuePtr GetValue();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    ProtectedPtr&lt;JSValuePtr&gt; fValue;
</del><ins>+    ProtectedPtr&lt;JSValue&gt; fValue;
</ins><span class="cx">     
</span><span class="cx">     static void JSObjectDispose(void *data);
</span><span class="cx">     static CFArrayRef JSObjectCopyPropertyNames(void *data);
</span></span></pre></div>
<a id="trunkWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/ChangeLog (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/ChangeLog        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/WebCore/ChangeLog        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -1,3 +1,11 @@
</span><ins>+2008-10-23  Darin Adler  &lt;darin@apple.com&gt;
+
+        - roll out https://bugs.webkit.org/show_bug.cgi?id=21732
+
+        * bindings/js/ScheduledAction.h:
+        * inspector/InspectorController.cpp:
+        ProtectedPtr&lt;JSValue&gt; instead of ProtectedPtr&lt;JSValuePtr&gt;.
+
</ins><span class="cx"> 2008-10-23  Simon Hausmann  &lt;hausmann@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix the Qt build.
</span></span></pre></div>
<a id="trunkWebCorebindingsjsScheduledActionh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/bindings/js/ScheduledAction.h (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/js/ScheduledAction.h        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/WebCore/bindings/js/ScheduledAction.h        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -43,8 +43,8 @@
</span><span class="cx">         void execute(JSDOMWindowShell*);
</span><span class="cx"> 
</span><span class="cx">     private:
</span><del>-        JSC::ProtectedPtr&lt;JSC::JSValuePtr&gt; m_function;
-        Vector&lt;JSC::ProtectedPtr&lt;JSC::JSValuePtr&gt; &gt; m_args;
</del><ins>+        JSC::ProtectedPtr&lt;JSC::JSValue&gt; m_function;
+        Vector&lt;JSC::ProtectedPtr&lt;JSC::JSValue&gt; &gt; m_args;
</ins><span class="cx">         String m_code;
</span><span class="cx">     };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoreinspectorInspectorControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/InspectorController.cpp (37811 => 37812)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/InspectorController.cpp        2008-10-23 13:27:06 UTC (rev 37811)
+++ trunk/WebCore/inspector/InspectorController.cpp        2008-10-23 15:55:41 UTC (rev 37812)
</span><span class="lines">@@ -203,7 +203,7 @@
</span><span class="cx">     MessageSource source;
</span><span class="cx">     MessageLevel level;
</span><span class="cx">     String message;
</span><del>-    Vector&lt;ProtectedPtr&lt;JSValuePtr&gt; &gt; wrappedArguments;
</del><ins>+    Vector&lt;ProtectedPtr&lt;JSValue&gt; &gt; wrappedArguments;
</ins><span class="cx">     unsigned line;
</span><span class="cx">     String url;
</span><span class="cx">     unsigned groupLevel;
</span></span></pre>
</div>
</div>

</body>
</html>