     case singleFragmentFoundButNotAllowed
 }
 
-
+extension UInt8 {
+    
+    internal static let _space = UInt8(ascii: " ")
+    internal static let _return = UInt8(ascii: "\r")
+    internal static let _newline = UInt8(ascii: "\n")
+    internal static let _tab = UInt8(ascii: "\t")
+    
+    internal static let _colon = UInt8(ascii: ":")
+    internal static let _comma = UInt8(ascii: ",")
+    
+    internal static let _openbrace = UInt8(ascii: "{")
+    internal static let _closebrace = UInt8(ascii: "}")
+    
+    internal static let _openbracket = UInt8(ascii: "[")
+    internal static let _closebracket = UInt8(ascii: "]")
+    
+}

                }

                switch extraByte {
                case UInt8(ascii: ","):
                    state = .expectValue
                case UInt8(ascii: "]"):
                    return array
                case UInt8(ascii: " "), UInt8(ascii: "\r"), UInt8(ascii: "\n"), UInt8(ascii: "\t"):
                    state = .expectSeperatorOrEnd
                default:
                    throw JSONError.unexpectedCharacter(ascii: extraByte, characterIndex: self.reader.index)


                pastControlChar = .expOperator
                numbersSinceControlChar = 0
            case ._space, ._return, ._newline, ._tab:
                guard numbersSinceControlChar > 0 else {
                    throw JSONError.unexpectedCharacter(ascii: byte, characterIndex: index)
                }

                return self.reader.makeStringFast(self.reader[stringStartIndex ..< index])
            case ._comma, ._closebracket, ._closebrace:
                guard numbersSinceControlChar > 0 else {
                    throw JSONError.unexpectedCharacter(ascii: byte, characterIndex: index)
                }
