           break refillBuffer
         }
         // Buffering mode.
-        // Fill buffer back to 4 bytes (or as many as left in the generator).
+        // Fill buffer back to 4 bytes (or as many as are left in the generator).
         _sanityCheck(_bitsInBuffer < 32)
         repeat {
           if let codeUnit = next.next() {
             // We use & 0x1f to make the compiler omit a bounds check branch.
             _decodeBuffer |= (UInt32(codeUnit) << UInt32(_bitsInBuffer & 0x1f))
             _bitsInBuffer = _bitsInBuffer &+ 8
-          } else { // Reached end.
+          } else { // Exhausted generator.
             _atEnd = true
             if _bitsInBuffer == 0 { return .EmptyInput }
             break // We still have some bytes left in our buffer.

      // Consume the decoded bytes (or maximal subpart of ill-formed sequence).
      let bitsConsumed = 8 &* length
      _sanityCheck(1...4 ~= length && bitsConsumed <= _bitsInBuffer)
      // Swift doesn't allow shifts greater than or equal to the # of bits.
      // _decodeBuffer >>= UInt32(bitsConsumed) & 0x1f
      _decodeBuffer = UInt32(truncatingBitPattern:
        UInt64(_decodeBuffer) >> (UInt64(bitsConsumed) & 0x1f))
      _bitsInBuffer = _bitsInBuffer &- bitsConsumed

      // Require 10xx xxxx  10xx xxxx  1110 xxxx.
      if _slowPath(buffer & 0xc0c0f0 != 0x8080e0) {
        if buffer & 0x00c000 != 0x008000 { return (nil, 1) }
        return (nil, 2) // All checks on CU0 & CU1 passed.
      }
      // Extract data bits.
      let value = (buffer & 0x3f0000) >> 16
