can anyone explain this sequence? "while (v8 = v5, --v5, !!v8)"

can anyone explain this sequence? "while (v8 = v5, --v5, !!v8)"

please pay attention especially to the "!!" double exclamation marks are unfound in C or c++ syntax