diff --git a/include/mruby/ops.h b/include/mruby/ops.h index f62d8cdfa..7f3b77bf6 100644 --- a/include/mruby/ops.h +++ b/include/mruby/ops.h @@ -89,7 +89,7 @@ OPCODE(ARYCAT, B) /* ary_cat(R[a],R[a+1]) */ OPCODE(ARYPUSH, BB) /* ary_push(R[a],R[a+1]..R[a+b]) */ OPCODE(ARYDUP, B) /* R[a] = ary_dup(R[a]) */ OPCODE(AREF, BBB) /* R[a] = R[b][c] */ -OPCODE(ASET, BBB) /* R[a][c] = R[b] */ +OPCODE(ASET, BBB) /* R[b][c] = R[a] */ OPCODE(APOST, BBB) /* *R[a],R[a+1]..R[a+c] = R[a][b..] */ OPCODE(INTERN, B) /* R[a] = intern(R[a]) */ OPCODE(SYMBOL, BB) /* R[a] = intern(Pool[b]) */ diff --git a/src/vm.c b/src/vm.c index 3457ce33c..f6b929ad6 100644 --- a/src/vm.c +++ b/src/vm.c @@ -2669,7 +2669,7 @@ RETRY_TRY_BLOCK: } CASE(OP_ASET, BBB) { - mrb_assert(mrb_type(regs[a]) == MRB_TT_ARRAY); + mrb_assert(mrb_type(regs[b]) == MRB_TT_ARRAY); mrb_ary_set(mrb, regs[b], c, regs[a]); NEXT; }