add mutationobserver-shim for tests and a test about not mutating DOM when it is not needed
fix mutations observer check