Mercurial > vim
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 |