#1260: Weak reference tests updated.
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/expando_key_t04.dart b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/expando_key_t04.dart
index 322e6ed..55b1a84 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/expando_key_t04.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/expando_key_t04.dart
@@ -26,7 +26,6 @@
     Expect.throws(() {
       S s = p1.ref;
       WeakReference wr = WeakReference<S>(s);
-      print(wr.target);
     });
   } finally {
     calloc.free(p1);
@@ -36,7 +35,6 @@
     Expect.throws(() {
       S s = p2.ref;
       WeakReference wr = WeakReference(s);
-      print(wr.target);
     });
   } finally {
     calloc.free(p2);
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/expando_key_t05.dart b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/expando_key_t05.dart
index 177a497..c03b294 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/expando_key_t05.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/expando_key_t05.dart
@@ -28,7 +28,6 @@
     Expect.throws(() {
       U u = p1.ref;
       WeakReference wr = WeakReference<U>(u);
-      print(wr.target);
     });
   } finally {
     calloc.free(p1);
@@ -38,7 +37,6 @@
     Expect.throws(() {
       U u = p2.ref;
       WeakReference wr = WeakReference(u);
-      print(wr.target);
     });
   } finally {
     calloc.free(p2);
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t04.dart b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t04.dart
index 65e26dc..5158d56 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t04.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t04.dart
@@ -28,14 +28,17 @@
 dynamic d;
 
 @pragma('vm:never-inline')
+C? getNullObject() => null;
+
+@pragma('vm:never-inline')
 WeakReference<C> createWeakReference() {
   C? c = C(42);
   d = c;
   WeakReference<C> wr = WeakReference(c);
   Expect.equals(c, wr.target);
-  c = null;
+  c = getNullObject();
+  Expect.isNull(c);
   triggerGc();
-  Expect.isNotNull(wr.target);
   Expect.equals(d, wr.target);
   return wr;
 }
@@ -43,8 +46,9 @@
 main() {
   WeakReference<C> wr = createWeakReference();
   triggerGc();
-  Expect.isNotNull(wr.target);
-  d = 42;
+  Expect.equals("C(42)", wr.target.toString());
+  d = getNullObject();
+  Expect.isNull(d);
   triggerGc();
   Expect.isNull(wr.target);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t05.dart b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t05.dart
index 56b3aa9..9188a23 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t05.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t05.dart
@@ -25,25 +25,35 @@
   String toString() => "C($id)";
 }
 
-main() async {
+@pragma('vm:never-inline')
+C? getNullObject() => null;
+
+@pragma('vm:never-inline')
+Future<WeakReference> createWeakReference() async {
   C? c1 = C(42);
   WeakReference<C> wr = WeakReference(c1);
   asyncStart();
   Future<C?>.delayed(Duration(milliseconds: 1), () => c1).then((C? c2) async {
-    Expect.isNotNull(wr.target);
     Expect.equals(c1, wr.target);
     triggerGc();
     await Future.delayed(Duration(seconds: 1));
     Expect.isNotNull(wr.target);
-    c2 = null;
+    // Need to be sure that indeed c2 is null and the code is not optimized
+    c2 = getNullObject();
+    Expect.isNull(c2);
     triggerGc();
     Expect.isNull(wr.target);
     asyncEnd();
   });
   await Future.delayed(Duration(milliseconds: 10));
-  Expect.isNotNull(wr.target);
   Expect.equals(c1, wr.target);
-  c1 = null;
+  c1 = getNullObject();
+  Expect.isNull(c1);
+  return wr;
+}
+
+main() async {
+  WeakReference wr = await createWeakReference();
   triggerGc();
-  Expect.isNotNull(wr.target);
+  Expect.equals("C(42)", wr.target.toString());
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t06.dart b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t06.dart
index c348ab2..6098ef2 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t06.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t06.dart
@@ -25,24 +25,32 @@
   String toString() => "C($id)";
 }
 
-main() async {
+@pragma('vm:never-inline')
+C? getNullObject() => null;
+
+@pragma('vm:never-inline')
+Future<WeakReference> createWeakReference() async {
   C? c1 = C(42);
   WeakReference<C> wr = WeakReference(c1);
   asyncStart();
   Future<C?>.delayed(Duration(milliseconds: 1), () => c1).then((C? c2) async {
-    Expect.isNotNull(wr.target);
     Expect.equals(c1, wr.target);
     triggerGc();
-    Expect.isNotNull(wr.target);
-    c2 = null;
+    Expect.equals(c1, wr.target);
+    // Need to be sure that indeed c2 is null and the code is not optimized
+    c2 = getNullObject();
+    Expect.isNull(c2);
     triggerGc();
-    Expect.isNotNull(wr.target);
+    Expect.equals(c1, wr.target);
     asyncEnd();
   });
-  Expect.isNotNull(wr.target);
   Expect.equals(c1, wr.target);
+  return wr;
+}
+
+main() async {
+  WeakReference wr = await createWeakReference();
   await Future.delayed(Duration(seconds: 1));
-  c1 = null;
   triggerGc();
   Expect.isNull(wr.target);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t07.dart b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t07.dart
index 8fa7593..f218028 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t07.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t07.dart
@@ -28,14 +28,21 @@
 C? c1;
 
 @pragma('vm:never-inline')
+C? getNullObject() => null;
+
+@pragma('vm:never-inline')
+C? getC() => C(0);
+
+@pragma('vm:never-inline')
 WeakReference<C> createWeakReference() {
   C? c2 = C(42);
   c1 = c2;
   WeakReference<C> wr = WeakReference(c2);
   Expect.equals(c2, wr.target);
-  c2 = null;
+  // Need to be sure that indeed c2 is null and the code is not optimized
+  c2 = getNullObject();
+  Expect.isNull(c2);
   triggerGc();
-  Expect.isNotNull(wr.target);
   Expect.equals(c1, wr.target);
   return wr;
 }
@@ -43,8 +50,9 @@
 main() {
   WeakReference<C> wr = createWeakReference();
   triggerGc();
-  Expect.isNotNull(wr.target);
-  c1 = C(-1);
+  Expect.equals("C(42)", wr.target.toString());
+  c1 = getC();
+  Expect.isNotNull(c1);
   triggerGc();
   Expect.isNull(wr.target);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t08.dart b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t08.dart
index 1617474..b47991a 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t08.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t08.dart
@@ -38,10 +38,17 @@
   return [wr1, wr2];
 }
 
+@pragma('vm:never-inline')
+void checkReferences(List<WeakReference<C>> refs) {
+  C? c1 = refs[0].target;
+  C? c2 = refs[1].target;
+  Expect.isTrue(c1 == null || c1.toString() == "C(42)");
+  Expect.isTrue(c2 == null || c2.toString() == "C(42)");
+}
+
 main() {
   List<WeakReference<C>> refs = createWeakReference();
-  Expect.isNotNull(refs[0].target);
-  Expect.isNotNull(refs[1].target);
+  checkReferences(refs);
   triggerGc();
   Expect.isNull(refs[0].target);
   Expect.isNull(refs[1].target);
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t09.dart b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t09.dart
index d32b355..21bb8b4 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t09.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t09.dart
@@ -30,13 +30,19 @@
   C c = C(42);
   WeakReference<C> wr = WeakReference(c);
   Future<C>.delayed(Duration(milliseconds: 10), () => c);
-  c = C(-1);
   return wr;
 }
 
-main() {
+@pragma('vm:never-inline')
+void checkReference(WeakReference<C> ref) {
+  C? c = ref.target;
+  Expect.isTrue(c == null || c.toString() == "C(42)");
+}
+
+main() async {
   WeakReference<C> wr = createWeakReference();
-  Expect.isNotNull(wr.target);
+  checkReference(wr);
+  await Future.delayed(Duration(seconds: 1));
   triggerGc();
   Expect.isNull(wr.target);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/expando_key_t01.dart b/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/expando_key_t01.dart
index 486598e..edbf403 100644
--- a/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/expando_key_t01.dart
+++ b/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/expando_key_t01.dart
@@ -16,11 +16,9 @@
 main() {
   Expect.throws(() {
     WeakReference wr = WeakReference<String>("Lily was here");
-    print(wr.target);
   });
   Expect.throws(() {
     String s = "Lily was here";
     WeakReference wr = WeakReference(s);
-    print(wr.target);
   });
 }
diff --git a/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/expando_key_t02.dart b/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/expando_key_t02.dart
index 732f55e..2869999 100644
--- a/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/expando_key_t02.dart
+++ b/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/expando_key_t02.dart
@@ -16,26 +16,20 @@
 main() {
   Expect.throws(() {
     WeakReference wr = WeakReference<int>(42);
-    print(wr.target);
   });
   Expect.throws(() {
     WeakReference wr = WeakReference(42);
-    print(wr.target);
   });
   Expect.throws(() {
     WeakReference wr = WeakReference<double>(3.14);
-    print(wr.target);
   });
   Expect.throws(() {
     WeakReference wr = WeakReference(3.14);
-    print(wr.target);
   });
   Expect.throws(() {
     WeakReference wr = WeakReference<num>(42);
-    print(wr.target);
   });
   Expect.throws(() {
     WeakReference wr = WeakReference<num>(3.14);
-    print(wr.target);
   });
 }
diff --git a/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/expando_key_t06.dart b/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/expando_key_t06.dart
index 18edf7b..9a65124 100644
--- a/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/expando_key_t06.dart
+++ b/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/expando_key_t06.dart
@@ -16,6 +16,5 @@
   Expect.throws(() {
     dynamic d = null;
     WeakReference wr = WeakReference(d);
-    print(wr.target);
   });
 }
diff --git a/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/weak_reference_target_t01.dart b/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/weak_reference_target_t01.dart
index d52007c..5241847 100644
--- a/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/weak_reference_target_t01.dart
+++ b/LanguageFeatures/FinalizationRegistry/no_ffi/WeakReference/weak_reference_target_t01.dart
@@ -21,7 +21,7 @@
 }
 
 main() {
-  C? c = C(42);
+  C c = C(42);
   WeakReference<C> wr = WeakReference(c);
   Expect.equals(c, wr.target);
 }