Parse HTMLOLElement.start as per the HTML spec
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 29 Feb 2016 04:36:06 +0000 (04:36 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 29 Feb 2016 04:36:06 +0000 (04:36 +0000)
https://bugs.webkit.org/show_bug.cgi?id=154802

Reviewed by Andreas Kling.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

* web-platform-tests/html/dom/reflection-grouping-expected.txt:

Source/WebCore:

Parse HTMLOLElement.start as per the HTML spec:
- https://html.spec.whatwg.org/multipage/semantics.html#dom-ol-start
- https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing-integers

No new tests, already covered by existing test.

* html/HTMLOListElement.cpp:
(WebCore::HTMLOListElement::parseAttribute):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@197307 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-grouping-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/html/HTMLOListElement.cpp

index b1ae478..acfff8c 100644 (file)
@@ -1,3 +1,14 @@
+2016-02-28  Chris Dumez  <cdumez@apple.com>
+
+        Parse HTMLOLElement.start as per the HTML spec
+        https://bugs.webkit.org/show_bug.cgi?id=154802
+
+        Reviewed by Andreas Kling.
+
+        Rebaseline now that more checks are passing.
+
+        * web-platform-tests/html/dom/reflection-grouping-expected.txt:
+
 2016-02-27  Chris Dumez  <cdumez@apple.com>
 
         Align HTMLMarqueeElement.scrollAmount / scrollDelay with the specification
index 6f959c0..eb6f9e6 100644 (file)
@@ -4440,7 +4440,7 @@ PASS ol.start: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x
 PASS ol.start: setAttribute() to "\t7" followed by getAttribute() 
 PASS ol.start: setAttribute() to "\t7" followed by IDL get 
 PASS ol.start: setAttribute() to "\v7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to "\v7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to "\v7" followed by IDL get 
 PASS ol.start: setAttribute() to "\f7" followed by getAttribute() 
 PASS ol.start: setAttribute() to "\f7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
@@ -4454,39 +4454,39 @@ PASS ol.start: setAttribute() to "\n7" followed by IDL get
 PASS ol.start: setAttribute() to "\r7" followed by getAttribute() 
 PASS ol.start: setAttribute() to "\r7" followed by IDL get 
 PASS ol.start: setAttribute() to "
7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to "
7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to "
7" followed by IDL get 
 PASS ol.start: setAttribute() to "
7" followed by getAttribute() 
 PASS ol.start: setAttribute() to "
7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to " 7" followed by IDL get 
 PASS ol.start: setAttribute() to "᠎7" followed by getAttribute() 
 PASS ol.start: setAttribute() to "᠎7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to " 7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to " 7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to " 7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to " 7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to " 7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to " 7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to " 7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to " 7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to " 7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to " 7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to " 7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
 PASS ol.start: setAttribute() to " 7" followed by IDL get 
 PASS ol.start: setAttribute() to " 7" followed by getAttribute() 
-FAIL ol.start: setAttribute() to " 7" followed by IDL get assert_equals: expected 1 but got 7
+PASS ol.start: setAttribute() to " 7" followed by IDL get 
 PASS ol.start: setAttribute() to undefined followed by getAttribute() 
 PASS ol.start: setAttribute() to undefined followed by IDL get 
 PASS ol.start: setAttribute() to 1.5 followed by getAttribute() 
index 7facf51..cf847f5 100644 (file)
@@ -1,3 +1,19 @@
+2016-02-28  Chris Dumez  <cdumez@apple.com>
+
+        Parse HTMLOLElement.start as per the HTML spec
+        https://bugs.webkit.org/show_bug.cgi?id=154802
+
+        Reviewed by Andreas Kling.
+
+        Parse HTMLOLElement.start as per the HTML spec:
+        - https://html.spec.whatwg.org/multipage/semantics.html#dom-ol-start
+        - https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing-integers
+
+        No new tests, already covered by existing test.
+
+        * html/HTMLOListElement.cpp:
+        (WebCore::HTMLOListElement::parseAttribute):
+
 2016-02-28  Gyuyoung Kim  <gyuyoung.kim@webkit.org>
 
         Reduce uses of PassRefPtr in indexeddb
index 17d4044..6cb1977 100644 (file)
@@ -26,6 +26,7 @@
 #include "CSSPropertyNames.h"
 #include "CSSValueKeywords.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "RenderListItem.h"
 
 namespace WebCore {
@@ -81,10 +82,9 @@ void HTMLOListElement::parseAttribute(const QualifiedName& name, const AtomicStr
 {
     if (name == startAttr) {
         int oldStart = start();
-        bool canParse;
-        int parsedStart = value.toInt(&canParse);
-        m_hasExplicitStart = canParse;
-        m_start = canParse ? parsedStart : 0xBADBEEF;
+        m_hasExplicitStart = parseHTMLInteger(value, m_start);
+        if (!m_hasExplicitStart)
+            m_start = 0xBADBEEF;
         if (oldStart == start())
             return;
         updateItemValues();