### Vue version 3.5.13 ### Link to minimal reproduction https://codepen.io/markrian/pen/OPJmmoW ### Steps to reproduce 1. Write a dynamic event binding with a modifier, e.g., `@[eventName].once="onEvent"`. 2. Set `eventName` to an empty value, like `null`, `undefined` or empty string. 3. Notice that the modifier name is written as an attribute on the element. For example:  ### What is expected? The modifier name should _not_ become an attribute on the element.  ### What is actually happening? The modifier name becomes an attribute on the element, e.g.,  ### System Info ```shell ``` ### Any additional comments? [Vue 2.7.16 behaves as expected](https://codepen.io/markrian/pen/OPJQRPy), i.e., does not create an attribute.