diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t01.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t01.dart
index 9d6312b..04de11f 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t01.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t01.dart
@@ -25,14 +25,8 @@
 
 main() async {
   A a = A();
-  finalizer.attach(A(), null);
+  finalizer.attach(a, null);
   Expect.equals(0, called);
-  await triggerGcWithDelay();
-  Expect.equals(0, called);
-  await triggerGcWithDelay();
-  Expect.equals(0, called);
-  await triggerGcWithDelay();
-  Expect.equals(0, called);
-  await triggerGcWithDelay();
+  await triggerGcWithDelay(repeat: 5);
   Expect.equals(0, called);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t02.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t02.dart
index 4046a2d..98b13b1 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t02.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t02.dart
@@ -23,8 +23,13 @@
   called++;
 });
 
-main() async {
+@pragma('vm:never-inline')
+void attachToFinalizer() {
   finalizer.attach(Object(), "abc");
+}
+
+main() async {
+  attachToFinalizer();
   await triggerGcWithDelay(); // Call FullGC
   Expect.equals(1, called);   // Callback function should be called only once
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t03.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t03.dart
index 60a2625..fb14bc8 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t03.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t03.dart
@@ -23,11 +23,14 @@
   called++;
 });
 
-main() {
+@pragma('vm:never-inline')
+void attachToFinalizer() {
   Object? obj = Object();
   finalizer.attach(obj, "Testme");
-  print(obj);
-  obj = null;
+}
+
+main() {
+  attachToFinalizer();
   triggerGcWithDelay();
   Expect.equals(1, called);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t04.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t04.dart
index a073f19..5ca418e 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t04.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/Finalizer_A01_t04.dart
@@ -17,7 +17,7 @@
 import '../../../../Utils/expect.dart';
 
 int called = 0;
-Object? liveObject;
+
 
 final Finalizer finalizer = Finalizer((token) {
   Expect.equals(123, token);
@@ -25,19 +25,24 @@
 });
 
 @pragma('vm:never-inline')
-test() async {
+attachToFinalizer() async {
+  Object? liveObject;
   Object object = Object();
   finalizer.attach(object, 123);
   await triggerGcWithDelay();
   Expect.equals(0, called);
   liveObject = object;
+  () async {
+    await triggerGcWithDelay();
+    Expect.equals(0, called);
+  }();
+  print(liveObject);
 }
 
 main() async {
-  test();
+  attachToFinalizer();
   await triggerGcWithDelay();
-  Expect.equals(0, called);
-  liveObject = null;
+  Expect.equals(1, called);
   await triggerGcWithDelay();
   Expect.equals(1, called);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A01_t03.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A01_t03.dart
index 3ab993d..3564b93 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A01_t03.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A01_t03.dart
@@ -53,7 +53,6 @@
   attachToFinalizer2();
   await triggerGcWithDelay();
   Expect.equals(15, returnedToken);
-
   await triggerGcWithDelay();
   Expect.equals(15, returnedToken);
 
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A01_t04.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A01_t04.dart
index 4a4f526..27851d2 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A01_t04.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A01_t04.dart
@@ -27,14 +27,16 @@
   cnt++;
 });
 
-main() async {
+@pragma('vm:never-inline')
+void attachAndDetach() {
   A detachToken = A();
-  {
-    Object value = Object();
-    finalizer.attach(value, "Finalization token", detach: detachToken);
-    value = Object();
-  }
+  Object value = Object();
+  finalizer.attach(value, "Finalization token", detach: detachToken);
   finalizer.detach(detachToken);
+}
+
+main() async {
+  attachAndDetach();
   await triggerGcWithDelay();
   Expect.equals(0, cnt);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A02_t01.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A02_t01.dart
index db2e794..8b718f4 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A02_t01.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A02_t01.dart
@@ -18,12 +18,12 @@
   called = true;
 });
 
-void test(Object o) async {
+void _trigger(Object o) async {
   await triggerGcWithDelay();
   Expect.isFalse(called);
 }
 
-Object test1(Object obj) => obj;
+Object foo(Object obj) => obj;
 
 main() async {
   Object value = Object();
@@ -32,10 +32,12 @@
   Expect.isFalse(called);
   await triggerGcWithDelay();
   Expect.isFalse(called);
-  test(value);
+  _trigger(value);
 
-  var value2 = test1(value);
+  var value2 = foo(value);
   var value1 = value;
+  print(value1);
+  print(value2);
   await triggerGcWithDelay();
   Expect.isFalse(called);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A02_t02.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A02_t02.dart
index afe4bff..663bf64 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A02_t02.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A02_t02.dart
@@ -18,25 +18,14 @@
   called++;
 });
 
-void test(Object o) {
-  triggerGc();
+@pragma('vm:never-inline')
+void attachToFinalizer() {
+  var o = Object();
+  finalizer.attach(o, "Finalization token");
 }
 
-Object test1(Object obj) => obj;
-
 main() async {
-  Object value = Object();
-  finalizer.attach(value, "Finalization token");
-
-  value = 12345;
-
-  // Initial object is not accessible anymore.
-  // Do something, call triggerGC several times and check that callback was
-  // called only once during the execution.
-  test(value);
   await triggerGcWithDelay();
-
-  var value1 = test1(value);
   await triggerGcWithDelay();
   triggerGc();
   await triggerGcWithDelay();
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A03_t01.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A03_t01.dart
index af1f22e..8c86bf9 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A03_t01.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A03_t01.dart
@@ -19,27 +19,23 @@
   called++;
 });
 
-Object test1(Object obj) => obj;
+@pragma('vm:never-inline')
+void attachAndDetach() {
+  A detachToken = A();
+  Object value = Object();
+  finalizer.attach(value, "Finalization token", detach: detachToken);
+  finalizer.detach(detachToken);
+}
 
 main() async {
-  Object value = Object();
-  Object detachToken = A();
-  finalizer.attach(value, "Finalization token", detach: detachToken);
-  print(value);
-  finalizer.detach(detachToken);
+  attachAndDetach();
 
-  value = 12345;
-
-  // Initial object is not accessible anymore.
-  // Do something, call triggerGC several times and check that callback was
-  // not called during the execution.
   await triggerGcWithDelay();
-
-  var value1 = test1(value);
   triggerGc();
   await triggerGcWithDelay();
   triggerGcWithDelay();
   triggerGcWithDelay();
+  await Future.delayed(Duration(milliseconds: 10));
 
   Expect.equals(0, called);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A04_t11.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A04_t11.dart
index 1908a0c..bb55874 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A04_t11.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A04_t11.dart
@@ -15,7 +15,6 @@
 import '../../../../Utils/expect.dart';
 import '../../gc_utils_lib.dart';
 
-
 final finalizerTokens = <Object>{};
 int cnt = 0;
 
@@ -24,27 +23,20 @@
   cnt++;
 });
 
-Object object1 = Object();
-Object object2 = Object();
-
-main() async {
+@pragma('vm:never-inline')
+void attachToFinalizer1() {
+  Object object1 = Object();
+  Object object2 = Object();
   finalizer.attach(object1, "Object1", detach: null);
-
   dynamic d = null;
   finalizer.attach(object2, "Object2", detach: d);
+}
 
-  object1 = "Object is free";
-  object2 = "Finalizer can be called";
 
-  await triggerGcWithDelay();
-  Expect.setEquals({"Object1", "Object2"}, finalizerTokens);
-  Expect.equals(2, cnt);
-
-  await triggerGcWithDelay();
-  Expect.setEquals({"Object1", "Object2"}, finalizerTokens);
-  Expect.equals(2, cnt);
-
-  await triggerGcWithDelay();
-  Expect.setEquals({"Object1", "Object2"}, finalizerTokens);
-  Expect.equals(2, cnt);
+main() async {
+  for (int i = 0; i < 10; i++) {
+    await triggerGcWithDelay();
+    Expect.setEquals({"Object1", "Object2"}, finalizerTokens);
+    Expect.equals(2, cnt);
+  }
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A04_t12.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A04_t12.dart
index 1f2f9ed..d207526 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A04_t12.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A04_t12.dart
@@ -34,5 +34,4 @@
   } finally {
     calloc.free(p2);
   }
-
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A04_t13.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A04_t13.dart
index ff67f69..cd34349 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A04_t13.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A04_t13.dart
@@ -26,7 +26,7 @@
   try {
     S s = p.ref;
     Expect.throws(() {
-      finalizer.attach(object, "Finalization token", detach: p);
+      finalizer.attach(object, "Finalization token", detach: s);
     });
   } finally {
     calloc.free(p);
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A05_t01.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A05_t01.dart
index ceb9384..4a18554 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A05_t01.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A05_t01.dart
@@ -17,20 +17,14 @@
   called++;
 });
 
-
 @pragma('vm:never-inline')
-void test() {
+void attachToFinalizer() {
   Object obj = Object();
   finalizer.attach(obj, "Just a string", detach: obj);
-  print(obj);
 }
 
 main() async {
-  test();
-  await triggerGcWithDelay();
-  Expect.equals(1, called);
-  await triggerGcWithDelay();
-  Expect.equals(1, called);
-  await triggerGcWithDelay();
+  attachToFinalizer();
+  await triggerGcWithDelay(repeat: 3);
   Expect.equals(1, called);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A05_t02.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A05_t02.dart
index 022a97d..ef2efc9 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A05_t02.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A05_t02.dart
@@ -17,19 +17,14 @@
 });
 
 @pragma('vm:never-inline')
-void test() {
+void attachAndDetach() {
   Object obj = Object();
   finalizer.attach(obj, "Just a string", detach: obj);
-  print(obj);
   finalizer.detach(obj);
 }
 
 main() async {
-  test();
-  await triggerGcWithDelay();
-  Expect.equals(0, called);
-  await triggerGcWithDelay();
-  Expect.equals(0, called);
-  await triggerGcWithDelay();
+  attachAndDetach();
+  await triggerGcWithDelay(repeat: 3);
   Expect.equals(0, called);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t01.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t01.dart
index 8f96ac1..9055584 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t01.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t01.dart
@@ -17,14 +17,14 @@
   Nonce(this.value);
 }
 
-final finalizerTokens = <Nonce>{};
+final finalizerTokens = <String>{};
 
 final Finalizer finalizer = Finalizer((token) {
   finalizerTokens.add(token);
 });
 
 @pragma('vm:never-inline')
-void test(Nonce token1, Nonce token2, Nonce token3) {
+void attachToFinalizer(Nonce token1, Nonce token2, Nonce token3) {
   Object value = Object();
   finalizer.attach(value, "Finalization token", detach: token1);
   finalizer.attach(value, "Finalization token", detach: token2);
@@ -32,12 +32,8 @@
 }
 
 main() async {
-  Nonce token1 = Nonce(1);
-  Nonce token2 = Nonce(2);
-  Nonce token3 = Nonce(3);
-
-  test(token1, token2, token3);
+  attachToFinalizer(Nonce(1), Nonce(2), Nonce(3));
 
   await triggerGcWithDelay();
-  Expect.setEquals({token1, token2, token3}, finalizerTokens);
+  Expect.setEquals({"Finalization token"}, finalizerTokens);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t02.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t02.dart
index 973c119..ef7e187 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t02.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t02.dart
@@ -17,7 +17,7 @@
   Nonce(this.value);
 }
 
-final finalizerTokens = <Nonce>{};
+final finalizerTokens = <String>{};
 int cnt = 0;
 
 final Finalizer finalizer = Finalizer((token) {
@@ -26,21 +26,23 @@
 });
 
 @pragma('vm:never-inline')
-void test(Nonce token) {
+void attachToFinalizer(Nonce token) {
   Object value = Object();
-  finalizer.attach(value, "Finalization token", detach: token);
-  finalizer.attach(value, "Finalization token", detach: token);
-  finalizer.attach(value, "Finalization token", detach: token);
+  finalizer.attach(value, "Finalization token 1", detach: token);
+  finalizer.attach(value, "Finalization token 2", detach: token);
+  finalizer.attach(value, "Finalization token 3", detach: token);
 }
 
 main() async {
   Nonce token = Nonce(1);
-  test(token);
-  await triggerGcWithDelay();
-  Expect.setEquals({token}, finalizerTokens);
-  await triggerGcWithDelay();
-  Expect.setEquals({token}, finalizerTokens);
-  await triggerGcWithDelay();
-  Expect.setEquals({token}, finalizerTokens);
+  attachToFinalizer(token);
+  for (int i = 0; i < 5; i++) {
+    await triggerGcWithDelay();
+    Expect.setEquals({
+      "Finalization token 1",
+      "Finalization token 2",
+      "Finalization token 3"
+    }, finalizerTokens);
+  }
   Expect.equals(1, cnt);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t03.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t03.dart
index afeec7e..0d1da1c 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t03.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t03.dart
@@ -17,7 +17,7 @@
   Nonce(this.value);
 }
 
-final finalizerTokens = <Nonce>{};
+final finalizerTokens = <String>{};
 int cnt = 0;
 final Finalizer finalizer = Finalizer((token) {
   finalizerTokens.add(token);
@@ -25,17 +25,17 @@
 });
 
 @pragma('vm:never-inline')
-void test(Nonce token1, token2, token3) {
+void attachToFinalizer(Nonce token1, token2, token3) {
   Object value = Object();
-  finalizer.attach(value, "Finalization token", detach: token1);
-  finalizer.attach(value, "Finalization token", detach: token2);
-  finalizer.attach(value, "Finalization token", detach: token3);
-  finalizer.attach(value, "Finalization token", detach: token1);
-  finalizer.attach(value, "Finalization token", detach: token2);
-  finalizer.attach(value, "Finalization token", detach: token3);
-  finalizer.attach(value, "Finalization token", detach: token1);
-  finalizer.attach(value, "Finalization token", detach: token2);
-  finalizer.attach(value, "Finalization token", detach: token3);
+  finalizer.attach(value, "Token 1", detach: token1);
+  finalizer.attach(value, "Token 2", detach: token2);
+  finalizer.attach(value, "Token 3", detach: token3);
+  finalizer.attach(value, "Token 1", detach: token1);
+  finalizer.attach(value, "Token 2", detach: token2);
+  finalizer.attach(value, "Token 3", detach: token3);
+  finalizer.attach(value, "Token 1", detach: token1);
+  finalizer.attach(value, "Token 2", detach: token2);
+  finalizer.attach(value, "Token 3", detach: token3);
 }
 
 main() async {
@@ -43,13 +43,9 @@
   Nonce token2 = Nonce(2);
   Nonce token3 = Nonce(3);
 
-  test(token1, token2, token3);
+  attachToFinalizer(token1, token2, token3);
 
-  await triggerGcWithDelay();
-  Expect.setEquals({token1, token2, token3}, finalizerTokens);
-  await triggerGcWithDelay();
-  Expect.setEquals({token1, token2, token3}, finalizerTokens);
-  await triggerGcWithDelay();
-  Expect.setEquals({token1, token2, token3}, finalizerTokens);
+  await triggerGcWithDelay(repeat: 3);
+  Expect.setEquals({"Token 1", "Token 2", "Token 3"}, finalizerTokens);
   Expect.equals(3, cnt);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/detach_A01_t01.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/detach_A01_t01.dart
index b1a0744..08fa351 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/detach_A01_t01.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/detach_A01_t01.dart
@@ -11,7 +11,7 @@
 /// calling [attach] with the [detachToken] object as [detach] argument, is
 /// removed.
 ///
-/// @description Checks that all attacments for the given token get removed
+/// @description Checks that all attachments for the given token get removed
 /// after the [detach] call.
 /// @author iarkh@unipro.ru
 
@@ -23,14 +23,14 @@
   Nonce(this.value);
 }
 
-final finalizerTokens = <Nonce>{};
+final finalizerTokens = <String>{};
 
 final Finalizer finalizer = Finalizer((token) {
   finalizerTokens.add(token);
 });
 
 @pragma('vm:never-inline')
-void test() {
+void attachAndDetach() {
   Object    object1 = Object();
   Object    object2 = Object();
   List<int> object3 = List.filled(100, 1);
@@ -48,7 +48,7 @@
 }
 
 main() async {
-  test();
+  attachAndDetach();
   await triggerGcWithDelay();
   Expect.setEquals({}, finalizerTokens);
   await triggerGcWithDelay();
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/detach_A01_t02.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/detach_A01_t02.dart
index 3e630f0..2db2354 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/detach_A01_t02.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/detach_A01_t02.dart
@@ -23,37 +23,37 @@
   Nonce(this.value);
 }
 
-final finalizerTokens = <Nonce>{};
+final finalizerTokens = <String>{};
 
 final Finalizer finalizer = Finalizer((token) {
   finalizerTokens.add(token);
 });
 
 @pragma('vm:never-inline')
-void test() {
+void attachAndDetach() {
   Object    object1 = Object();
   Object    object2 = Object();
   List<int> object3 = List.filled(100, 1);
   List      object4 = List.filled(200, "abc");
   Nonce     object5 = Nonce(14);
 
-  Object finalizationToken1 = Nonce(1);
-  Object finalizationToken2 = Nonce(2);
+  Object detachToken1 = Nonce(1);
+  Object detachToken2 = Nonce(2);
 
-  finalizer.attach(object1, "object1", detach: finalizationToken1);
-  finalizer.attach(object2, "object2", detach: finalizationToken2);
-  finalizer.attach(object3, "object3", detach: finalizationToken1);
-  finalizer.attach(object4, "object4", detach: finalizationToken1);
-  finalizer.attach(object5, "object5", detach: finalizationToken2);
-  finalizer.detach(finalizationToken1);
+  finalizer.attach(object1, "object1", detach: detachToken1);
+  finalizer.attach(object2, "object2", detach: detachToken2);
+  finalizer.attach(object3, "object3", detach: detachToken1);
+  finalizer.attach(object4, "object4", detach: detachToken1);
+  finalizer.attach(object5, "object5", detach: detachToken2);
+  finalizer.detach(detachToken1);
 }
 
 main() async {
-  test();
+  attachAndDetach();
   await triggerGcWithDelay();
-  Expect.setEquals({"Object2", "Object5"}, finalizerTokens);
+  Expect.setEquals({"object2", "object5"}, finalizerTokens);
   await triggerGcWithDelay();
-  Expect.setEquals({"Object2", "Object5"}, finalizerTokens);
+  Expect.setEquals({"object2", "object5"}, finalizerTokens);
   await triggerGcWithDelay();
-  Expect.setEquals({"Object2", "Object5"}, finalizerTokens);
+  Expect.setEquals({"object2", "object5"}, finalizerTokens);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/detach_A01_t03.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/detach_A01_t03.dart
index 43bdf80..fa17fdd 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/detach_A01_t03.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/detach_A01_t03.dart
@@ -23,38 +23,33 @@
   Nonce(this.value);
 }
 
-final finalizerTokens = <Nonce>{};
+final finalizerTokens = <String>{};
 
 final Finalizer finalizer = Finalizer((token) {
   finalizerTokens.add(token);
 });
 
 @pragma('vm:never-inline')
-void test() {
+void attachAndDetach() {
   Object    object1 = Object();
   Object    object2 = Object();
   List<int> object3 = List.filled(100, 1);
   List      object4 = List.filled(200, "abc");
   Nonce     object5 = Nonce(14);
 
-  Object finalizationToken1 = Nonce(1);
-  Object finalizationToken2 = Nonce(2);
+  Object detachToken = Nonce(2);
 
   finalizer.attach(object1, "object1");
-  finalizer.attach(object2, "object2", detach: finalizationToken2);
+  finalizer.attach(object2, "object2", detach: detachToken);
   finalizer.attach(object3, "object3");
   finalizer.attach(object4, "object4");
-  finalizer.attach(object5, "object5", detach: finalizationToken2);
-  finalizer.detach(finalizationToken2);
+  finalizer.attach(object5, "object5", detach: detachToken);
+  finalizer.detach(detachToken);
 }
 
 main() async {
-  test();
-  await triggerGcWithDelay();
-  Expect.setEquals({"Object1", "Object3", "Object4"}, finalizerTokens);
-  await triggerGcWithDelay();
-  Expect.setEquals({"Object1", "Object3", "Object4"}, finalizerTokens);
-  await triggerGcWithDelay();
-  Expect.setEquals({"Object1", "Object3", "Object4"}, finalizerTokens);
+  attachAndDetach();
+  await triggerGcWithDelay(repeat: 3);
+  Expect.setEquals({"object1", "object3", "object4"}, finalizerTokens);
 }
 
diff --git a/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t01.dart b/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t01.dart
index 85d349f..5213719 100644
--- a/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t01.dart
+++ b/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t01.dart
@@ -21,11 +21,11 @@
 
   String s = "Just a string";
   Expect.throws(() {
-    finalizer.attach("Shouldn't work", "Finalization token");
+    finalizer.attach(s, "Finalization token");
   });
 
   dynamic d = s;
   Expect.throws(() {
-    finalizer.attach("Shouldn't work", "Finalization token");
+    finalizer.attach(d, "Finalization token");
   });
 }
diff --git a/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t02.dart b/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t02.dart
index a98c333..2032e46 100644
--- a/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t02.dart
+++ b/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t02.dart
@@ -12,9 +12,9 @@
 import '../../../../Utils/expect.dart';
 
 final Finalizer finalizer = Finalizer((_) { throw "Should not reach here"; });
-Object detachToken = Object;
 
 main() {
+  Object detachToken = Object();
   Expect.throws(() {
     finalizer.attach(12345, "Finalization token", detach: detachToken);
   });
diff --git a/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t03.dart b/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t03.dart
index e7b45aa..b79426a 100644
--- a/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t03.dart
+++ b/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t03.dart
@@ -12,9 +12,9 @@
 import '../../../../Utils/expect.dart';
 
 final Finalizer finalizer = Finalizer((_) { throw "Should not reach here"; });
-Object detachToken = Object;
 
 main() {
+  Object detachToken = Object();
   Expect.throws(() {
     finalizer.attach(true, "Finalization token", detach: detachToken);
   });
diff --git a/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t08.dart b/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t08.dart
index 64940f5..7e44ff9 100644
--- a/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t08.dart
+++ b/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t08.dart
@@ -12,9 +12,9 @@
 import "../../../../Utils/expect.dart";
 
 final Finalizer finalizer = Finalizer((_) { throw "Should not reach here"; });
-Object object = Object();
 
 main() {
+  final object = Object();
   Expect.throws(() {
     finalizer.attach(object, "Finalization token", detach: "detachMe");
   });
diff --git a/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t10.dart b/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t10.dart
index 863a5c7..e4265c7 100644
--- a/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t10.dart
+++ b/LanguageFeatures/FinalizationRegistry/no_ffi/Finalizer/attach_A04_t10.dart
@@ -12,9 +12,9 @@
 import '../../../../Utils/expect.dart';
 
 final Finalizer finalizer = Finalizer((_) { throw "Should not reach here"; });
-Object object = Object();
 
 main() {
+  final object = Object();
   Expect.throws(() {
     finalizer.attach(object, "Finalization token", detach: true);
   });
