Bug 1271126 - Fixed the ParseHTMLInteger function to handle INT32_MIN. r=smaug
authorGordon Su <gordonsu14@gmail.com>
Sun, 12 Jun 2016 16:18:55 -0400
changeset 301749 085bacd46edf878ae2f23d98cfdddda49ffa0dc6
parent 301748 c109d0b45e8aa440b588c1a862b0ca5b83ee050e
child 301750 75285ea7e4aae8fb7d239f58a97390d17fbff9bb
push id78439
push userbzbarsky@mozilla.com
push dateTue, 14 Jun 2016 13:07:48 +0000
treeherdermozilla-inbound@085bacd46edf [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssmaug
bugs1271126
milestone50.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1271126 - Fixed the ParseHTMLInteger function to handle INT32_MIN. r=smaug
dom/base/nsContentUtils.cpp
dom/html/test/reflect.js
layout/reftests/counters/counter-ua-limits-list-01-ref.html
testing/web-platform/meta/html/dom/reflection-embedded.html.ini
testing/web-platform/meta/html/dom/reflection-forms.html.ini
testing/web-platform/meta/html/dom/reflection-grouping.html.ini
testing/web-platform/meta/html/dom/reflection-metadata.html.ini
testing/web-platform/meta/html/dom/reflection-misc.html.ini
testing/web-platform/meta/html/dom/reflection-obsolete.html.ini
testing/web-platform/meta/html/dom/reflection-sections.html.ini
testing/web-platform/meta/html/dom/reflection-tabular.html.ini
testing/web-platform/meta/html/dom/reflection-text.html.ini
--- a/dom/base/nsContentUtils.cpp
+++ b/dom/base/nsContentUtils.cpp
@@ -1064,19 +1064,19 @@ nsContentUtils::ParseHTMLInteger(const n
   }
 
   if (iter == end) {
     result |= eParseHTMLInteger_Error | eParseHTMLInteger_ErrorNoValue;
     *aResult = (ParseHTMLIntegerResultFlags)result;
     return 0;
   }
 
-  bool negate = false;
+  int sign = 1;
   if (*iter == char16_t('-')) {
-    negate = true;
+    sign = -1;
     ++iter;
   } else if (*iter == char16_t('+')) {
     result |= eParseHTMLInteger_NonStandard;
     ++iter;
   }
 
   bool foundValue = false;
   CheckedInt32 value = 0;
@@ -1090,17 +1090,17 @@ nsContentUtils::ParseHTMLInteger(const n
 
     ++leadingZeros;
     foundValue = true;
     ++iter;
   }
 
   while (iter != end) {
     if (*iter >= char16_t('0') && *iter <= char16_t('9')) {
-      value = (value * 10) + (*iter - char16_t('0'));
+      value = (value * 10) + (*iter - char16_t('0')) * sign;
       ++iter;
       if (!value.isValid()) {
         result |= eParseHTMLInteger_Error | eParseHTMLInteger_ErrorOverflow;
         break;
       } else {
         foundValue = true;
       }
     } else if (*iter == char16_t('%')) {
@@ -1111,26 +1111,19 @@ nsContentUtils::ParseHTMLInteger(const n
       break;
     }
   }
 
   if (!foundValue) {
     result |= eParseHTMLInteger_Error | eParseHTMLInteger_ErrorNoValue;
   }
 
-  if (value.isValid() && negate) {
-    value = -value;
-    // Checking the special case of -0.
-    if (value == 0) {
-      result |= eParseHTMLInteger_NonStandard;
-    }
-  }
-
   if (value.isValid() &&
-      (leadingZeros > 1 || (leadingZeros == 1 && !(value == 0)))) {
+       ((leadingZeros > 1 || (leadingZeros == 1 && !(value == 0))) ||
+       (sign == -1 && value == 0))) {
     result |= eParseHTMLInteger_NonStandard;
   }
 
   if (iter != end) {
     result |= eParseHTMLInteger_DidNotConsumeAllInput;
   }
 
   *aResult = (ParseHTMLIntegerResultFlags)result;
--- a/dom/html/test/reflect.js
+++ b/dom/html/test/reflect.js
@@ -561,49 +561,37 @@ function reflectInt(aParameters)
   valuesToTest.forEach(function(v) {
     var intValue = stringToInteger(v, nonNegative, defaultValue);
 
     element.setAttribute(attr, v);
 
     is(element.getAttribute(attr), expectedGetAttributeResult(v), element.localName + ".setAttribute(" +
       attr + ", " + v + "), " + element.localName + ".getAttribute(" + attr + ") ");
 
-    if (intValue == -2147483648 && element[attr] == defaultValue) {
-      //TBD: Bug 586761: .setAttribute(attr, -2147483648) --> element[attr] == defaultValue instead of -2147483648
-      todo_is(element[attr], intValue, "Bug 586761: " + element.localName +
-        ".setAttribute(value, " + v + "), " + element.localName + "[" + attr + "] ");
-    } else {
-      is(element[attr], intValue, element.localName +
-        ".setAttribute(" + attr + ", " + v + "), " + element.localName + "[" + attr + "] ");
-    }
+    is(element[attr], intValue, element.localName +
+       ".setAttribute(" + attr + ", " + v + "), " + element.localName + "[" + attr + "] ");
     element.removeAttribute(attr);
 
     if (nonNegative && expectedIdlAttributeResult(v) < 0) {
       try {
         element[attr] = v;
         ok(false, element.localName + "[" + attr + "] = " + v + " should throw IndexSizeError");
       } catch(e) {
         is(e.name, "IndexSizeError", element.localName + "[" + attr + "] = " + v +
           " should throw IndexSizeError");
         is(e.code, DOMException.INDEX_SIZE_ERR, element.localName + "[" + attr + "] = " + v +
           " should throw INDEX_SIZE_ERR");
       }
     } else {
       element[attr] = v;
-      if (expectedIdlAttributeResult(v) == -2147483648 && element[attr] == defaultValue) {
-        //TBD: Bug 586761: .setAttribute(attr, -2147483648) --> element[attr] == defaultValue instead of -2147483648
-        todo_is(element[attr], expectedIdlAttributeResult(v), "Bug 586761: " + element.localName + "[" +
-          attr + "] = " + v + ", " + element.localName + "[" + attr + "] ");
-      } else {
-        is(element[attr], expectedIdlAttributeResult(v), element.localName + "[" + attr + "] = " + v +
-          ", " + element.localName + "[" + attr + "] ");
-        is(element.getAttribute(attr), String(expectedIdlAttributeResult(v)),
-           element.localName + "[" + attr + "] = " + v + ", " +
-           element.localName + ".getAttribute(" + attr + ") ");
-      }
+      is(element[attr], expectedIdlAttributeResult(v), element.localName + "[" + attr + "] = " + v +
+         ", " + element.localName + "[" + attr + "] ");
+      is(element.getAttribute(attr), String(expectedIdlAttributeResult(v)),
+         element.localName + "[" + attr + "] = " + v + ", " +
+         element.localName + ".getAttribute(" + attr + ") ");
     }
     element.removeAttribute(attr);
   });
 
   // Tests after removeAttribute() is called. Should be equivalent with not set.
   is(element.getAttribute(attr), null,
      "When not set, the content attribute should be null.");
   is(element[attr], defaultValue,
--- a/layout/reftests/counters/counter-ua-limits-list-01-ref.html
+++ b/layout/reftests/counters/counter-ua-limits-list-01-ref.html
@@ -20,31 +20,27 @@
   li.hidden { visibility: hidden; height: 0 }
   ol { margin-bottom: 0 }
   ol + ol { margin-top: 0 }
 
   </style>
  </head>
  <body>
 
- <!--
-    Work around our inability to parse -2147483648 as an HTML integer attribute
-    (Bug 586761)
-   -->
  <ol reversed start="-2147483645">
    <li class="hidden">hidden
    <li>Alpha
  </ol>
  <ol reversed start="-2147483646">
    <li class="hidden">hidden
    <li>Bravo
  </ol>
  <ol reversed start="-2147483647">
    <li class="hidden">hidden
    <li>Charlie
  </ol>
- <ol reversed start="-2147483647">
+ <ol reversed start="-2147483648">
    <li class="hidden">hidden
    <li>Delta
  </ol>
 
  </body>
 </html>
--- a/testing/web-platform/meta/html/dom/reflection-embedded.html.ini
+++ b/testing/web-platform/meta/html/dom/reflection-embedded.html.ini
@@ -1,34 +1,22 @@
 [reflection-embedded.html]
   type: testharness
-  [img.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [img.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [img.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [img.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [iframe.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [iframe.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [iframe.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [iframe.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [iframe.seamless: typeof IDL attribute]
     expected: FAIL
 
   [iframe.seamless: IDL get with DOM attribute unset]
     expected: FAIL
 
   [iframe.seamless: setAttribute() to "" followed by IDL get]
     expected: FAIL
@@ -127,64 +115,40 @@
     expected: FAIL
 
   [iframe.seamless: IDL set to object "test-toString" followed by IDL get]
     expected: FAIL
 
   [iframe.seamless: IDL set to object "test-valueOf" followed by IDL get]
     expected: FAIL
 
-  [embed.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [embed.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [embed.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [embed.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [object.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [object.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [object.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [object.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [param.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [param.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [param.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [param.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [video.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [video.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [video.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [video.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [video.mediaGroup: typeof IDL attribute]
     expected: FAIL
 
   [video.mediaGroup: IDL get with DOM attribute unset]
     expected: FAIL
 
   [video.mediaGroup: setAttribute() to "" followed by IDL get]
     expected: FAIL
@@ -304,28 +268,22 @@
     expected: FAIL
 
   [video.mediaGroup: IDL set to object "test-toString" followed by IDL get]
     expected: FAIL
 
   [video.mediaGroup: IDL set to object "test-valueOf" followed by IDL get]
     expected: FAIL
 
-  [audio.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [audio.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [audio.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [audio.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [audio.mediaGroup: typeof IDL attribute]
     expected: FAIL
 
   [audio.mediaGroup: IDL get with DOM attribute unset]
     expected: FAIL
 
   [audio.mediaGroup: setAttribute() to "" followed by IDL get]
     expected: FAIL
@@ -445,76 +403,46 @@
     expected: FAIL
 
   [audio.mediaGroup: IDL set to object "test-toString" followed by IDL get]
     expected: FAIL
 
   [audio.mediaGroup: IDL set to object "test-valueOf" followed by IDL get]
     expected: FAIL
 
-  [source.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [source.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [source.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [source.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [track.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [track.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [track.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [track.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [canvas.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [canvas.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [canvas.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [canvas.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [map.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [map.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [map.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [map.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [area.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [area.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [area.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [area.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [area.hreflang: typeof IDL attribute]
     expected: FAIL
 
   [area.hreflang: IDL get with DOM attribute unset]
     expected: FAIL
 
   [area.hreflang: setAttribute() to "" followed by IDL get]
     expected: FAIL
--- a/testing/web-platform/meta/html/dom/reflection-forms.html.ini
+++ b/testing/web-platform/meta/html/dom/reflection-forms.html.ini
@@ -1,83 +1,53 @@
 [reflection-forms.html]
   type: testharness
   prefs: [dom.forms.inputmode:true]
-  [form.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [form.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [form.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [form.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [form.method: setAttribute() to "dialog" followed by IDL get]
     expected: FAIL
 
   [form.method: setAttribute() to "DIALOG" followed by IDL get]
     expected: FAIL
 
   [form.method: IDL set to "dialog" followed by IDL get]
     expected: FAIL
 
   [form.method: IDL set to "DIALOG" followed by IDL get]
     expected: FAIL
 
-  [fieldset.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [fieldset.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [fieldset.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [fieldset.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [legend.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [legend.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [legend.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [legend.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [label.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [label.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [label.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [label.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [input.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [input.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [input.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [input.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [input.dirName: typeof IDL attribute]
     expected: FAIL
 
   [input.dirName: IDL get with DOM attribute unset]
     expected: FAIL
 
   [input.dirName: setAttribute() to "" followed by IDL get]
     expected: FAIL
@@ -656,100 +626,64 @@
     expected: FAIL
 
   [input.type: IDL set to "datetime-local" followed by IDL get]
     expected: FAIL
 
   [input.type: IDL set to "DATETIME-LOCAL" followed by IDL get]
     expected: FAIL
 
-  [button.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [button.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [button.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [button.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [button.formMethod: setAttribute() to "dialog" followed by IDL get]
     expected: FAIL
 
   [button.formMethod: setAttribute() to "DIALOG" followed by IDL get]
     expected: FAIL
 
   [button.formMethod: IDL set to "dialog" followed by IDL get]
     expected: FAIL
 
   [button.formMethod: IDL set to "DIALOG" followed by IDL get]
     expected: FAIL
 
-  [select.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [select.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [select.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [select.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [datalist.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [datalist.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [datalist.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [datalist.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [optgroup.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [optgroup.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [optgroup.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [optgroup.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [option.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [option.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [option.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [option.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [textarea.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [textarea.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [textarea.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [textarea.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [textarea.dirName: typeof IDL attribute]
     expected: FAIL
 
   [textarea.dirName: IDL get with DOM attribute unset]
     expected: FAIL
 
   [textarea.dirName: setAttribute() to "" followed by IDL get]
     expected: FAIL
@@ -1463,28 +1397,22 @@
     expected: FAIL
 
   [textarea.inputMode: IDL set to "rl" followed by IDL get]
     expected: FAIL
 
   [textarea.inputMode: IDL set to "URL" followed by IDL get]
     expected: FAIL
 
-  [keygen.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [keygen.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [keygen.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [keygen.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [keygen.autofocus: typeof IDL attribute]
     expected: FAIL
 
   [keygen.autofocus: IDL get with DOM attribute unset]
     expected: FAIL
 
   [keygen.autofocus: setAttribute() to "" followed by IDL get]
     expected: FAIL
@@ -2015,44 +1943,26 @@
     expected: FAIL
 
   [keygen.name: IDL set to object "test-toString" followed by IDL get]
     expected: FAIL
 
   [keygen.name: IDL set to object "test-valueOf" followed by IDL get]
     expected: FAIL
 
-  [output.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [output.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [output.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [output.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [progress.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [progress.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [progress.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [progress.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [meter.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [meter.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [meter.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [meter.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
--- a/testing/web-platform/meta/html/dom/reflection-grouping.html.ini
+++ b/testing/web-platform/meta/html/dom/reflection-grouping.html.ini
@@ -1,188 +1,86 @@
 [reflection-grouping.html]
   type: testharness
-  [p.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [p.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [p.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [p.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [hr.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [hr.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [hr.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [hr.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [pre.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [pre.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [pre.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [pre.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [pre.width: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [pre.width: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [blockquote.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [blockquote.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [blockquote.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [blockquote.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [ol.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [ol.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [ol.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [ol.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [ol.start: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [ol.start: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [ul.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [ul.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [ul.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [ul.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [li.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [li.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [li.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [li.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [li.value: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [li.value: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [dl.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [dl.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [dl.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [dl.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [dt.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [dt.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [dt.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [dt.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [dd.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [dd.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [dd.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [dd.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [figure.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [figure.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [figure.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [figure.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [figcaption.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [figcaption.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [figcaption.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [figcaption.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [main.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [main.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [main.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [main.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [div.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [div.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [div.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [div.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
--- a/testing/web-platform/meta/html/dom/reflection-metadata.html.ini
+++ b/testing/web-platform/meta/html/dom/reflection-metadata.html.ini
@@ -1,74 +1,38 @@
 [reflection-metadata.html]
   type: testharness
-  [head.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [head.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [head.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [head.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [title.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [title.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [title.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [title.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [base.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [base.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [base.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [base.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [link.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [link.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [link.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [link.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [meta.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [meta.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [meta.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [meta.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [style.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [style.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [style.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [style.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
--- a/testing/web-platform/meta/html/dom/reflection-misc.html.ini
+++ b/testing/web-platform/meta/html/dom/reflection-misc.html.ini
@@ -1,107 +1,59 @@
 [reflection-misc.html]
   type: testharness
   prefs: [dom.details_element.enabled:true]
-  [html.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [html.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [html.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [html.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [script.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [script.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [script.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [script.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [noscript.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [noscript.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [noscript.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [noscript.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [ins.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [ins.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [ins.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [ins.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [del.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [del.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [del.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [del.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [details.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [details.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [details.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [details.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [summary.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [summary.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [summary.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [summary.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [menu.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [menu.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [menu.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [menu.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [menu.type: IDL get with DOM attribute unset]
     expected: FAIL
 
   [menu.type: setAttribute() to "" followed by IDL get]
     expected: FAIL
 
   [menu.type: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f  foo " followed by IDL get]
     expected: FAIL
@@ -233,28 +185,22 @@
     expected: FAIL
 
   [menu.type: IDL set to "toolbar\\0" followed by IDL get]
     expected: FAIL
 
   [menu.type: IDL set to "oolbar" followed by IDL get]
     expected: FAIL
 
-  [menuitem.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [menuitem.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [menuitem.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [menuitem.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [menuitem.type: IDL get with DOM attribute unset]
     expected: FAIL
 
   [menuitem.type: setAttribute() to "" followed by IDL get]
     expected: FAIL
 
   [menuitem.type: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f  foo " followed by IDL get]
     expected: FAIL
@@ -527,34 +473,22 @@
     expected: FAIL
 
   [menuitem.default: IDL set to object "test-toString" followed by IDL get]
     expected: FAIL
 
   [menuitem.default: IDL set to object "test-valueOf" followed by IDL get]
     expected: FAIL
 
-  [undefinedelement.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [undefinedelement.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [undefinedelement.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [undefinedelement.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [dialog.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [dialog.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [dialog.open: typeof IDL attribute]
     expected: FAIL
 
   [dialog.open: IDL get with DOM attribute unset]
     expected: FAIL
 
   [dialog.open: setAttribute() to "" followed by IDL get]
     expected: FAIL
--- a/testing/web-platform/meta/html/dom/reflection-obsolete.html.ini
+++ b/testing/web-platform/meta/html/dom/reflection-obsolete.html.ini
@@ -1,34 +1,22 @@
 [reflection-obsolete.html]
   type: testharness
-  [applet.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [applet.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [applet.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [applet.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [marquee.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [marquee.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [marquee.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [marquee.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [marquee.behavior: typeof IDL attribute]
     expected: FAIL
 
   [marquee.behavior: IDL get with DOM attribute unset]
     expected: FAIL
 
   [marquee.behavior: setAttribute() to "" followed by IDL get]
     expected: FAIL
@@ -1504,64 +1492,40 @@
     expected: FAIL
 
   [marquee.width: IDL set to object "test-toString" followed by IDL get]
     expected: FAIL
 
   [marquee.width: IDL set to object "test-valueOf" followed by IDL get]
     expected: FAIL
 
-  [frameset.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [frameset.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [frameset.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [frameset.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [frame.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [frame.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [frame.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [frame.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [dir.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [dir.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [dir.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [dir.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [font.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [font.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [font.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [font.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [marquee.hspace: IDL set to 2147483648 followed by getAttribute()]
     expected: FAIL
 
   [marquee.hspace: IDL set to 2147483648 followed by IDL get]
     expected: FAIL
 
   [marquee.hspace: IDL set to 4294967295 followed by getAttribute()]
     expected: FAIL
--- a/testing/web-platform/meta/html/dom/reflection-sections.html.ini
+++ b/testing/web-platform/meta/html/dom/reflection-sections.html.ini
@@ -1,182 +1,92 @@
 [reflection-sections.html]
   type: testharness
-  [body.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [body.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [body.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [body.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [article.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [article.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [article.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [article.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [section.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [section.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [section.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [section.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [nav.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [nav.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [nav.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [nav.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [aside.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [aside.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [aside.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [aside.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [h1.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [h1.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [h1.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [h1.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [h2.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [h2.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [h2.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [h2.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [h3.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [h3.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [h3.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [h3.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [h4.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [h4.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [h4.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [h4.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [h5.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [h5.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [h5.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [h5.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [h6.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [h6.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [h6.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [h6.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [hgroup.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [hgroup.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [hgroup.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [hgroup.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [header.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [header.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [header.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [header.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [footer.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [footer.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [footer.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [footer.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [address.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [address.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [address.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [address.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
--- a/testing/web-platform/meta/html/dom/reflection-tabular.html.ini
+++ b/testing/web-platform/meta/html/dom/reflection-tabular.html.ini
@@ -1,22 +1,16 @@
 [reflection-tabular.html]
   type: testharness
-  [table.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [table.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [table.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [table.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [table.sortable: typeof IDL attribute]
     expected: FAIL
 
   [table.sortable: IDL get with DOM attribute unset]
     expected: FAIL
 
   [table.sortable: setAttribute() to "" followed by IDL get]
     expected: FAIL
@@ -115,154 +109,100 @@
     expected: FAIL
 
   [table.sortable: IDL set to object "test-toString" followed by IDL get]
     expected: FAIL
 
   [table.sortable: IDL set to object "test-valueOf" followed by IDL get]
     expected: FAIL
 
-  [caption.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [caption.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [caption.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [caption.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [colgroup.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [colgroup.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [colgroup.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [colgroup.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [colgroup.span: setAttribute() to 2147483647 followed by IDL get]
     expected: FAIL
 
   [colgroup.span: IDL set to 0 must throw INDEX_SIZE_ERR]
     expected: FAIL
 
   [colgroup.span: IDL set to 2147483647 followed by IDL get]
     expected: FAIL
 
-  [col.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [col.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [col.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [col.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [col.span: setAttribute() to 2147483647 followed by IDL get]
     expected: FAIL
 
   [col.span: IDL set to 0 must throw INDEX_SIZE_ERR]
     expected: FAIL
 
   [col.span: IDL set to 2147483647 followed by IDL get]
     expected: FAIL
 
-  [tbody.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [tbody.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [tbody.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [tbody.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [thead.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [thead.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [thead.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [thead.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [tfoot.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [tfoot.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [tfoot.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [tfoot.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [tr.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [tr.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [tr.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [tr.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [td.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [td.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [td.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [td.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [td.colSpan: setAttribute() to 2147483647 followed by IDL get]
     expected: FAIL
 
   [td.colSpan: IDL set to 2147483647 followed by IDL get]
     expected: FAIL
 
   [td.rowSpan: setAttribute() to 2147483647 followed by IDL get]
     expected: FAIL
 
   [td.rowSpan: IDL set to 2147483647 followed by IDL get]
     expected: FAIL
 
-  [th.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [th.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [th.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [th.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [th.colSpan: setAttribute() to 2147483647 followed by IDL get]
     expected: FAIL
 
   [th.colSpan: IDL set to 2147483647 followed by IDL get]
     expected: FAIL
 
   [th.rowSpan: setAttribute() to 2147483647 followed by IDL get]
     expected: FAIL
--- a/testing/web-platform/meta/html/dom/reflection-text.html.ini
+++ b/testing/web-platform/meta/html/dom/reflection-text.html.ini
@@ -1,350 +1,176 @@
 [reflection-text.html]
   type: testharness
-  [a.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [a.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [a.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [a.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [em.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [em.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [em.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [em.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [strong.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [strong.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [strong.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [strong.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [small.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [small.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [small.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [small.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [s.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [s.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [s.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [s.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [cite.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [cite.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [cite.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [cite.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [q.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [q.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [q.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [q.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [dfn.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [dfn.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [dfn.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [dfn.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [abbr.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [abbr.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [abbr.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [abbr.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [data.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [data.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [data.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [data.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [time.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [time.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [time.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [time.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [code.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [code.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [code.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [code.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [var.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [var.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [var.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [var.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [samp.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [samp.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [samp.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [samp.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [kbd.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [kbd.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [kbd.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [kbd.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [sub.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [sub.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [sub.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [sub.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [sup.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [sup.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [sup.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [sup.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [i.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [i.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [i.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [i.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [b.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [b.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [b.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [b.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [u.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [u.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [u.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [u.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [mark.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [mark.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [mark.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [mark.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [ruby.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [ruby.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [ruby.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [ruby.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [rt.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [rt.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [rt.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [rt.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [rp.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [rp.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [rp.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [rp.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [bdi.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [bdi.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [bdi.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [bdi.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [bdo.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [bdo.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [bdo.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [bdo.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [span.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [span.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [span.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [span.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [br.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [br.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [br.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [br.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-
-  [wbr.tabIndex: setAttribute() to -2147483648 followed by IDL get]
-    expected: FAIL
-
   [wbr.tabIndex: setAttribute() to object "3" followed by getAttribute()]
     expected: FAIL
 
   [wbr.tabIndex: setAttribute() to object "3" followed by IDL get]
     expected: FAIL
 
-  [wbr.tabIndex: IDL set to -2147483648 followed by IDL get]
-    expected: FAIL
-