Index: sdk/lib/_internal/compiler/implementation/js_emitter/metadata_emitter.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/js_emitter/metadata_emitter.dart b/sdk/lib/_internal/compiler/implementation/js_emitter/metadata_emitter.dart |
index 92b5f552bf72b92f83134e35709e5d669a0bd5dd..89fdfa6622a0a1097cf5860afc9c809f653c2f16 100644 |
--- a/sdk/lib/_internal/compiler/implementation/js_emitter/metadata_emitter.dart |
+++ b/sdk/lib/_internal/compiler/implementation/js_emitter/metadata_emitter.dart |
@@ -90,8 +90,20 @@ class MetadataEmitter extends CodeEmitterHelper { |
} |
void emitMetadata(CodeBuffer buffer) { |
- buffer.write('init.metadata$_=$_['); |
- for (String metadata in globalMetadata) { |
+ var literals = backend.typedefTypeLiterals.toList(); |
+ Elements.sortedByPosition(literals); |
+ var properties = []; |
+ for (TypedefElement literal in literals) { |
+ var key = namer.getNameX(literal); |
+ var value = js.number(reifyType(literal.rawType)); |
+ properties.add(new jsAst.Property(js.string(key), value)); |
+ } |
+ var map = new jsAst.ObjectInitializer(properties); |
+ buffer.write( |
+ jsAst.prettyPrint( |
+ js.statement('init.functionAliases = #', map), compiler)); |
+ buffer.write('${N}init.metadata$_=$_['); |
+ for (var metadata in globalMetadata) { |
if (metadata is String) { |
if (metadata != 'null') { |
buffer.write(metadata); |