Fixed a discrepancy in `OP_ASET`
There was a discrepancy in the actual behavior, assertions, and documentation.
Therefore, I modified it based on the actual behavior.
MODIFY
include/mruby/ops.h
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]) */

MODIFY
src/vm.c
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;
}

Fixed a discrepancy in `OP_ASET`

There was a discrepancy in the actual behavior, assertions, and documentation.
Therefore, I modified it based on the actual behavior.