packages feed

hjsmin 0.1.4.2 → 0.1.4.3

raw patch · 3 files changed

+33/−24 lines, 3 files

Files

README.markdown view
@@ -30,6 +30,8 @@ Changes ------- +0.1.4.3 - make sure all missing cases are covered+ 0.1.4.2 - minify octal literals too  0.1.4.1 - Bump upper bound for containers to < 0.6 for the tests as well as the library
Text/Jasmine/Pretty.hs view
@@ -4,9 +4,9 @@     ) where  import Data.Char-import Data.List+-- import Data.List import Data.Monoid (Monoid, mappend, mempty, mconcat)-import Language.JavaScript.Parser (JSNode(..),Node(..),tokenPosnEmpty,readJs,CommentAnnotation(..),TokenPosn(..))+import Language.JavaScript.Parser (JSNode(..),Node(..),tokenPosnEmpty) import qualified Blaze.ByteString.Builder as BB import qualified Blaze.ByteString.Builder.Char.Utf8 as BS import qualified Data.ByteString.Lazy as LB@@ -32,11 +32,11 @@ char :: Char -> BB.Builder char c = BS.fromChar c -comma :: BB.Builder-comma = BS.fromChar ','+-- comma :: BB.Builder+-- comma = BS.fromChar ',' -punctuate :: a -> [a] -> [a]-punctuate p xs = intersperse p xs+-- punctuate :: a -> [a] -> [a]+-- punctuate p xs = intersperse p xs  -- --------------------------------------------------------------------- @@ -85,25 +85,30 @@  rn (JSBlock lb xs rb)            = (rJS lb) <> (rJS xs) <> (rJS rb) -rn (JSIf _i _lb c _rb [(NT (JSLiteral ";") _ _)] [])     = (text "if") <> (text "(") <> (renderJS c) <> (text ")")---rn (JSIf _i _lb c _rb t                        [])     = (text "if") <> (text "(") <> (renderJS c) <> (text ")") <> (renderJS $ fixBlock t) -rn (JSIf _i _lb c _rb t                        [])     = (text "if") <> (text "(") <> (renderJS c) <> (text ")") <> (rJS $ fixSourceElements $ map fixBlock t) -rn (JSIf _i _lb c _rb t [_e,(NT (JSLiteral ";") _ _)]) = (text "if") <> (text "(") <> (renderJS c) <> (text ")") <> (rJS $ fixIfBlock t)-                                                         <> (text "else")-rn (JSIf _i _lb c _rb t [_e,e])                        = (text "if") <> (text "(") <> (renderJS c) <> (text ")") <> (rJS $ fixIfElse $ fixSourceElements t)+rn (JSIf _i _lb c _rb [(NT (JSLiteral ";") _ _)] [])   = (text "if") <> (text "(") <> (renderJS c) <> (text ")")++rn (JSIf _i _lb c _rb t                          [])   = (text "if") <> (text "(") <> (renderJS c) <> (text ")")+                                                          <> (rJS $ fixSourceElements $ map fixBlock t)++rn (JSIf _i _lb c _rb t [_e,(NT (JSLiteral ";") _ _)]) = (text "if") <> (text "(") <> (renderJS c) <> (text ")")+                                                         <> (rJS $ fixIfBlock t) <> (text "else")+rn (JSIf _i _lb c _rb t [_e,e])                        = (text "if") <> (text "(") <> (renderJS c) <> (text ")")+                                                         <> (rJS $ fixIfElse $ fixSourceElements t)                                                          <> (text "else") <> (spaceOrBlock $ fixBlock e)+rn (JSIf _i _lb _c _rb _t                      _xs)    = error $ "malformed JSIf, else clause should be either [] or [else,expr]"   + rn (JSMemberDot xs _d y)          = (rJS $ fixLiterals xs) <> (text ".") <> (renderJS y) rn (JSMemberSquare xs _lb x _rb)  = (rJS $ fixLiterals xs) <> (text "[") <> (renderJS x) <> (text "]") rn (JSUnary l _s )                = text l rn (JSArrayLiteral _lb xs _rb)    = (text "[") <> (rJS xs) <> (text "]") -rn (JSBreak _b [] as)           = (text "break") -- <> (renderJS as)-rn (JSBreak _b is as)           = (text "break") <+> (rJS $ fixSourceElements $ map fixFnBlock is) -- <> (renderJS as)+rn (JSBreak _b [] _as)           = (text "break") -- <> (renderJS as)+rn (JSBreak _b is _as)           = (text "break") <+> (rJS $ fixSourceElements $ map fixFnBlock is) -- <> (renderJS as)  rn (JSCallExpression "()" _os xs _cs) = (rJS xs) rn (JSCallExpression   t  _os xs _cs) = (char $ head t) <> (rJS xs) <> (if ((length t) > 1) then (char $ last t) else empty)@@ -124,7 +129,7 @@ rn (JSContinue _c is _as)  = (text "continue") <> (rJS is) -- <> (char ';') rn (JSDefault _d _c xs)    = (text "default") <> (char ':') <> (rJS $ fixSourceElements xs) -rn (JSDoWhile _d s _w _lb e _rb as)     = (text "do") <> (renderJS $ fixFnBlock s) <> (text "while") <> (char '(') <> (renderJS e) <> (char ')') -- <> (renderJS as)+rn (JSDoWhile _d s _w _lb e _rb _as)     = (text "do") <> (renderJS $ fixFnBlock s) <> (text "while") <> (char '(') <> (renderJS e) <> (char ')') -- <> (renderJS as)   --rn (JSElementList xs)      = rJS xs@@ -155,7 +160,7 @@  rn (JSReturn _r []                         _as) = (text "return") rn (JSReturn _r [(NT (JSLiteral ";") _ _)] _as) = (text "return;++foobar+will_never_happen++") -- ++AZ++ get rid of this-rn (JSReturn _r xs                          as) = (text "return") <> (if (spaceNeeded xs) then (text " ") else (empty)) <> (rJS $ fixSourceElements xs) -- <> (renderJS as)+rn (JSReturn _r xs                         _as) = (text "return") <> (if (spaceNeeded xs) then (text " ") else (empty)) <> (rJS $ fixSourceElements xs) -- <> (renderJS as)  rn (JSThrow _t e)                 = (text "throw") <+> (renderJS $ fixBlock e) @@ -177,9 +182,9 @@ rJS :: [JSNode] -> BB.Builder rJS xs = hcat $ map renderJS xs -commaList :: [JSNode] -> BB.Builder-commaList [] = empty-commaList xs = rJS xs+-- commaList :: [JSNode] -> BB.Builder+-- commaList [] = empty+-- commaList xs = rJS xs  extractNode :: JSNode -> Node extractNode (NT x _ _) = x@@ -188,8 +193,8 @@ --commaListList :: [[JSNode]] -> BB.Builder --commaListList xs = (hcat $ punctuate comma $ map rJS xs) -toDoc :: [JSNode] -> [BB.Builder]-toDoc xs = map renderJS xs+-- toDoc :: [JSNode] -> [BB.Builder]+-- toDoc xs = map renderJS xs  spaceOrBlock :: JSNode -> BB.Builder spaceOrBlock (NN (JSBlock lb xs rb)) = rn (JSBlock lb xs rb)@@ -326,11 +331,13 @@ fixIfBlock :: [JSNode] -> [JSNode] fixIfBlock xs =   case xs' of-    [(NT (JSLiteral ";") p cs)]   -> [] -- rely on fixSemis to add this again [(NT (JSLiteral ";") p cs)]-    [(NN (JSBlock lb [] rb))]     -> [] -- rely on fixSemis to add this again [(NT (JSLiteral ";") tokenPosnEmpty [])]+    [(NT (JSLiteral ";") _p _cs)]   -> [] -- rely on fixSemis to add this again [(NT (JSLiteral ";") p cs)]+    [(NN (JSBlock _lb [] _rb))]     -> [] -- rely on fixSemis to add this again [(NT (JSLiteral ";") tokenPosnEmpty [])]     -- [(NN (JSBlock lb [y] rb))]    -> [fixBlock y]     [(NN (JSBlock lb x2s rb))]    -> [(NN (JSBlock lb ((fixSourceElements $ map fixBlock x2s)) rb))]     [x]                           -> fixSourceElements [x]+    []                            -> []+    xs''                          -> fixSourceElements xs''   where xs' = stripSemis xs  -- Remove extraneous braces around blocks
hjsmin.cabal view
@@ -1,5 +1,5 @@ name:            hjsmin-version:         0.1.4.2+version:         0.1.4.3 license:         BSD3 license-file:    LICENSE author:          Alan Zimmerman <alan.zimm@gmail.com>