aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlprogresselement.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/htmlprogresselement.rs')
-rw-r--r--components/script/dom/htmlprogresselement.rs23
1 files changed, 17 insertions, 6 deletions
diff --git a/components/script/dom/htmlprogresselement.rs b/components/script/dom/htmlprogresselement.rs
index 62f05a5c7db..a4c39f3e9ec 100644
--- a/components/script/dom/htmlprogresselement.rs
+++ b/components/script/dom/htmlprogresselement.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::codegen::Bindings::HTMLProgressElementBinding::HTMLPro
use crate::dom::bindings::inheritance::Castable;
use crate::dom::bindings::num::Finite;
use crate::dom::bindings::root::{DomRoot, MutNullableDom};
+use crate::dom::bindings::str::DOMString;
use crate::dom::document::Document;
use crate::dom::element::Element;
use crate::dom::htmlelement::HTMLElement;
@@ -75,11 +76,15 @@ impl HTMLProgressElementMethods for HTMLProgressElement {
})
}
- // https://html.spec.whatwg.org/multipage/#dom-progress-value
+ /// <https://html.spec.whatwg.org/multipage/#dom-progress-value>
fn SetValue(&self, new_val: Finite<f64>) {
- if 0.0 <= *new_val {
+ if *new_val >= 0.0 {
+ let mut string_value = DOMString::from_string((*new_val).to_string());
+
+ string_value.set_best_representation_of_the_floating_point_number();
+
self.upcast::<Element>()
- .set_string_attribute(&local_name!("value"), (*new_val).to_string().into());
+ .set_string_attribute(&local_name!("value"), string_value);
}
}
@@ -100,10 +105,16 @@ impl HTMLProgressElementMethods for HTMLProgressElement {
})
}
- // https://html.spec.whatwg.org/multipage/#dom-progress-max
+ /// <https://html.spec.whatwg.org/multipage/#dom-progress-max>
fn SetMax(&self, new_val: Finite<f64>) {
- self.upcast::<Element>()
- .set_string_attribute(&local_name!("max"), (*new_val).to_string().into());
+ if *new_val > 0.0 {
+ let mut string_value = DOMString::from_string((*new_val).to_string());
+
+ string_value.set_best_representation_of_the_floating_point_number();
+
+ self.upcast::<Element>()
+ .set_string_attribute(&local_name!("max"), string_value);
+ }
}
// https://html.spec.whatwg.org/multipage/#dom-progress-position