diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Revision history for reflex-dom
 
+## 0.6.3.4
+
+* Fix WASM related issues
+
 ## 0.6.3.3
 
 * Support GHC 9.12
diff --git a/examples/sortableList.hs b/examples/sortableList.hs
--- a/examples/sortableList.hs
+++ b/examples/sortableList.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE OverloadedStrings #-}
@@ -5,21 +6,22 @@
 {-# LANGUAGE RecursiveDo #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 import Control.Lens
-import Control.Monad.Identity
+import Control.Monad.Fix
 import Control.Monad.IO.Class
-import Data.Dependent.Map (DMap)
-import Data.Functor.Constant
-import Data.Functor.Misc
 import Data.List
 import Data.Map (Map)
 import qualified Data.Map as Map
-import Data.Monoid
 import Data.Ord
+import Data.Patch.MapWithMove
 import qualified Data.Text as T
 import Data.Time.Clock
 import Reflex.Dom
 import System.Random
 
+#if defined(wasm32_HOST_ARCH)
+foreign export javascript "hs_start" main :: IO ()
+#endif
+
 main :: IO ()
 main = mainWidget $ do
   let f _ (a, b, c) = el "tr" $ do
@@ -71,7 +73,7 @@
 simpleSortableList f m0 resortFunc resortSlowFunc = do
   rec let resortPatchFast = attachWith (flip patchThatSortsMapWith) (currentIncremental m) resortFunc
           redrawPatch :: Map k v -> (v -> v -> Ordering) -> PatchMapWithMove k v
-          redrawPatch d cmp = unsafePatchMapWithMove $ fmap (MapEdit_Insert False) $ Map.fromList $ zip (Map.keys d) (sortBy cmp $ Map.elems d)
+          redrawPatch d cmp = patchMapWithMoveInsertAll $ Map.fromList $ zip (Map.keys d) (sortBy cmp $ Map.elems d)
           resortPatchSlow = attachWith redrawPatch (currentIncremental m) resortSlowFunc
           resortPatch = leftmost
             [ resortPatchFast
diff --git a/reflex-dom.cabal b/reflex-dom.cabal
--- a/reflex-dom.cabal
+++ b/reflex-dom.cabal
@@ -1,6 +1,6 @@
 cabal-version: 1.24
 Name: reflex-dom
-Version: 0.6.3.3
+Version: 0.6.3.4
 Synopsis: Functional Reactive Web Apps with Reflex
 Description:
   Web applications without callbacks or side-effects.
@@ -50,11 +50,6 @@
   default: False
   manual: True
 
-flag wasm32
-  description: Build for wasm32 architecture
-  default: False
-  manual: True
-
 library
   hs-source-dirs: src
   if os(android)
@@ -88,7 +83,7 @@
           jsaddle >= 0.9.6 && < 0.10,
           jsaddle-wkwebview >= 0.9.6 && < 0.10
       else
-        if flag(wasm32)
+        if arch(wasm32)
           build-depends:
             jsaddle >= 0.9.6 && < 0.10,
             jsaddle-wasm >= 0.1 && < 0.2
@@ -142,6 +137,7 @@
                , dependent-map
                , lens
                , mtl
+               , patch
                , random
                , reflex
                , reflex-dom
@@ -158,6 +154,8 @@
   if flag(use-reflex-optimizer)
     ghc-options: -fplugin=Reflex.Optimizer
   default-language: Haskell2010
+  if arch(wasm32)
+    ghc-options: -no-hs-main -optl-mexec-model=reactor "-optl-Wl,--export=hs_start"
 
 executable benchmark
   build-depends: base
diff --git a/src/Reflex/Dom/Internal.hs b/src/Reflex/Dom/Internal.hs
--- a/src/Reflex/Dom/Internal.hs
+++ b/src/Reflex/Dom/Internal.hs
@@ -93,7 +93,7 @@
 import qualified Language.Javascript.JSaddle.Wasm as Wasm (run)
 import Language.Javascript.JSaddle (JSM)
 run :: JSM () -> IO ()
-run = Wasm.run 0
+run = Wasm.run
 
 #else
 import Language.Javascript.JSaddle.WebKitGTK (run)
