dumpError method

String? dumpError()

Implementation

String? dumpError() {
  if (!isException && !isError) return null;
  final exceptionV = _ctx.exception;
  final exceptionVisError = exceptionV.isError;
  if (exceptionVisError) {
    final name = exceptionV.getPropertyStr('name');
    final stack = exceptionV.getPropertyStr('stack');
    final message = exceptionV.getPropertyStr('message');
    final cause = exceptionV.getPropertyStr('cause');
    final errors = exceptionV.getPropertyStr('errors');
    StringBuffer sb = StringBuffer();
    if (!name.isUndefined && name.isString) {
      var nameStr = name.toCString;
      if (nameStr != null) {
        sb.write('(name)$nameStr');
        freeCStringPairPtr(nameStr);
      }
    }
    if (!stack.isUndefined && stack.isString) {
      var stackStr = stack.toCString;
      if (stackStr != null) {
        sb.write(',(stack)$stackStr');
        freeCStringPairPtr(stackStr);
      }
    }
    if (!message.isUndefined && message.isString) {
      var messageStr = message.toCString;
      if (messageStr != null) {
        sb.write(',(message)$messageStr');
        freeCStringPairPtr(messageStr);
      }
    }
    if (!cause.isUndefined && cause.isString) {
      var causeStr = cause.toCString;
      if (causeStr != null) {
        sb.write(',(cause)$causeStr');
        freeCStringPairPtr(causeStr);
      }
    }
    if (!errors.isUndefined && errors.isString) {
      var errorsStr = errors.toCString;
      if (errorsStr != null) {
        sb.write(',(errors)$errorsStr');
        freeCStringPairPtr(errorsStr);
      }
    }
    return sb.toString();
  }
  ctx.jsStdDumpError();
  return null;
}