<?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>28673</bug_id>
          
          <creation_ts>2009-08-23 17:12:56 -0700</creation_ts>
          <short_desc>Modifying &lt;text rotate=&quot;&quot;&gt; doesn&apos;t clear the corresponding SVGAnimatedNumberList</short_desc>
          <delta_ts>2009-08-24 11:35:30 -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>SVG</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="Cameron McCormack (:heycam)">heycam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>142260</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2009-08-23 17:12:56 -0700</bug_when>
    <thetext>When script modifies the rotate=&quot;&quot; attribute on a &lt;text&gt; (or &lt;tspan&gt;, etc.) element, the baseVal of the SVGAnimatedNumberList that corresponds to the attribute is not cleared before the attribute is re-parsed.  E.g.:

&lt;text id=&quot;t&quot; rotate=&quot;10 20 30&quot;/&gt;
&lt;script&gt;
t = document.getElementById(&apos;t&apos;);
l = t.rotate.baseVal;
t.setAttribute(&apos;rotate&apos;, &apos;40 50&apos;);
assert(l.numberOfItems == 2);  // should be 2 but it&apos;s 5
&lt;/script&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142261</commentid>
    <comment_count>1</comment_count>
      <attachid>38462</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2009-08-23 17:24:28 -0700</bug_when>
    <thetext>Created attachment 38462
Fix and test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142272</commentid>
    <comment_count>2</comment_count>
      <attachid>38462</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-23 22:20:52 -0700</bug_when>
    <thetext>Comment on attachment 38462
Fix and test

&gt; +        * svg/dom/resources/text-rotate-live.js: Added.
&gt; +        (getRotate):
&gt; +        (getAndSetRotate):

If you&apos;re not commenting on these functions individually and the file is new, then there&apos;s no need to leave this list of functions in the change log. The idea of prepare-ChangeLog is that it helps you write the ChangeLog entry, not that you should use that it generates as-is.

The test code doesn&apos;t follow our usual brace style. Open braces for functions go on their own lines. Single line for loop bodies don&apos;t get braces around them. I would have put the &quot;var&quot; for the &quot;i&quot; variable inside the for loop. I believe the function results could be arrays rather than strings -- the shouldBe macro knows how to check arrays for equality. We don&apos;t use &quot;get&quot; in the names of functions that simply return results.

None of these are significant issues, r=me on this patch as it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142274</commentid>
    <comment_count>3</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2009-08-23 22:30:10 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; If you&apos;re not commenting on these functions individually and the file is new,
&gt; then there&apos;s no need to leave this list of functions in the change log. The
&gt; idea of prepare-ChangeLog is that it helps you write the ChangeLog entry, not
&gt; that you should use that it generates as-is.

I will keep that in mind for future patches.

&gt; The test code doesn&apos;t follow our usual brace style.

OK.  I see there&apos;s no mention of JS style in http://webkit.org/coding/coding-style.html but I&apos;ll admit I didn&apos;t check it before writing the code.

&gt; Open braces for functions
&gt; go on their own lines. Single line for loop bodies don&apos;t get braces around
&gt; them. I would have put the &quot;var&quot; for the &quot;i&quot; variable inside the for loop.

I used to too, but now tend to put vars at the top of functions to emphasise that their scope is indeed the whole function and not just the loop.

&gt; I believe the function results could be arrays rather than strings -- the
&gt; shouldBe macro knows how to check arrays for equality.

Acknowledged.  I didn&apos;t look up shouldBe to see exactly what it was checking; I just copied another test that was doing string comparisons and thought that it was just safer to do that.

&gt; We don&apos;t use &quot;get&quot; in the names of functions that simply return results.

I guess that&apos;s Java style rubbing off on me. :)

&gt; None of these are significant issues, r=me on this patch as it is.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142343</commentid>
    <comment_count>4</comment_count>
      <attachid>38462</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-24 11:25:22 -0700</bug_when>
    <thetext>Comment on attachment 38462
Fix and test

Looks good to me too.  I wonder if other &quot;parse&quot; implementations are missing a clear() call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142347</commentid>
    <comment_count>5</comment_count>
      <attachid>38462</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-24 11:35:28 -0700</bug_when>
    <thetext>Comment on attachment 38462
Fix and test

Clearing flags on attachment: 38462

Committed r47720: &lt;http://trac.webkit.org/changeset/47720&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142348</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-24 11:35:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38462</attachid>
            <date>2009-08-23 17:24:28 -0700</date>
            <delta_ts>2009-08-24 11:35:28 -0700</delta_ts>
            <desc>Fix and test</desc>
            <filename>28673.patch</filename>
            <type>text/plain</type>
            <size>4234</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzY5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDktMDgtMjMgIENhbWVyb24gTWNDb3JtYWNrICA8Y2FtQG1jYy5p
ZC5hdT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
b2RpZnlpbmcgPHRleHQgcm90YXRlPSIiPiBkb2Vzbid0IGNsZWFyIHRoZSBjb3JyZXNwb25kaW5n
IFNWR0FuaW1hdGVkTnVtYmVyTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mjg2NzMKKworICAgICAgICBUZXN0OiBzdmcvZG9tL3RleHQtcm90YXRl
LWxpdmUuaHRtbAorCisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTnVtYmVyTGlzdDo6cGFyc2UpOiBDbGVhciB0aGUgbGlzdCBiZWZvcmUgYWRk
aW5nIHRoZSBwYXJzZWQKKyAgICAgICAgbnVtYmVycy4KKwogMjAwOS0wOC0yMyAgSm9zZXBoIFBl
Y29yYXJvICA8am9lcGVja0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbW90
aHkgSGF0Y2hlci4KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuY3BwCShyZXZpc2lvbiA0NzY5NikKKysr
IFdlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0
MSw3IEBAIFNWR051bWJlckxpc3Q6On5TVkdOdW1iZXJMaXN0KCkKIHZvaWQgU1ZHTnVtYmVyTGlz
dDo6cGFyc2UoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKKyAgICBjbGVhcihlYyk7CiAKICAgICBmbG9hdCBudW1iZXIgPSAwLjBmOwogICAgCkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiA0NzY5NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA5LTA4LTIzICBDYW1lcm9uIE1jQ29ybWFjayAgPGNh
bUBtY2MuaWQuYXU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW9kaWZ5aW5nIDx0ZXh0IHJvdGF0ZT0iIj4gZG9lc24ndCBjbGVhciB0aGUgY29ycmVz
cG9uZGluZyBTVkdBbmltYXRlZE51bWJlckxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI4NjczCisKKyAgICAgICAgKiBzdmcvZG9tL3Jlc291cmNl
cy90ZXh0LXJvdGF0ZS1saXZlLmpzOiBBZGRlZC4KKyAgICAgICAgKGdldFJvdGF0ZSk6CisgICAg
ICAgIChnZXRBbmRTZXRSb3RhdGUpOgorICAgICAgICAqIHN2Zy9kb20vdGV4dC1yb3RhdGUtbGl2
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20vdGV4dC1yb3RhdGUtbGl2
ZS5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0yMyAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9u
em9Ad2Via2l0Lm9yZz4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuIFNraXAgbmV3IHRlc3RzIGZy
b20KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9kb20vdGV4dC1yb3RhdGUtbGl2ZS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2RvbS90ZXh0LXJvdGF0ZS1saXZlLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9kb20vdGV4dC1yb3Rh
dGUtbGl2ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKK1RoaXMg
dGVzdHMgdGhhdCB0aGUgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0IHJldHVybmVkIGJ5IFNWR1RleHRQ
b3NpdGlvbmluZ0VsZW1lbnQucm90YXRlIGlzIGxpdmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGdldFJvdGF0ZSgpIGlzICcxMCwyMCwzMCcKK1BBU1MgZ2V0QW5kU2V0
Um90YXRlKCc0MCA1MCcpIGlzICc0MCw1MCcKK1BBU1MgZ2V0QW5kU2V0Um90YXRlKCc2ZTEnKSBp
cyAnNjAnCitQQVNTIGdldEFuZFNldFJvdGF0ZSgnLS41ICAsIDQwRS0wJykgaXMgJy0wLjUsNDAn
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2RvbS90ZXh0LXJvdGF0ZS1saXZlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2RvbS90ZXh0LXJvdGF0ZS1saXZlLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9zdmcvZG9tL3RleHQtcm90YXRlLWxpdmUuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1yb3RhdGUtbGl2ZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9kb20v
cmVzb3VyY2VzL3RleHQtcm90YXRlLWxpdmUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2RvbS9yZXNvdXJjZXMvdGV4dC1yb3RhdGUtbGl2ZS5qcwkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3N2Zy9kb20vcmVzb3VyY2VzL3RleHQtcm90YXRlLWxpdmUuanMJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMjYgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhlIFNW
R0FuaW1hdGVkTnVtYmVyTGlzdCByZXR1cm5lZCBieSBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
LnJvdGF0ZSBpcyBsaXZlLiIpOworCit2YXIgdGV4dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwgInRleHQiKTsKK3RleHRFbGVt
ZW50LnNldEF0dHJpYnV0ZSgicm90YXRlIiwgIjEwIDIwIDMwIik7CisKK3ZhciByb3RhdGUgPSB0
ZXh0RWxlbWVudC5yb3RhdGUuYmFzZVZhbDsKKworZnVuY3Rpb24gZ2V0Um90YXRlKCkgeworICAg
IHZhciBpLCBhID0gW107CisgICAgZm9yIChpID0gMDsgaSA8IHJvdGF0ZS5udW1iZXJPZkl0ZW1z
OyBpKyspIHsKKyAgICAgICAgYS5wdXNoKHJvdGF0ZS5nZXRJdGVtKGkpLnZhbHVlKTsKKyAgICB9
CisgICAgcmV0dXJuIFN0cmluZyhhKTsKK30KKworZnVuY3Rpb24gZ2V0QW5kU2V0Um90YXRlKHMp
IHsKKyAgICB0ZXh0RWxlbWVudC5zZXRBdHRyaWJ1dGUoInJvdGF0ZSIsIHMpOworICAgIHJldHVy
biBnZXRSb3RhdGUoKTsKK30KKworc2hvdWxkQmUoImdldFJvdGF0ZSgpIiwgIicxMCwyMCwzMCci
KTsKK3Nob3VsZEJlKCJnZXRBbmRTZXRSb3RhdGUoJzQwIDUwJykiLCAiJzQwLDUwJyIpOworc2hv
dWxkQmUoImdldEFuZFNldFJvdGF0ZSgnNmUxJykiLCAiJzYwJyIpOworc2hvdWxkQmUoImdldEFu
ZFNldFJvdGF0ZSgnLS41ICAsIDQwRS0wJykiLCAiJy0wLjUsNDAnIik7CisKK3N1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>