| Index: sdk/lib/html/templates/html/dart2js/factoryprovider_MutationObserver.darttemplate
|
| diff --git a/sdk/lib/html/templates/html/dart2js/factoryprovider_MutationObserver.darttemplate b/sdk/lib/html/templates/html/dart2js/factoryprovider_MutationObserver.darttemplate
|
| index 2583ce802635e83fb12790e6a9ba5d603f0054aa..d92979b3943fa7acc996993f44a2d37b267efef1 100644
|
| --- a/sdk/lib/html/templates/html/dart2js/factoryprovider_MutationObserver.darttemplate
|
| +++ b/sdk/lib/html/templates/html/dart2js/factoryprovider_MutationObserver.darttemplate
|
| @@ -5,7 +5,20 @@
|
| part of html;
|
|
|
| class $FACTORYPROVIDER {
|
| - static $CONSTRUCTOR create$(CONSTRUCTOR)(MutationCallback callback) native '''
|
| + static $CONSTRUCTOR create$(CONSTRUCTOR)(MutationCallback callback) {
|
| +
|
| + // This is a hack to cause MutationRecord to appear to be instantiated.
|
| + //
|
| + // MutationCallback has a parameter type List<MutationRecord>. From this we
|
| + // infer a list is created in the browser, but not the element type, because
|
| + // other native fields and methods return plain List which is too general
|
| + // and would imply creating anything. This statement is a work-around.
|
| + JS('MutationRecord','0');
|
| +
|
| + return _create$(CONSTRUCTOR)(callback);
|
| + }
|
| +
|
| + static $CONSTRUCTOR _create$(CONSTRUCTOR)(MutationCallback callback) native '''
|
| var constructor =
|
| window.MutationObserver || window.WebKitMutationObserver ||
|
| window.MozMutationObserver;
|
|
|