### 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
}
		if (skip) {
			print_unicode_error(vformat("Unpaired lead surrogate (%x [eol])", c_prev));
			decode_error = true;
		}
	}
	if (str_size == 0) {
		clear();
		return OK; 
	}
	resize(str_size + 1);
	char32_t *dst = ptrw();
	dst[str_size] = 0;
	bool skip = false;
	uint32_t c_prev = 0;
	while (cstr_size) {
		uint32_t c = (byteswap) ? BSWAP16(*p_utf16) : *p_utf16;
		if ((c & 0xfffffc00) == 0xd800) { 
			if (skip) {
				*(dst++) = c_prev; 
			}
			skip = true;
		} else if ((c & 0xfffffc00) == 0xdc00) { 
			if (skip) {
				*(dst++) = (c_prev << 10UL) + c - ((0xd800 << 10UL) + 0xdc00 - 0x10000); 
			} else {
				*(dst++) = c; 
			}
			skip = false;
		} else {