wr method

int wr(
  1. dynamic a,
  2. dynamic b
)

Implementation

int wr(dynamic a, dynamic b) {
  try {
    final bStr = b.toString();
    var current = a as int;
    for (var c = 0; c < bStr.length - 2; c += 3) {
      var d = bStr[c + 2];
      final int dVal = 'a'.codeUnitAt(0) <= d.codeUnitAt(0)
          ? d.codeUnitAt(0) - 87
          : int.parse(d);
      final int shifted = '+' == bStr[c + 1]
          ? unsignedRightShift(current, dVal)
          : current << dVal;
      current = '+' == bStr[c]
          ? (current + shifted & 4294967295)
          : current ^ shifted;
    }
    return current;
  } on Error {
    rethrow;
  }
}