private static EvaluationResult Div(Context context, ModuleLiteral env, EvaluationStackFrame args) { int divident = Args.AsInt(args, 0); int divisor = Args.AsInt(args, 1); return(DoMath(() => divident / divisor)); }
private static EvaluationResult Abs(Context context, ModuleLiteral env, EvaluationStackFrame args) { int value = Args.AsInt(args, 0); // Cast to long to force an overflow for int.MinValue return(DoMath(() => checked ((int)Math.Abs((long)value)))); }
private static EvaluationResult Pow(Context context, ModuleLiteral env, EvaluationStackFrame args) { int @base = Args.AsInt(args, 0); int exponent = Args.AsInt(args, 1); return(DoMath(() => checked ((int)Math.Pow(@base, exponent)))); }
private static EvaluationResult Sleep(Context context, ModuleLiteral env, EvaluationStackFrame args) { int milliseconds = Args.AsInt(args, 0); if (milliseconds >= 0) { Thread.Sleep(milliseconds); } return(EvaluationResult.Undefined); }