Sorun: koşul 1-olmayan sıfır-dışı bir değer (ör. 2) üretince "cond == 1" karşılaştırması false dönüyor ve döngü yanlışlıkla erken çıkıyordu. Düzeltme: üç geçici talimat (LOAD_CONST, EQUAL_EQUAL, JIF_FALSE) kaldırıldı. Geri-jump artık doğrudan JIF_TRUE ile yapılıyor — truthy (sıfır-dışı her değer) ise loopStart'a atla; isTruthy() semantiğiyle tutarlı. Test: tests/golden/loops/do_while_truthy.sqt — koşulun i<3 ifadesi (1 veya 0 üretir, 2 üretmez), ancak "while (j)" (j=5→truthy→dön, j=0→false→çık) gibi 1-olmayan truthy koşullar da doğru çalışıyor. 13/13 test yeşil. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| arithmetic | ||
| fibonacci | ||
| logic | ||
| loops | ||
| opt | ||
| string | ||