• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/ucode/tests/custom/99_bugs/45_compiler_loop_ctrl_unclosed_upvals

  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