#1260. WeakReferences tests for Expando key added
diff --git a/LanguageFeatures/FinalizationRegistry/expando_key_t01.dart b/LanguageFeatures/FinalizationRegistry/expando_key_t01.dart
new file mode 100644
index 0000000..8944401
--- /dev/null
+++ b/LanguageFeatures/FinalizationRegistry/expando_key_t01.dart
@@ -0,0 +1,26 @@
+// 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 Not all objects are supported as targets for weak references. The
+/// WeakReference constructor will reject any object that is not supported as an
+/// Expando key.
+///
+/// @description Check that WeakReference constructor rejects any object that is
+/// not supported as an Expando key. Test Strings.
+/// @author sgrekhov@unipro.ru
+/// @issue 48264
+
+import "../../Utils/expect.dart";
+
+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/expando_key_t02.dart b/LanguageFeatures/FinalizationRegistry/expando_key_t02.dart
new file mode 100644
index 0000000..6d96d16
--- /dev/null
+++ b/LanguageFeatures/FinalizationRegistry/expando_key_t02.dart
@@ -0,0 +1,41 @@
+// 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 Not all objects are supported as targets for weak references. The
+/// WeakReference constructor will reject any object that is not supported as an
+/// Expando key.
+///
+/// @description Check that WeakReference constructor rejects any object that is
+/// not supported as an Expando key. Test numbers.
+/// @author sgrekhov@unipro.ru
+/// @issue 48264
+
+import "../../Utils/expect.dart";
+
+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/expando_key_t03.dart b/LanguageFeatures/FinalizationRegistry/expando_key_t03.dart
new file mode 100644
index 0000000..2b1c11a
--- /dev/null
+++ b/LanguageFeatures/FinalizationRegistry/expando_key_t03.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 Not all objects are supported as targets for weak references. The
+/// WeakReference constructor will reject any object that is not supported as an
+/// Expando key.
+///
+/// @description Check that WeakReference constructor rejects any object that is
+/// not supported as an Expando key. Test dart:ffi pointers.
+/// @author sgrekhov@unipro.ru
+/// @issue 48264
+
+import "dart:ffi";
+import "package:ffi/ffi.dart";
+import "../../Utils/expect.dart";
+
+main() {
+  Pointer<Int8> p1 = calloc<Int8>();
+  try {
+    Expect.throws(() {
+      WeakReference wr = WeakReference<Pointer<Int8>>(p1);
+      print(wr.target);
+    });
+  } finally {
+    calloc.free(p1);
+  }
+  Pointer<Int16> p2 = calloc<Int16>();
+  try {
+    Expect.throws(() {
+      WeakReference wr = WeakReference(p2);
+      print(wr.target);
+    });
+  } finally {
+    calloc.free(p2);
+  }
+}
diff --git a/LanguageFeatures/FinalizationRegistry/expando_key_t04.dart b/LanguageFeatures/FinalizationRegistry/expando_key_t04.dart
new file mode 100644
index 0000000..590ed93
--- /dev/null
+++ b/LanguageFeatures/FinalizationRegistry/expando_key_t04.dart
@@ -0,0 +1,44 @@
+// 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 Not all objects are supported as targets for weak references. The
+/// WeakReference constructor will reject any object that is not supported as an
+/// Expando key.
+///
+/// @description Check that WeakReference constructor rejects any object that is
+/// not supported as an Expando key. Test dart:ffi structs.
+/// @author sgrekhov@unipro.ru
+/// @issue 48264
+
+import "dart:ffi";
+import "package:ffi/ffi.dart";
+import "../../Utils/expect.dart";
+
+class S extends Struct {
+  @Int32()
+  external int x;
+}
+
+main() {
+  Pointer<S> p1 = calloc<S>();
+  try {
+    Expect.throws(() {
+      S s = p1.ref;
+      WeakReference wr = WeakReference<S>(s);
+      print(wr.target);
+    });
+  } finally {
+    calloc.free(p1);
+  }
+  Pointer<S> p2 = calloc<S>();
+  try {
+    Expect.throws(() {
+      S s = p2.ref;
+      WeakReference wr = WeakReference(s);
+      print(wr.target);
+    });
+  } finally {
+    calloc.free(p2);
+  }
+}
diff --git a/LanguageFeatures/FinalizationRegistry/expando_key_t05.dart b/LanguageFeatures/FinalizationRegistry/expando_key_t05.dart
new file mode 100644
index 0000000..05416c5
--- /dev/null
+++ b/LanguageFeatures/FinalizationRegistry/expando_key_t05.dart
@@ -0,0 +1,46 @@
+// 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 Not all objects are supported as targets for weak references. The
+/// WeakReference constructor will reject any object that is not supported as an
+/// Expando key.
+///
+/// @description Check that WeakReference constructor rejects any object that is
+/// not supported as an Expando key. Test dart:ffi unions.
+/// @author sgrekhov@unipro.ru
+/// @issue 48264
+
+import "dart:ffi";
+import "package:ffi/ffi.dart";
+import "../../Utils/expect.dart";
+
+class U extends Union {
+  @Int32()
+  external int x;
+  @Int16()
+  external int y;
+}
+
+main() {
+  Pointer<U> p1 = calloc<U>();
+  try {
+    Expect.throws(() {
+      U u = p1.ref;
+      WeakReference wr = WeakReference<U>(u);
+      print(wr.target);
+    });
+  } finally {
+    calloc.free(p1);
+  }
+  Pointer<U> p2 = calloc<U>();
+  try {
+    Expect.throws(() {
+      U u = p2.ref;
+      WeakReference wr = WeakReference(u);
+      print(wr.target);
+    });
+  } finally {
+    calloc.free(p2);
+  }
+}
diff --git a/LanguageFeatures/FinalizationRegistry/expando_key_t06.dart b/LanguageFeatures/FinalizationRegistry/expando_key_t06.dart
new file mode 100644
index 0000000..e7a7499
--- /dev/null
+++ b/LanguageFeatures/FinalizationRegistry/expando_key_t06.dart
@@ -0,0 +1,21 @@
+// 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 Not all objects are supported as targets for weak references. The
+/// WeakReference constructor will reject any object that is not supported as an
+/// Expando key.
+///
+/// @description Check that WeakReference constructor rejects any object that is
+/// not supported as an Expando key. Test null.
+/// @author sgrekhov@unipro.ru
+
+import "../../Utils/expect.dart";
+
+main() {
+  Expect.throws(() {
+    dynamic d = null;
+    WeakReference wr = WeakReference(d);
+    print(wr.target);
+  });
+}
diff --git a/LanguageFeatures/FinalizationRegistry/pubspec.yaml b/LanguageFeatures/FinalizationRegistry/pubspec.yaml
new file mode 100644
index 0000000..9cac0bc
--- /dev/null
+++ b/LanguageFeatures/FinalizationRegistry/pubspec.yaml
@@ -0,0 +1,11 @@
+name: co19_finalization_registry
+description: co19 tests for Dart Finalization Registry feature
+
+# This tests isn't intended for publishing on pub.dev.
+publish_to: none
+
+environment:
+  sdk: '>=2.12.0 <3.0.0'
+
+dependencies:
+  ffi: ^1.0.0
\ No newline at end of file