fix: dont clone callbacks
@@ -209,6 +209,17 @@ impl<'b> VirtualDom {
// AttributeValue::None => todo!(),
// }
+ // Safety: we promise not to re-alias this text later on after committing it to the mutation
+
+ match &attribute.value {
+ AttributeValue::Listener(_) => {
+ self.mutations.push(NewEventListener {
+ // all listeners start with "on"
+ name: &unbounded_name[2..],
+ id,
+ })
+ }
+ _ => {
// Safety: we promise not to re-alias this text later on after committing it to the mutation
let unbounded_value = unsafe { std::mem::transmute(attribute.value.clone()) };
@@ -217,7 +228,9 @@ impl<'b> VirtualDom {
value: unbounded_value,
ns: attribute.namespace,
id,
- });
+ })
+ }
+ }
}
fn load_template_root(&mut self, template: &VNode, root_idx: usize) -> ElementId {
