@@ -113,7 +113,19 @@ objectValues :: Parser Text -> Parser Value -> Parser (H.HashMap Text Value)
113objectValues str val = do
113objectValues str val = do
114 skipSpace
114 skipSpace
115 let pair = liftA2 (,) (str <* skipSpace) (char ':' *> val)
115 let pair = liftA2 (,) (str <* skipSpace) (char ':' *> val)
116− H.fromList <$> commaSeparated pair CLOSE_CURLY
116+ w <- A.peekWord8'
118+ then A.anyWord8 >> return H.empty
122+ k <- str <* skipSpace <* char ':'
123+ v <- val <* skipSpace
124+ let !m = H.insert k v m0
125+ ch <- A.satisfy $ \w -> w == COMMA || w == CLOSE_CURLY
127+ then skipSpace >> loop m
117{-# INLINE objectValues #-}
129{-# INLINE objectValues #-}
119array_ :: Parser Value
131array_ :: Parser Value