| Index: sdk/lib/_internal/compiler/implementation/js_backend/constant_emitter.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/constant_emitter.dart b/sdk/lib/_internal/compiler/implementation/js_backend/constant_emitter.dart
|
| index a9e49c0f3a94f4bd2e4135cc72eef5626c55527f..40e4dc95f16a7ae45485b73bbdd0453d73def7ac 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/js_backend/constant_emitter.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/js_backend/constant_emitter.dart
|
| @@ -196,6 +196,29 @@ class ConstantEmitter implements ConstantVisitor {
|
| }
|
| }
|
|
|
| + void visitType(TypeConstant constant) {
|
| + if (shouldEmitCanonicalVersion) {
|
| + emitCanonicalVersion(constant);
|
| + } else {
|
| + SourceString helperSourceName =
|
| + const SourceString('createRuntimeType');
|
| + Element helper = compiler.findHelper(helperSourceName);
|
| + JavaScriptBackend backend = compiler.backend;
|
| + String helperName = backend.namer.getName(helper);
|
| + DartType type = constant.representedType;
|
| + Element element = type.element;
|
| + String typeName;
|
| + if (type.kind == TypeKind.INTERFACE) {
|
| + typeName =
|
| + compiler.codegenWorld.rti.generateRuntimeTypeString(element, 0);
|
| + } else {
|
| + assert(type.kind == TypeKind.TYPEDEF);
|
| + typeName = element.name.slowToString();
|
| + }
|
| + buffer.add("${namer.CURRENT_ISOLATE}.$helperName('$typeName')");
|
| + }
|
| + }
|
| +
|
| void visitConstructed(ConstructedConstant constant) {
|
| if (shouldEmitCanonicalVersion) {
|
| emitCanonicalVersion(constant);
|
|
|