polyfill for MutationObserver