comparison src/testdir/test_vim9_disassemble.vim @ 28287:dc68c111cf7a v8.2.4669

patch 8.2.4669: in compiled code len('string') is not inlined Commit: https://github.com/vim/vim/commit/58f331a05f5b7bdddf04e68b6e51a827fd0c43f0 Author: LemonBoy <thatlemon@gmail.com> Date: Sat Apr 2 21:59:06 2022 +0100 patch 8.2.4669: in compiled code len('string') is not inlined Problem: In compiled code len('string') is not inlined. Solution: Compute the length at compile time if possible. (closes https://github.com/vim/vim/issues/10065)
author Bram Moolenaar <Bram@vim.org>
date Sat, 02 Apr 2022 23:00:05 +0200
parents 9d90eef65a46
children d550054e1328
comparison
equal deleted inserted replaced
28286:68700da20991 28287:dc68c111cf7a
1013 else 1013 else
1014 echo "no" 1014 echo "no"
1015 endif 1015 endif
1016 enddef 1016 enddef
1017 1017
1018 def s:LenConstant(): number
1019 return len("foo") + len("fighters")
1020 enddef
1021
1018 def Test_disassemble_const_expr() 1022 def Test_disassemble_const_expr()
1023 var instr = execute('disassemble LenConstant')
1024 assert_match('LenConstant\_s*' ..
1025 'return len("foo") + len("fighters")\_s*' ..
1026 '\d PUSHNR 11\_s*',
1027 instr)
1028 assert_notmatch('BCALL len', instr)
1029
1019 assert_equal("\nyes", execute('HasEval()')) 1030 assert_equal("\nyes", execute('HasEval()'))
1020 var instr = execute('disassemble HasEval') 1031 instr = execute('disassemble HasEval')
1021 assert_match('HasEval\_s*' .. 1032 assert_match('HasEval\_s*' ..
1022 'if has("eval")\_s*' .. 1033 'if has("eval")\_s*' ..
1023 'echo "yes"\_s*' .. 1034 'echo "yes"\_s*' ..
1024 '\d PUSHS "yes"\_s*' .. 1035 '\d PUSHS "yes"\_s*' ..
1025 '\d ECHO 1\_s*' .. 1036 '\d ECHO 1\_s*' ..