#1260. Added test for callback that throws an exception
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/throw_A01_t01.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/throw_A01_t01.dart
new file mode 100644
index 0000000..9bcd2d1
--- /dev/null
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/throw_A01_t01.dart
@@ -0,0 +1,37 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion Finalization callbacks must not throw.
+///
+/// @description Checks that all exceptions thrown by finalization callbacks are
+/// ignored
+/// @author sgrekhov@unipro.ru
+
+import '../../gc_utils_lib.dart';
+import '../../../../Utils/expect.dart';
+
+int count = 0;
+String? returnedToken = null;
+
+final Finalizer finalizer = Finalizer((token) {
+ count++;
+ if (token == "throw") {
+ throw Exception("Some exception");
+ }
+ returnedToken = token;
+});
+
+@pragma('vm:never-inline')
+void attachToFinalizer() {
+ var o = Object();
+ finalizer.attach(o, "throw");
+ finalizer.attach(o, "Don't throw");
+}
+
+main() async {
+ attachToFinalizer();
+ await triggerGcWithDelay();
+ Expect.equals("Don't throw", returnedToken);
+ Expect.equals(2, count);
+}