### Godot version

4.0 beta17

### System information

Windows10

### Issue description

call `"".split()`
Is there an infinite loop inside? Function does not return.

### Steps to reproduce

"".split()

### Minimal reproduction project

N/A
#ifndef TEST_STRING_H
#define TEST_STRING_H
#include "core/string/ustring.h"
#include "tests/test_macros.h"
namespace TestString {
int u32scmp(const char32_t *l, const char32_t *r) {
	for (; *l == *r && *l && *r; l++, r++) {
		
	}
	return *l - *r;
}
TEST_CASE("[String] Assign Latin-1 char string") {
	String s = "Hello";
	CHECK(u32scmp(s.get_data(), U"Hello") == 0);
}
TEST_CASE("[String] Assign from Latin-1 char string (operator=)") {
	String s = "Dolly";
	const String &t = s;
	CHECK(u32scmp(t.get_data(), U"Dolly") == 0);
}
TEST_CASE("[String] Assign from Latin-1 char string (copycon)") {
	String s("Sheep");
	const String &t1(s);
	CHECK(u32scmp(t1.get_data(), U"Sheep") == 0);
	String t2 = String("Sheep", 3);
	CHECK(u32scmp(t2.get_data(), U"She") == 0);
}
TEST_CASE("[String] Assign from wchar_t string (operator=)") {
	String s = L"Give me";