mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 19:21:30 +00:00
Fix mutation observer test bug dartbug.com/15497
BUG= R=blois@google.com Review URL: https://codereview.chromium.org//102373007 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31143 260f80e4-7a28-3924-810f-c04153c831b5
This commit is contained in:
parent
408427e80d
commit
25238b3af9
|
@ -6,9 +6,6 @@ event_test: Skip # Issue 1996
|
|||
interactive_test: Skip # Must be run manually.
|
||||
dromaeo_smoke_test: Skip # Issue 14521, 8257
|
||||
|
||||
[ $compiler == dart2js && $csp && $runtime == drt ]
|
||||
mutationobserver_test: Skip # http://dartbug.com/15497
|
||||
|
||||
[ $compiler == dart2js && $csp ]
|
||||
custom/js_custom_test: Fail # Issue 14643
|
||||
|
||||
|
|
|
@ -7,6 +7,16 @@ import '../../pkg/unittest/lib/unittest.dart';
|
|||
import '../../pkg/unittest/lib/html_individual_config.dart';
|
||||
import 'dart:html';
|
||||
|
||||
// MutationObservers sometimes do not fire if the node being observed is GCed
|
||||
// so we keep around references to all nodes we have created mutation
|
||||
// observers for. As a side note, this behavior only manifests in content_shell
|
||||
// and not chrome and the behavior goes away in content_shell if the flag
|
||||
// -js-flags="--gc_global" is passed to content_shell. Note: the gc behavior
|
||||
// only has been detected when running dart2js but could equally reasonably
|
||||
// impact the dartvm as well unless it is specified that mutation events must
|
||||
// be delivered even if the object the events are for has already been GCed.
|
||||
var keepAlive = [];
|
||||
|
||||
/**
|
||||
* Test suite for Mutation Observers. This is just a small set of sanity
|
||||
* checks, not a complete test suite.
|
||||
|
@ -61,6 +71,7 @@ main() {
|
|||
test('direct-parallel options-named', () {
|
||||
expect(() {
|
||||
var container = new DivElement();
|
||||
keepAlive.add(container);
|
||||
var div1 = new DivElement();
|
||||
var div2 = new DivElement();
|
||||
var mutationObserver = new MutationObserver(
|
||||
|
@ -75,6 +86,7 @@ main() {
|
|||
test('direct-nested options-named', () {
|
||||
expect(() {
|
||||
var container = new DivElement();
|
||||
keepAlive.add(container);
|
||||
var div1 = new DivElement();
|
||||
var div2 = new DivElement();
|
||||
var mutationObserver =
|
||||
|
@ -89,6 +101,7 @@ main() {
|
|||
test('subtree options-named', () {
|
||||
expect(() {
|
||||
var container = new DivElement();
|
||||
keepAlive.add(container);
|
||||
var div1 = new DivElement();
|
||||
var div2 = new DivElement();
|
||||
var mutationObserver = new MutationObserver(
|
||||
|
|
Loading…
Reference in a new issue