| Index: tools/dom/src/dart2js_CustomElementSupport.dart
|
| diff --git a/tools/dom/src/dart2js_CustomElementSupport.dart b/tools/dom/src/dart2js_CustomElementSupport.dart
|
| index a3fa0bf1360ec05df789d057c278c12991f59646..8edecc44a8edc2fd472ef40f9c7234c5a7b5dab6 100644
|
| --- a/tools/dom/src/dart2js_CustomElementSupport.dart
|
| +++ b/tools/dom/src/dart2js_CustomElementSupport.dart
|
| @@ -4,8 +4,10 @@
|
|
|
| part of dart.dom.html;
|
|
|
| -_callCreated(receiver) {
|
| - return receiver.createdCallback();
|
| +_callConstructor(constructor) {
|
| + return (receiver) {
|
| + return JS('', '#(#)', constructor, receiver);
|
| + };
|
| }
|
|
|
| _callEnteredView(receiver) {
|
| @@ -84,6 +86,11 @@ void _registerCustomElement(context, document, String tag, Type type,
|
| throw new ArgumentError(type);
|
| }
|
|
|
| + var constructor = findConstructorForWebComponentType(type, 'created');
|
| + if (constructor == null) {
|
| + throw new ArgumentError("$type has no constructor called 'created'");
|
| + }
|
| +
|
| // Workaround for 13190- use an article element to ensure that HTMLElement's
|
| // interceptor is resolved correctly.
|
| getNativeInterceptor(new Element.tag('article'));
|
| @@ -99,7 +106,8 @@ void _registerCustomElement(context, document, String tag, Type type,
|
| var properties = JS('=Object', '{}');
|
|
|
| JS('void', '#.createdCallback = #', properties,
|
| - JS('=Object', '{value: #}', _makeCallbackMethod(_callCreated)));
|
| + JS('=Object', '{value: #}',
|
| + _makeCallbackMethod(_callConstructor(constructor))));
|
| JS('void', '#.enteredViewCallback = #', properties,
|
| JS('=Object', '{value: #}', _makeCallbackMethod(_callEnteredView)));
|
| JS('void', '#.leftViewCallback = #', properties,
|
|
|