@@ -1,6 +1,5 @@
11use crate::Listener;
22use bumpalo::Bump;
3−use std::cell::Cell;
43use fxhash::FxHashMap;
54use std::fmt;
65use std::sync::Once;
@@ -42,7 +41,7 @@ struct StringsCacheEntry {
4241pub(crate) struct ChangeList {
4342 bump: Bump,
4443 strings_cache: FxHashMap<String, StringsCacheEntry>,
45− next_string_key: Cell<u32>,
44+ next_string_key: u32,
4645 js: js::ChangeList,
4746 events_trampoline: Option<Closure<Fn(web_sys::Event, u32, u32)>>,
4847}
@@ -83,7 +82,7 @@ impl ChangeList {
8382 ChangeList {
8483 bump,
8584 strings_cache,
86− next_string_key: Cell::new(0),
85+ next_string_key: 0,
8786 js,
8887 events_trampoline: None,
8988 }
@@ -299,14 +298,12 @@ impl ChangeList {
299298
300299impl ChangeList {
301300 fn ensure_string(&mut self, string: &str) -> u32 {
302− let entry = self.strings_cache.get_mut(string);
303− if entry.is_some() {
304− let entry = entry.unwrap();
301+ if let Some(entry) = self.strings_cache.get_mut(string) {
305302 entry.used = true;
306303 entry.key
307304 } else {
308− let key = self.next_string_key.get();
309− self.next_string_key.set(key + 1);
305+ let key = self.next_string_key;
306+ self.next_string_key += 1;
310307 let entry = StringsCacheEntry { key, used: true };
311308 self.strings_cache.insert(string.to_string(), entry);
312309 self.op3(