aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/str.rs
diff options
context:
space:
mode:
authorJim Berlage <james.berlage@gmail.com>2018-10-17 13:54:55 -0500
committerJim Berlage <james.berlage@gmail.com>2018-11-08 16:16:28 -0600
commit1f99bf4631cc0b5bbd2c4407c98bcd547a63905e (patch)
tree7b49e116261a566d3bb4886e0f122cd073c56687 /components/script/dom/bindings/str.rs
parentdd5e5e9294e51e8cbbbcd6affa54e954701a7d2e (diff)
downloadservo-1f99bf4631cc0b5bbd2c4407c98bcd547a63905e.tar.gz
servo-1f99bf4631cc0b5bbd2c4407c98bcd547a63905e.zip
Fixes panic on DOMString::strip_leading_and_trailing_ascii_whitespace
Diffstat (limited to 'components/script/dom/bindings/str.rs')
-rw-r--r--components/script/dom/bindings/str.rs18
1 files changed, 9 insertions, 9 deletions
diff --git a/components/script/dom/bindings/str.rs b/components/script/dom/bindings/str.rs
index 9f038026562..251a03b2d66 100644
--- a/components/script/dom/bindings/str.rs
+++ b/components/script/dom/bindings/str.rs
@@ -182,16 +182,16 @@ impl DOMString {
return;
}
- let last_non_whitespace = match self.0.rfind(|ref c| !char::is_ascii_whitespace(c)) {
- Some(idx) => idx + 1,
- None => {
- self.0.clear();
- return;
- },
- };
- let first_non_whitespace = self.0.find(|ref c| !char::is_ascii_whitespace(c)).unwrap();
+ let trailing_whitespace_len = self
+ .0
+ .trim_end_matches(|ref c| char::is_ascii_whitespace(c))
+ .len();
+ self.0.truncate(trailing_whitespace_len);
+ if self.0.is_empty() {
+ return;
+ }
- self.0.truncate(last_non_whitespace);
+ let first_non_whitespace = self.0.find(|ref c| !char::is_ascii_whitespace(c)).unwrap();
let _ = self.0.replace_range(0..first_non_whitespace, "");
}