| <!DOCTYPE html> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| |
| <div id="testElement"></div> |
| |
| <script> |
| |
| test(function() { |
| testElement.style = "width: 60px; border-left-width: 30px;"; |
| |
| var iterator = testElement.attributeStyleMap.entries(); |
| |
| // This shouldn't appear in the iterator. |
| testElement.style.borderTopWidth = '10px'; |
| |
| var entry = iterator.next(); |
| assert_equals(entry.value[0], 'width'); |
| assert_equals(entry.value[1].length, 1); |
| assert_equals(entry.value[1][0].constructor.name, CSSUnitValue.name); |
| assert_equals(entry.value[1][0].toString(), '60px'); |
| |
| entry = iterator.next(); |
| assert_equals(entry.value[0], 'border-left-width'); |
| assert_equals(entry.value[1].length, 1); |
| assert_equals(entry.value[1][0].constructor.name, CSSUnitValue.name); |
| assert_equals(entry.value[1][0].toString(), '30px'); |
| |
| assert_true(iterator.next().done); |
| }, "Adding a property while iterating over entries() doesn't affect iterator"); |
| |
| test(function() { |
| testElement.style = "width: 60px; border-left-width: 30px;"; |
| |
| var iterator = testElement.attributeStyleMap.values(); |
| |
| // This shouldn't appear in the iterator. |
| testElement.style.borderTopWidth = '10px'; |
| |
| var entry = iterator.next(); |
| assert_equals(entry.value.length, 1); |
| assert_equals(entry.value[0].constructor.name, CSSUnitValue.name); |
| assert_equals(entry.value[0].toString(), '60px'); |
| |
| entry = iterator.next(); |
| assert_equals(entry.value.length, 1); |
| assert_equals(entry.value[0].constructor.name, CSSUnitValue.name); |
| assert_equals(entry.value[0].toString(), '30px'); |
| |
| assert_true(iterator.next().done); |
| }, "Adding a property while iterating over values() doesn't affect current iterator"); |
| |
| test(function() { |
| testElement.style = "width: 60px; border-left-width: 30px;"; |
| |
| var iterator = testElement.attributeStyleMap.keys(); |
| |
| // This shouldn't appear in the iterator. |
| testElement.style.borderTopWidth = '10px'; |
| |
| var entry = iterator.next(); |
| assert_equals(entry.value, 'width'); |
| |
| entry = iterator.next(); |
| assert_equals(entry.value, 'border-left-width'); |
| |
| assert_true(iterator.next().done); |
| }, "Adding a property while iterating over keys() doesn't affect iterator"); |
| |
| </script> |