diff options
Diffstat (limited to 'WebCore/html/HTMLOutputElement.cpp')
-rw-r--r-- | WebCore/html/HTMLOutputElement.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/WebCore/html/HTMLOutputElement.cpp b/WebCore/html/HTMLOutputElement.cpp index b83263e..2f1d490 100644 --- a/WebCore/html/HTMLOutputElement.cpp +++ b/WebCore/html/HTMLOutputElement.cpp @@ -40,7 +40,7 @@ inline HTMLOutputElement::HTMLOutputElement(const QualifiedName& tagName, Docume : HTMLFormControlElement(tagName, document, form) , m_isDefaultValueMode(true) , m_isSetTextContentInProgress(false) - , m_defaultValue() + , m_defaultValue("") , m_tokens(DOMSettableTokenList::create()) { } @@ -91,6 +91,8 @@ void HTMLOutputElement::reset() // value mode flag to "default" and then to set the element's textContent // attribute to the default value. m_isDefaultValueMode = true; + if (m_defaultValue == value()) + return; setTextContentInternal(m_defaultValue); } @@ -103,6 +105,8 @@ void HTMLOutputElement::setValue(const String& value) { // The value mode flag set to "value" when the value attribute is set. m_isDefaultValueMode = false; + if (value == this->value()) + return; setTextContentInternal(value); } @@ -113,11 +117,13 @@ String HTMLOutputElement::defaultValue() const void HTMLOutputElement::setDefaultValue(const String& value) { - m_defaultValue = value; - // The spec requires the value attribute set to the default value - // when the element's value mode flag to "default". - if (m_isDefaultValueMode) - setTextContentInternal(value); + if (m_defaultValue == value) + return; + m_defaultValue = value; + // The spec requires the value attribute set to the default value + // when the element's value mode flag to "default". + if (m_isDefaultValueMode) + setTextContentInternal(value); } void HTMLOutputElement::setTextContentInternal(const String& value) |