<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>28071</bug_id>
          
          <creation_ts>2009-08-07 09:38:55 -0700</creation_ts>
          <short_desc>[V8] Speed up lookupDOMWrapper by using new V8 API function.</short_desc>
          <delta_ts>2009-08-07 16:11:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vitaly Repeshko">vitalyr</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>137926</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2009-08-07 09:38:55 -0700</bug_when>
    <thetext>V8 bindings: speed up lookupDOMWrapper by using new V8 API function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137928</commentid>
    <comment_count>1</comment_count>
      <attachid>34283</attachid>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2009-08-07 09:41:22 -0700</bug_when>
    <thetext>Created attachment 34283
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137931</commentid>
    <comment_count>2</comment_count>
      <attachid>34283</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-08-07 09:51:00 -0700</bug_when>
    <thetext>Comment on attachment 34283
patch

This looks great, except for style nits:

&gt; +
&gt; +        V8 bindings: speed up lookupDOMWrapper by using new V8 API function.

The convention we use is to use a bracketed V8 qualifier:

[V8] Speed up lookupD....

&gt;  
&gt; -        static v8::Handle&lt;v8::Object&gt; lookupDOMWrapper(V8ClassIndex::V8WrapperType, v8::Handle&lt;v8::Value&gt;);
&gt; +        static v8::Handle&lt;v8::Object&gt; lookupDOMWrapper(V8ClassIndex::V8WrapperType type, v8::Handle&lt;v8::Object&gt; object)
&gt; +        {
&gt; +            if (object.IsEmpty())
&gt; +                return object;
&gt; +
&gt; +            v8::Handle&lt;v8::FunctionTemplate&gt; descriptor = getTemplate(type);
&gt; +            return object-&gt;FindInstanceInPrototypeChain(descriptor);

Great! Can we go even more succinct here?:

return object.IsEmpty() ? object : object-&gt;FindInstanceInPrototypeChain(getTemplate(type));

&gt; +        }

&gt;          // A helper function extract native object pointer from a DOM wrapper
&gt;          // and cast to the specified type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137938</commentid>
    <comment_count>3</comment_count>
      <attachid>34286</attachid>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2009-08-07 09:59:50 -0700</bug_when>
    <thetext>Created attachment 34286
more succinct patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137945</commentid>
    <comment_count>4</comment_count>
      <attachid>34286</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-08-07 10:08:01 -0700</bug_when>
    <thetext>Comment on attachment 34286
more succinct patch

r=me. You forgot the ChageLog change, but it&apos;s no big deal -- doesn&apos;t affect the quality of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138202</commentid>
    <comment_count>5</comment_count>
      <attachid>34286</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-07 16:07:49 -0700</bug_when>
    <thetext>Comment on attachment 34286
more succinct patch

Boo.  Tabs in changelog.  I&apos;ll land manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138203</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-07 16:11:45 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/bindings/v8/V8DOMWrapper.cpp
	M	WebCore/bindings/v8/V8DOMWrapper.h
Committed r46921</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34283</attachid>
            <date>2009-08-07 09:41:22 -0700</date>
            <delta_ts>2009-08-07 09:50:59 -0700</delta_ts>
            <desc>patch</desc>
            <filename>lookup_wrapper.patch</filename>
            <type>text/plain</type>
            <size>2705</size>
            <attacher name="Vitaly Repeshko">vitalyr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWE5NDI0Yy4uNTgwYzVhOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wOC0wNyAgVml0YWx5IFJlcGVz
aGtvICA8dml0YWx5ckBxdWFkLnNwYi5jb3JwLmdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVjggYmluZGluZ3M6IHNwZWVkIHVwIGxv
b2t1cERPTVdyYXBwZXIgYnkgdXNpbmcgbmV3IFY4IEFQSSBmdW5jdGlvbi4KKworCWh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODA3MQorCisgICAgICAgICogYmluZGlu
Z3MvdjgvVjhET01XcmFwcGVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBw
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6bG9va3VwRE9NV3JhcHBlcik6
CisKIDIwMDktMDgtMDUgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3Jh
cHBlci5jcHAKaW5kZXggYjIyNmViZC4uMTIzMmUzNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmNwcApAQCAtNjk4LDIyICs2OTgsNiBAQCB2b2lkKiBWOERPTVdyYXBwZXI6OmNvbnZl
cnRUb1NWR1BPRFR5cGVJbXBsKFY4Q2xhc3NJbmRleDo6VjhXcmFwcGVyVHlwZSB0eXBlLCB2OAog
ICAgIHJldHVybiBpc1dyYXBwZXJPZlR5cGUob2JqZWN0LCB0eXBlKSA/IGNvbnZlcnRET01XcmFw
cGVyVG9OYXRpdmU8dm9pZD4odjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChvYmplY3QpKSA6
IDA7CiB9CiAKLXY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhET01XcmFwcGVyOjpsb29rdXBET01X
cmFwcGVyKFY4Q2xhc3NJbmRleDo6VjhXcmFwcGVyVHlwZSB0eXBlLCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdmFsdWUpCi17Ci0gICAgaWYgKHZhbHVlLklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJu
IG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0KLSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlv
blRlbXBsYXRlPiBkZXNjcmlwdG9yID0gZ2V0VGVtcGxhdGUodHlwZSk7Ci0gICAgd2hpbGUgKHZh
bHVlLT5Jc09iamVjdCgpKSB7Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0
ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSk7Ci0gICAgICAgIGlmIChkZXNj
cmlwdG9yLT5IYXNJbnN0YW5jZShvYmplY3QpKQotICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsK
LQotICAgICAgICB2YWx1ZSA9IG9iamVjdC0+R2V0UHJvdG90eXBlKCk7Ci0gICAgfQotICAgIHJl
dHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotfSAKLQogUGFzc1JlZlB0cjxOb2RlRmls
dGVyPiBWOERPTVdyYXBwZXI6OndyYXBOYXRpdmVOb2RlRmlsdGVyKHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBmaWx0ZXIpCiB7CiAgICAgLy8gQSBOb2RlRmlsdGVyIGlzIHVzZWQgd2hlbiB3YWxraW5n
IHRocm91Z2ggYSBET00gdHJlZSBvciBpdGVyYXRpbmcgdHJlZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmgKaW5kZXggNjZiMDU2My4uNzFjZGY2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOERPTVdyYXBwZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3Jh
cHBlci5oCkBAIC05OCw3ICs5OCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8v
IFNldHMgY29udGVudHMgb2YgYSBET00gd3JhcHBlci4KICAgICAgICAgc3RhdGljIHZvaWQgc2V0
RE9NV3JhcHBlcih2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCBpbnQgdHlwZSwgdm9pZCogcHRyKTsK
IAotICAgICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBsb29rdXBET01XcmFwcGVy
KFY4Q2xhc3NJbmRleDo6VjhXcmFwcGVyVHlwZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KTsKKyAg
ICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gbG9va3VwRE9NV3JhcHBlcihWOENs
YXNzSW5kZXg6OlY4V3JhcHBlclR5cGUgdHlwZSwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmpl
Y3QpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChvYmplY3QuSXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBvYmplY3Q7CisKKyAgICAgICAgICAgIHY4OjpIYW5kbGU8djg6OkZ1
bmN0aW9uVGVtcGxhdGU+IGRlc2NyaXB0b3IgPSBnZXRUZW1wbGF0ZSh0eXBlKTsKKyAgICAgICAg
ICAgIHJldHVybiBvYmplY3QtPkZpbmRJbnN0YW5jZUluUHJvdG90eXBlQ2hhaW4oZGVzY3JpcHRv
cik7CisgICAgICAgIH0KIAogICAgICAgICAvLyBBIGhlbHBlciBmdW5jdGlvbiBleHRyYWN0IG5h
dGl2ZSBvYmplY3QgcG9pbnRlciBmcm9tIGEgRE9NIHdyYXBwZXIKICAgICAgICAgLy8gYW5kIGNh
c3QgdG8gdGhlIHNwZWNpZmllZCB0eXBlLgo=
</data>
<flag name="review"
          id="18445"
          type_id="1"
          status="-"
          setter="dglazkov"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34286</attachid>
            <date>2009-08-07 09:59:50 -0700</date>
            <delta_ts>2009-08-07 16:07:49 -0700</delta_ts>
            <desc>more succinct patch</desc>
            <filename>lookup_wrapper.patch</filename>
            <type>text/plain</type>
            <size>2593</size>
            <attacher name="Vitaly Repeshko">vitalyr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWE5NDI0Yy4uNTgwYzVhOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wOC0wNyAgVml0YWx5IFJlcGVz
aGtvICA8dml0YWx5ckBxdWFkLnNwYi5jb3JwLmdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVjggYmluZGluZ3M6IHNwZWVkIHVwIGxv
b2t1cERPTVdyYXBwZXIgYnkgdXNpbmcgbmV3IFY4IEFQSSBmdW5jdGlvbi4KKworCWh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODA3MQorCisgICAgICAgICogYmluZGlu
Z3MvdjgvVjhET01XcmFwcGVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBw
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6bG9va3VwRE9NV3JhcHBlcik6
CisKIDIwMDktMDgtMDUgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3Jh
cHBlci5jcHAKaW5kZXggYjIyNmViZC4uMTIzMmUzNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmNwcApAQCAtNjk4LDIyICs2OTgsNiBAQCB2b2lkKiBWOERPTVdyYXBwZXI6OmNvbnZl
cnRUb1NWR1BPRFR5cGVJbXBsKFY4Q2xhc3NJbmRleDo6VjhXcmFwcGVyVHlwZSB0eXBlLCB2OAog
ICAgIHJldHVybiBpc1dyYXBwZXJPZlR5cGUob2JqZWN0LCB0eXBlKSA/IGNvbnZlcnRET01XcmFw
cGVyVG9OYXRpdmU8dm9pZD4odjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChvYmplY3QpKSA6
IDA7CiB9CiAKLXY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhET01XcmFwcGVyOjpsb29rdXBET01X
cmFwcGVyKFY4Q2xhc3NJbmRleDo6VjhXcmFwcGVyVHlwZSB0eXBlLCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdmFsdWUpCi17Ci0gICAgaWYgKHZhbHVlLklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJu
IG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0KLSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlv
blRlbXBsYXRlPiBkZXNjcmlwdG9yID0gZ2V0VGVtcGxhdGUodHlwZSk7Ci0gICAgd2hpbGUgKHZh
bHVlLT5Jc09iamVjdCgpKSB7Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0
ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSk7Ci0gICAgICAgIGlmIChkZXNj
cmlwdG9yLT5IYXNJbnN0YW5jZShvYmplY3QpKQotICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsK
LQotICAgICAgICB2YWx1ZSA9IG9iamVjdC0+R2V0UHJvdG90eXBlKCk7Ci0gICAgfQotICAgIHJl
dHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotfSAKLQogUGFzc1JlZlB0cjxOb2RlRmls
dGVyPiBWOERPTVdyYXBwZXI6OndyYXBOYXRpdmVOb2RlRmlsdGVyKHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBmaWx0ZXIpCiB7CiAgICAgLy8gQSBOb2RlRmlsdGVyIGlzIHVzZWQgd2hlbiB3YWxraW5n
IHRocm91Z2ggYSBET00gdHJlZSBvciBpdGVyYXRpbmcgdHJlZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmgKaW5kZXggNjZiMDU2My4uNTdiM2E2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOERPTVdyYXBwZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3Jh
cHBlci5oCkBAIC05OCw3ICs5OCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8v
IFNldHMgY29udGVudHMgb2YgYSBET00gd3JhcHBlci4KICAgICAgICAgc3RhdGljIHZvaWQgc2V0
RE9NV3JhcHBlcih2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCBpbnQgdHlwZSwgdm9pZCogcHRyKTsK
IAotICAgICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBsb29rdXBET01XcmFwcGVy
KFY4Q2xhc3NJbmRleDo6VjhXcmFwcGVyVHlwZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KTsKKyAg
ICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gbG9va3VwRE9NV3JhcHBlcihWOENs
YXNzSW5kZXg6OlY4V3JhcHBlclR5cGUgdHlwZSwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmpl
Y3QpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBvYmplY3QuSXNFbXB0eSgpID8gb2Jq
ZWN0IDogb2JqZWN0LT5GaW5kSW5zdGFuY2VJblByb3RvdHlwZUNoYWluKGdldFRlbXBsYXRlKHR5
cGUpKTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIEEgaGVscGVyIGZ1bmN0aW9uIGV4dHJhY3Qg
bmF0aXZlIG9iamVjdCBwb2ludGVyIGZyb20gYSBET00gd3JhcHBlcgogICAgICAgICAvLyBhbmQg
Y2FzdCB0byB0aGUgc3BlY2lmaWVkIHR5cGUuCg==
</data>
<flag name="review"
          id="18449"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="18452"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>