More generally, primitives should be guaranteed not to loop forever, because unlike opcode execution, it's hard to force them to time out.