Description
Version
2.6.11
Reproduction link
https://codesandbox.io/s/vue-safari-error-tg4mm
Steps to reproduce
The bug reproduction is quite specific, so please be patient
- open "App.vue" in safari (my version is 13.0.4 (15608.4.9.1.3))
- open the console so that you can watch the logs (the values of "e.TimeStamp" and "attachedTimestamp" from https://github.com/vuejs/vue/blob/dev/dist/vue.esm.js#L7549 are logged)
- make sure that the variable "WITH_GENERATE_NEW_VUE" is false
- wait a while. at least about a minute
- click the "Press me" button several times to make sure that everything works. most likely, in the console there will be "e.timeStamp, attachTimestamp 0 0"
Now the difficult and not completely clear part
- change the value of the variable "WITH_GENERATE_NEW_VUE" to true
- without reloading the browser page, click on the button
- now, most likely, the log will change to something similar to "e.timeStamp, attachedTimestamp 0 51478"
- this is Safari and "e.timeStamp" (the first number in the logs) is zero, but after some time or a few clicks, it will begin to grow and now until it becomes more than the value of "attachedTimestamp", the click will not work
What is expected?
click and method on it works
What is actually happening?
in the above case, this check is not performed
https://github.com/vuejs/vue/blob/dev/dist/vue.esm.js#L7549
This is a specific situation - something like emulating an application in which there is a lot of legacy. different sections can be written on different technologies and sometimes this bug is caught when switching between sections. Unfortunately, I can’t even suggest how this bug is related to the instantiation of a new vue, maybe this is a coincidence
I think this can be fixed by adding "e.target.contains (e.currentTarget)" to the conditions specified in https://github.com/vuejs/vue/blob/dev/dist/vue.esm.js#L7549 but I don’t know if this will not affect performance