### 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
APPEND_CHAR(uint32_t(0xe0 | ((c >> 12) & 0x0f))); 
			APPEND_CHAR(uint32_t(0x80 | ((c >> 6) & 0x3f))); 
			APPEND_CHAR(uint32_t(0x80 | (c & 0x3f))); 
		} else if (c <= 0x001fffff) { 
			APPEND_CHAR(uint32_t(0xf0 | ((c >> 18) & 0x07))); 
			APPEND_CHAR(uint32_t(0x80 | ((c >> 12) & 0x3f))); 
			APPEND_CHAR(uint32_t(0x80 | ((c >> 6) & 0x3f))); 
			APPEND_CHAR(uint32_t(0x80 | (c & 0x3f))); 
		} else if (c <= 0x03ffffff) { 
			APPEND_CHAR(uint32_t(0xf8 | ((c >> 24) & 0x03))); 
			APPEND_CHAR(uint32_t(0x80 | ((c >> 18) & 0x3f))); 
			APPEND_CHAR(uint32_t(0x80 | ((c >> 12) & 0x3f))); 
			APPEND_CHAR(uint32_t(0x80 | ((c >> 6) & 0x3f))); 
			APPEND_CHAR(uint32_t(0x80 | (c & 0x3f))); 
		} else if (c <= 0x7fffffff) { 
			APPEND_CHAR(uint32_t(0xfc | ((c >> 30) & 0x01))); 
			APPEND_CHAR(uint32_t(0x80 | ((c >> 24) & 0x3f))); 
			APPEND_CHAR(uint32_t(0x80 | ((c >> 18) & 0x3f))); 
			APPEND_CHAR(uint32_t(0x80 | ((c >> 12) & 0x3f))); 
			APPEND_CHAR(uint32_t(0x80 | ((c >> 6) & 0x3f))); 
			APPEND_CHAR(uint32_t(0x80 | (c & 0x3f))); 
		} else {
			APPEND_CHAR(0x20);
		}
	}
#undef APPEND_CHAR
	*cdst = 0; 
	return utf8s;
}
String String::utf16(const char16_t *p_utf16, int p_len) {