<?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>223219</bug_id>
          
          <creation_ts>2021-03-15 15:18:38 -0700</creation_ts>
          <short_desc>[WebIDL] Optimize convertRecord() to avoid double |key| lookup</short_desc>
          <delta_ts>2021-03-16 16:03:18 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=223231</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1739696</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-03-15 15:18:38 -0700</bug_when>
    <thetext>[WebIDL] Optimize convertRecord() to avoid double |key| lookup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739699</commentid>
    <comment_count>1</comment_count>
      <attachid>423253</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-03-15 15:24:12 -0700</bug_when>
    <thetext>Created attachment 423253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739982</commentid>
    <comment_count>2</comment_count>
      <attachid>423342</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-03-16 09:47:42 -0700</bug_when>
    <thetext>Created attachment 423342
Microbenchmark

10 keys / 10k runs / 1s interval

Trunk: 26.5ms
Patch: 21.2ms (20% faster)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740258</commentid>
    <comment_count>3</comment_count>
      <attachid>423253</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-03-16 15:27:33 -0700</bug_when>
    <thetext>Comment on attachment 423253
Patch

Windows EWS failures are unrelated. cq+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740290</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-16 16:02:29 -0700</bug_when>
    <thetext>Committed r274529: &lt;https://commits.webkit.org/r274529&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423253.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740293</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-16 16:03:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/75499121&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423253</attachid>
            <date>2021-03-15 15:24:12 -0700</date>
            <delta_ts>2021-03-16 16:02:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223219-20210316002411.patch</filename>
            <type>text/plain</type>
            <size>4563</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NDQ0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDIxLTAzLTE1ICBBbGV4ZXkg
U2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBbV2ViSURMXSBPcHRp
bWl6ZSBjb252ZXJ0UmVjb3JkKCkgdG8gYXZvaWQgZG91YmxlIHxrZXl8IGxvb2t1cAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMjE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmVw
bGFjZXMgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKCkgd2l0aCBtb3JlIGxvdy1sZXZlbCBBUEkg
c28KKyAgICAgICAgYHNsb3QuaXNUYWludGVkQnlPcGFxdWVPYmplY3QoKWAgY2FuIGJlIGxldmVy
YWdlZCB0byBhdm9pZCB0aGUgc2Vjb25kIHxrZXl8CisgICAgICAgIGxvb2t1cCBpZiBpdCdzIHVu
b2JzZXJ2YWJsZSwgd2hpbGUgc3RpbGwgaW52b2tpbmcgUHJveHkncyBbW0dldF1dIHRyYXAgWzFd
LgorCisgICAgICAgIEl0J3MgYSBjb21tb24gcGF0dGVybiB1c2VkIGluIEpTQyAoc2VlIE9iamVj
dENvbnN0cnVjdG9yLmNwcCksIHdoaWNoIHNwZWVkcyB1cAorICAgICAgICBjb252ZXJ0UmVjb3Jk
KCkgYnkgMjAlIChtaWNyb2JlbmNobWFyazogMTAga2V5cyAvIDEwayBydW5zKS4KKworICAgICAg
ICBBbHNvLCB0aGlzIHBhdGNoIGFwcGxpZXMgR2VvZmZyZXkgR2FyZW4ncyBwb3N0LXJldmlldyBm
ZWVkYmFjayBvbiByMjY4ODUyCisgICAgICAgIGJ5IHV0aWxpemluZyBBZGRSZXN1bHQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgVGVzdDog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJz
LXJlY29yZC5odG1sCisKKyAgICAgICAgWzFdIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJp
ZGwvI2VzLXJlY29yZCAoc3RlcCA0LjIuMikKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
Q29udmVydFJlY29yZC5oOgorCiAyMDIxLTAzLTE1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVuZGVyU3R5bGU6OmdldFJvdW5kZWRJbm5lckJvcmRlckZvciBz
aG91bGQgbmV2ZXIgcHJvZHVjZSBhIHJlY3Qgd2l0aCBuZWdhdGl2ZSB3aWR0aC9oZWlnaHQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFJlY29yZC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFJlY29yZC5o
CShyZXZpc2lvbiAyNzQ0MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNv
bnZlcnRSZWNvcmQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDIxICsxMDcsMjUgQEAgcHJpdmF0
ZToKICAgICAgICAgLy8gNS4gUmVwZWF0LCBmb3IgZWFjaCBlbGVtZW50IGtleSBvZiBrZXlzIGlu
IExpc3Qgb3JkZXI6CiAgICAgICAgIGZvciAoYXV0byYga2V5IDoga2V5cykgewogICAgICAgICAg
ICAgLy8gMS4gTGV0IGRlc2MgYmUgPyBPLltbR2V0T3duUHJvcGVydHldXShrZXkpLgotICAgICAg
ICAgICAgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3IgZGVzY3JpcHRvcjsKLSAgICAgICAgICAgIGJv
b2wgZGlkR2V0RGVzY3JpcHRvciA9IG9iamVjdC0+Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBrZXksIGRlc2NyaXB0b3IpOworICAgICAgICAgICAgSlNDOjpQ
cm9wZXJ0eVNsb3Qgc2xvdChvYmplY3QsIEpTQzo6UHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhv
ZFR5cGU6OkdldE93blByb3BlcnR5KTsKKyAgICAgICAgICAgIGJvb2wgaGFzUHJvcGVydHkgPSBv
YmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgJmxleGlj
YWxHbG9iYWxPYmplY3QsIGtleSwgc2xvdCk7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOwogCiAgICAgICAgICAgICAvLyAyLiBJZiBkZXNjIGlzIG5vdCB1bmRl
ZmluZWQgYW5kIGRlc2MuW1tFbnVtZXJhYmxlXV0gaXMgdHJ1ZToKIAogICAgICAgICAgICAgLy8g
SXQncyBuZWNlc3NhcnkgdG8gZmlsdGVyIGVudW1lcmFibGUgaGVyZSByYXRoZXIgdGhhbiB1c2lu
ZyBEb250RW51bVByb3BlcnRpZXNNb2RlOjpFeGNsdWRlLAogICAgICAgICAgICAgLy8gdG8gcHJl
dmVudCBhbiBvYnNlcnZhYmxlIGV4dHJhIFtbR2V0T3duUHJvcGVydHldXSBvcGVyYXRpb24gaW4g
dGhlIGNhc2Ugb2YgUHJveHlPYmplY3QgcmVjb3Jkcy4KLSAgICAgICAgICAgIGlmIChkaWRHZXRE
ZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZSgpKSB7CisgICAgICAgICAgICBpZiAo
aGFzUHJvcGVydHkgJiYgIShzbG90LmF0dHJpYnV0ZXMoKSAmIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSkgewogICAgICAgICAgICAgICAgIC8vIDEuIExldCB0eXBlZEtleSBiZSBr
ZXkgY29udmVydGVkIHRvIGFuIElETCB2YWx1ZSBvZiB0eXBlIEsuCiAgICAgICAgICAgICAgICAg
YXV0byB0eXBlZEtleSA9IERldGFpbDo6SWRlbnRpZmllckNvbnZlcnRlcjxLPjo6Y29udmVydChs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBrZXkpOwogICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICAgICAgICAgICAgICAvLyAyLiBMZXQgdmFsdWUgYmUg
PyBHZXQoTywga2V5KS4KLSAgICAgICAgICAgICAgICBhdXRvIHN1YlZhbHVlID0gb2JqZWN0LT5n
ZXQoJmxleGljYWxHbG9iYWxPYmplY3QsIGtleSk7CisgICAgICAgICAgICAgICAgSlNDOjpKU1Zh
bHVlIHN1YlZhbHVlOworICAgICAgICAgICAgICAgIGlmIChMSUtFTFkoIXNsb3QuaXNUYWludGVk
QnlPcGFxdWVPYmplY3QoKSkpCisgICAgICAgICAgICAgICAgICAgIHN1YlZhbHVlID0gc2xvdC5n
ZXRWYWx1ZSgmbGV4aWNhbEdsb2JhbE9iamVjdCwga2V5KTsKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIHN1YlZhbHVlID0gb2JqZWN0LT5nZXQoJmxleGljYWxHbG9i
YWxPYmplY3QsIGtleSk7CiAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKIAogICAgICAgICAgICAgICAgIC8vIDMuIExldCB0eXBlZFZhbHVlIGJlIHZhbHVl
IGNvbnZlcnRlZCB0byBhbiBJREwgdmFsdWUgb2YgdHlwZSBWLgpAQCAtMTMyLDEzICsxMzYsMTIg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAvLyBOb3RlOiBJdCdzIHBvc3NpYmxlIHRoYXQg
dHlwZWRLZXkgaXMgYWxyZWFkeSBpbiByZXN1bHQgaWYgSyBpcyBVU1ZTdHJpbmcgYW5kIGtleSBj
b250YWlucyB1bnBhaXJlZCBzdXJyb2dhdGVzLgogICAgICAgICAgICAgICAgIGlmIGNvbnN0ZXhw
ciAoc3RkOjppc19zYW1lX3Y8SywgSURMVVNWU3RyaW5nPikgewogICAgICAgICAgICAgICAgICAg
ICBpZiAoIXR5cGVkS2V5LmlzOEJpdCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdXRv
IGl0ZXJhdG9yID0gcmVzdWx0TWFwLmZpbmQodHlwZWRLZXkpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGl0ZXJhdG9yICE9IHJlc3VsdE1hcC5lbmQoKSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFTU0VSVChyZXN1bHRbaXRlcmF0b3ItPnZhbHVlXS5rZXkgPT0gdHlwZWRL
ZXkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtpdGVyYXRvci0+dmFsdWVd
LnZhbHVlID0gV1RGTW92ZSh0eXBlZFZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1
dG8gYWRkUmVzdWx0ID0gcmVzdWx0TWFwLmFkZCh0eXBlZEtleSwgcmVzdWx0LnNpemUoKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlc3VsdFthZGRSZXN1bHQuaXRlcmF0b3It
PnZhbHVlXS5rZXkgPT0gdHlwZWRLZXkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdFthZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlXS52YWx1ZSA9IFdURk1vdmUodHlwZWRWYWx1
ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRNYXAuYWRkKHR5cGVk
S2V5LCByZXN1bHQuc2l6ZSgpKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICBVTlVTRURfVkFSSUFCTEUocmVzdWx0TWFw
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>423342</attachid>
            <date>2021-03-16 09:47:42 -0700</date>
            <delta_ts>2021-03-16 09:47:42 -0700</delta_ts>
            <desc>Microbenchmark</desc>
            <filename>convertRecord-microbenchmark.html</filename>
            <type>text/html</type>
            <size>639</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPGJ1dHRvbiBpZD0ic3RhcnQi
PnN0YXJ0PC9idXR0b24+CjxoMyBpZD0iJGF2ZyI+PC9oMz4KPHByZSBpZD0iJHJ1bnMiPjwvcHJl
Pgo8c2NyaXB0Pgpjb25zdCBpbml0ID0ge307CmZvciAodmFyIGogPSAxOyBqIDwgMTE7ICsraikK
ICAgIGluaXRbai50b1N0cmluZygzNildID0gIiI7CgpsZXQgYXZnID0gMDsKbGV0IHJ1bnMgPSAw
OwoKc3RhcnQub25jbGljayA9ICgpID0+IHsKICAgIHN0YXJ0LmRpc2FibGVkID0gdHJ1ZTsKICAg
IHNldEludGVydmFsKCgpID0+IHsKICAgICAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7Cgog
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKICAgICAgICAgICAgbmV3IFVS
TFNlYXJjaFBhcmFtcyhpbml0KTsKCiAgICAgICAgY29uc3QgZGVsdGEgPSBEYXRlLm5vdygpIC0g
c3RhcnQ7CgogICAgICAgIGF2ZyArPSBkZWx0YTsKICAgICAgICBydW5zKys7CgogICAgICAgICRh
dmcudGV4dENvbnRlbnQgPSBgQVZHOiAkeyhhdmcgLyBydW5zKS50b0ZpeGVkKDIpfW1zYDsKICAg
ICAgICAkcnVucy50ZXh0Q29udGVudCArPSBgJHtkZWx0YX1tc1xuYDsKICAgIH0sIDEwMDApOwp9
Owo8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>