@@ -3,7 +3,7 @@
33module Generate.JavaScript.Builder
44 ( stmtToBuilder
55 , exprToBuilder
6− , Expr(..), Id(..), Prop(..), LValue(..)
6+ , Expr(..), Id(..), LValue(..)
77 , Stmt(..), Case(..), VarDecl(..)
88 , InfixOp(..), PrefixOp(..)
99 )
@@ -33,7 +33,7 @@ data Expr
3333 | Bool Bool
3434 | Null
3535 | Array [Expr]
36− | Object [(Prop, Expr)]
36+ | Object [(Id, Expr)]
3737 | VarRef Id
3838 | DotRef Expr Id -- ^ @foo.bar@, spec 11.2.1
3939 | BracketRef Expr Expr -- ^ @foo[bar]@, spec 11.2.1
@@ -48,12 +48,6 @@ data Expr
4848newtype Id = Id Text
4949
5050
51−data Prop
52− = StringProp Text
53− | IntProp Int
54− | IdProp Id
55−
56−
5751data LValue
5852 = LVar Text
5953 | LDot Expr Text
@@ -335,7 +329,7 @@ fromExpr :: Builder -> Grouping -> Expr -> (Lines, Builder)
335329fromExpr indent grouping expression =
336330 case expression of
337331 String string ->
338− (One, quoted string)
332+ (One, "'" <> Text.encodeUtf8Builder string <> "'")
339333
340334 Float n ->
341335 (One, doubleDec n)
@@ -465,39 +459,17 @@ fromExpr indent grouping expression =
465459-- FIELDS
466460
467461
468−fromField :: Builder -> (Prop, Expr) -> (Lines, Builder)
469−fromField indent (prop, expr) =
462+fromField :: Builder -> (Id, Expr) -> (Lines, Builder)
463+fromField indent (field, expr) =
470464 let
471465 (lines, builder) =
472466 fromExpr indent Whatever expr
473467 in
474468 ( lines
475− , fromProp prop <> ": " <> builder
469+ , fromId field <> ": " <> builder
476470 )
477471
478472
479−fromProp :: Prop -> Builder
480−fromProp prop =
481− case prop of
482− IdProp name ->
483− fromId name
484−
485− StringProp string ->
486− quoted string
487−
488− IntProp n ->
489− intDec n
490−
491−
492−
493−-- STRINGS
494−
495−
496−quoted :: Text -> Builder
497−quoted str =
498− "'" <> Text.encodeUtf8Builder str <> "'"
499−
500−
501473
502474-- VALUES
503475