### Godot version

3.5.1mono

### System information

windows10

### Issue description

Error message
 scene/main/node.cpp:1362 - Index p_index = 0 is out of bounds (data.children.size() = 0).
 scene/main/node.cpp:397 - Parameter "p_child" is null.
 scene/gui/tab_container.cpp:593 - Index p_current = 0 is out of bounds (get_tab_count() = 0).
See "Steps to reproduce for details"

### Steps to reproduce

Set an external text editor
Create a script
Drop the script to the built-in text editor like this image:
![image](https://user-images.githubusercontent.com/119792950/209504041-039f2620-5e42-4c0f-8c41-cd24486fb3d2.png)
And got error message:
 scene/main/node.cpp:1362 - Index p_index = 0 is out of bounds (data.children.size() = 0).
 scene/main/node.cpp:397 - Parameter "p_child" is null.
 scene/gui/tab_container.cpp:593 - Index p_current = 0 is out of bounds (get_tab_count() = 0).

### Minimal reproduction project

An empty project
if (!bool(EDITOR_GET("text_editor/behavior/files/restore_scripts_on_load"))) {
		return;
	}
	if (!p_layout->has_section_key("ScriptEditor", "open_scripts") && !p_layout->has_section_key("ScriptEditor", "open_help")) {
		return;
	}
	Array scripts = p_layout->get_value("ScriptEditor", "open_scripts");
	Array helps;
	if (p_layout->has_section_key("ScriptEditor", "open_help")) {
		helps = p_layout->get_value("ScriptEditor", "open_help");
	}
	restoring_layout = true;
	HashSet<String> loaded_scripts;
	List<String> extensions;
	ResourceLoader::get_recognized_extensions_for_type("Script", &extensions);
	for (int i = 0; i < scripts.size(); i++) {
		String path = scripts[i];
		Dictionary script_info = scripts[i];
		if (!script_info.is_empty()) {
			path = script_info["path"];
		}
		if (!FileAccess::exists(path)) {
			if (script_editor_cache->has_section(path)) {
				script_editor_cache->erase_section(path);
			}
			continue;
		}
		loaded_scripts.insert(path);
		if (extensions.find(path.get_extension())) {
			Ref<Script> scr = ResourceLoader::load(path);