### 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



append_opcode(GDScriptFunction::OPCODE_JUMP); 
	int else_jmp_addr = opcodes.size();
	append(0); 
	patch_jump(if_jmp_addrs.back()->get());
	if_jmp_addrs.pop_back();
	if_jmp_addrs.push_back(else_jmp_addr);
}
void GDScriptByteCodeGenerator::write_endif() {
	patch_jump(if_jmp_addrs.back()->get());
	if_jmp_addrs.pop_back();
}
void GDScriptByteCodeGenerator::write_jump_if_shared(const Address &p_value) {
	append_opcode(GDScriptFunction::OPCODE_JUMP_IF_SHARED);
	append(p_value);
	if_jmp_addrs.push_back(opcodes.size());
	append(0); 
}
void GDScriptByteCodeGenerator::write_end_jump_if_shared() {
	patch_jump(if_jmp_addrs.back()->get());
	if_jmp_addrs.pop_back();
}
void GDScriptByteCodeGenerator::start_for(const GDScriptDataType &p_iterator_type, const GDScriptDataType &p_list_type) {
	Address counter(Address::LOCAL_VARIABLE, add_local("@counter_pos", p_iterator_type), p_iterator_type);
	Address container(Address::LOCAL_VARIABLE, add_local("@container_pos", p_list_type), p_list_type);
	
	for_counter_variables.push_back(counter);
	for_container_variables.push_back(container);
}
void GDScriptByteCodeGenerator::write_for_assignment(const Address &p_variable, const Address &p_list) {