### 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 (!p_wildcard.length() || !length()) {
		return false;
	}
	return _wildcard_match(p_wildcard.get_data(), get_data(), false);
}
String String::format(const Variant &values, String placeholder) const {
	String new_string = String(this->ptr());
	if (values.get_type() == Variant::ARRAY) {
		Array values_arr = values;
		for (int i = 0; i < values_arr.size(); i++) {
			String i_as_str = String::num_int64(i);
			if (values_arr[i].get_type() == Variant::ARRAY) { 
				Array value_arr = values_arr[i];
				if (value_arr.size() == 2) {
					Variant v_key = value_arr[0];
					String key = v_key;
					Variant v_val = value_arr[1];
					String val = v_val;
					new_string = new_string.replace(placeholder.replace("_", key), val);
				} else {
					ERR_PRINT(String("STRING.format Inner Array size != 2 ").ascii().get_data());
				}
			} else { 
				Variant v_val = values_arr[i];
				String val = v_val;
				if (placeholder.find("_") > -1) {
					new_string = new_string.replace(placeholder.replace("_", i_as_str), val);
				} else {
					new_string = new_string.replace_first(placeholder, val);
				}