ErrorFunction.cs 614 B

12345678910111213141516
  1. namespace Lua.Standard.Basic;
  2. public sealed class ErrorFunction : LuaFunction
  3. {
  4. public override string Name => "error";
  5. public static readonly ErrorFunction Instance = new();
  6. protected override ValueTask<int> InvokeAsyncCore(LuaFunctionExecutionContext context, Memory<LuaValue> buffer, CancellationToken cancellationToken)
  7. {
  8. var obj = context.ArgumentCount == 0 || context.Arguments[0].Type is LuaValueType.Nil
  9. ? "(error object is a nil value)"
  10. : context.Arguments[0].ToString();
  11. throw new LuaRuntimeException(context.State.GetTraceback(), obj!);
  12. }
  13. }