| Index: sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| index 43a7c0639cf1a88c71afae8663ed28372d0ea5a9..93d02784641af6493c904987245a7204a777f0ff 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| @@ -326,6 +326,9 @@ class JavaScriptBackend extends Backend {
|
| /// List of elements that the backend may use.
|
| final Set<Element> helpersUsed = new Set<Element>();
|
|
|
| + /// Set of typedefs that are used as type literals.
|
| + final Set<TypedefElement> typedefTypeLiterals = new Set<TypedefElement>();
|
| +
|
| /// All the checked mode helpers.
|
| static const checkedModeHelpers = CheckedModeHelper.helpers;
|
|
|
| @@ -1907,13 +1910,11 @@ class JavaScriptBackend extends Backend {
|
| if (foundClosure) {
|
| reflectableMembers.add(closureClass);
|
| }
|
| + // It would be nice to have a better means to select
|
| Set<Element> closurizedMembers = compiler.resolverWorld.closurizedMembers;
|
| if (closurizedMembers.any(reflectableMembers.contains)) {
|
| reflectableMembers.add(boundClosureClass);
|
| }
|
| - // Add typedefs.
|
| - reflectableMembers
|
| - .addAll(compiler.world.allTypedefs.where(referencedFromMirrorSystem));
|
| // Register all symbols of reflectable elements
|
| for (Element element in reflectableMembers) {
|
| symbolsUsed.add(element.name);
|
| @@ -2134,7 +2135,7 @@ class JavaScriptionResolutionCallbacks extends ResolutionCallbacks {
|
| // when reflection is used. However, as long as we disable tree-shaking
|
| // eagerly it doesn't matter.
|
| if (type.isTypedef) {
|
| - backend.compiler.world.allTypedefs.add(type.element);
|
| + backend.typedefTypeLiterals.add(type.element);
|
| }
|
| backend.customElementsAnalysis.registerTypeLiteral(type, registry);
|
| }
|
|
|