 
             target = map._parentNode
             if target._attachedToDocument
-                DOM.emit 'DOMAttrModified',
+                browser.emit 'DOMAttrModified',
                     target : target
                     attrName : attr.name
                     newValue : attr.value

        # Note: Unlike DOM, we only emit DOMNodeRemovedFromDocument on the root
        # of the removed subtree.
        if parent._attachedToDocument
            DOM.emit 'DOMNodeRemovedFromDocument',
                target : elem
                relatedNode : parent
    


    adviseProperty core.HTMLOptionElement, 'selected', (elem, value) ->
        if elem._attachedToDocument
            browser.emit 'DOMPropertyModified',
                target   : elem
                property : 'selected'
                value    : value

    adviseProperty core.CharacterData, '_nodeValue', (elem, value) ->
        if elem._parentNode?._attachedToDocument
            browser.emit 'DOMCharacterDataModified',
                target : elem

exports.wrapStyle = (core, browser) ->
    # JSDOM level2/style.js uses the style getter to lazily create the 
    # CSSStyleDeclaration object for the element.  To be able to emit
    # the right instruction in the style object advice, we need to have
