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);
 }
