| Index: sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart b/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
|
| index 8d0c6a9bdcd39808fd44a6ceef4e6769a9975993..7a457526093ac65dafe2d90c24c29f5fac190b27 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
|
| @@ -2967,6 +2967,25 @@ class CodeEmitterTask extends CompilerTask {
|
| ClassElement classElement = element;
|
| elements.add(backend.emitter.constantReference(constant));
|
| elements.add(js(namer.isolateAccess(classElement)));
|
| +
|
| + // Create JavaScript Object map for by-name lookup of generative
|
| + // constructors.
|
| + var properties = [];
|
| + classElement.forEachMember(
|
| + (ClassElement enclosingClass, Element member) {
|
| + if (member.isGenerativeConstructor()) {
|
| + properties.add(
|
| + new jsAst.Property(
|
| + js.string(member.name.slowToString()),
|
| + new jsAst.VariableUse(
|
| + backend.namer.isolateAccess(member))));
|
| + }
|
| + },
|
| + includeBackendMembers: false,
|
| + includeSuperAndInjectedMembers: false);
|
| +
|
| + var map = new jsAst.ObjectInitializer(properties);
|
| + elements.add(map);
|
| }
|
| }
|
| }
|
|
|