Version 2.17.0-115.0.dev

Merge commit '0fab3fed9335fde60f2e51129de097ed35aa8969' into 'dev'
diff --git a/pkg/vm_service/test/common/test_helper.dart b/pkg/vm_service/test/common/test_helper.dart
index 4100c68..8415c74 100644
--- a/pkg/vm_service/test/common/test_helper.dart
+++ b/pkg/vm_service/test/common/test_helper.dart
@@ -349,10 +349,6 @@
     });
     await service.streamListen(EventStreams.kIsolate);
 
-    await service.streamListen(EventStreams.kIsolate);
-
-    await service.streamListen(EventStreams.kIsolate);
-
     // The isolate may have started before we subscribed.
     vm = await service.getVM();
     if (vmIsolates.isNotEmpty) {
diff --git a/runtime/vm/object_test.cc b/runtime/vm/object_test.cc
index 1578f69..ac5c703 100644
--- a/runtime/vm/object_test.cc
+++ b/runtime/vm/object_test.cc
@@ -3643,7 +3643,7 @@
     weak.set_key(key);
     weak.set_value(value);
   }
-  GCTestHelper::CollectAllGarbage();
+  GCTestHelper::CollectNewSpace();
   EXPECT(weak.key() != Object::null());
   EXPECT(weak.value() != Object::null());
 }
@@ -3668,7 +3668,7 @@
     weak2.set_key(key2);
     weak2.set_value(value2);
   }
-  GCTestHelper::CollectAllGarbage();
+  GCTestHelper::CollectNewSpace();
   EXPECT(weak1.key() != Object::null());
   EXPECT(weak1.value() != Object::null());
   EXPECT(weak2.key() != Object::null());
@@ -3693,7 +3693,7 @@
     weak2.set_key(key);
     weak2.set_value(value2);
   }
-  GCTestHelper::CollectAllGarbage();
+  GCTestHelper::CollectNewSpace();
   EXPECT(weak1.key() != Object::null());
   EXPECT(weak1.value() != Object::null());
   EXPECT(weak2.key() != Object::null());
@@ -3783,7 +3783,7 @@
     key ^= OneByteString::null();
     value ^= OneByteString::null();
   }
-  GCTestHelper::CollectAllGarbage();
+  GCTestHelper::CollectNewSpace();
   EXPECT(weak.key() == Object::null());
   EXPECT(weak.value() == Object::null());
 }
@@ -3806,7 +3806,7 @@
     weak2.set_key(key);
     weak2.set_value(value2);
   }
-  GCTestHelper::CollectAllGarbage();
+  GCTestHelper::CollectNewSpace();
   EXPECT(weak1.key() == Object::null());
   EXPECT(weak1.value() == Object::null());
   EXPECT(weak2.key() == Object::null());
@@ -3869,7 +3869,13 @@
     weak.set_target(target);
     weak.SetTypeArguments(type_arguments);
   }
-  GCTestHelper::CollectAllGarbage();
+
+  if (space == Heap::kNew) {
+    GCTestHelper::CollectNewSpace();
+  } else {
+    GCTestHelper::CollectAllGarbage();
+  }
+
   EXPECT(weak.target() != Object::null());
   EXPECT(weak.GetTypeArguments() != Object::null());
 }
@@ -3894,7 +3900,13 @@
     weak.set_target(target);
     weak.SetTypeArguments(type_arguments);
   }
-  GCTestHelper::CollectAllGarbage();
+
+  if (space == Heap::kNew) {
+    GCTestHelper::CollectNewSpace();
+  } else {
+    GCTestHelper::CollectAllGarbage();
+  }
+
   EXPECT(weak.target() == Object::null());
   EXPECT(weak.GetTypeArguments() != Object::null());
 }
@@ -3927,7 +3939,13 @@
     weak_property.set_key(key);
     weak_property.set_value(weak_reference);
   }
-  GCTestHelper::CollectAllGarbage();
+
+  if (space == Heap::kNew) {
+    GCTestHelper::CollectNewSpace();
+  } else {
+    GCTestHelper::CollectAllGarbage();
+  }
+
   const auto& weak_reference =
       WeakReference::CheckedHandle(Z, weak_property.value());
   EXPECT(weak_reference.target() == Object::null());
@@ -3964,7 +3982,13 @@
     weak_property.set_key(key);
     weak_property.set_value(weak_reference);
   }
-  GCTestHelper::CollectAllGarbage();
+
+  if (space == Heap::kNew) {
+    GCTestHelper::CollectNewSpace();
+  } else {
+    GCTestHelper::CollectAllGarbage();
+  }
+
   const auto& weak_reference =
       WeakReference::CheckedHandle(Z, weak_property.value());
   EXPECT(weak_reference.target() != Object::null());
diff --git a/tools/VERSION b/tools/VERSION
index 36868b2..106f5a3 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 17
 PATCH 0
-PRERELEASE 114
+PRERELEASE 115
 PRERELEASE_PATCH 0
\ No newline at end of file