on master help sign in
Generate bags of effects for commands and subscriptions
9d47fd5Evan Czaplicki
src/Generate/JavaScript/BuiltIn.hs+5−8
@@ -3,7 +3,7 @@ module Generate.JavaScript.BuiltIn
3 , list, range
3 , list, range
4 , recordUpdate
4 , recordUpdate
5 , eq, cmp
5 , eq, cmp
6− , cmd, sub
6+ , effect
7 , crash
7 , crash
8 )
8 )
9 where
9 where
@@ -85,15 +85,12 @@ cmp left right =
85-- EFFECTS
85-- EFFECTS
86
86
87
87
88−cmd :: ModuleName.Canonical -> JS.Expression ()
88+effect :: ModuleName.Canonical -> JS.Expression ()
89−cmd effectName =
89+effect effectName =
90+ obj ["_elm_lang$core$Native_Platform", "leaf"] <|
90− utils "cmd" [ JS.StringLit () (ModuleName.canonicalToString effectName) ]
91+ JS.StringLit () (ModuleName.canonicalToString effectName)
91
92
92
93
93−sub :: ModuleName.Canonical -> JS.Expression ()
94−sub effectName =
95− utils "sub" [ JS.StringLit () (ModuleName.canonicalToString effectName) ]
96−
97
94
98-- CRASH
95-- CRASH
99
96
src/Generate/JavaScript/Expression.hs+2−2
@@ -198,10 +198,10 @@ generateCode expr =
198 jsExpr $ DotRef () jsDataExpr (var ("_" ++ show index))
198 jsExpr $ DotRef () jsDataExpr (var ("_" ++ show index))
199
199
200 Cmd moduleName ->
200 Cmd moduleName ->
201− jsExpr $ BuiltIn.cmd moduleName
201+ jsExpr $ BuiltIn.effect moduleName
202
202
203 Sub moduleName ->
203 Sub moduleName ->
204− jsExpr $ BuiltIn.sub moduleName
204+ jsExpr $ BuiltIn.effect moduleName
205
205
206 GLShader _uid src _tipe ->
206 GLShader _uid src _tipe ->
207 jsExpr $ ObjectLit () [(PropString () "src", Literal.literal (L.Str src))]
207 jsExpr $ ObjectLit () [(PropString () "src", Literal.literal (L.Str src))]