public override ICoroutine Clear(VM.Frame frame, FuncArgsInfo args_info, ref BHS status) { var arr = frame.stack.Pop(); var lst = AsList(arr); lst.Clear(); arr.Release(); return(null); }
public override ICoroutine Clear(VM.Frame frame, FuncArgsInfo args_info, ref BHS status) { int idx = (int)frame.stack.PopRelease().num; var arr = frame.stack.Pop(); var lst = (IList <T>)arr.obj; lst.Clear(); arr.Release(); return(null); }
public override ICoroutine RemoveAt(VM.Frame frame, FuncArgsInfo args_info, ref BHS status) { int idx = (int)frame.stack.PopRelease().num; var arr = frame.stack.Pop(); var lst = AsList(arr); lst.RemoveAt(idx); arr.Release(); return(null); }
//NOTE: follows special Opcodes.ArrIdx conventions public override ICoroutine ArrIdx(VM.Frame frame, FuncArgsInfo args_info, ref BHS status) { int idx = (int)frame.stack.PopRelease().num; var arr = frame.stack.Pop(); var lst = (IList <T>)arr.obj; var res = Val.NewObj(frame.vm, lst[idx], item_type.Get()); frame.stack.Push(res); arr.Release(); return(null); }
public override ICoroutine Add(VM.Frame frm, FuncArgsInfo args_info, ref BHS status) { var val = frm.stack.Pop(); var arr = frm.stack.Pop(); var lst = (IList <T>)arr.obj; lst.Add((T)val.obj); val.Release(); arr.Release(); return(null); }
//NOTE: follows special Opcodes.ArrIdx conventions public override ICoroutine ArrIdx(VM.Frame frame, FuncArgsInfo args_info, ref BHS status) { int idx = (int)frame.stack.PopRelease().num; var arr = frame.stack.Pop(); var lst = AsList(arr); var res = lst[idx]; frame.stack.PushRetain(res); arr.Release(); return(null); }
public override ICoroutine Add(VM.Frame frm, FuncArgsInfo args_info, ref BHS status) { var val = frm.stack.Pop(); var arr = frm.stack.Pop(); var lst = AsList(arr); lst.Add(val); val.Release(); arr.Release(); return(null); }
//NOTE: follows special Opcodes.ArrIdxW conventions public override ICoroutine ArrIdxW(VM.Frame frame, FuncArgsInfo args_info, ref BHS status) { int idx = (int)frame.stack.PopRelease().num; var arr = frame.stack.Pop(); var val = frame.stack.Pop(); var lst = AsList(arr); lst[idx] = val; val.Release(); arr.Release(); return(null); }
public abstract ICoroutine Clear(VM.Frame frame, FuncArgsInfo args_info, ref BHS status);
public abstract ICoroutine RemoveAt(VM.Frame frame, FuncArgsInfo args_info, ref BHS status);