Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/enqueue.dart |
| diff --git a/sdk/lib/_internal/compiler/implementation/enqueue.dart b/sdk/lib/_internal/compiler/implementation/enqueue.dart |
| index e489fb187294d571ad7d413a97c685b2ec130e64..f674e5b0b7601bc5c9704d9f94d169fafad97bda 100644 |
| --- a/sdk/lib/_internal/compiler/implementation/enqueue.dart |
| +++ b/sdk/lib/_internal/compiler/implementation/enqueue.dart |
| @@ -136,8 +136,27 @@ abstract class Enqueuer { |
| } |
| void registerTypeLiteral(Element element, TreeElements elements) { |
| + assert(isResolutionQueue); |
| registerInstantiatedClass(compiler.typeClass, elements); |
| compiler.backend.registerTypeLiteral(element, this, elements); |
| + registerEscapingConstructorsOfClass(element); |
| + } |
| + |
| + void registerEscapingConstructorsOfClass(ClassElement classElement) { |
| + // Web component classes have constructors that are escaped to the host |
| + // environment. |
| + classElement.forEachMember( |
| + (ClassElement enclosingClass, Element member) { |
| + if (member.isGenerativeConstructor()) { |
| + // isNativeOrExtendsNative is valid only after resolution. |
| + if (isResolutionQueue |
| + || Elements.isNativeOrExtendsNative(classElement)) { |
| + registerStaticUse(member); |
|
ahe
2013/10/03 07:44:49
This means that all constructors of type literals
sra1
2013/10/03 17:00:23
I think that isNativeOrExtendsNative can be made t
|
| + } |
| + } |
| + }, |
| + includeBackendMembers: false, |
| + includeSuperAndInjectedMembers: false); |
| } |
| bool checkNoEnqueuedInvokedInstanceMethods() { |