| Index: pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart
|
| diff --git a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart
|
| index 877477e60025bd0c83ff1a788b0d561820dfa0e4..eb9a5879c30671a30a2ac7e165a7e4c2a3640b1e 100644
|
| --- a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart
|
| +++ b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart
|
| @@ -1506,12 +1506,18 @@ class OldEmitter implements Emitter {
|
| // TODO(karlklose): add a TypedefBuilder and move this code there.
|
| DartType type = typedef.alias;
|
| int typeIndex = metadataEmitter.reifyType(type);
|
| - String typeReference =
|
| - encoding.encodeTypedefFieldDescriptor(typeIndex);
|
| - jsAst.Property descriptor = new jsAst.Property(
|
| - js.string(namer.classDescriptorProperty),
|
| - js.string(typeReference));
|
| - jsAst.Node declaration = new jsAst.ObjectInitializer([descriptor]);
|
| + ClassBuilder builder = new ClassBuilder(typedef, namer);
|
| + builder.addProperty(embeddedNames.TYPEDEF_TYPE_PROPERTY_NAME,
|
| + js.number(typeIndex));
|
| + builder.addProperty(embeddedNames.TYPEDEF_PREDICATE_PROPERTY_NAME,
|
| + js.boolean(true));
|
| +
|
| + // We can be pretty sure that the objectClass is initialized, since
|
| + // typedefs are only emitted with reflection, which requires lots of
|
| + // classes.
|
| + assert(compiler.objectClass != null);
|
| + builder.superName = namer.getNameOfClass(compiler.objectClass);
|
| + jsAst.Node declaration = builder.toObjectInitializer();
|
| String mangledName = namer.getNameX(typedef);
|
| String reflectionName = getReflectionName(typedef, mangledName);
|
| getElementDescriptor(library)
|
|
|