Test WebKitMutationObserver.observe on a subtree On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". Testing basic aspects of subtree observation. ...attribute and characterData changes in subtree PASS mutations.length is 2 PASS mutations[0].type is "attributes" PASS mutations[0].target is subDiv PASS mutations[0].attributeName is "foo" PASS mutations[0].attributeNamespace is null PASS mutations[1].type is "characterData" PASS mutations[1].target is subDiv.firstChild Testing two observers at different depths. PASS mutations.length is 1 PASS mutations[0].type is "attributes" PASS mutations[0].target is subDiv PASS mutations[0].attributeName is "foo" PASS mutations[0].attributeNamespace is null PASS mutations2.length is 1 PASS mutations2[0].type is "attributes" PASS mutations2[0].target is subDiv PASS mutations2[0].attributeName is "foo" PASS mutations2[0].attributeNamespace is null Testing one observer at two different depths. PASS calls is 1 PASS mutations.length is 1 PASS mutations[0].type is "attributes" PASS mutations[0].target is subDiv PASS mutations[0].attributeName is "foo" PASS mutations[0].attributeNamespace is null Testing that transiently detached nodes are still observed via subtree. ...both changes should be received. Change detached subDiv again. PASS mutations.length is 2 PASS mutations[0].type is "attributes" PASS mutations[0].target is subDiv PASS mutations[0].attributeName is "foo" PASS mutations[1].type is "attributes" PASS mutations[1].target is subDiv PASS mutations[1].attributeName is "test" ...transient subtree observation was stopped after delivery, so subDiv change should not be received. Reattach and change again. PASS mutations is null ...reattached subtree should now be observable. Try detaching and re-observing. PASS mutations.length is 1 PASS mutations[0].type is "attributes" PASS mutations[0].target is subDiv PASS mutations[0].attributeName is "foo" ...The change made before re-observing should be received, but not the one after. PASS mutations.length is 1 PASS mutations[0].type is "characterData" PASS mutations[0].target is subDiv.firstChild Testing correct behavior of transient observation with complex movement . ...All changes should be received except for setting the "d" attribute on subDiv3 before it was reachable from div. PASS mutations.length is 6 PASS mutations[0].type is "attributes" PASS mutations[0].target is subDiv PASS mutations[0].attributeName is "a" PASS mutations[1].type is "attributes" PASS mutations[1].target is subDiv2 PASS mutations[1].attributeName is "b" PASS mutations[2].type is "characterData" PASS mutations[2].target is text PASS mutations[3].type is "attributes" PASS mutations[3].target is subDiv2 PASS mutations[3].attributeName is "e" PASS mutations[4].type is "attributes" PASS mutations[4].target is subDiv3 PASS mutations[4].attributeName is "f" PASS mutations[5].type is "attributes" PASS mutations[5].target is subDiv2 PASS mutations[5].attributeName is "g" PASS successfullyParsed is true TEST COMPLETE