Version 2.14.0-91.0.dev

Merge commit '9108f927ab92c6d679f551d1fb4a4d889c3b8546' into 'dev'
diff --git a/pkg/meta/lib/meta.dart b/pkg/meta/lib/meta.dart
index c6dff3b..45b2e84 100644
--- a/pkg/meta/lib/meta.dart
+++ b/pkg/meta/lib/meta.dart
@@ -209,9 +209,10 @@
 /// field) `m` in a class `C`. If the annotation is on a field it applies to the
 /// getter, and setter if appropriate, that are induced by the field. Indicates
 /// that `m` should only be invoked from instance methods of `C` or classes that
-/// extend, implement or mix in `C`, either directly or indirectly. Additionally
-/// indicates that `m` should only be invoked on `this`, whether explicitly or
-/// implicitly.
+/// extend, implement or mix in `C`, either directly or indirectly or from within
+/// the same library that `m` is declared in. Additionally indicates that `m`
+/// should only be invoked on `this` (when outside of the library that it is
+/// declared in), whether explicitly or implicitly.
 ///
 /// Tools, such as the analyzer, can provide feedback if
 ///
diff --git a/pkg/test_runner/lib/src/multitest.dart b/pkg/test_runner/lib/src/multitest.dart
index a194c73..0b3040e 100644
--- a/pkg/test_runner/lib/src/multitest.dart
+++ b/pkg/test_runner/lib/src/multitest.dart
@@ -75,8 +75,7 @@
 import "test_file.dart";
 import "utils.dart";
 
-/// Until legacy multitests are ported we need to support both /// and //#
-final multitestMarker = RegExp(r"//[/#]");
+final multitestMarker = "//#";
 
 final _multitestOutcomes = {
   'ok',
diff --git a/pkg/test_runner/tool/convert_multitest.dart b/pkg/test_runner/tool/convert_multitest.dart
index c44394e..0647876 100644
--- a/pkg/test_runner/tool/convert_multitest.dart
+++ b/pkg/test_runner/tool/convert_multitest.dart
@@ -159,7 +159,7 @@
   var suiteDirectory = Path.raw(Uri.base.path);
   var content = await testFile.readAsString();
   var test = TestFile.parse(suiteDirectory, testFilePath, content);
-  if (!multitestMarker.hasMatch(content)) {
+  if (!content.contains(multitestMarker)) {
     print("Test ${test.path.toNativePath()} is not a multi-test.");
     exitCode = 1;
     return;
diff --git a/runtime/observatory/tests/service/evaluate_activation_test.dart b/runtime/observatory/tests/service/evaluate_activation_test.dart
index bf65d96..5a5708f 100644
--- a/runtime/observatory/tests/service/evaluate_activation_test.dart
+++ b/runtime/observatory/tests/service/evaluate_activation_test.dart
@@ -84,28 +84,28 @@
     print("Event $event");
     if (event.kind == ServiceEvent.kPauseBreakpoint) {
       dynamic frameNumber = 1, r;
-      r = await isolate.evalFrame(frameNumber, '123');  /// instance: ok
-      expect(r.valueAsString, equals('123'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'this');  /// scope: ok
-      expect(r.clazz.name, equals('C'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'instVar');  /// instance: continued
-      expect(r.valueAsString, equals('1'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'classVar'); /// instance: continued
-      expect(r.valueAsString, equals('2'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'methodParam');  /// scope: continued
-      expect(r.valueAsString, equals('3'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'methodTemp');  /// scope: continued
-      expect(r.valueAsString, equals('4'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'outerParam');  /// scope: continued
-      expect(r.valueAsString, equals('5'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'outerTemp');  /// scope: continued
-      expect(r.valueAsString, equals('6'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'innerParam');  /// instance: continued
-      expect(r.valueAsString, equals('7'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'innerTemp');  /// instance: continued
-      expect(r.valueAsString, equals('8'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'math.sqrt');  /// instance: continued
-      expect(r.isClosure, isTrue);  /// instance: continued
+      r = await isolate.evalFrame(frameNumber, '123');  //# instance: ok
+      expect(r.valueAsString, equals('123'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'this');  //# scope: ok
+      expect(r.clazz.name, equals('C'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'instVar');  //# instance: continued
+      expect(r.valueAsString, equals('1'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'classVar'); //# instance: continued
+      expect(r.valueAsString, equals('2'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'methodParam');  //# scope: continued
+      expect(r.valueAsString, equals('3'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'methodTemp');  //# scope: continued
+      expect(r.valueAsString, equals('4'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'outerParam');  //# scope: continued
+      expect(r.valueAsString, equals('5'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'outerTemp');  //# scope: continued
+      expect(r.valueAsString, equals('6'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'innerParam');  //# instance: continued
+      expect(r.valueAsString, equals('7'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'innerTemp');  //# instance: continued
+      expect(r.valueAsString, equals('8'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'math.sqrt');  //# instance: continued
+      expect(r.isClosure, isTrue);  //# instance: continued
 
       hitBreakpoint = true;
       sub.cancel();  // Do not handle events for the other tests.
@@ -142,13 +142,13 @@
       r = await isolate.evalFrame(frameNumber, 'classVar');
       expect(r.valueAsString, equals('2'));
       r = await isolate.evalFrame(frameNumber, 'methodParam');
-      expect(r.valueAsString, equals('3'));  /// scope: continued
+      expect(r.valueAsString, equals('3'));  //# scope: continued
       r = await isolate.evalFrame(frameNumber, 'methodTemp');
-      expect(r.valueAsString, equals('4'));  /// scope: continued
+      expect(r.valueAsString, equals('4'));  //# scope: continued
       r = await isolate.evalFrame(frameNumber, 'outerParam');
-      expect(r.valueAsString, equals('5'));  /// scope: continued
+      expect(r.valueAsString, equals('5'));  //# scope: continued
       r = await isolate.evalFrame(frameNumber, 'outerTemp');
-      expect(r.valueAsString, equals('6'));  /// scope: continued
+      expect(r.valueAsString, equals('6'));  //# scope: continued
       r = await isolate.evalFrame(frameNumber, 'innerParam');
       expect(r.valueAsString, equals('7'));
       r = await isolate.evalFrame(frameNumber, 'innerTemp');
@@ -224,28 +224,28 @@
     print("Event $event");
     if (event.kind == ServiceEvent.kPauseBreakpoint) {
       dynamic frameNumber = 1, r;
-      r = await isolate.evalFrame(frameNumber, '123');  /// instance: continued
-      expect(r.valueAsString, equals('123'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'this');  /// scope: continued
-      expect(r.clazz.name, equals('C'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'instVar');  /// instance: continued
-      expect(r.valueAsString, equals('1'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'classVar');  /// instance: continued
-      expect(r.valueAsString, equals('2'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'methodParam');  /// scope: continued
-      expect(r.valueAsString, equals('3'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'methodTemp');  /// scope: continued
-      expect(r.valueAsString, equals('4'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'outerParam');  /// scope: continued
-      expect(r.valueAsString, equals('5'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'outerTemp');  /// scope: continued
-      expect(r.valueAsString, equals('6'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'innerParam');  /// instance: continued
-      expect(r.valueAsString, equals('7'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'innerTemp');  /// instance: continued
-      expect(r.valueAsString, equals('8'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'math.sqrt');  /// instance: continued
-      expect(r.isClosure, isTrue);  /// instance: continued
+      r = await isolate.evalFrame(frameNumber, '123');  //# instance: continued
+      expect(r.valueAsString, equals('123'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'this');  //# scope: continued
+      expect(r.clazz.name, equals('C'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'instVar');  //# instance: continued
+      expect(r.valueAsString, equals('1'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'classVar');  //# instance: continued
+      expect(r.valueAsString, equals('2'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'methodParam');  //# scope: continued
+      expect(r.valueAsString, equals('3'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'methodTemp');  //# scope: continued
+      expect(r.valueAsString, equals('4'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'outerParam');  //# scope: continued
+      expect(r.valueAsString, equals('5'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'outerTemp');  //# scope: continued
+      expect(r.valueAsString, equals('6'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'innerParam');  //# instance: continued
+      expect(r.valueAsString, equals('7'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'innerTemp');  //# instance: continued
+      expect(r.valueAsString, equals('8'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'math.sqrt');  //# instance: continued
+      expect(r.isClosure, isTrue);  //# instance: continued
 
       hitBreakpoint = true;
       sub.cancel();  // Do not handle events for the other tests.
diff --git a/runtime/observatory_2/tests/service_2/evaluate_activation_test.dart b/runtime/observatory_2/tests/service_2/evaluate_activation_test.dart
index 7967aae..a1c3a5b 100644
--- a/runtime/observatory_2/tests/service_2/evaluate_activation_test.dart
+++ b/runtime/observatory_2/tests/service_2/evaluate_activation_test.dart
@@ -84,28 +84,28 @@
     print("Event $event");
     if (event.kind == ServiceEvent.kPauseBreakpoint) {
       var frameNumber = 1, r;
-      r = await isolate.evalFrame(frameNumber, '123');  /// instance: ok
-      expect(r.valueAsString, equals('123'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'this');  /// scope: ok
-      expect(r.clazz.name, equals('C'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'instVar');  /// instance: continued
-      expect(r.valueAsString, equals('1'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'classVar'); /// instance: continued
-      expect(r.valueAsString, equals('2'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'methodParam');  /// scope: continued
-      expect(r.valueAsString, equals('3'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'methodTemp');  /// scope: continued
-      expect(r.valueAsString, equals('4'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'outerParam');  /// scope: continued
-      expect(r.valueAsString, equals('5'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'outerTemp');  /// scope: continued
-      expect(r.valueAsString, equals('6'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'innerParam');  /// instance: continued
-      expect(r.valueAsString, equals('7'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'innerTemp');  /// instance: continued
-      expect(r.valueAsString, equals('8'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'math.sqrt');  /// instance: continued
-      expect(r.isClosure, isTrue);  /// instance: continued
+      r = await isolate.evalFrame(frameNumber, '123');  //# instance: ok
+      expect(r.valueAsString, equals('123'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'this');  //# scope: ok
+      expect(r.clazz.name, equals('C'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'instVar');  //# instance: continued
+      expect(r.valueAsString, equals('1'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'classVar'); //# instance: continued
+      expect(r.valueAsString, equals('2'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'methodParam');  //# scope: continued
+      expect(r.valueAsString, equals('3'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'methodTemp');  //# scope: continued
+      expect(r.valueAsString, equals('4'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'outerParam');  //# scope: continued
+      expect(r.valueAsString, equals('5'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'outerTemp');  //# scope: continued
+      expect(r.valueAsString, equals('6'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'innerParam');  //# instance: continued
+      expect(r.valueAsString, equals('7'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'innerTemp');  //# instance: continued
+      expect(r.valueAsString, equals('8'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'math.sqrt');  //# instance: continued
+      expect(r.isClosure, isTrue);  //# instance: continued
 
       hitBreakpoint = true;
       sub.cancel();  // Do not handle events for the other tests.
@@ -142,13 +142,13 @@
       r = await isolate.evalFrame(frameNumber, 'classVar');
       expect(r.valueAsString, equals('2'));
       r = await isolate.evalFrame(frameNumber, 'methodParam');
-      expect(r.valueAsString, equals('3'));  /// scope: continued
+      expect(r.valueAsString, equals('3'));  //# scope: continued
       r = await isolate.evalFrame(frameNumber, 'methodTemp');
-      expect(r.valueAsString, equals('4'));  /// scope: continued
+      expect(r.valueAsString, equals('4'));  //# scope: continued
       r = await isolate.evalFrame(frameNumber, 'outerParam');
-      expect(r.valueAsString, equals('5'));  /// scope: continued
+      expect(r.valueAsString, equals('5'));  //# scope: continued
       r = await isolate.evalFrame(frameNumber, 'outerTemp');
-      expect(r.valueAsString, equals('6'));  /// scope: continued
+      expect(r.valueAsString, equals('6'));  //# scope: continued
       r = await isolate.evalFrame(frameNumber, 'innerParam');
       expect(r.valueAsString, equals('7'));
       r = await isolate.evalFrame(frameNumber, 'innerTemp');
@@ -224,28 +224,28 @@
     print("Event $event");
     if (event.kind == ServiceEvent.kPauseBreakpoint) {
       var frameNumber = 1, r;
-      r = await isolate.evalFrame(frameNumber, '123');  /// instance: continued
-      expect(r.valueAsString, equals('123'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'this');  /// scope: continued
-      expect(r.clazz.name, equals('C'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'instVar');  /// instance: continued
-      expect(r.valueAsString, equals('1'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'classVar');  /// instance: continued
-      expect(r.valueAsString, equals('2'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'methodParam');  /// scope: continued
-      expect(r.valueAsString, equals('3'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'methodTemp');  /// scope: continued
-      expect(r.valueAsString, equals('4'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'outerParam');  /// scope: continued
-      expect(r.valueAsString, equals('5'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'outerTemp');  /// scope: continued
-      expect(r.valueAsString, equals('6'));  /// scope: continued
-      r = await isolate.evalFrame(frameNumber, 'innerParam');  /// instance: continued
-      expect(r.valueAsString, equals('7'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'innerTemp');  /// instance: continued
-      expect(r.valueAsString, equals('8'));  /// instance: continued
-      r = await isolate.evalFrame(frameNumber, 'math.sqrt');  /// instance: continued
-      expect(r.isClosure, isTrue);  /// instance: continued
+      r = await isolate.evalFrame(frameNumber, '123');  //# instance: continued
+      expect(r.valueAsString, equals('123'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'this');  //# scope: continued
+      expect(r.clazz.name, equals('C'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'instVar');  //# instance: continued
+      expect(r.valueAsString, equals('1'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'classVar');  //# instance: continued
+      expect(r.valueAsString, equals('2'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'methodParam');  //# scope: continued
+      expect(r.valueAsString, equals('3'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'methodTemp');  //# scope: continued
+      expect(r.valueAsString, equals('4'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'outerParam');  //# scope: continued
+      expect(r.valueAsString, equals('5'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'outerTemp');  //# scope: continued
+      expect(r.valueAsString, equals('6'));  //# scope: continued
+      r = await isolate.evalFrame(frameNumber, 'innerParam');  //# instance: continued
+      expect(r.valueAsString, equals('7'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'innerTemp');  //# instance: continued
+      expect(r.valueAsString, equals('8'));  //# instance: continued
+      r = await isolate.evalFrame(frameNumber, 'math.sqrt');  //# instance: continued
+      expect(r.isClosure, isTrue);  //# instance: continued
 
       hitBreakpoint = true;
       sub.cancel();  // Do not handle events for the other tests.
diff --git a/runtime/tests/vm/dart/data_uri_import_test.dart b/runtime/tests/vm/dart/data_uri_import_test.dart
index 576f302..384240d 100644
--- a/runtime/tests/vm/dart/data_uri_import_test.dart
+++ b/runtime/tests/vm/dart/data_uri_import_test.dart
@@ -3,13 +3,13 @@
 // BSD-style license that can be found in the LICENSE file.
 
 // foo() => 42;
-import 'data:application/dart;charset=utf-8,foo%28%29%20%3D%3E%2042%3B';  /// percentencoded: ok
-import 'data:text/plain;charset=utf-8,foo%28%29%20%3D%3E%2042%3B';  /// wrongmime: ok
-import 'data:;charset=utf-8,foo%28%29%20%3D%3E%2042%3B';  /// nomime: ok
-import 'data:application/dart;charset=utf-16,foo%28%29%20%3D%3E%2042%3B';  /// utf16: ok
-import 'data:application/dart,foo%28%29%20%3D%3E%2042%3B';  /// nocharset: ok
-import 'data:application/dart;charset=utf-8,foo?%9g';  /// badencodeddate: compile-time error
-import 'data:application/dart;charset=utf-8;base64,Zm9vKCkgPT4gNDI7';  /// base64: ok
+import 'data:application/dart;charset=utf-8,foo%28%29%20%3D%3E%2042%3B';  //# percentencoded: ok
+import 'data:text/plain;charset=utf-8,foo%28%29%20%3D%3E%2042%3B';  //# wrongmime: ok
+import 'data:;charset=utf-8,foo%28%29%20%3D%3E%2042%3B';  //# nomime: ok
+import 'data:application/dart;charset=utf-16,foo%28%29%20%3D%3E%2042%3B';  //# utf16: ok
+import 'data:application/dart,foo%28%29%20%3D%3E%2042%3B';  //# nocharset: ok
+import 'data:application/dart;charset=utf-8,foo?%9g';  //# badencodeddate: compile-time error
+import 'data:application/dart;charset=utf-8;base64,Zm9vKCkgPT4gNDI7';  //# base64: ok
 
 import "package:expect/expect.dart";
 
diff --git a/runtime/tests/vm/dart/redirection_type_shuffling_test.dart b/runtime/tests/vm/dart/redirection_type_shuffling_test.dart
index b177334..0567a24 100644
--- a/runtime/tests/vm/dart/redirection_type_shuffling_test.dart
+++ b/runtime/tests/vm/dart/redirection_type_shuffling_test.dart
@@ -7,7 +7,7 @@
 
 class G<A extends int, B extends String> {
   G();
-  factory G.swap() = G<B,A>;  /// 00: compile-time error
+  factory G.swap() = G<B,A>;  //# 00: compile-time error
   factory G.retain() = G<A,B>;
 }
 
@@ -16,5 +16,5 @@
 
   Expect.isTrue(cm.newInstance(#retain, []).reflectee is G<int,String>);
 
-  Expect.isTrue(cm.newInstance(#swap, []).reflectee is G<String,int>);  /// 00: dynamic type error
+  Expect.isTrue(cm.newInstance(#swap, []).reflectee is G<String,int>);  //# 00: dynamic type error
 }
diff --git a/runtime/tests/vm/dart_2/data_uri_import_test.dart b/runtime/tests/vm/dart_2/data_uri_import_test.dart
index 576f302..ec23fb5 100644
--- a/runtime/tests/vm/dart_2/data_uri_import_test.dart
+++ b/runtime/tests/vm/dart_2/data_uri_import_test.dart
@@ -3,13 +3,13 @@
 // BSD-style license that can be found in the LICENSE file.
 
 // foo() => 42;
-import 'data:application/dart;charset=utf-8,foo%28%29%20%3D%3E%2042%3B';  /// percentencoded: ok
-import 'data:text/plain;charset=utf-8,foo%28%29%20%3D%3E%2042%3B';  /// wrongmime: ok
-import 'data:;charset=utf-8,foo%28%29%20%3D%3E%2042%3B';  /// nomime: ok
-import 'data:application/dart;charset=utf-16,foo%28%29%20%3D%3E%2042%3B';  /// utf16: ok
-import 'data:application/dart,foo%28%29%20%3D%3E%2042%3B';  /// nocharset: ok
-import 'data:application/dart;charset=utf-8,foo?%9g';  /// badencodeddate: compile-time error
-import 'data:application/dart;charset=utf-8;base64,Zm9vKCkgPT4gNDI7';  /// base64: ok
+import 'data:application/dart;charset=utf-8,foo%28%29%20%3D%3E%2042%3B'; //# percentencoded: ok
+import 'data:text/plain;charset=utf-8,foo%28%29%20%3D%3E%2042%3B';  //# wrongmime: ok
+import 'data:;charset=utf-8,foo%28%29%20%3D%3E%2042%3B';  //# nomime: ok
+import 'data:application/dart;charset=utf-16,foo%28%29%20%3D%3E%2042%3B';  //# utf16: ok
+import 'data:application/dart,foo%28%29%20%3D%3E%2042%3B';  //# nocharset: ok
+import 'data:application/dart;charset=utf-8,foo?%9g';  //# badencodeddate: compile-time error
+import 'data:application/dart;charset=utf-8;base64,Zm9vKCkgPT4gNDI7';  //# base64: ok
 
 import "package:expect/expect.dart";
 
diff --git a/runtime/tests/vm/dart_2/redirection_type_shuffling_test.dart b/runtime/tests/vm/dart_2/redirection_type_shuffling_test.dart
index b177334..0567a24 100644
--- a/runtime/tests/vm/dart_2/redirection_type_shuffling_test.dart
+++ b/runtime/tests/vm/dart_2/redirection_type_shuffling_test.dart
@@ -7,7 +7,7 @@
 
 class G<A extends int, B extends String> {
   G();
-  factory G.swap() = G<B,A>;  /// 00: compile-time error
+  factory G.swap() = G<B,A>;  //# 00: compile-time error
   factory G.retain() = G<A,B>;
 }
 
@@ -16,5 +16,5 @@
 
   Expect.isTrue(cm.newInstance(#retain, []).reflectee is G<int,String>);
 
-  Expect.isTrue(cm.newInstance(#swap, []).reflectee is G<String,int>);  /// 00: dynamic type error
+  Expect.isTrue(cm.newInstance(#swap, []).reflectee is G<String,int>);  //# 00: dynamic type error
 }
diff --git a/tools/VERSION b/tools/VERSION
index ed6e679..e74acea 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 14
 PATCH 0
-PRERELEASE 90
+PRERELEASE 91
 PRERELEASE_PATCH 0
\ No newline at end of file