<?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>39883</bug_id>
          
          <creation_ts>2010-05-28 10:15:10 -0700</creation_ts>
          <short_desc>Adding tests to canvas.html performance test</short_desc>
          <delta_ts>2010-05-29 08:18:22 -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>Tools / Tests</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>0</everconfirmed>
          <reporter name="Sterling Swigart">sswigart</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>231763</commentid>
    <comment_count>0</comment_count>
    <who name="Sterling Swigart">sswigart</who>
    <bug_when>2010-05-28 10:15:10 -0700</bug_when>
    <thetext>Added tests for:

strokeText
fillText
strokeLine</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231767</commentid>
    <comment_count>1</comment_count>
      <attachid>57339</attachid>
    <who name="Sterling Swigart">sswigart</who>
    <bug_when>2010-05-28 10:21:52 -0700</bug_when>
    <thetext>Created attachment 57339
Patch to canvas.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231809</commentid>
    <comment_count>2</comment_count>
      <attachid>57339</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-05-28 11:20:31 -0700</bug_when>
    <thetext>Comment on attachment 57339
Patch to canvas.html

In keeping with the C++ style, I would add spaces around the operators. For example here: &quot;500*j/numStrings&quot;


WebKitSite/demos/canvas-perf/canvas.html:193
 +      */
You should get rid of the commented out code.

WebKitSite/demos/canvas-perf/canvas.html:226
 +      */
Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231821</commentid>
    <comment_count>3</comment_count>
      <attachid>57350</attachid>
    <who name="Sterling Swigart">sswigart</who>
    <bug_when>2010-05-28 11:33:09 -0700</bug_when>
    <thetext>Created attachment 57350
Patch to canvas.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231872</commentid>
    <comment_count>4</comment_count>
      <attachid>57350</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-05-28 12:34:02 -0700</bug_when>
    <thetext>Comment on attachment 57350
Patch to canvas.html


&gt; +
&gt; +function doStrokeTextTests() {
&gt; +    log(&quot;===== StrokeText Tests =====&quot;);
&gt; +    var strokeTextFunc = function(obj, str, x, y) { obj.strokeText(str, x, y); };
&gt; +    for (var i = 1; i &lt; 1001; i *= 10)
&gt; +        textTest(strokeTextFunc, i);
One last comment: It would be nice if these were written in a more async manner to allow for any gc&apos;s to happen as done in other tests.

Example:

function doStrokeTextTests() {
    log(&quot;===== StrokeText Tests =====&quot;);
    doNextStrokeTextTest(1);
}

function doNextStrokeTextTest(var lineCount) {
    var strokeTextFunc = function(canvas, str, x, y) { canvas.strokeText(str, x, y); };
    textTest(strokeTextFunc, i);
    lineCount *= 10;
    if (lineCount &lt; 1001)
        window.setTimeout(function () {
                              doNextStrokeTextTest(lineCount);
                          }, idleTimer);
    else {
        log(&quot;&quot;);
        window.setTimeout(doFillTextTests, idleTimer);
   }
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231906</commentid>
    <comment_count>5</comment_count>
      <attachid>57368</attachid>
    <who name="Sterling Swigart">sswigart</who>
    <bug_when>2010-05-28 13:30:00 -0700</bug_when>
    <thetext>Created attachment 57368
Made the tests more asynchronous</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231940</commentid>
    <comment_count>6</comment_count>
      <attachid>57368</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-05-28 14:29:13 -0700</bug_when>
    <thetext>Comment on attachment 57368
Made the tests more asynchronous

Please add the beginPath/closePath fix as discussed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231950</commentid>
    <comment_count>7</comment_count>
      <attachid>57383</attachid>
    <who name="Sterling Swigart">sswigart</who>
    <bug_when>2010-05-28 14:38:11 -0700</bug_when>
    <thetext>Created attachment 57383
Added beginPath/closePath</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232106</commentid>
    <comment_count>8</comment_count>
      <attachid>57383</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-29 08:18:17 -0700</bug_when>
    <thetext>Comment on attachment 57383
Added beginPath/closePath

Clearing flags on attachment: 57383

Committed r60407: &lt;http://trac.webkit.org/changeset/60407&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232107</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-29 08:18:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57339</attachid>
            <date>2010-05-28 10:21:52 -0700</date>
            <delta_ts>2010-05-28 11:33:09 -0700</delta_ts>
            <desc>Patch to canvas.html</desc>
            <filename>canvas-perf-test-patch.diff</filename>
            <type>text/plain</type>
            <size>4605</size>
            <attacher name="Sterling Swigart">sswigart</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFNpdGUvQ2hhbmdlTG9nIGIvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cK
aW5kZXggZjRkYWI1MS4uMWNlMWEyYSAxMDA2NDQKLS0tIGEvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNS0yOCAg
U3RlcmxpbmcgU3dpZ2FydCAgPHNzd2lnYXJ0QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHRlc3RzIHRvIGNhbnZhcy5o
dG1sIHBlcmZvcm1hbmNlIHRlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM5ODgzCisKKyAgICAgICAgKiBkZW1vcy9jYW52YXMtcGVyZi9jYW52YXMu
aHRtbDoKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9yOgorICAgICAgICAgICAgc3Ryb2tlVGV4dAor
ICAgICAgICAgICAgZmlsbFRleHQKKyAgICAgICAgICAgIHN0cm9rZUxpbmUKKwogMjAxMC0wNS0y
NCAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9XZWJLaXRTaXRlL2RlbW9zL2NhbnZh
cy1wZXJmL2NhbnZhcy5odG1sIGIvV2ViS2l0U2l0ZS9kZW1vcy9jYW52YXMtcGVyZi9jYW52YXMu
aHRtbAppbmRleCA5ZjU3ZWI3Li4wMzc1YjlhIDEwMDY0NAotLS0gYS9XZWJLaXRTaXRlL2RlbW9z
L2NhbnZhcy1wZXJmL2NhbnZhcy5odG1sCisrKyBiL1dlYktpdFNpdGUvZGVtb3MvY2FudmFzLXBl
cmYvY2FudmFzLmh0bWwKQEAgLTY3LDYgKzY3LDggQEAgZnVuY3Rpb24gZG9UZXN0KCkgewogfQog
CiBmdW5jdGlvbiBkb0NvcHkoKSB7CisgICAgbG9nKCI9PT09PSBDb3B5L1NjYWxlL1JvdGF0ZSBU
ZXN0cyA9PT09PSIpOworCiAgICAgdmFyIGNvcHkgPSAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvcHkiKTsKICAgICBjb3B5LndpZHRoID0gd2lkdGg7CiAgICAgY29weS5oZWlnaHQgPSBoZWln
aHQ7CkBAIC0xNDIsOCArMTQ0LDEwMyBAQCBmdW5jdGlvbiBkb1JvdGF0aW9uKCkgewogICAgIGxv
ZygiQ29weSB3aXRoIHJvdGF0ZTogIiArIHRpbWUgKyAibXMiKTsKICAgICBzaG91bGRCZSgiZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JvdGF0ZWQnKS53aWR0aCIsICJoZWlnaHQiKTsKICAgICBz
aG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JvdGF0ZWQnKS5oZWlnaHQiLCAid2lk
dGgiKTsKKyAgICBsb2coIiIpOworICAgIHdpbmRvdy5zZXRUaW1lb3V0KGRvU3Ryb2tlVGV4dFRl
c3RzLCBpZGxlVGltZXIpOworfQorCitmdW5jdGlvbiBkb1N0cm9rZVRleHRUZXN0cygpIHsKKyAg
ICBsb2coIj09PT09IFN0cm9rZVRleHQgVGVzdHMgPT09PT0iKTsKKyAgICB2YXIgc3Ryb2tlVGV4
dEZ1bmMgPSBmdW5jdGlvbihvYmosIHN0ciwgeCwgeSkgeyBvYmouc3Ryb2tlVGV4dChzdHIsIHgs
IHkpOyB9OworICAgIGZvciAodmFyIGkgPSAxOyBpIDwgMTAwMTsgaSAqPSAxMCkKKyAgICAgICAg
dGV4dFRlc3Qoc3Ryb2tlVGV4dEZ1bmMsIGkpOworICAgIGxvZygiIik7CisgICAgd2luZG93LnNl
dFRpbWVvdXQoZG9GaWxsVGV4dFRlc3RzLCBpZGxlVGltZXIpOworfQorCitmdW5jdGlvbiBkb0Zp
bGxUZXh0VGVzdHMoKSB7CisgICAgbG9nKCI9PT09PSBGaWxsVGV4dCBUZXN0cyA9PT09PSIpOwor
ICAgIHZhciBmaWxsVGV4dEZ1bmMgPSBmdW5jdGlvbihvYmosIHN0ciwgeCwgeSkgeyBvYmouZmls
bFRleHQoc3RyLCB4LCB5KTsgfTsKKyAgICBmb3IgKHZhciBpID0gMTsgaSA8IDEwMDE7IGkgKj0g
MTApCisgICAgICAgIHRleHRUZXN0KGZpbGxUZXh0RnVuYywgaSk7CisgICAgbG9nKCIiKTsKKyAg
ICB3aW5kb3cuc2V0VGltZW91dChkb1N0cm9rZUxpbmVUZXN0cywgaWRsZVRpbWVyKTsKK30KKwor
ZnVuY3Rpb24gZG9TdHJva2VMaW5lVGVzdHMoKSB7CisgICAgbG9nKCI9PT09PSBTdHJva2VMaW5l
IFRlc3RzID09PT09Iik7CisgICAgZm9yICh2YXIgaSA9IDE7IGkgPCAxMDAxOyBpICo9IDEwKQor
ICAgICAgICBzdHJva2VMaW5lc1Rlc3QoaSwgMTUwLCAxNTApOworICAgIGZvciAodmFyIGkgPSAx
OyBpIDwgMTAwMTsgaSAqPSAxMCkKKyAgICAgICAgc3Ryb2tlTGluZXNUZXN0KGksIDEwMDAsIDEw
MDApOworICAgIGxvZygiIik7CiAgICAgbG9nKCJET05FISIpOwogfQorCitmdW5jdGlvbiB0ZXh0
VGVzdCh3cml0ZVRleHQsIG51bVN0cmluZ3MpCit7CisgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIGNhbnZhcy53aWR0aCA9IDEwMDsKKyAgICBj
YW52YXMuaGVpZ2h0ID0gNTUwOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY2FudmFz
KTsKKyAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgLyoKKyAgICB2
YXIgc3RhcnRUaW1lID0gbmV3IERhdGUoKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBp
KyspCisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbnVtU3RyaW5nczsgaisrKQorICAgICAg
ICAgICAgd3JpdGVUZXh0KGN0eCwgIlByaW50aW5nIHRleHQhIiwgMjUsIDUwMCpqL251bVN0cmlu
Z3MgKyAyNSk7CisgICAgdGhpc1RpbWUgPSAobmV3IERhdGUoKSkgLSBzdGFydFRpbWU7CisgICAg
b3V0cHV0LmlubmVySFRNTCArPSBudW1TdHJpbmdzICsgIiBzdHJpbmdzOiAiICsgdGhpc1RpbWUv
MTAgKyAibXM8YnIvPiI7CisgICAgKi8KKyAgICB2YXIgdGltZSA9IHRpbWVDYW52YXNPcGVyYXRp
b24oY3R4LAorICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwOyBpKyspCisgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBudW1T
dHJpbmdzOyBqKyspCisgICAgICAgICAgICAgICAgICAgIHdyaXRlVGV4dChjdHgsICJQcmludGlu
ZyB0ZXh0ISIsIDI1LCA1MDAqai9udW1TdHJpbmdzICsgMjUpOworICAgICAgICB9KTsKKyAgICBs
b2cobnVtU3RyaW5ncyArICIgc3RyaW5nczogIiArICh0aW1lLzEwKSArICJtcyIpOworfQorCitm
dW5jdGlvbiBzdHJva2VMaW5lc1Rlc3QobnVtTGluZXMsIHhTaXplLCB5U2l6ZSkKK3sKKyAgICB2
YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgICAgY2FudmFz
LndpZHRoID0geFNpemU7CisgICAgY2FudmFzLmhlaWdodCA9IHlTaXplOworICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoY2FudmFzKTsKKyAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRl
eHQoJzJkJyk7CisgICAgLyoKKyAgICB2YXIgc3RhcnRUaW1lID0gbmV3IERhdGUoKTsKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHsKKyAgICAgICAgaWYgKG51bUxpbmVzID09IDEp
IHsKKyAgICAgICAgICAgIGN0eC5tb3ZlVG8oNSwgNSk7CisgICAgICAgICAgICBjdHgubGluZVRv
KHhTaXplIC0gMSwgeVNpemUgLSAxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZv
ciAodmFyIGogPSAwOyBqIDwgbnVtTGluZXM7IGorKykgeworICAgICAgICAgICAgICAgIGN0eC5t
b3ZlVG8oaip4U2l6ZS9udW1MaW5lcywgaip5U2l6ZS9udW1MaW5lcyk7CisgICAgICAgICAgICAg
ICAgY3R4LmxpbmVUbyh4U2l6ZSAtIDUsIDUpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIGN0eC5zdHJva2UoKTsKKyAgICB9CisgICAgdmFyIHRoaXNUaW1lID0gKG5ldyBEYXRl
KCkpIC0gc3RhcnRUaW1lOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5p
bm5lckhUTUwgKz0gIlN0cm9raW5nICIgKyBudW1MaW5lcyArICIgbGluZXMgaW4gIiArIHhTaXpl
ICsgIngiICsgeVNpemUgKyAiOiAiICsgKHRoaXNUaW1lLzEwKSArICJtczxici8+IjsKKyAgICAq
LworICAgIHZhciB0aW1lID0gdGltZUNhbnZhc09wZXJhdGlvbihjdHgsCisgICAgICAgIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAg
ICAgICAgICAgICAgaWYgKG51bUxpbmVzID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgY3R4
Lm1vdmVUbyg1LCA1KTsKKyAgICAgICAgICAgICAgICAgICAgY3R4LmxpbmVUbyh4U2l6ZSAtIDEs
IHlTaXplIC0gMSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgZm9yICh2YXIgaiA9IDA7IGogPCBudW1MaW5lczsgaisrKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBjdHgubW92ZVRvKGoqeFNpemUvbnVtTGluZXMsIGoqeVNpemUvbnVtTGluZXMpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgY3R4LmxpbmVUbyh4U2l6ZSAtIDUsIDUpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGN0eC5z
dHJva2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgbG9nKCJTdHJva2luZyAi
ICsgbnVtTGluZXMgKyAiIGxpbmVzIGluICIgKyB4U2l6ZSArICJ4IiArIHlTaXplICsgIjogIiAr
ICh0aW1lLzEwKSArICJtcyIpOworfQogPC9zY3JpcHQ+CiAKIDwvYm9keT4K
</data>
<flag name="review"
          id="41901"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57350</attachid>
            <date>2010-05-28 11:33:09 -0700</date>
            <delta_ts>2010-05-28 13:30:00 -0700</delta_ts>
            <desc>Patch to canvas.html</desc>
            <filename>canvas-perf-test-patch.diff</filename>
            <type>text/plain</type>
            <size>3678</size>
            <attacher name="Sterling Swigart">sswigart</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFNpdGUvQ2hhbmdlTG9nIGIvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cK
aW5kZXggZjRkYWI1MS4uMWNlMWEyYSAxMDA2NDQKLS0tIGEvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNS0yOCAg
U3RlcmxpbmcgU3dpZ2FydCAgPHNzd2lnYXJ0QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHRlc3RzIHRvIGNhbnZhcy5o
dG1sIHBlcmZvcm1hbmNlIHRlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM5ODgzCisKKyAgICAgICAgKiBkZW1vcy9jYW52YXMtcGVyZi9jYW52YXMu
aHRtbDoKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9yOgorICAgICAgICAgICAgc3Ryb2tlVGV4dAor
ICAgICAgICAgICAgZmlsbFRleHQKKyAgICAgICAgICAgIHN0cm9rZUxpbmUKKwogMjAxMC0wNS0y
NCAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9XZWJLaXRTaXRlL2RlbW9zL2NhbnZh
cy1wZXJmL2NhbnZhcy5odG1sIGIvV2ViS2l0U2l0ZS9kZW1vcy9jYW52YXMtcGVyZi9jYW52YXMu
aHRtbAppbmRleCA5ZjU3ZWI3Li5kMmRjNzQ2IDEwMDY0NAotLS0gYS9XZWJLaXRTaXRlL2RlbW9z
L2NhbnZhcy1wZXJmL2NhbnZhcy5odG1sCisrKyBiL1dlYktpdFNpdGUvZGVtb3MvY2FudmFzLXBl
cmYvY2FudmFzLmh0bWwKQEAgLTY3LDYgKzY3LDggQEAgZnVuY3Rpb24gZG9UZXN0KCkgewogfQog
CiBmdW5jdGlvbiBkb0NvcHkoKSB7CisgICAgbG9nKCI9PT09PSBDb3B5L1NjYWxlL1JvdGF0ZSBU
ZXN0cyA9PT09PSIpOworCiAgICAgdmFyIGNvcHkgPSAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvcHkiKTsKICAgICBjb3B5LndpZHRoID0gd2lkdGg7CiAgICAgY29weS5oZWlnaHQgPSBoZWln
aHQ7CkBAIC0xNDIsOCArMTQ0LDgwIEBAIGZ1bmN0aW9uIGRvUm90YXRpb24oKSB7CiAgICAgbG9n
KCJDb3B5IHdpdGggcm90YXRlOiAiICsgdGltZSArICJtcyIpOwogICAgIHNob3VsZEJlKCJkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncm90YXRlZCcpLndpZHRoIiwgImhlaWdodCIpOwogICAgIHNo
b3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm90YXRlZCcpLmhlaWdodCIsICJ3aWR0
aCIpOworICAgIGxvZygiIik7CisgICAgd2luZG93LnNldFRpbWVvdXQoZG9TdHJva2VUZXh0VGVz
dHMsIGlkbGVUaW1lcik7Cit9CisKK2Z1bmN0aW9uIGRvU3Ryb2tlVGV4dFRlc3RzKCkgeworICAg
IGxvZygiPT09PT0gU3Ryb2tlVGV4dCBUZXN0cyA9PT09PSIpOworICAgIHZhciBzdHJva2VUZXh0
RnVuYyA9IGZ1bmN0aW9uKG9iaiwgc3RyLCB4LCB5KSB7IG9iai5zdHJva2VUZXh0KHN0ciwgeCwg
eSk7IH07CisgICAgZm9yICh2YXIgaSA9IDE7IGkgPCAxMDAxOyBpICo9IDEwKQorICAgICAgICB0
ZXh0VGVzdChzdHJva2VUZXh0RnVuYywgaSk7CisgICAgbG9nKCIiKTsKKyAgICB3aW5kb3cuc2V0
VGltZW91dChkb0ZpbGxUZXh0VGVzdHMsIGlkbGVUaW1lcik7Cit9CisKK2Z1bmN0aW9uIGRvRmls
bFRleHRUZXN0cygpIHsKKyAgICBsb2coIj09PT09IEZpbGxUZXh0IFRlc3RzID09PT09Iik7Cisg
ICAgdmFyIGZpbGxUZXh0RnVuYyA9IGZ1bmN0aW9uKG9iaiwgc3RyLCB4LCB5KSB7IG9iai5maWxs
VGV4dChzdHIsIHgsIHkpOyB9OworICAgIGZvciAodmFyIGkgPSAxOyBpIDwgMTAwMTsgaSAqPSAx
MCkKKyAgICAgICAgdGV4dFRlc3QoZmlsbFRleHRGdW5jLCBpKTsKKyAgICBsb2coIiIpOworICAg
IHdpbmRvdy5zZXRUaW1lb3V0KGRvU3Ryb2tlTGluZVRlc3RzLCBpZGxlVGltZXIpOworfQorCitm
dW5jdGlvbiBkb1N0cm9rZUxpbmVUZXN0cygpIHsKKyAgICBsb2coIj09PT09IFN0cm9rZUxpbmUg
VGVzdHMgPT09PT0iKTsKKyAgICBmb3IgKHZhciBpID0gMTsgaSA8IDEwMDE7IGkgKj0gMTApCisg
ICAgICAgIHN0cm9rZUxpbmVzVGVzdChpLCAxNTAsIDE1MCk7CisgICAgZm9yICh2YXIgaSA9IDE7
IGkgPCAxMDAxOyBpICo9IDEwKQorICAgICAgICBzdHJva2VMaW5lc1Rlc3QoaSwgMTAwMCwgMTAw
MCk7CisgICAgbG9nKCIiKTsKICAgICBsb2coIkRPTkUhIik7CiB9CisKK2Z1bmN0aW9uIHRleHRU
ZXN0KHdyaXRlVGV4dCwgbnVtU3RyaW5ncykKK3sKKyAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgICAgY2FudmFzLndpZHRoID0gMTAwOworICAgIGNh
bnZhcy5oZWlnaHQgPSA1NTA7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjYW52YXMp
OworICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKworICAgIHZhciB0aW1l
ID0gdGltZUNhbnZhc09wZXJhdGlvbihjdHgsCisgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykKKyAgICAgICAgICAgICAgICBmb3Ig
KHZhciBqID0gMDsgaiA8IG51bVN0cmluZ3M7IGorKykKKyAgICAgICAgICAgICAgICAgICAgd3Jp
dGVUZXh0KGN0eCwgIlByaW50aW5nIHRleHQhIiwgMjUsIDUwMCAqIGogLyBudW1TdHJpbmdzICsg
MjUpOworICAgICAgICB9KTsKKyAgICBsb2cobnVtU3RyaW5ncyArICIgc3RyaW5nczogIiArICh0
aW1lIC8gMTApICsgIm1zIik7Cit9CisKK2Z1bmN0aW9uIHN0cm9rZUxpbmVzVGVzdChudW1MaW5l
cywgeFNpemUsIHlTaXplKQoreworICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdjYW52YXMnKTsKKyAgICBjYW52YXMud2lkdGggPSB4U2l6ZTsKKyAgICBjYW52YXMuaGVp
Z2h0ID0geVNpemU7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjYW52YXMpOworICAg
IHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKworICAgIHZhciB0aW1lID0gdGlt
ZUNhbnZhc09wZXJhdGlvbihjdHgsCisgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKG51bUxp
bmVzID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgY3R4Lm1vdmVUbyg1LCA1KTsKKyAgICAg
ICAgICAgICAgICAgICAgY3R4LmxpbmVUbyh4U2l6ZSAtIDEsIHlTaXplIC0gMSk7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGog
PCBudW1MaW5lczsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjdHgubW92ZVRvKGog
KiB4U2l6ZS9udW1MaW5lcywgaiAqIHlTaXplL251bUxpbmVzKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGN0eC5saW5lVG8oeFNpemUgLSA1LCA1KTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjdHguc3Ryb2tlKCk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0pOworICAgIGxvZygiU3Ryb2tpbmcgIiArIG51bUxpbmVzICsgIiBs
aW5lcyBpbiAiICsgeFNpemUgKyAieCIgKyB5U2l6ZSArICI6ICIgKyAodGltZSAvIDEwKSArICJt
cyIpOworfQogPC9zY3JpcHQ+CiAKIDwvYm9keT4K
</data>
<flag name="review"
          id="41915"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57368</attachid>
            <date>2010-05-28 13:30:00 -0700</date>
            <delta_ts>2010-05-28 14:38:11 -0700</delta_ts>
            <desc>Made the tests more asynchronous</desc>
            <filename>canvas-perf-test-patch.diff</filename>
            <type>text/plain</type>
            <size>4203</size>
            <attacher name="Sterling Swigart">sswigart</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFNpdGUvQ2hhbmdlTG9nIGIvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cK
aW5kZXggZjRkYWI1MS4uMWNlMWEyYSAxMDA2NDQKLS0tIGEvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNS0yOCAg
U3RlcmxpbmcgU3dpZ2FydCAgPHNzd2lnYXJ0QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHRlc3RzIHRvIGNhbnZhcy5o
dG1sIHBlcmZvcm1hbmNlIHRlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM5ODgzCisKKyAgICAgICAgKiBkZW1vcy9jYW52YXMtcGVyZi9jYW52YXMu
aHRtbDoKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9yOgorICAgICAgICAgICAgc3Ryb2tlVGV4dAor
ICAgICAgICAgICAgZmlsbFRleHQKKyAgICAgICAgICAgIHN0cm9rZUxpbmUKKwogMjAxMC0wNS0y
NCAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9XZWJLaXRTaXRlL2RlbW9zL2NhbnZh
cy1wZXJmL2NhbnZhcy5odG1sIGIvV2ViS2l0U2l0ZS9kZW1vcy9jYW52YXMtcGVyZi9jYW52YXMu
aHRtbAppbmRleCA5ZjU3ZWI3Li5mODI5ODY2IDEwMDY0NAotLS0gYS9XZWJLaXRTaXRlL2RlbW9z
L2NhbnZhcy1wZXJmL2NhbnZhcy5odG1sCisrKyBiL1dlYktpdFNpdGUvZGVtb3MvY2FudmFzLXBl
cmYvY2FudmFzLmh0bWwKQEAgLTY3LDYgKzY3LDggQEAgZnVuY3Rpb24gZG9UZXN0KCkgewogfQog
CiBmdW5jdGlvbiBkb0NvcHkoKSB7CisgICAgbG9nKCI9PT09PSBDb3B5L1NjYWxlL1JvdGF0ZSBU
ZXN0cyA9PT09PSIpOworCiAgICAgdmFyIGNvcHkgPSAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvcHkiKTsKICAgICBjb3B5LndpZHRoID0gd2lkdGg7CiAgICAgY29weS5oZWlnaHQgPSBoZWln
aHQ7CkBAIC0xNDIsNyArMTQ0LDkzIEBAIGZ1bmN0aW9uIGRvUm90YXRpb24oKSB7CiAgICAgbG9n
KCJDb3B5IHdpdGggcm90YXRlOiAiICsgdGltZSArICJtcyIpOwogICAgIHNob3VsZEJlKCJkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncm90YXRlZCcpLndpZHRoIiwgImhlaWdodCIpOwogICAgIHNo
b3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm90YXRlZCcpLmhlaWdodCIsICJ3aWR0
aCIpOwotICAgIGxvZygiRE9ORSEiKTsKKyAgICBsb2coIiIpOworICAgIHdpbmRvdy5zZXRUaW1l
b3V0KGRvU3Ryb2tlVGV4dFRlc3RzLCBpZGxlVGltZXIpOworfQorCitmdW5jdGlvbiBkb1N0cm9r
ZVRleHRUZXN0cygpIHsKKyAgICBsb2coIj09PT09IFN0cm9rZVRleHQgVGVzdHMgPT09PT0iKTsK
KyAgICB2YXIgc3Ryb2tlVGV4dEZ1bmMgPSBmdW5jdGlvbihjYW52YXMsIHN0ciwgeCwgeSkgeyBj
YW52YXMuc3Ryb2tlVGV4dChzdHIsIHgsIHkpOyB9OworICAgIGRvTmV4dFRleHRUZXN0KHN0cm9r
ZVRleHRGdW5jLCBkb0ZpbGxUZXh0VGVzdHMsIDEpOworfQorCitmdW5jdGlvbiBkb0ZpbGxUZXh0
VGVzdHMoKSB7CisgICAgbG9nKCI9PT09PSBGaWxsVGV4dCBUZXN0cyA9PT09PSIpOworICAgIHZh
ciBmaWxsVGV4dEZ1bmMgPSBmdW5jdGlvbihvYmosIHN0ciwgeCwgeSkgeyBvYmouZmlsbFRleHQo
c3RyLCB4LCB5KTsgfTsKKyAgICBkb05leHRUZXh0VGVzdChmaWxsVGV4dEZ1bmMsIGRvU21hbGxT
dHJva2VMaW5lVGVzdHMsIDEpOworfQorCitmdW5jdGlvbiBkb05leHRUZXh0VGVzdCh3cml0ZVRl
eHQsIG5leHRGdW5jLCBudW1TdHJpbmdzKSB7CisgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIGNhbnZhcy53aWR0aCA9IDEwMDsKKyAgICBjYW52
YXMuaGVpZ2h0ID0gNTUwOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY2FudmFzKTsK
KyAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisKKyAgICB2YXIgdGltZSA9
IHRpbWVDYW52YXNPcGVyYXRpb24oY3R4LAorICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspCisgICAgICAgICAgICAgICAgZm9yICh2
YXIgaiA9IDA7IGogPCBudW1TdHJpbmdzOyBqKyspCisgICAgICAgICAgICAgICAgICAgIHdyaXRl
VGV4dChjdHgsICJQcmludGluZyB0ZXh0ISIsIDI1LCA1MDAgKiBqIC8gbnVtU3RyaW5ncyArIDI1
KTsKKyAgICAgICAgfSk7CisgICAgbG9nKG51bVN0cmluZ3MgKyAiIHN0cmluZ3M6ICIgKyAodGlt
ZSAvIDEwKSArICJtcyIpOworCisgICAgbnVtU3RyaW5ncyAqPSAxMDsKKyAgICBpZiAobnVtU3Ry
aW5ncyA8IDEwMDEpCisgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvTmV4dFRleHRUZXN0KHdyaXRlVGV4dCwgbmV4
dEZ1bmMsIG51bVN0cmluZ3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBpZGxlVGlt
ZXIpOworICAgIGVsc2UgeworICAgICAgICBsb2coIiIpOworICAgICAgICB3aW5kb3cuc2V0VGlt
ZW91dChuZXh0RnVuYywgaWRsZVRpbWVyKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGRvU21hbGxT
dHJva2VMaW5lVGVzdHMoKSB7CisgICAgbG9nKCI9PT09PSBTdHJva2VMaW5lIFRlc3RzID09PT09
Iik7CisgICAgZG9OZXh0U3Ryb2tlTGluZVRlc3QoZG9MYXJnZVN0cm9rZUxpbmVUZXN0cywgMSwg
MTUwLCAxNTApOworfQorCitmdW5jdGlvbiBkb0xhcmdlU3Ryb2tlTGluZVRlc3RzKCkgeworICAg
IGRvTmV4dFN0cm9rZUxpbmVUZXN0KG51bGwsIDEsIDEwMDAsIDEwMDApOworfQorCitmdW5jdGlv
biBkb05leHRTdHJva2VMaW5lVGVzdChuZXh0RnVuYywgbnVtTGluZXMsIHhTaXplLCB5U2l6ZSkg
eworICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAg
ICBjYW52YXMud2lkdGggPSB4U2l6ZTsKKyAgICBjYW52YXMuaGVpZ2h0ID0geVNpemU7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjYW52YXMpOworICAgIHZhciBjdHggPSBjYW52YXMu
Z2V0Q29udGV4dCgnMmQnKTsKKworICAgIHZhciB0aW1lID0gdGltZUNhbnZhc09wZXJhdGlvbihj
dHgsCisgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKG51bUxpbmVzID09IDEpIHsKKyAgICAg
ICAgICAgICAgICAgICAgY3R4Lm1vdmVUbyg1LCA1KTsKKyAgICAgICAgICAgICAgICAgICAgY3R4
LmxpbmVUbyh4U2l6ZSAtIDEsIHlTaXplIC0gMSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBudW1MaW5lczsgaisrKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBjdHgubW92ZVRvKGogKiB4U2l6ZSAvIG51bUxpbmVz
LCBqICogeVNpemUgLyBudW1MaW5lcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBjdHgubGlu
ZVRvKHhTaXplIC0gNSwgNSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgY3R4LnN0cm9rZSgpOworICAgICAgICAgICAgfQorICAgICAg
ICB9KTsKKyAgICBsb2coIlN0cm9raW5nICIgKyBudW1MaW5lcyArICIgbGluZXMgaW4gIiArIHhT
aXplICsgIngiICsgeVNpemUgKyAiOiAiICsgKHRpbWUgLyAxMCkgKyAibXMiKTsKKyAgICAKKyAg
ICBudW1MaW5lcyAqPSAxMDsKKyAgICBpZiAobnVtTGluZXMgPCAxMDAxKQorICAgICAgICB3aW5k
b3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkb05leHRTdHJva2VMaW5lVGVzdChuZXh0RnVuYywgbnVtTGluZXMsIHhTaXplLCB5U2l6ZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGlkbGVUaW1lcik7CisgICAgZWxzZSB7Cisg
ICAgICAgIGxvZygiIik7CisgICAgICAgIGlmIChuZXh0RnVuYykKKyAgICAgICAgICAgIHdpbmRv
dy5zZXRUaW1lb3V0KG5leHRGdW5jLCBpZGxlVGltZXIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBsb2coIkRPTkUhIik7CisgICAgfQogfQogPC9zY3JpcHQ+CiAK
</data>
<flag name="review"
          id="41931"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57383</attachid>
            <date>2010-05-28 14:38:11 -0700</date>
            <delta_ts>2010-05-29 08:18:16 -0700</delta_ts>
            <desc>Added beginPath/closePath</desc>
            <filename>canvas-perf-test-patch.diff</filename>
            <type>text/plain</type>
            <size>4271</size>
            <attacher name="Sterling Swigart">sswigart</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFNpdGUvQ2hhbmdlTG9nIGIvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cK
aW5kZXggZjRkYWI1MS4uMWNlMWEyYSAxMDA2NDQKLS0tIGEvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNS0yOCAg
U3RlcmxpbmcgU3dpZ2FydCAgPHNzd2lnYXJ0QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHRlc3RzIHRvIGNhbnZhcy5o
dG1sIHBlcmZvcm1hbmNlIHRlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM5ODgzCisKKyAgICAgICAgKiBkZW1vcy9jYW52YXMtcGVyZi9jYW52YXMu
aHRtbDoKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9yOgorICAgICAgICAgICAgc3Ryb2tlVGV4dAor
ICAgICAgICAgICAgZmlsbFRleHQKKyAgICAgICAgICAgIHN0cm9rZUxpbmUKKwogMjAxMC0wNS0y
NCAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9XZWJLaXRTaXRlL2RlbW9zL2NhbnZh
cy1wZXJmL2NhbnZhcy5odG1sIGIvV2ViS2l0U2l0ZS9kZW1vcy9jYW52YXMtcGVyZi9jYW52YXMu
aHRtbAppbmRleCA5ZjU3ZWI3Li44NTFjM2VkIDEwMDY0NAotLS0gYS9XZWJLaXRTaXRlL2RlbW9z
L2NhbnZhcy1wZXJmL2NhbnZhcy5odG1sCisrKyBiL1dlYktpdFNpdGUvZGVtb3MvY2FudmFzLXBl
cmYvY2FudmFzLmh0bWwKQEAgLTY3LDYgKzY3LDggQEAgZnVuY3Rpb24gZG9UZXN0KCkgewogfQog
CiBmdW5jdGlvbiBkb0NvcHkoKSB7CisgICAgbG9nKCI9PT09PSBDb3B5L1NjYWxlL1JvdGF0ZSBU
ZXN0cyA9PT09PSIpOworCiAgICAgdmFyIGNvcHkgPSAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvcHkiKTsKICAgICBjb3B5LndpZHRoID0gd2lkdGg7CiAgICAgY29weS5oZWlnaHQgPSBoZWln
aHQ7CkBAIC0xNDIsNyArMTQ0LDk1IEBAIGZ1bmN0aW9uIGRvUm90YXRpb24oKSB7CiAgICAgbG9n
KCJDb3B5IHdpdGggcm90YXRlOiAiICsgdGltZSArICJtcyIpOwogICAgIHNob3VsZEJlKCJkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncm90YXRlZCcpLndpZHRoIiwgImhlaWdodCIpOwogICAgIHNo
b3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm90YXRlZCcpLmhlaWdodCIsICJ3aWR0
aCIpOwotICAgIGxvZygiRE9ORSEiKTsKKyAgICBsb2coIiIpOworICAgIHdpbmRvdy5zZXRUaW1l
b3V0KGRvU3Ryb2tlVGV4dFRlc3RzLCBpZGxlVGltZXIpOworfQorCitmdW5jdGlvbiBkb1N0cm9r
ZVRleHRUZXN0cygpIHsKKyAgICBsb2coIj09PT09IFN0cm9rZVRleHQgVGVzdHMgPT09PT0iKTsK
KyAgICB2YXIgc3Ryb2tlVGV4dEZ1bmMgPSBmdW5jdGlvbihjYW52YXMsIHN0ciwgeCwgeSkgeyBj
YW52YXMuc3Ryb2tlVGV4dChzdHIsIHgsIHkpOyB9OworICAgIGRvTmV4dFRleHRUZXN0KHN0cm9r
ZVRleHRGdW5jLCBkb0ZpbGxUZXh0VGVzdHMsIDEpOworfQorCitmdW5jdGlvbiBkb0ZpbGxUZXh0
VGVzdHMoKSB7CisgICAgbG9nKCI9PT09PSBGaWxsVGV4dCBUZXN0cyA9PT09PSIpOworICAgIHZh
ciBmaWxsVGV4dEZ1bmMgPSBmdW5jdGlvbihvYmosIHN0ciwgeCwgeSkgeyBvYmouZmlsbFRleHQo
c3RyLCB4LCB5KTsgfTsKKyAgICBkb05leHRUZXh0VGVzdChmaWxsVGV4dEZ1bmMsIGRvU21hbGxT
dHJva2VMaW5lVGVzdHMsIDEpOworfQorCitmdW5jdGlvbiBkb05leHRUZXh0VGVzdCh3cml0ZVRl
eHQsIG5leHRGdW5jLCBudW1TdHJpbmdzKSB7CisgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIGNhbnZhcy53aWR0aCA9IDEwMDsKKyAgICBjYW52
YXMuaGVpZ2h0ID0gNTUwOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY2FudmFzKTsK
KyAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisKKyAgICB2YXIgdGltZSA9
IHRpbWVDYW52YXNPcGVyYXRpb24oY3R4LAorICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspCisgICAgICAgICAgICAgICAgZm9yICh2
YXIgaiA9IDA7IGogPCBudW1TdHJpbmdzOyBqKyspCisgICAgICAgICAgICAgICAgICAgIHdyaXRl
VGV4dChjdHgsICJQcmludGluZyB0ZXh0ISIsIDI1LCA1MDAgKiBqIC8gbnVtU3RyaW5ncyArIDI1
KTsKKyAgICAgICAgfSk7CisgICAgbG9nKG51bVN0cmluZ3MgKyAiIHN0cmluZ3M6ICIgKyAodGlt
ZSAvIDEwKSArICJtcyIpOworCisgICAgbnVtU3RyaW5ncyAqPSAxMDsKKyAgICBpZiAobnVtU3Ry
aW5ncyA8IDEwMDEpCisgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvTmV4dFRleHRUZXN0KHdyaXRlVGV4dCwgbmV4
dEZ1bmMsIG51bVN0cmluZ3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBpZGxlVGlt
ZXIpOworICAgIGVsc2UgeworICAgICAgICBsb2coIiIpOworICAgICAgICB3aW5kb3cuc2V0VGlt
ZW91dChuZXh0RnVuYywgaWRsZVRpbWVyKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGRvU21hbGxT
dHJva2VMaW5lVGVzdHMoKSB7CisgICAgbG9nKCI9PT09PSBTdHJva2VMaW5lIFRlc3RzID09PT09
Iik7CisgICAgZG9OZXh0U3Ryb2tlTGluZVRlc3QoZG9MYXJnZVN0cm9rZUxpbmVUZXN0cywgMSwg
MTUwLCAxNTApOworfQorCitmdW5jdGlvbiBkb0xhcmdlU3Ryb2tlTGluZVRlc3RzKCkgeworICAg
IGRvTmV4dFN0cm9rZUxpbmVUZXN0KG51bGwsIDEsIDEwMDAsIDEwMDApOworfQorCitmdW5jdGlv
biBkb05leHRTdHJva2VMaW5lVGVzdChuZXh0RnVuYywgbnVtTGluZXMsIHhTaXplLCB5U2l6ZSkg
eworICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAg
ICBjYW52YXMud2lkdGggPSB4U2l6ZTsKKyAgICBjYW52YXMuaGVpZ2h0ID0geVNpemU7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjYW52YXMpOworICAgIHZhciBjdHggPSBjYW52YXMu
Z2V0Q29udGV4dCgnMmQnKTsKKworICAgIHZhciB0aW1lID0gdGltZUNhbnZhc09wZXJhdGlvbihj
dHgsCisgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDsgaSsrKSB7CisgICAgICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpOworICAgICAgICAg
ICAgICAgIGlmIChudW1MaW5lcyA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGN0eC5tb3Zl
VG8oNSwgNSk7CisgICAgICAgICAgICAgICAgICAgIGN0eC5saW5lVG8oeFNpemUgLSAxLCB5U2l6
ZSAtIDEpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZv
ciAodmFyIGogPSAwOyBqIDwgbnVtTGluZXM7IGorKykgeworICAgICAgICAgICAgICAgICAgICAg
ICAgY3R4Lm1vdmVUbyhqICogeFNpemUgLyBudW1MaW5lcywgaiAqIHlTaXplIC8gbnVtTGluZXMp
OworICAgICAgICAgICAgICAgICAgICAgICAgY3R4LmxpbmVUbyh4U2l6ZSAtIDUsIDUpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGN0
eC5zdHJva2UoKTsKKyAgICAgICAgICAgICAgICBjdHguY2xvc2VQYXRoKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0pOworICAgIGxvZygiU3Ryb2tpbmcgIiArIG51bUxpbmVzICsgIiBsaW5l
cyBpbiAiICsgeFNpemUgKyAieCIgKyB5U2l6ZSArICI6ICIgKyAodGltZSAvIDEwKSArICJtcyIp
OworICAgIAorICAgIG51bUxpbmVzICo9IDEwOworICAgIGlmIChudW1MaW5lcyA8IDEwMDEpCisg
ICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRvTmV4dFN0cm9rZUxpbmVUZXN0KG5leHRGdW5jLCBudW1MaW5lcywgeFNp
emUsIHlTaXplKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgaWRsZVRpbWVyKTsKKyAg
ICBlbHNlIHsKKyAgICAgICAgbG9nKCIiKTsKKyAgICAgICAgaWYgKG5leHRGdW5jKQorICAgICAg
ICAgICAgd2luZG93LnNldFRpbWVvdXQobmV4dEZ1bmMsIGlkbGVUaW1lcik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGxvZygiRE9ORSEiKTsKKyAgICB9CiB9CiA8L3NjcmlwdD4KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>