There's also repeat until #x assuming (as you are) that #x does not return false... But this generates the simplest bytecode: do local _ = #x end
Many thanks.