@@ -3,7 +3,7 @@
3module Generate.JavaScript.Builder
3module Generate.JavaScript.Builder
4 ( stmtToBuilder
4 ( stmtToBuilder
5 , exprToBuilder
5 , exprToBuilder
6− , Expr(..), Id(..), Prop(..), LValue(..)
6+ , Expr(..), Id(..), LValue(..)
7 , Stmt(..), Case(..), VarDecl(..)
7 , Stmt(..), Case(..), VarDecl(..)
8 , InfixOp(..), PrefixOp(..)
8 , InfixOp(..), PrefixOp(..)
@@ -33,7 +33,7 @@ data Expr
33 | Bool Bool
33 | Bool Bool
35 | Array [Expr]
35 | Array [Expr]
36− | Object [(Prop, Expr)]
36+ | Object [(Id, Expr)]
37 | VarRef Id
37 | VarRef Id
38 | DotRef Expr Id -- ^ @foo.bar@, spec 11.2.1
38 | DotRef Expr Id -- ^ @foo.bar@, spec 11.2.1
39 | BracketRef Expr Expr -- ^ @foo[bar]@, spec 11.2.1
39 | BracketRef Expr Expr -- ^ @foo[bar]@, spec 11.2.1
@@ -48,12 +48,6 @@ data Expr
48newtype Id = Id Text
48newtype Id = Id Text
57data LValue
51data LValue
58 = LVar Text
52 = LVar Text
59 | LDot Expr Text
53 | LDot Expr Text
@@ -335,7 +329,7 @@ fromExpr :: Builder -> Grouping -> Expr -> (Lines, Builder)
335fromExpr indent grouping expression =
329fromExpr indent grouping expression =
336 case expression of
330 case expression of
337 String string ->
331 String string ->
338− (One, quoted string)
332+ (One, "'" <> Text.encodeUtf8Builder string <> "'")
340 Float n ->
334 Float n ->
341 (One, doubleDec n)
335 (One, doubleDec n)
@@ -465,39 +459,17 @@ fromExpr indent grouping expression =
468−fromField :: Builder -> (Prop, Expr) -> (Lines, Builder)
462+fromField :: Builder -> (Id, Expr) -> (Lines, Builder)
469−fromField indent (prop, expr) =
463+fromField indent (field, expr) =
471 (lines, builder) =
465 (lines, builder) =
472 fromExpr indent Whatever expr
466 fromExpr indent Whatever expr
475− , fromProp prop <> ": " <> builder
469+ , fromId field <> ": " <> builder
479−fromProp :: Prop -> Builder
485− StringProp string ->
496−quoted :: Text -> Builder
498− "'" <> Text.encodeUtf8Builder str <> "'"