summaryrefslogtreecommitdiffstats
path: root/src/vim9execute.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vim9execute.c')
-rw-r--r--src/vim9execute.c18
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;
}