diff --git a/html/dom/reflection.js b/html/dom/reflection.js index 9a98478b9dcda5..367906b045469d 100644 --- a/html/dom/reflection.js +++ b/html/dom/reflection.js @@ -636,7 +636,7 @@ ReflectionTests.reflects = function(data, idlName, idlObj, domName, domObj) { // Hard-coded special case defaultVal = domObj.ownerDocument.URL; } - if (defaultVal !== null || data.isNullable) { + if ((defaultVal !== null || data.isNullable) && data.customGetter !== true) { ReflectionHarness.test(function() { ReflectionHarness.assertEquals(idlObj[idlName], defaultVal); }, "IDL get with DOM attribute unset"); diff --git a/html/semantics/forms/the-meter-element/meter.html b/html/semantics/forms/the-meter-element/meter.html index 1c1ce4f18c2f52..1384cb874d63ae 100644 --- a/html/semantics/forms/the-meter-element/meter.html +++ b/html/semantics/forms/the-meter-element/meter.html @@ -56,7 +56,7 @@

Meter Element

var m = meters[i]; test(function() { var meter = document.createElement("meter"); - meter.value = m.value; + if (m.value) meter.value = m.value; if (m.min) meter.min= m.min; if (m.max) meter.max = m.max; if (m.low) meter.low = m.low; @@ -79,6 +79,31 @@

Meter Element

assert_throws(new TypeError(), function() { meter.high = "foobar"; }, "high attribute"); assert_throws(new TypeError(), function() { meter.optimum = "foobar"; }, "optimum attribute"); }, "Invalid floating-point number values"); + test(function() { + var meter = document.createElement("meter"); + meter.value = 37.5; + meter.min= 10; + meter.max = 100; + meter.low = 10; + meter.high = 100; + meter.optimum = 55; + assert_equals(meter.value, 37.5, "meter value"); + assert_equals(meter.min, 10, "min value"); + assert_equals(meter.max, 100, "max value"); + assert_equals(meter.low, 10, "low value"); + assert_equals(meter.high, 100, "high value"); + assert_equals(meter.optimum, 55, "optimum value"); + meter.removeAttribute("min"); + assert_equals(meter.min, 0.0, "unset min attribute"); + meter.removeAttribute("max"); + assert_equals(meter.max, 1.0, "unset max attribute"); + meter.removeAttribute("low"); + assert_equals(meter.low, 0.0, "unset low attribute"); + meter.removeAttribute("high"); + assert_equals(meter.high, 1.0, "unset high attribute"); + meter.removeAttribute("optimum"); + assert_equals(meter.optimum, 0.5, "unset optimum attibute"); + }, "Unset attributes test");