Fix for https://github.com/dart-lang/sdk/issues/28727

Use jsAst.Name uniformly in constructor parameters to prevent type
argument being renamed into a conflict.

BUG=
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2690583003 .
diff --git a/pkg/compiler/lib/src/js_emitter/class_stub_generator.dart b/pkg/compiler/lib/src/js_emitter/class_stub_generator.dart
index 06d08df..5d7b4b5 100644
--- a/pkg/compiler/lib/src/js_emitter/class_stub_generator.dart
+++ b/pkg/compiler/lib/src/js_emitter/class_stub_generator.dart
@@ -40,9 +40,8 @@
     var typeParameters = const <jsAst.Parameter>[];
     var typeInits = const <jsAst.Expression>[];
     if (hasRtiField) {
-      String parameterName = r'$ti';
-      typeParameters = parameterName;
-      typeInits = js('this.# = #', [namer.rtiFieldName, parameterName]);
+      typeParameters = namer.rtiFieldName;
+      typeInits = js('this.# = #', [namer.rtiFieldName, namer.rtiFieldName]);
     }
     return js('function(#, #) { #; #; this.#();}', [
       fields,