     }
 
     private mutating func decodeNumberExponent(start: Int, sign: Sign, value: Double) throws -> JSON {
-        guard ++loc < input.count else {
+        ++loc
+        guard loc < input.count else {
             throw Error.EndOfStreamUnexpected
         }
 

    }

    private mutating func decodeNumberDecimal(start: Int, sign: Sign, value: Double) throws -> JSON {
        guard ++loc < input.count else {
            throw Error.EndOfStreamUnexpected
        }


    }

    private mutating func decodeNumberNegative(start: Int) throws -> JSON {
        ++loc
        guard loc < input.count else {
            throw Error.EndOfStreamUnexpected
        }

