Note that the result should likely be cached in the inner window, so that you return the same constructor everytime
This function is the function that constructs `MutationObserver`s, and each `MutationObserver` is independent from each other, that's why I didn't use a cache.