diff options
Diffstat (limited to 'src/vim9execute.c')
-rw-r--r-- | src/vim9execute.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/vim9execute.c b/src/vim9execute.c index 43bae4417d..a4c6632738 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -4697,6 +4697,8 @@ exec_instructions(ectx_T *ectx) case ISN_COMPAREFUNC: case ISN_COMPARESTRING: case ISN_COMPAREBLOB: + case ISN_COMPARECLASS: + case ISN_COMPAREOBJECT: { typval_T *tv1 = STACK_TV_BOT(-2); typval_T *tv2 = STACK_TV_BOT(-1); @@ -4726,10 +4728,19 @@ exec_instructions(ectx_T *ectx) status = typval_compare_string(tv1, tv2, exprtype, ic, &res); } - else + else if (iptr->isn_type == ISN_COMPAREBLOB) { status = typval_compare_blob(tv1, tv2, exprtype, &res); } + else if (iptr->isn_type == ISN_COMPARECLASS) + { + status = typval_compare_class(tv1, tv2, exprtype, &res); + } + else // ISN_COMPAREOBJECT + { + status = typval_compare_object(tv1, tv2, + exprtype, &res); + } --ectx->ec_stack.ga_len; clear_tv(tv1); clear_tv(tv2); @@ -6807,6 +6818,8 @@ list_instructions(char *pfx, isn_T *instr, int instr_count, ufunc_T *ufunc) case ISN_COMPARELIST: case ISN_COMPAREDICT: case ISN_COMPAREFUNC: + case ISN_COMPARECLASS: + case ISN_COMPAREOBJECT: case ISN_COMPAREANY: { char *p; @@ -6844,6 +6857,9 @@ list_instructions(char *pfx, isn_T *instr, int instr_count, ufunc_T *ufunc) case ISN_COMPARELIST: type = "COMPARELIST"; break; case ISN_COMPAREDICT: type = "COMPAREDICT"; break; case ISN_COMPAREFUNC: type = "COMPAREFUNC"; break; + case ISN_COMPARECLASS: type = "COMPARECLASS"; break; + case ISN_COMPAREOBJECT: + type = "COMPAREOBJECT"; break; case ISN_COMPAREANY: type = "COMPAREANY"; break; default: type = "???"; break; } |