comparison src/testdir/test_vim9_disassemble.vim @ 20913:a127db33a075 v8.2.1008

patch 8.2.1008: Vim9: no test for disassambling newly added instructions Commit: https://github.com/vim/vim/commit/0779fab2979d6d055ba3c464f1c2b9d90dc9e49f Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jun 18 22:18:18 2020 +0200 patch 8.2.1008: Vim9: no test for disassambling newly added instructions Problem: Vim9: no test for disassambling newly added instructions. Solution: Add a function and check disassembly.
author Bram Moolenaar <Bram@vim.org>
date Thu, 18 Jun 2020 22:30:04 +0200
parents 0d7465881b06
children 0653b9b72091
comparison
equal deleted inserted replaced
20912:2fb9ec701297 20913:a127db33a075
178 'localdict\["a"\] = 456\_s*' .. 178 'localdict\["a"\] = 456\_s*' ..
179 '\d\+ PUSHNR 456\_s*' .. 179 '\d\+ PUSHNR 456\_s*' ..
180 '\d\+ PUSHS "a"\_s*' .. 180 '\d\+ PUSHS "a"\_s*' ..
181 '\d\+ LOAD $1\_s*' .. 181 '\d\+ LOAD $1\_s*' ..
182 '\d\+ STOREDICT\_s*' .. 182 '\d\+ STOREDICT\_s*' ..
183 '\d\+ PUSHNR 0\_s*' ..
184 '\d\+ RETURN',
185 res)
186 enddef
187
188 def s:ListAssign()
189 let x: string
190 let y: string
191 let l: list<any>
192 [x, y; l] = g:stringlist
193 enddef
194
195 def Test_disassemble_list_assign()
196 let res = execute('disass s:ListAssign')
197 assert_match('<SNR>\d*_ListAssign\_s*' ..
198 'let x: string\_s*' ..
199 '\d PUSHS "\[NULL\]"\_s*' ..
200 '\d STORE $0\_s*' ..
201 'let y: string\_s*' ..
202 '\d PUSHS "\[NULL\]"\_s*' ..
203 '\d STORE $1\_s*' ..
204 'let l: list<any>\_s*' ..
205 '\d NEWLIST size 0\_s*' ..
206 '\d STORE $2\_s*' ..
207 '\[x, y; l\] = g:stringlist\_s*' ..
208 '\d LOADG g:stringlist\_s*' ..
209 '\d CHECKTYPE list stack\[-1\]\_s*' ..
210 '\d CHECKLEN >= 2\_s*' ..
211 '\d\+ ITEM 0\_s*' ..
212 '\d\+ CHECKTYPE string stack\[-1\]\_s*' ..
213 '\d\+ STORE $0\_s*' ..
214 '\d\+ ITEM 1\_s*' ..
215 '\d\+ CHECKTYPE string stack\[-1\]\_s*' ..
216 '\d\+ STORE $1\_s*' ..
217 '\d\+ SLICE 2\_s*' ..
218 '\d\+ STORE $2\_s*' ..
183 '\d\+ PUSHNR 0\_s*' .. 219 '\d\+ PUSHNR 0\_s*' ..
184 '\d\+ RETURN', 220 '\d\+ RETURN',
185 res) 221 res)
186 enddef 222 enddef
187 223