diff --git a/runtime/vm/dart_api_impl_test.cc b/runtime/vm/dart_api_impl_test.cc
index e2862c4..9b50641 100644
--- a/runtime/vm/dart_api_impl_test.cc
+++ b/runtime/vm/dart_api_impl_test.cc
@@ -6855,15 +6855,18 @@
   EXPECT_VALID(lib);
   Library& lib_obj = Library::Handle();
   lib_obj ^= Api::UnwrapHandle(lib);
-  EXPECT_STREQ("foo:///main.dart", String::Handle(lib_obj.url()).ToCString());
-  const Array& lib_scripts = Array::Handle(lib_obj.LoadedScripts());
-  Script& script = Script::Handle();
-  String& uri = String::Handle();
-  for (intptr_t i = 0; i < lib_scripts.Length(); i++) {
-    script ^= lib_scripts.At(i);
-    uri = script.url();
-    const char* uri_str = uri.ToCString();
-    EXPECT(strstr(uri_str, "foo:///") == uri_str);
+  {
+    TransitionNativeToVM transition(thread);
+    EXPECT_STREQ("foo:///main.dart", String::Handle(lib_obj.url()).ToCString());
+    const Array& lib_scripts = Array::Handle(lib_obj.LoadedScripts());
+    Script& script = Script::Handle();
+    String& uri = String::Handle();
+    for (intptr_t i = 0; i < lib_scripts.Length(); i++) {
+      script ^= lib_scripts.At(i);
+      uri = script.url();
+      const char* uri_str = uri.ToCString();
+      EXPECT(strstr(uri_str, "foo:///") == uri_str);
+    }
   }
   result = Dart_FinalizeLoading(false);
   EXPECT_VALID(result);
