Version 2.14.0-28.0.dev

Merge commit 'b529afd10a733dfcca2066b36a2b74a24b184f46' into 'dev'
diff --git a/pkg/compiler/lib/src/common_elements.dart b/pkg/compiler/lib/src/common_elements.dart
index 81237f8..a57232b 100644
--- a/pkg/compiler/lib/src/common_elements.dart
+++ b/pkg/compiler/lib/src/common_elements.dart
@@ -455,7 +455,7 @@
 
   // From dart:_rti
 
-  FunctionEntity get setRuntimeTypeInfo;
+  FunctionEntity get setArrayType;
 
   FunctionEntity get findType;
   FunctionEntity get instanceType;
@@ -1848,10 +1848,10 @@
   FunctionEntity _findRtiFunction(String name) =>
       _findLibraryMember(rtiLibrary, name);
 
-  FunctionEntity _setRuntimeTypeInfo;
+  FunctionEntity _setArrayType;
   @override
-  FunctionEntity get setRuntimeTypeInfo =>
-      _setRuntimeTypeInfo ??= _findRtiFunction('setRuntimeTypeInfo');
+  FunctionEntity get setArrayType =>
+      _setArrayType ??= _findRtiFunction('_setArrayType');
 
   FunctionEntity _findType;
   @override
diff --git a/pkg/compiler/lib/src/js_backend/backend_impact.dart b/pkg/compiler/lib/src/js_backend/backend_impact.dart
index 3bd71af..cb72411 100644
--- a/pkg/compiler/lib/src/js_backend/backend_impact.dart
+++ b/pkg/compiler/lib/src/js_backend/backend_impact.dart
@@ -108,7 +108,7 @@
 
   BackendImpact get computeSignature {
     return _computeSignature ??= new BackendImpact(globalUses: [
-      _commonElements.setRuntimeTypeInfo,
+      _commonElements.setArrayType,
     ], otherImpacts: [
       listValues
     ]);
@@ -443,7 +443,7 @@
 
   BackendImpact get typeVariableExpression {
     return _typeVariableExpression ??= new BackendImpact(staticUses: [
-      _commonElements.setRuntimeTypeInfo,
+      _commonElements.setArrayType,
       _commonElements.createRuntimeType
     ], otherImpacts: [
       listValues,
@@ -464,7 +464,7 @@
   BackendImpact get genericTypeCheck {
     return _genericTypeCheck ??= new BackendImpact(staticUses: [
       // TODO(johnniwinther): Investigate why this is needed.
-      _commonElements.setRuntimeTypeInfo,
+      _commonElements.setArrayType,
     ], otherImpacts: [
       listValues,
       getRuntimeTypeArgument,
@@ -654,7 +654,7 @@
         // Literal lists can be translated into calls to these functions:
         globalUses: [
           _commonElements.jsArrayTypedConstructor,
-          _commonElements.setRuntimeTypeInfo,
+          _commonElements.setArrayType,
         ]);
   }
 
@@ -688,7 +688,7 @@
     return _runtimeTypeSupport ??= new BackendImpact(globalClasses: [
       _commonElements.listClass
     ], globalUses: [
-      _commonElements.setRuntimeTypeInfo,
+      _commonElements.setArrayType,
     ], otherImpacts: [
       getRuntimeTypeArgument,
       computeSignature
diff --git a/pkg/compiler/lib/src/js_backend/codegen_listener.dart b/pkg/compiler/lib/src/js_backend/codegen_listener.dart
index bbac3ae..f033b01 100644
--- a/pkg/compiler/lib/src/js_backend/codegen_listener.dart
+++ b/pkg/compiler/lib/src/js_backend/codegen_listener.dart
@@ -202,7 +202,7 @@
     if (type is InterfaceType) {
       impactBuilder.registerTypeUse(new TypeUse.instantiation(type));
       if (_rtiNeed.classNeedsTypeArguments(type.element)) {
-        FunctionEntity helper = _commonElements.setRuntimeTypeInfo;
+        FunctionEntity helper = _commonElements.setArrayType;
         impactBuilder.registerStaticUse(new StaticUse.staticInvoke(
             helper, helper.parameterStructure.callStructure));
       }
diff --git a/pkg/compiler/lib/src/js_backend/constant_emitter.dart b/pkg/compiler/lib/src/js_backend/constant_emitter.dart
index 9fea86f..0d0cf6c 100644
--- a/pkg/compiler/lib/src/js_backend/constant_emitter.dart
+++ b/pkg/compiler/lib/src/js_backend/constant_emitter.dart
@@ -437,8 +437,7 @@
       ConstantValue constant, InterfaceType type, jsAst.Expression value) {
     assert(type.element == _commonElements.jsArrayClass);
     if (_rtiNeed.classNeedsTypeArguments(type.element)) {
-      return new jsAst.Call(
-          getHelperProperty(_commonElements.setRuntimeTypeInfo),
+      return new jsAst.Call(getHelperProperty(_commonElements.setArrayType),
           [value, _reifiedTypeNewRti(type)]);
     }
     return value;
diff --git a/pkg/compiler/lib/src/js_backend/minify_namer.dart b/pkg/compiler/lib/src/js_backend/minify_namer.dart
index 60a2b9c..bf2f56c 100644
--- a/pkg/compiler/lib/src/js_backend/minify_namer.dart
+++ b/pkg/compiler/lib/src/js_backend/minify_namer.dart
@@ -178,7 +178,7 @@
       r'JSArray',
       r'createInvocationMirror',
       r'String',
-      r'setRuntimeTypeInfo',
+      r'setArrayType',
       r'createRuntimeType'
     ]);
   }
@@ -389,8 +389,11 @@
     String root = selector.isOperator
         ? operatorNameToIdentifier(selector.name)
         : privateName(selector.memberName);
-    String prefix =
-        selector.isGetter ? r"$get" : selector.isSetter ? r"$set" : "";
+    String prefix = selector.isGetter
+        ? r"$get"
+        : selector.isSetter
+            ? r"$set"
+            : "";
     String callSuffix = selector.isCall
         ? Namer.callSuffixForStructure(selector.callStructure).join()
         : "";
diff --git a/pkg/compiler/lib/src/ssa/builder_kernel.dart b/pkg/compiler/lib/src/ssa/builder_kernel.dart
index 0520273..c9a40cd 100644
--- a/pkg/compiler/lib/src/ssa/builder_kernel.dart
+++ b/pkg/compiler/lib/src/ssa/builder_kernel.dart
@@ -2200,14 +2200,14 @@
   HInstruction _callSetRuntimeTypeInfo(HInstruction typeInfo,
       HInstruction newObject, SourceInformation sourceInformation) {
     // Set the runtime type information on the object.
-    FunctionEntity typeInfoSetterFn = _commonElements.setRuntimeTypeInfo;
+    FunctionEntity typeInfoSetterFn = _commonElements.setArrayType;
     // TODO(efortuna): Insert source information in this static invocation.
     _pushStaticInvocation(typeInfoSetterFn, <HInstruction>[newObject, typeInfo],
         _abstractValueDomain.dynamicType, const <DartType>[],
         sourceInformation: sourceInformation);
 
     // The new object will now be referenced through the
-    // `setRuntimeTypeInfo` call. We therefore set the type of that
+    // `setArrayType` call. We therefore set the type of that
     // instruction to be of the object's type.
     assert(
         stack.last is HInvokeStatic || stack.last == newObject,
diff --git a/pkg/compiler/lib/src/ssa/optimize.dart b/pkg/compiler/lib/src/ssa/optimize.dart
index 8a819a1..f90ed78 100644
--- a/pkg/compiler/lib/src/ssa/optimize.dart
+++ b/pkg/compiler/lib/src/ssa/optimize.dart
@@ -721,7 +721,7 @@
     //     t1 = s.split(pattern);
     //     t2 = String;
     //     t3 = JSArray<t2>;
-    //     t4 = setRuntimeTypeInfo(t1, t3);
+    //     t4 = setArrayType(t1, t3);
     //
 
     AbstractValue resultMask = _abstractValueDomain.growableListType;
@@ -751,7 +751,7 @@
     node.block.addBefore(node, typeInfo);
 
     HInvokeStatic tagInstruction = new HInvokeStatic(
-        commonElements.setRuntimeTypeInfo,
+        commonElements.setArrayType,
         <HInstruction>[splitInstruction, typeInfo],
         resultMask,
         const <DartType>[]);
@@ -1368,8 +1368,8 @@
     // Can we find the length as an input to an allocation?
     HInstruction potentialAllocation = receiver;
     if (receiver is HInvokeStatic &&
-        receiver.element == commonElements.setRuntimeTypeInfo) {
-      // Look through `setRuntimeTypeInfo(new Array(), ...)`
+        receiver.element == commonElements.setArrayType) {
+      // Look through `setArrayType(new Array(), ...)`
       potentialAllocation = receiver.inputs.first;
     }
     if (_graph.allocatedFixedLists.contains(potentialAllocation)) {
@@ -1619,7 +1619,7 @@
             node.inputs[0], node.inputs[1], _abstractValueDomain.boolType)
           ..sourceInformation = node.sourceInformation;
       }
-    } else if (element == commonElements.setRuntimeTypeInfo) {
+    } else if (element == commonElements.setArrayType) {
       if (node.inputs.length == 2) {
         return handleArrayTypeInfo(node);
       }
@@ -2066,7 +2066,7 @@
     }
 
     if (instance is HInvokeStatic &&
-        instance.element == commonElements.setRuntimeTypeInfo) {
+        instance.element == commonElements.setArrayType) {
       // TODO(sra): What is the 'instantiated type' we should be registering as
       // discussed above? Perhaps it should be carried on HLiteralList.
       return instance.inputs.last;
@@ -3527,7 +3527,7 @@
         // have it escape or store it into an object that escapes.
         return false;
         // TODO(sra): Handle library functions that we know do not modify or
-        // leak the inputs. For example `setRuntimeTypeInfo` is used to mark
+        // leak the inputs. For example `setArrayType` is used to mark
         // list literals with type information.
       }
       if (use is HPhi) {
diff --git a/pkg/compiler/test/codegen/data/array_add.dart b/pkg/compiler/test/codegen/data/array_add.dart
index 9f2cb1ad..d9c0fd3 100644
--- a/pkg/compiler/test/codegen/data/array_add.dart
+++ b/pkg/compiler/test/codegen/data/array_add.dart
@@ -7,7 +7,7 @@
 // TODO(sra): Lower when type of input does not need a generic covariant check.
 @pragma('dart2js:noInline')
 /*spec.member: test1:function() {
-  var t1 = H.setRuntimeTypeInfo([], type$.JSArray_int);
+  var t1 = H._setArrayType([], type$.JSArray_int);
   C.JSArray_methods.add$1(t1, 1);
   return t1;
 }*/
diff --git a/pkg/compiler/test/impact/data/async.dart b/pkg/compiler/test/impact/data/async.dart
index 5516954..369b8ea 100644
--- a/pkg/compiler/test/impact/data/async.dart
+++ b/pkg/compiler/test/impact/data/async.dart
@@ -72,8 +72,8 @@
   _IterationMarker.uncaughtError(1),
   _IterationMarker.yieldStar(1),
   _makeSyncStarIterable<Null>(1),
-  def:local,
-  setRuntimeTypeInfo(2)],
+  _setArrayType(2),
+  def:local],
  type=[
   inst:Function,
   inst:JSArray<dynamic>,
@@ -95,9 +95,9 @@
   _asyncReturn(2),
   _asyncStartSync(2),
   _makeAsyncAwaitCompleter<Null>(0),
+  _setArrayType(2),
   _wrapJsFunctionForAsync(1),
-  def:local,
-  setRuntimeTypeInfo(2)],
+  def:local],
  type=[
   inst:Function,
   inst:JSArray<dynamic>,
@@ -118,10 +118,10 @@
   _IterationMarker.yieldStar(1),
   _asyncStarHelper(3),
   _makeAsyncStarStreamController<Null>(1),
+  _setArrayType(2),
   _streamOfController(1),
   _wrapJsFunctionForAsync(1),
-  def:local,
-  setRuntimeTypeInfo(2)],
+  def:local],
  type=[
   inst:Function,
   inst:JSArray<dynamic>,
@@ -141,8 +141,8 @@
   _IterationMarker.uncaughtError(1),
   _IterationMarker.yieldStar(1),
   _makeSyncStarIterable<Null>(1),
-  def:<anonymous>,
-  setRuntimeTypeInfo(2)],
+  _setArrayType(2),
+  def:<anonymous>],
  type=[
   inst:Function,
   inst:JSArray<dynamic>,
@@ -163,9 +163,9 @@
   _asyncReturn(2),
   _asyncStartSync(2),
   _makeAsyncAwaitCompleter<Null>(0),
+  _setArrayType(2),
   _wrapJsFunctionForAsync(1),
-  def:<anonymous>,
-  setRuntimeTypeInfo(2)],
+  def:<anonymous>],
  type=[
   inst:Function,
   inst:JSArray<dynamic>,
@@ -185,10 +185,10 @@
   _IterationMarker.yieldStar(1),
   _asyncStarHelper(3),
   _makeAsyncStarStreamController<Null>(1),
+  _setArrayType(2),
   _streamOfController(1),
   _wrapJsFunctionForAsync(1),
-  def:<anonymous>,
-  setRuntimeTypeInfo(2)],
+  def:<anonymous>],
  type=[
   inst:Function,
   inst:JSArray<dynamic>,
diff --git a/pkg/compiler/test/impact/data/classes.dart b/pkg/compiler/test/impact/data/classes.dart
index bbd8d76..3b8bfc7 100644
--- a/pkg/compiler/test/impact/data/classes.dart
+++ b/pkg/compiler/test/impact/data/classes.dart
@@ -231,9 +231,9 @@
     _isObject(1),
     _isString(1),
     _isTop(1),
+    _setArrayType(2),
     findType(1),
-    instanceType(1),
-    setRuntimeTypeInfo(2)],
+    instanceType(1)],
    type=[
     inst:Closure,
     inst:JSArray<dynamic>,
@@ -313,9 +313,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
@@ -419,9 +419,9 @@
     _isObject(1),
     _isString(1),
     _isTop(1),
+    _setArrayType(2),
     findType(1),
-    instanceType(1),
-    setRuntimeTypeInfo(2)],
+    instanceType(1)],
    type=[
     inst:Closure,
     inst:JSArray<dynamic>,
diff --git a/pkg/compiler/test/impact/data/constants/lib.dart b/pkg/compiler/test/impact/data/constants/lib.dart
index 78375a3..9e25e3c 100644
--- a/pkg/compiler/test/impact/data/constants/lib.dart
+++ b/pkg/compiler/test/impact/data/constants/lib.dart
@@ -79,9 +79,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
diff --git a/pkg/compiler/test/impact/data/expressions.dart b/pkg/compiler/test/impact/data/expressions.dart
index 2beebc8..c486012 100644
--- a/pkg/compiler/test/impact/data/expressions.dart
+++ b/pkg/compiler/test/impact/data/expressions.dart
@@ -253,9 +253,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   as:GenericClass<int*,String*>*,
   inst:Closure,
diff --git a/pkg/compiler/test/impact/data/extract_type_arguments.dart b/pkg/compiler/test/impact/data/extract_type_arguments.dart
index 47058df..5e3a2e4 100644
--- a/pkg/compiler/test/impact/data/extract_type_arguments.dart
+++ b/pkg/compiler/test/impact/data/extract_type_arguments.dart
@@ -50,10 +50,10 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   extractTypeArguments<A<dynamic>*>(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   impl:A<dynamic>*,
   impl:Function,
@@ -104,10 +104,10 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   extractTypeArguments<B<dynamic,dynamic>*>(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   impl:B<dynamic,dynamic>*,
   impl:Function,
diff --git a/pkg/compiler/test/impact/data/initializers.dart b/pkg/compiler/test/impact/data/initializers.dart
index bb2066f..842f6d9 100644
--- a/pkg/compiler/test/impact/data/initializers.dart
+++ b/pkg/compiler/test/impact/data/initializers.dart
@@ -343,9 +343,9 @@
     _isObject(1),
     _isString(1),
     _isTop(1),
+    _setArrayType(2),
     findType(1),
-    instanceType(1),
-    setRuntimeTypeInfo(2)],
+    instanceType(1)],
    type=[
     inst:Closure,
     inst:JSArray<dynamic>,
diff --git a/pkg/compiler/test/impact/data/injected_cast.dart b/pkg/compiler/test/impact/data/injected_cast.dart
index 6c17bad..4d41937 100644
--- a/pkg/compiler/test/impact/data/injected_cast.dart
+++ b/pkg/compiler/test/impact/data/injected_cast.dart
@@ -148,9 +148,9 @@
     _isObject(1),
     _isString(1),
     _isTop(1),
+    _setArrayType(2),
     findType(1),
-    instanceType(1),
-    setRuntimeTypeInfo(2)],
+    instanceType(1)],
    type=[
     inst:Closure,
     inst:JSArray<dynamic>,
@@ -201,9 +201,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   impl:A*,
   inst:Closure,
@@ -459,9 +459,9 @@
     _isObject(1),
     _isString(1),
     _isTop(1),
+    _setArrayType(2),
     findType(1),
-    instanceType(1),
-    setRuntimeTypeInfo(2)],
+    instanceType(1)],
    type=[
     inst:Closure,
     inst:JSArray<dynamic>,
@@ -517,9 +517,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   impl:A*,
   impl:D*,
@@ -577,9 +577,9 @@
     _isObject(1),
     _isString(1),
     _isTop(1),
+    _setArrayType(2),
     findType(1),
-    instanceType(1),
-    setRuntimeTypeInfo(2)],
+    instanceType(1)],
    type=[
     inst:Closure,
     inst:JSArray<dynamic>,
@@ -635,9 +635,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   impl:A*,
   impl:D*,
@@ -752,9 +752,9 @@
     _isObject(1),
     _isString(1),
     _isTop(1),
+    _setArrayType(2),
     findType(1),
-    instanceType(1),
-    setRuntimeTypeInfo(2)],
+    instanceType(1)],
    type=[
     inst:Closure,
     inst:JSArray<dynamic>,
@@ -803,9 +803,9 @@
     _isObject(1),
     _isString(1),
     _isTop(1),
+    _setArrayType(2),
     findType(1),
-    instanceType(1),
-    setRuntimeTypeInfo(2)],
+    instanceType(1)],
    type=[
     inst:Closure,
     inst:JSArray<dynamic>,
@@ -859,9 +859,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   impl:List<int*>*,
   inst:Closure,
diff --git a/pkg/compiler/test/impact/data/invokes.dart b/pkg/compiler/test/impact/data/invokes.dart
index a95e117..dee6d17 100644
--- a/pkg/compiler/test/impact/data/invokes.dart
+++ b/pkg/compiler/test/impact/data/invokes.dart
@@ -243,9 +243,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
@@ -334,9 +334,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
@@ -384,9 +384,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
@@ -434,9 +434,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
@@ -484,9 +484,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
@@ -796,9 +796,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
@@ -912,8 +912,8 @@
 
 /*member: testLocalFunction:
  static=[
-  def:localFunction,
-  setRuntimeTypeInfo(2)],
+  _setArrayType(2),
+  def:localFunction],
  type=[
   inst:Function,
   inst:JSArray<dynamic>,
@@ -962,10 +962,10 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   def:localFunction,
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:Function,
@@ -986,9 +986,9 @@
 /*member: testLocalFunctionInvoke:
  dynamic=[call(0)],
  static=[
+  _setArrayType(2),
   def:localFunction,
-  localFunction(0),
-  setRuntimeTypeInfo(2)],
+  localFunction(0)],
  type=[
   inst:Function,
   inst:JSArray<dynamic>,
@@ -1004,8 +1004,8 @@
 
 /*member: testLocalFunctionGet:
  static=[
-  def:localFunction,
-  setRuntimeTypeInfo(2)],
+  _setArrayType(2),
+  def:localFunction],
  type=[
   inst:Function,
   inst:JSArray<dynamic>,
@@ -1021,8 +1021,8 @@
 
 /*member: testClosure:
  static=[
-  def:<anonymous>,
-  setRuntimeTypeInfo(2)],
+  _setArrayType(2),
+  def:<anonymous>],
  type=[
   inst:Function,
   inst:JSArray<dynamic>,
@@ -1038,8 +1038,8 @@
 /*member: testClosureInvoke:
  dynamic=[call(0)],
  static=[
-  def:<anonymous>,
-  setRuntimeTypeInfo(2)],
+  _setArrayType(2),
+  def:<anonymous>],
  type=[
   inst:Function,
   inst:JSArray<dynamic>,
diff --git a/pkg/compiler/test/impact/data/jsinterop.dart b/pkg/compiler/test/impact/data/jsinterop.dart
index 9850acf..3f41558 100644
--- a/pkg/compiler/test/impact/data/jsinterop.dart
+++ b/pkg/compiler/test/impact/data/jsinterop.dart
@@ -96,9 +96,9 @@
     _isObject(1),
     _isString(1),
     _isTop(1),
+    _setArrayType(2),
     findType(1),
-    instanceType(1),
-    setRuntimeTypeInfo(2)],
+    instanceType(1)],
    type=[
     inst:Closure,
     inst:JSArray<dynamic>,
diff --git a/pkg/compiler/test/impact/data/jsinterop_setter2.dart b/pkg/compiler/test/impact/data/jsinterop_setter2.dart
index 82f71cb..4c63bbb 100644
--- a/pkg/compiler/test/impact/data/jsinterop_setter2.dart
+++ b/pkg/compiler/test/impact/data/jsinterop_setter2.dart
@@ -46,9 +46,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
diff --git a/pkg/compiler/test/impact/data/runtime_type.dart b/pkg/compiler/test/impact/data/runtime_type.dart
index 926936d..bc6a52a 100644
--- a/pkg/compiler/test/impact/data/runtime_type.dart
+++ b/pkg/compiler/test/impact/data/runtime_type.dart
@@ -114,9 +114,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
@@ -170,9 +170,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
@@ -226,9 +226,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
@@ -280,9 +280,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
@@ -335,9 +335,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
@@ -390,9 +390,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
@@ -443,9 +443,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
@@ -498,9 +498,9 @@
   _isObject(1),
   _isString(1),
   _isTop(1),
+  _setArrayType(2),
   findType(1),
-  instanceType(1),
-  setRuntimeTypeInfo(2)],
+  instanceType(1)],
  type=[
   inst:Closure,
   inst:JSArray<dynamic>,
diff --git a/sdk/lib/_internal/js_runtime/lib/rti.dart b/sdk/lib/_internal/js_runtime/lib/rti.dart
index 376e39a..53e7de9 100644
--- a/sdk/lib/_internal/js_runtime/lib/rti.dart
+++ b/sdk/lib/_internal/js_runtime/lib/rti.dart
@@ -626,7 +626,7 @@
 // Don't inline.  Let the JS engine inline this.  The call expression is much
 // more compact that the inlined expansion.
 @pragma('dart2js:noInline')
-Object? setRuntimeTypeInfo(Object? target, Object? rti) {
+Object? _setArrayType(Object? target, Object? rti) {
   assert(rti != null);
   var rtiProperty = JS_EMBEDDED_GLOBAL('', ARRAY_RTI_PROPERTY);
   JS('var', r'#[#] = #', target, rtiProperty, rti);
diff --git a/tools/VERSION b/tools/VERSION
index 76da197..653f4d4 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 14
 PATCH 0
-PRERELEASE 27
+PRERELEASE 28
 PRERELEASE_PATCH 0
\ No newline at end of file