bit-hack/nano-script

Fix linetable for while loops

Closed this issue · 1 comments

  01 -- function main()
0000 INS_LOCALS   65
  03 --   var i = 0
0005 INS_CONST    0
0010 INS_SETV     1
  06 --   while (i < 64)
0015 INS_GETV     1     <--------------------.
0020 INS_CONST    64                         |
0025 INS_LT                                  |
  07 --     data[i] = random()               |
0026 INS_NOT                                 |
0027 INS_JMP      73    -------------------. |  // note linetable is wrong here
0032 INS_GETV     1                        | |
0037 INS_SCALL    00B3BAB0                 | |
0042 INS_SETI     0                        | |
  08 --     i = i + 1                      | |
0047 INS_GETV     1                        | |
0052 INS_CONST    1                        | |
0057 INS_ADD                               | |
0058 INS_SETV     1                        | |
  09 --   end                              | |
0063 INS_CONST    1                        | |
0068 INS_JMP      15    -------------------|-'
  11 --   i = 0                            |
0073 INS_CONST    0     <------------------'  
0078 INS_SETV     1
  12 --   while (i < 64)
0083 INS_GETV     1     <--------------------.
0088 INS_CONST    64                         |
0093 INS_LT                                  |
  13 --     check(data[i])                   |  // is wrong here too
0094 INS_NOT                                 |
0095 INS_JMP      146   -------------------. |
0100 INS_GETV     1                        | |
0105 INS_GETI     0                        | |
0110 INS_SCALL    00B3BB10                 | |
0115 INS_POP      1                        | |
  14 --     i = i + 1                      | |
0120 INS_GETV     1                        | |
0125 INS_CONST    1                        | |
0130 INS_ADD                               | |
0131 INS_SETV     1                        | |
  15 --   end                              | |
0136 INS_CONST    1                        | |
0141 INS_JMP      83    -------------------|-'
  16 -- end                                |
0146 INS_CONST    0     <------------------'
0151 INS_RET      65

Fixed in commit: 91720d3