### Godot version

4.0.beta.11

### System information

windos10

### Issue description

Just touch 'godot' and make a demo while learning.
After `beta. 11` was released, I tested my Demo on the new version, and it flashed back frequently without any sign. I searched for a long time and didn't find the reason.




### Steps to reproduce

This code runs normally from `beta.5` to `beta.10`, and flashes back frequently and irregularly on `beta.11`.

## beta.11
![1](https://user-images.githubusercontent.com/78600221/211737226-5eafb3fc-8982-4562-acd7-2d769e065039.gif)

## beta.10
![22](https://user-images.githubusercontent.com/78600221/211738095-ec303429-abd9-4fc0-99b9-21347d69cd03.gif)




### Minimal reproduction project



function->default_arguments.reverse();
}
void GDScriptByteCodeGenerator::write_start(GDScript *p_script, const StringName &p_function_name, bool p_static, Variant p_rpc_config, const GDScriptDataType &p_return_type) {
	function = memnew(GDScriptFunction);
	debug_stack = EngineDebugger::is_active();
	function->name = p_function_name;
	function->_script = p_script;
	function->source = p_script->get_script_path();
#ifdef DEBUG_ENABLED
	function->func_cname = (String(function->source) + " - " + String(p_function_name)).utf8();
	function->_func_cname = function->func_cname.get_data();
#endif
	function->_static = p_static;
	function->return_type = p_return_type;
	function->rpc_config = p_rpc_config;
	function->_argument_count = 0;
}
GDScriptFunction *GDScriptByteCodeGenerator::write_end() {
#ifdef DEBUG_ENABLED
	if (!used_temporaries.is_empty()) {
		ERR_PRINT("Non-zero temporary variables at end of function: " + itos(used_temporaries.size()));
	}
#endif
	append_opcode(GDScriptFunction::OPCODE_END);
	for (int i = 0; i < temporaries.size(); i++) {