1 When compiling loop control statements, the compiler incorrectly emitted an 2 I_POP instead of an I_CUPV instruction for open upvalues, causing closures to 3 reference unclosed upvalues that went out of scope, potentially leading to 4 invalid stack accesses in subsequent code. 5 6 -- Testcase -- 7 {% 8 let dest; 9 10 for (let i in [ 1 ]) { 11 let foo = i; 12 dest = () => print(foo, '\n'); 13 continue; 14 } 15 16 dest(); 17 %} 18 -- End -- 19 20 -- Expect stdout -- 21 1 22 -- End --
This page was automatically generated by LXR 0.3.1. • OpenWrt