### 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
CHECK_MESSAGE(String::num_real(3.1415f) == "3.1415", "Prints only reliable digits of 32-bit float when real_t = float.");
#endif 
	
	CHECK(String::num(0.0000012345432123454321, -1) == "0.00000123454321"); 
	CHECK(String::num(0.0000012345432123454321) == "0.00000123454321"); 
	CHECK(String::num(-0.0000012345432123454321) == "-0.00000123454321");
	CHECK(String::num(-10000.0000012345432123454321) == "-10000.0000012345");
	CHECK(String::num(0.0000000000012345432123454321) == "0.00000000000123");
	CHECK(String::num(0.0000000000012345432123454321, 3) == "0");
	
	
	CHECK(String::num(0.0000056789876567898765) == "0.00000567898766"); 
	CHECK(String::num(10000.000005678999999999) == "10000.000005679"); 
	CHECK(String::num(42.12999999, 6) == "42.13"); 
	
	
	CHECK(String::num(0.00000123456789987654321123456789987654321, 32).length() == 34);
	CHECK(String::num(0.00000123456789987654321123456789987654321, 42).length() == 34); 
	CHECK(String::num(10000.00000123456789987654321123456789987654321, 42).length() == 38); 
}
TEST_CASE("[String] String to integer") {
	static const char *nums[4] = { "1237461283", "- 22", "0", " - 1123412" };
	static const int num[4] = { 1237461283, -22, 0, -1123412 };
	for (int i = 0; i < 4; i++) {
		CHECK(String(nums[i]).to_int() == num[i]);
	}
}
TEST_CASE("[String] Hex to integer") {
	static const char *nums[4] = { "0xFFAE", "22", "0", "AADDAD" };
	static const int64_t num[4] = { 0xFFAE, 0x22, 0, 0xAADDAD };