@@ -229,12 +229,18 @@ impl ChangeListBuilder<'_> {
229229
230230 pub fn set_attribute(&mut self, name: &str, value: &str) {
231231 debug_assert!(self.traversal_is_committed());
232− debug!("emit: set_attribute({:?}, {:?})", name, value);
233− let name_id = self.ensure_string(name);
234− let value_id = self.ensure_string(value);
235− self.state
236− .emitter
237− .set_attribute(name_id.into(), value_id.into());
232+ if name == "class" {
233+ let class_id = self.ensure_string(value);
234+ debug!("emit: set_class({:?})", value);
235+ self.state.emitter.set_class(class_id.into());
236+ } else {
237+ let name_id = self.ensure_string(name);
238+ let value_id = self.ensure_string(value);
239+ debug!("emit: set_attribute({:?}, {:?})", name, value);
240+ self.state
241+ .emitter
242+ .set_attribute(name_id.into(), value_id.into());
243+ }
238244 }
239245
240246 pub fn remove_attribute(&mut self, name: &str) {