diff --git a/src/api.cc b/src/api.cc
index 4eacd29..275ce95 100644
--- a/src/api.cc
+++ b/src/api.cc
@@ -8968,13 +8968,21 @@
     PersistentValueVector<DebugInterface::Script>& scripts) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
   ENTER_V8(isolate);
-  i::HandleScope handle_scope(isolate);
-  i::Handle<i::FixedArray> instances = isolate->debug()->GetLoadedScripts();
-  for (int i = 0; i < instances->length(); i++) {
-    i::Handle<i::Script> script =
-        i::Handle<i::Script>(i::Script::cast(instances->get(i)));
-    if (script->type() != i::Script::TYPE_NORMAL) continue;
-    scripts.Append(ToApiHandle<Script>(script));
+  // TODO(kozyatinskiy): remove this GC once tests are dealt with.
+  isolate->heap()->CollectAllGarbage(i::Heap::kFinalizeIncrementalMarkingMask,
+                                     i::GarbageCollectionReason::kDebugger);
+  {
+    i::DisallowHeapAllocation no_gc;
+    i::Script::Iterator iterator(isolate);
+    i::Script* script;
+    while ((script = iterator.Next())) {
+      if (script->type() != i::Script::TYPE_NORMAL) continue;
+      if (script->HasValidSource()) {
+        i::HandleScope handle_scope(isolate);
+        i::Handle<i::Script> script_handle(script, isolate);
+        scripts.Append(ToApiHandle<Script>(script_handle));
+      }
+    }
   }
 }
 
diff --git a/test/inspector/debugger/script-on-after-compile-expected.txt b/test/inspector/debugger/script-on-after-compile-expected.txt
index fa82d73..d7c6d76 100644
--- a/test/inspector/debugger/script-on-after-compile-expected.txt
+++ b/test/inspector/debugger/script-on-after-compile-expected.txt
@@ -661,4 +661,4 @@
     startLine : 0
     url : 
 }
-Run gc and then Debugger.enable()..
+Remove script references and re-enable debugger.
diff --git a/test/inspector/debugger/script-on-after-compile.js b/test/inspector/debugger/script-on-after-compile.js
index 9281ace..083aa48 100644
--- a/test/inspector/debugger/script-on-after-compile.js
+++ b/test/inspector/debugger/script-on-after-compile.js
@@ -1,7 +1,6 @@
 // Copyright 2016 the V8 project authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
-// Flags: --expose_gc
 
 print("Checks that inspector correctly process compiled scripts");
 
@@ -49,9 +48,10 @@
   .then(() => Protocol.Debugger.enable())
   .then(addScripts)
   .then(() => Protocol.Debugger.disable())
-
-  .then(() => InspectorTest.log("Run gc and then Debugger.enable().."))
-  .then(() => Protocol.Runtime.evaluate({ expression: "for (let i = 1; i < 20; ++i) eval(`foo${i} = undefined`); gc();" }))
+  .then(() => InspectorTest.log("Remove script references and re-enable debugger."))
+  .then(() => Protocol.Runtime.evaluate(
+      { expression: "for (let i = 1; i < 20; ++i) eval(`foo${i} = undefined`);" }))
+  .then(() => Protocol.HeapProfiler.collectGarbage())
   .then(() => Protocol.Debugger.enable())
   .then(InspectorTest.completeTest);
 
