<?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>88176</bug_id>
          
          <creation_ts>2012-06-02 15:55:40 -0700</creation_ts>
          <short_desc>If the DFG bytecode parser detects that op_method_check has gone polymorphic, it shouldn&apos;t revert all the way to GetById/GetByIdFlush</short_desc>
          <delta_ts>2012-06-02 17:41:40 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>640088</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-06-02 15:55:40 -0700</bug_when>
    <thetext>The DFG is capable of four levels of get_by_id optimization:

Fastest: CheckStructure to check if the object still has the right structure, and then WeakJSConstant for the result, if the structure specializes that field.
Fast: CheckStructure to check if the object still has the right structure, and then a GetByOffset.
Slow: GetById, which gets patched and is slightly speculated in favor of the access not causing arbitrary side-effects, in that it doesn&apos;t pre flush registers and thus requires getters to go through the slow path
Slowest: GetByIdFlush, which flushes all registers first and allows for any arbitrarily crazy access to happen using the fastest possible dynamically generated stub

When parsing code, the DFG sees two distinct kinds of get_by_id&apos;s: those that are preceded by method_check and those that aren&apos;t.  Currently for those that have method_check, the DFG first tries to generate the Fastest code, but if that fails (say due to slow path profiling indicating that it&apos;s a bad idea) then it reverts to Slow or Slowest.  The Fast mode is thus only available to get_by_id&apos;s that don&apos;t have a method_check.

This is an unusual and unnecessary restriction that is largely caused by the intelligence necessary to emit the Fast form only being present in the &apos;case op_get_by_id&apos; part of the parser.  The code should be refactored so that the op_method_check case can gracefully fall through to op_get_by_id and be able to emit all of the optimizations that op_get_by_id would do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640090</commentid>
    <comment_count>1</comment_count>
      <attachid>145462</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-06-02 16:03:49 -0700</bug_when>
    <thetext>Created attachment 145462
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640092</commentid>
    <comment_count>2</comment_count>
      <attachid>145462</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-06-02 16:09:04 -0700</bug_when>
    <thetext>Comment on attachment 145462
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=145462&amp;action=review

r=me

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:97
&gt; +    // Handle get_by_id.

I don&apos;t think this comment adds anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640093</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-06-02 16:09:52 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 145462 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=145462&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:97
&gt; &gt; +    // Handle get_by_id.
&gt; 
&gt; I don&apos;t think this comment adds anything.

Nope, it sure doesn&apos;t.  Removed!

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640097</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-06-02 17:41:40 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/119343</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145462</attachid>
            <date>2012-06-02 16:03:49 -0700</date>
            <delta_ts>2012-06-02 16:09:03 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fixmethodcheck_patch_1.diff</filename>
            <type>text/plain</type>
            <size>7031</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5MzQyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEyLTA2LTAyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SWYgdGhlIERGRyBieXRlY29kZSBwYXJzZXIgZGV0ZWN0cyB0aGF0IG9wX21ldGhvZF9jaGVjayBo
YXMgZ29uZSBwb2x5bW9ycGhpYywgaXQKKyAgICAgICAgc2hvdWxkbid0IHJldmVydCBhbGwgdGhl
IHdheSB0byBHZXRCeUlkL0dldEJ5SWRGbHVzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxNzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFJlZmFjdG9yZWQgdGhlIGNvZGUgc28gdGhhdCB0
aGUgb3BfbWV0aG9kX2NoZWNrIGNhc2Ugb2YgdGhlIHBhcnNlciBncmFjZWZ1bGx5IGZhbGxzCisg
ICAgICAgIHRocm91Z2ggdG8gYWxsIG9mIHRoZSBnb29kbmVzcyBvZiB0aGUgbm9ybWFsIG9wX2dl
dF9ieV9pZCBjYXNlLgorCisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAg
ICAgICAgKEJ5dGVDb2RlUGFyc2VyKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNl
cjo6aGFuZGxlR2V0QnlJZCk6CisgICAgICAgIChERkcpOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKwogMjAxMi0wNi0wMiAgRmlsaXAgUGl6bG8gIDxm
cGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBDU0Ugc2hvdWxkIGJlIGFibGUgdG8gZWxp
bWluYXRlIHVubmVjZXNzYXJ5IGZsdXNoZXMgb2YgYXJndW1lbnRzIGFuZCBjYXB0dXJlZCB2YXJp
YWJsZXMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCShyZXZpc2lvbiAxMTkzMTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQsNiArOTQsMTAgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNldEludHJpbnNpY1Jlc3VsdChib29sIHVzZXNSZXN1bHQsIGlu
dCByZXN1bHRPcGVyYW5kLCBOb2RlSW5kZXgpOwogICAgIC8vIEhhbmRsZSBpbnRyaW5zaWMgZnVu
Y3Rpb25zLiBSZXR1cm4gdHJ1ZSBpZiBpdCBzdWNjZWVkZWQsIGZhbHNlIGlmIHdlIG5lZWQgdG8g
cGxhbnQgYSBjYWxsLgogICAgIGJvb2wgaGFuZGxlSW50cmluc2ljKGJvb2wgdXNlc1Jlc3VsdCwg
aW50IHJlc3VsdE9wZXJhbmQsIEludHJpbnNpYywgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJn
dW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIFByZWRpY3RlZFR5cGUgcHJlZGljdGlvbik7CisgICAg
Ly8gSGFuZGxlIGdldF9ieV9pZC4KKyAgICB2b2lkIGhhbmRsZUdldEJ5SWQoCisgICAgICAgIGlu
dCBkZXN0aW5hdGlvbk9wZXJhbmQsIFByZWRpY3RlZFR5cGUsIE5vZGVJbmRleCBiYXNlLCB1bnNp
Z25lZCBpZGVudGlmaWVyTnVtYmVyLAorICAgICAgICBjb25zdCBHZXRCeUlkU3RhdHVzJik7CiAg
ICAgLy8gUHJlcGFyZSB0byBwYXJzZSBhIGJsb2NrLgogICAgIHZvaWQgcHJlcGFyZVRvUGFyc2VC
bG9jaygpOwogICAgIC8vIFBhcnNlIGEgc2luZ2xlIGJhc2ljIGJsb2NrIG9mIGJ5dGVjb2RlIGlu
c3RydWN0aW9ucy4KQEAgLTE1MzgsNiArMTU0Miw0NyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpo
YW5kbGVJbnRyaW5zaWMoYm9vCiAgICAgfQogfQogCit2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVHZXRCeUlkKAorICAgIGludCBkZXN0aW5hdGlvbk9wZXJhbmQsIFByZWRpY3RlZFR5cGUgcHJl
ZGljdGlvbiwgTm9kZUluZGV4IGJhc2UsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsCisgICAg
Y29uc3QgR2V0QnlJZFN0YXR1cyYgZ2V0QnlJZFN0YXR1cykKK3sKKyAgICBpZiAoZ2V0QnlJZFN0
YXR1cy5pc1NpbXBsZURpcmVjdCgpCisgICAgICAgICYmICFtX2lubGluZVN0YWNrVG9wLT5tX2V4
aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZSkpIHsKKyAgICAg
ICAgQVNTRVJUKGdldEJ5SWRTdGF0dXMuc3RydWN0dXJlU2V0KCkuc2l6ZSgpKTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgLy8gVGhlIGltcGxlbWVudGF0aW9uIG9mIEdldEJ5T2Zmc2V0IGRv
ZXMgbm90IGtub3cgdG8gdGVybWluYXRlIHNwZWN1bGF0aXZlCisgICAgICAgIC8vIGV4ZWN1dGlv
biBpZiBpdCBkb2Vzbid0IGhhdmUgYSBwcmVkaWN0aW9uLCBzbyB3ZSBkbyBpdCBtYW51YWxseS4K
KyAgICAgICAgaWYgKHByZWRpY3Rpb24gPT0gUHJlZGljdE5vbmUpCisgICAgICAgICAgICBhZGRU
b0dyYXBoKEZvcmNlT1NSRXhpdCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGFkZFRvR3Jh
cGgoQ2hlY2tTdHJ1Y3R1cmUsIE9wSW5mbyhtX2dyYXBoLmFkZFN0cnVjdHVyZVNldChnZXRCeUlk
U3RhdHVzLnN0cnVjdHVyZVNldCgpKSksIGJhc2UpOworICAgICAgICBOb2RlSW5kZXggcHJvcGVy
dHlTdG9yYWdlOworICAgICAgICBzaXplX3Qgb2Zmc2V0T2Zmc2V0OworICAgICAgICBpZiAoZ2V0
QnlJZFN0YXR1cy5zdHJ1Y3R1cmVTZXQoKS5hbGxBcmVVc2luZ0lubGluZVByb3BlcnR5U3RvcmFn
ZSgpKSB7CisgICAgICAgICAgICBwcm9wZXJ0eVN0b3JhZ2UgPSBiYXNlOworICAgICAgICAgICAg
QVNTRVJUKCEoc2l6ZW9mKEpTT2JqZWN0KSAlIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpKTsKKyAg
ICAgICAgICAgIG9mZnNldE9mZnNldCA9IHNpemVvZihKU09iamVjdCkgLyBzaXplb2YoRW5jb2Rl
ZEpTVmFsdWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHJvcGVydHlTdG9yYWdl
ID0gYWRkVG9HcmFwaChHZXRQcm9wZXJ0eVN0b3JhZ2UsIGJhc2UpOworICAgICAgICAgICAgb2Zm
c2V0T2Zmc2V0ID0gMDsKKyAgICAgICAgfQorICAgICAgICBzZXQoZGVzdGluYXRpb25PcGVyYW5k
LAorICAgICAgICAgICAgYWRkVG9HcmFwaCgKKyAgICAgICAgICAgICAgICBHZXRCeU9mZnNldCwg
T3BJbmZvKG1fZ3JhcGgubV9zdG9yYWdlQWNjZXNzRGF0YS5zaXplKCkpLCBPcEluZm8ocHJlZGlj
dGlvbiksCisgICAgICAgICAgICAgICAgcHJvcGVydHlTdG9yYWdlKSk7CisgICAgICAgIAorICAg
ICAgICBTdG9yYWdlQWNjZXNzRGF0YSBzdG9yYWdlQWNjZXNzRGF0YTsKKyAgICAgICAgc3RvcmFn
ZUFjY2Vzc0RhdGEub2Zmc2V0ID0gZ2V0QnlJZFN0YXR1cy5vZmZzZXQoKSArIG9mZnNldE9mZnNl
dDsKKyAgICAgICAgc3RvcmFnZUFjY2Vzc0RhdGEuaWRlbnRpZmllck51bWJlciA9IGlkZW50aWZp
ZXJOdW1iZXI7CisgICAgICAgIG1fZ3JhcGgubV9zdG9yYWdlQWNjZXNzRGF0YS5hcHBlbmQoc3Rv
cmFnZUFjY2Vzc0RhdGEpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNldChkZXN0aW5hdGlvbk9w
ZXJhbmQsCisgICAgICAgICAgICBhZGRUb0dyYXBoKAorICAgICAgICAgICAgICAgIGdldEJ5SWRT
dGF0dXMubWFrZXNDYWxscygpID8gR2V0QnlJZEZsdXNoIDogR2V0QnlJZCwKKyAgICAgICAgICAg
ICAgICBPcEluZm8oaWRlbnRpZmllck51bWJlciksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSkp
OworICAgIH0KK30KKwogdm9pZCBCeXRlQ29kZVBhcnNlcjo6cHJlcGFyZVRvUGFyc2VCbG9jaygp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY29uc3RhbnRzLnNpemUoKTsgKytp
KQpAQCAtMjAyNCw4ICsyMDY5LDEwIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2so
dW5zaWduZWQKICAgICAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja1N0cnVjdHVyZSwg
T3BJbmZvKG1fZ3JhcGguYWRkU3RydWN0dXJlU2V0KG1ldGhvZENhbGxTdGF0dXMucHJvdG90eXBl
U3RydWN0dXJlKCkpKSwgY2VsbENvbnN0YW50KG1ldGhvZENhbGxTdGF0dXMucHJvdG90eXBlKCkp
KTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBzZXQoZ2V0SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kLCBjZWxsQ29uc3RhbnQobWV0aG9kQ2FsbFN0YXR1cy5mdW5jdGlvbigpKSk7
Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBzZXQoZ2V0SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kLCBhZGRUb0dyYXBoKGdldEJ5SWRTdGF0dXMubWFrZXNDYWxscygpID8gR2V0
QnlJZEZsdXNoIDogR2V0QnlJZCwgT3BJbmZvKGlkZW50aWZpZXIpLCBPcEluZm8ocHJlZGljdGlv
biksIGJhc2UpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaGFuZGxl
R2V0QnlJZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
LCBwcmVkaWN0aW9uLCBiYXNlLCBpZGVudGlmaWVyLCBnZXRCeUlkU3RhdHVzKTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9jdXJyZW50SW5kZXggKz0gT1BDT0RF
X0xFTkdUSChvcF9tZXRob2RfY2hlY2spICsgT1BDT0RFX0xFTkdUSChvcF9nZXRfYnlfaWQpOwog
ICAgICAgICAgICAgY29udGludWU7CkBAIC0yMDU4LDM0ICsyMTA1LDggQEAgYm9vbCBCeXRlQ29k
ZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICAgICAgR2V0QnlJZFN0YXR1cyBn
ZXRCeUlkU3RhdHVzID0gR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKICAgICAgICAgICAgICAg
ICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIG1fY3VycmVudEluZGV4LCBpZGVu
dGlmaWVyKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKGdldEJ5SWRTdGF0dXMuaXNT
aW1wbGVEaXJlY3QoKQotICAgICAgICAgICAgICAgICYmICFtX2lubGluZVN0YWNrVG9wLT5tX2V4
aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZSkpIHsKLSAgICAg
ICAgICAgICAgICBBU1NFUlQoZ2V0QnlJZFN0YXR1cy5zdHJ1Y3R1cmVTZXQoKS5zaXplKCkpOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8vIFRoZSBpbXBsZW1lbnRhdGlvbiBv
ZiBHZXRCeU9mZnNldCBkb2VzIG5vdCBrbm93IHRvIHRlcm1pbmF0ZSBzcGVjdWxhdGl2ZQotICAg
ICAgICAgICAgICAgIC8vIGV4ZWN1dGlvbiBpZiBpdCBkb2Vzbid0IGhhdmUgYSBwcmVkaWN0aW9u
LCBzbyB3ZSBkbyBpdCBtYW51YWxseS4KLSAgICAgICAgICAgICAgICBpZiAocHJlZGljdGlvbiA9
PSBQcmVkaWN0Tm9uZSkKLSAgICAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChGb3JjZU9TUkV4
aXQpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tT
dHJ1Y3R1cmUsIE9wSW5mbyhtX2dyYXBoLmFkZFN0cnVjdHVyZVNldChnZXRCeUlkU3RhdHVzLnN0
cnVjdHVyZVNldCgpKSksIGJhc2UpOwotICAgICAgICAgICAgICAgIE5vZGVJbmRleCBwcm9wZXJ0
eVN0b3JhZ2U7Ci0gICAgICAgICAgICAgICAgc2l6ZV90IG9mZnNldE9mZnNldDsKLSAgICAgICAg
ICAgICAgICBpZiAoZ2V0QnlJZFN0YXR1cy5zdHJ1Y3R1cmVTZXQoKS5hbGxBcmVVc2luZ0lubGlu
ZVByb3BlcnR5U3RvcmFnZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5U3RvcmFn
ZSA9IGJhc2U7Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVCghKHNpemVvZihKU09iamVjdCkg
JSBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSk7Ci0gICAgICAgICAgICAgICAgICAgIG9mZnNldE9m
ZnNldCA9IHNpemVvZihKU09iamVjdCkgLyBzaXplb2YoRW5jb2RlZEpTVmFsdWUpOwotICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5U3RvcmFnZSA9
IGFkZFRvR3JhcGgoR2V0UHJvcGVydHlTdG9yYWdlLCBiYXNlKTsKLSAgICAgICAgICAgICAgICAg
ICAgb2Zmc2V0T2Zmc2V0ID0gMDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
c2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIGFkZFRvR3JhcGgoR2V0QnlPZmZz
ZXQsIE9wSW5mbyhtX2dyYXBoLm1fc3RvcmFnZUFjY2Vzc0RhdGEuc2l6ZSgpKSwgT3BJbmZvKHBy
ZWRpY3Rpb24pLCBwcm9wZXJ0eVN0b3JhZ2UpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICBTdG9yYWdlQWNjZXNzRGF0YSBzdG9yYWdlQWNjZXNzRGF0YTsKLSAgICAgICAgICAg
ICAgICBzdG9yYWdlQWNjZXNzRGF0YS5vZmZzZXQgPSBnZXRCeUlkU3RhdHVzLm9mZnNldCgpICsg
b2Zmc2V0T2Zmc2V0OwotICAgICAgICAgICAgICAgIHN0b3JhZ2VBY2Nlc3NEYXRhLmlkZW50aWZp
ZXJOdW1iZXIgPSBpZGVudGlmaWVyTnVtYmVyOwotICAgICAgICAgICAgICAgIG1fZ3JhcGgubV9z
dG9yYWdlQWNjZXNzRGF0YS5hcHBlbmQoc3RvcmFnZUFjY2Vzc0RhdGEpOwotICAgICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAgICAgc2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQsIGFkZFRvR3JhcGgoZ2V0QnlJZFN0YXR1cy5tYWtlc0NhbGxzKCkgPyBHZXRCeUlkRmx1c2gg
OiBHZXRCeUlkLCBPcEluZm8oaWRlbnRpZmllck51bWJlciksIE9wSW5mbyhwcmVkaWN0aW9uKSwg
YmFzZSkpOworICAgICAgICAgICAgaGFuZGxlR2V0QnlJZCgKKyAgICAgICAgICAgICAgICBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBwcmVkaWN0aW9uLCBiYXNlLCBpZGVudGlmaWVy
TnVtYmVyLCBnZXRCeUlkU3RhdHVzKTsKIAogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZ2V0
X2J5X2lkKTsKICAgICAgICAgfQo=
</data>
<flag name="review"
          id="152578"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>