anchor.diff:            if (value is int) {
               result = value;
             } else if (value is String) {
  -            result = tryParse32Bit(value);
  +            result = _tryParse32BitProto3(value, context);
             } else {
               throw context.parseException(
                   'Expected int or stringified int', value);
             }
  -          check32BitSigned(result);
  +          _check32BitSignedProto3(result, context);
             return result;
           case PbFieldType._UINT64_BIT:
             Int64 result;
             if (value is int) {
               result = Int64(value);
             } else if (value is String) {
  -            result = tryParse64Bit(value);
  +            result = _tryParse64BitProto3(json, value, context);
             } else {
               throw context.parseException(
                   'Expected int or stringified int', value);
  
positive.code:           if (value is int) {
              result = value;
            } else if (value is String) {
              result = tryParse32Bit(value);
            } else {
              throw context.parseException(
                  'Expected int or stringified int', value);
            }
            return check32BitUnsigned(result);
          case PbFieldType._INT32_BIT:
          case PbFieldType._SINT32_BIT:
          case PbFieldType._SFIXED32_BIT:
  
negative.code:         case PbFieldType._UINT64_BIT:
            // TODO(sigurdm): We do not throw on negative values here.
            // That would probably require going via bignum.
            return _tryParse64BitProto3(json, key, context);
          case PbFieldType._INT64_BIT:
          case PbFieldType._SINT64_BIT:
          case PbFieldType._SFIXED64_BIT:
          case PbFieldType._FIXED64_BIT:
            return _tryParse64BitProto3(json, key, context);
          case PbFieldType._INT32_BIT:
          case PbFieldType._SINT32_BIT:
          case PbFieldType._FIXED32_BIT:
          case PbFieldType._SFIXED32_BIT:
            return _check32BitSignedProto3(
                _tryParse32BitProto3(key, context), context);
          case PbFieldType._UINT32_BIT:
            return _check32BitUnsignedProto3(
                _tryParse32BitProto3(key, context), context);
          default:
            throw StateError('Not a valid key type $fieldType');
        }
  