It's not really a general purpose diffing algorithm. It probably doesn't handle every corner case as it only does what I need it to do in the few places I actually need it.
Okay, so this is indeed very interesting. I just launched the same version of Firefox in a Win10 VM, and it works there too. So it might be one of your extensions, maybe? (I use uBlock Origin too, so that's not it.)
Could you try these things out please?
1. Try disabling all of your extensions and try again. (IIRC by default private mode disables all of the extensions, so that should be an easy way to do it.)
2. Can you open the dev console and try running something like this in it?
document.querySelector("audio").play()
Based on your original error either the `previousElementSibling` is not an `<audio>` tag, or for some reason audio tags don't have a play method, so it'd be good to know which one it is.
One of my projects where I'm using this approach is this one: https://jpdb.io
> And could you tell us more about the DOM diffing algorithm?
I'll paste what I wrote in another reply to a post asking the same question:
It's really nothing special. I wrote the whole thing in, like, a single afternoon. If you're interested, here it is:
https://pastebin.com/V7UiWj1e
It's not really a general purpose diffing algorithm. It probably doesn't handle every corner case as it only does what I need it to do in the few places I actually need it.