@@ -86,9 +86,6 @@ module Reflex.Dom.Builder.Immediate
86 , ghcjsEventSpec_filters
86 , ghcjsEventSpec_filters
87 , ghcjsEventSpec_handler
87 , ghcjsEventSpec_handler
88 , GhcjsEventHandler (..)
88 , GhcjsEventHandler (..)
89−#ifndef USE_TEMPLATE_HASKELL
92 , drawChildUpdate
89 , drawChildUpdate
93 , ChildReadyState (..)
90 , ChildReadyState (..)
94 , mkHasFocus
91 , mkHasFocus
@@ -138,6 +135,7 @@ import Data.Functor.Product
138import Data.IORef
135import Data.IORef
139import Data.IntMap.Strict (IntMap)
136import Data.IntMap.Strict (IntMap)
140import Data.Maybe
137import Data.Maybe
138+import Data.Monoid ((<>))
141import Data.Some (Some(..))
139import Data.Some (Some(..))
142import Data.Text (Text)
140import Data.Text (Text)
143import Foreign.JavaScript.Internal.Utils
141import Foreign.JavaScript.Internal.Utils
@@ -162,6 +160,9 @@ import Reflex.PerformEvent.Base (PerformEventT)
162import Reflex.PerformEvent.Class
160import Reflex.PerformEvent.Class
163import Reflex.PostBuild.Base (PostBuildT)
161import Reflex.PostBuild.Base (PostBuildT)
164import Reflex.PostBuild.Class
162import Reflex.PostBuild.Class
163+#ifdef PROFILE_REFLEX
164+import Reflex.Profiled
165import Reflex.Requester.Base
166import Reflex.Requester.Base
166import Reflex.Requester.Class
167import Reflex.Requester.Class
167import Reflex.Spider (Spider, SpiderHost, Global)
168import Reflex.Spider (Spider, SpiderHost, Global)
@@ -198,6 +199,7 @@ import qualified Reflex.TriggerEvent.Base as TriggerEventT (askEvents)
199#ifndef USE_TEMPLATE_HASKELL
200#ifndef USE_TEMPLATE_HASKELL
200import Data.Functor.Contravariant (phantom)
201import Data.Functor.Contravariant (phantom)
202+import Control.Lens (Lens', Getter)
203#ifndef ghcjs_HOST_OS
205#ifndef ghcjs_HOST_OS
@@ -527,17 +529,17 @@ wrap events e cfg = do
527 return eventTriggerRefs
529 return eventTriggerRefs
529{-# SPECIALIZE wrap
531{-# SPECIALIZE wrap
530− :: Chan [DSum (EventTriggerRef Spider) TriggerInvocation]
532+ :: Chan [DSum (EventTriggerRef DomTimeline) TriggerInvocation]
531 -> DOM.Element
533 -> DOM.Element
532− -> RawElementConfig er Spider HydrationDomSpace
534+ -> RawElementConfig er DomTimeline HydrationDomSpace
533− -> HydrationDomBuilderT HydrationDomSpace Spider HydrationM (DMap EventName (EventFilterTriggerRef Spider er))
535+ -> HydrationDomBuilderT HydrationDomSpace DomTimeline HydrationM (DMap EventName (EventFilterTriggerRef DomTimeline er))
536{-# SPECIALIZE wrap
538{-# SPECIALIZE wrap
537− :: Chan [DSum (EventTriggerRef Spider) TriggerInvocation]
539+ :: Chan [DSum (EventTriggerRef DomTimeline) TriggerInvocation]
538 -> DOM.Element
540 -> DOM.Element
539− -> RawElementConfig er Spider GhcjsDomSpace
541+ -> RawElementConfig er DomTimeline GhcjsDomSpace
540− -> HydrationDomBuilderT GhcjsDomSpace Spider HydrationM (DMap EventName (EventFilterTriggerRef Spider er))
542+ -> HydrationDomBuilderT GhcjsDomSpace DomTimeline HydrationM (DMap EventName (EventFilterTriggerRef DomTimeline er))
543{-# INLINE triggerBody #-}
545{-# INLINE triggerBody #-}
@@ -573,23 +575,23 @@ triggerBody ctx cfg events eventTriggerRefs e (WrapArg en) t = case DMap.lookup
574{-# SPECIALIZE triggerBody
576{-# SPECIALIZE triggerBody
575 :: DOM.JSContextRef
577 :: DOM.JSContextRef
576− -> RawElementConfig er Spider HydrationDomSpace
578+ -> RawElementConfig er DomTimeline HydrationDomSpace
577− -> Chan [DSum (EventTriggerRef Spider) TriggerInvocation]
579+ -> Chan [DSum (EventTriggerRef DomTimeline) TriggerInvocation]
578− -> DMap EventName (EventFilterTriggerRef Spider er)
580+ -> DMap EventName (EventFilterTriggerRef DomTimeline er)
579 -> DOM.Element
581 -> DOM.Element
580 -> WrapArg er EventName x
582 -> WrapArg er EventName x
581− -> EventTrigger Spider x
583+ -> EventTrigger DomTimeline x
582 -> IO (IO ())
584 -> IO (IO ())
585{-# SPECIALIZE triggerBody
587{-# SPECIALIZE triggerBody
586 :: DOM.JSContextRef
588 :: DOM.JSContextRef
587− -> RawElementConfig er Spider GhcjsDomSpace
589+ -> RawElementConfig er DomTimeline GhcjsDomSpace
588− -> Chan [DSum (EventTriggerRef Spider) TriggerInvocation]
590+ -> Chan [DSum (EventTriggerRef DomTimeline) TriggerInvocation]
589− -> DMap EventName (EventFilterTriggerRef Spider er)
591+ -> DMap EventName (EventFilterTriggerRef DomTimeline er)
590 -> DOM.Element
592 -> DOM.Element
591 -> WrapArg er EventName x
593 -> WrapArg er EventName x
592− -> EventTrigger Spider x
594+ -> EventTrigger DomTimeline x
593 -> IO (IO ())
595 -> IO (IO ())
@@ -638,15 +640,11 @@ data GhcjsEventSpec er = GhcjsEventSpec
638newtype GhcjsEventHandler er = GhcjsEventHandler { unGhcjsEventHandler :: forall en. (EventName en, GhcjsDomEvent en) -> JSM (Maybe (er en)) }
640newtype GhcjsEventHandler er = GhcjsEventHandler { unGhcjsEventHandler :: forall en. (EventName en, GhcjsDomEvent en) -> JSM (Maybe (er en)) }
640#ifndef USE_TEMPLATE_HASKELL
642#ifndef USE_TEMPLATE_HASKELL
641−phantom2 :: (Functor f, Contravariant f) => f a -> f b
643−{-# INLINE phantom2 #-}
645ghcjsEventSpec_filters :: forall er . Lens' (GhcjsEventSpec er) (DMap EventName (GhcjsEventFilter er))
643ghcjsEventSpec_filters :: forall er . Lens' (GhcjsEventSpec er) (DMap EventName (GhcjsEventFilter er))
646ghcjsEventSpec_filters f (GhcjsEventSpec a b) = (\a' -> GhcjsEventSpec a' b) <$> f a
644ghcjsEventSpec_filters f (GhcjsEventSpec a b) = (\a' -> GhcjsEventSpec a' b) <$> f a
647{-# INLINE ghcjsEventSpec_filters #-}
645{-# INLINE ghcjsEventSpec_filters #-}
648ghcjsEventSpec_handler :: forall er en . Getter (GhcjsEventSpec er) ((EventName en, GhcjsDomEvent en) -> JSM (Maybe (er en)))
646ghcjsEventSpec_handler :: forall er en . Getter (GhcjsEventSpec er) ((EventName en, GhcjsDomEvent en) -> JSM (Maybe (er en)))
649−ghcjsEventSpec_handler f (GhcjsEventSpec _ (GhcjsEventHandler b)) = phantom2 (f b)
647+ghcjsEventSpec_handler f (GhcjsEventSpec _ (GhcjsEventHandler b)) = phantom (f b)
650{-# INLINE ghcjsEventSpec_handler #-}
648{-# INLINE ghcjsEventSpec_handler #-}
@@ -694,16 +692,16 @@ elementImmediate elementTag cfg child = do
695{-# SPECIALIZE elementImmediate
693{-# SPECIALIZE elementImmediate
697− -> ElementConfig er Spider HydrationDomSpace
695+ -> ElementConfig er DomTimeline HydrationDomSpace
698− -> HydrationDomBuilderT HydrationDomSpace Spider HydrationM a
696+ -> HydrationDomBuilderT HydrationDomSpace DomTimeline HydrationM a
699− -> HydrationDomBuilderT HydrationDomSpace Spider HydrationM (Element er GhcjsDomSpace Spider, a)
697+ -> HydrationDomBuilderT HydrationDomSpace DomTimeline HydrationM (Element er GhcjsDomSpace DomTimeline, a)
702{-# SPECIALIZE elementImmediate
700{-# SPECIALIZE elementImmediate
704− -> ElementConfig er Spider GhcjsDomSpace
702+ -> ElementConfig er DomTimeline GhcjsDomSpace
705− -> HydrationDomBuilderT GhcjsDomSpace Spider HydrationM a
703+ -> HydrationDomBuilderT GhcjsDomSpace DomTimeline HydrationM a
706− -> HydrationDomBuilderT GhcjsDomSpace Spider HydrationM (Element er GhcjsDomSpace Spider, a)
704+ -> HydrationDomBuilderT GhcjsDomSpace DomTimeline HydrationM (Element er GhcjsDomSpace DomTimeline, a)
709-- For specialisation
707-- For specialisation
@@ -740,9 +738,9 @@ elementInternal elementTag cfg child = getHydrationMode >>= \case
741{-# SPECIALIZE elementInternal
739{-# SPECIALIZE elementInternal
743− -> ElementConfig er Spider HydrationDomSpace
741+ -> ElementConfig er DomTimeline HydrationDomSpace
744− -> HydrationDomBuilderT HydrationDomSpace Spider HydrationM a
742+ -> HydrationDomBuilderT HydrationDomSpace DomTimeline HydrationM a
745− -> HydrationDomBuilderT HydrationDomSpace Spider HydrationM (Element er HydrationDomSpace Spider, a)
743+ -> HydrationDomBuilderT HydrationDomSpace DomTimeline HydrationM (Element er HydrationDomSpace DomTimeline, a)
748{-# INLINE hydrateElement #-}
746{-# INLINE hydrateElement #-}
@@ -830,9 +828,9 @@ hydrateElement elementTag cfg child = do
831{-# SPECIALIZE hydrateElement
829{-# SPECIALIZE hydrateElement
833− -> ElementConfig er Spider HydrationDomSpace
831+ -> ElementConfig er DomTimeline HydrationDomSpace
834− -> HydrationDomBuilderT HydrationDomSpace Spider HydrationM a
832+ -> HydrationDomBuilderT HydrationDomSpace DomTimeline HydrationM a
835− -> HydrationDomBuilderT HydrationDomSpace Spider HydrationM ((Element er HydrationDomSpace Spider, a), IORef DOM.Element)
833+ -> HydrationDomBuilderT HydrationDomSpace DomTimeline HydrationM ((Element er HydrationDomSpace DomTimeline, a), IORef DOM.Element)
838{-# INLINE inputElementImmediate #-}
836{-# INLINE inputElementImmediate #-}
@@ -1699,17 +1697,17 @@ traverseIntMapWithKeyWithAdjust' = do
1699 liftIO $ writeIORef placeholders $! fromMaybe phs $ apply filtered phs
1697 liftIO $ writeIORef placeholders $! fromMaybe phs $ apply filtered phs
1701{-# SPECIALIZE traverseIntMapWithKeyWithAdjust'
1699{-# SPECIALIZE traverseIntMapWithKeyWithAdjust'
1702− :: (IntMap.Key -> v -> HydrationDomBuilderT GhcjsDomSpace Spider HydrationM v')
1700+ :: (IntMap.Key -> v -> HydrationDomBuilderT GhcjsDomSpace DomTimeline HydrationM v')
1703 -> IntMap v
1701 -> IntMap v
1704− -> Event Spider (PatchIntMap v)
1702+ -> Event DomTimeline (PatchIntMap v)
1705− -> HydrationDomBuilderT GhcjsDomSpace Spider HydrationM (IntMap v', Event Spider (PatchIntMap v'))
1703+ -> HydrationDomBuilderT GhcjsDomSpace DomTimeline HydrationM (IntMap v', Event DomTimeline (PatchIntMap v'))
1708{-# SPECIALIZE traverseIntMapWithKeyWithAdjust'
1706{-# SPECIALIZE traverseIntMapWithKeyWithAdjust'
1709− :: (IntMap.Key -> v -> HydrationDomBuilderT HydrationDomSpace Spider HydrationM v')
1707+ :: (IntMap.Key -> v -> HydrationDomBuilderT HydrationDomSpace DomTimeline HydrationM v')
1710 -> IntMap v
1708 -> IntMap v
1711− -> Event Spider (PatchIntMap v)
1709+ -> Event DomTimeline (PatchIntMap v)
1712− -> HydrationDomBuilderT HydrationDomSpace Spider HydrationM (IntMap v', Event Spider (PatchIntMap v'))
1710+ -> HydrationDomBuilderT HydrationDomSpace DomTimeline HydrationM (IntMap v', Event DomTimeline (PatchIntMap v'))
1715data ChildReadyState a
1713data ChildReadyState a
@@ -1944,39 +1942,39 @@ hoistTraverseIntMapWithKeyWithAdjust base updateChildUnreadiness applyDomUpdate_
1944 return (result0, result')
1942 return (result0, result')
1946{-# SPECIALIZE hoistTraverseIntMapWithKeyWithAdjust
1944{-# SPECIALIZE hoistTraverseIntMapWithKeyWithAdjust
1947− :: ((IntMap.Key -> v -> DomRenderHookT Spider HydrationM (TraverseChild Spider HydrationM Int v'))
1945+ :: ((IntMap.Key -> v -> DomRenderHookT DomTimeline HydrationM (TraverseChild DomTimeline HydrationM Int v'))
1948 -> IntMap v
1946 -> IntMap v
1949− -> Event Spider (PatchIntMap v)
1947+ -> Event DomTimeline (PatchIntMap v)
1950− -> DomRenderHookT Spider HydrationM (IntMap (TraverseChild Spider HydrationM Int v'), Event Spider (PatchIntMap (TraverseChild Spider HydrationM Int v'))))
1948+ -> DomRenderHookT DomTimeline HydrationM (IntMap (TraverseChild DomTimeline HydrationM Int v'), Event DomTimeline (PatchIntMap (TraverseChild DomTimeline HydrationM Int v'))))
1951− -> (PatchIntMap (TraverseChild Spider HydrationM Int v')
1949+ -> (PatchIntMap (TraverseChild DomTimeline HydrationM Int v')
1952 -> IntMap (IORef (ChildReadyState Int))
1950 -> IntMap (IORef (ChildReadyState Int))
1953 -> IO (IntMap (IORef (ChildReadyState Int))))
1951 -> IO (IntMap (IORef (ChildReadyState Int))))
1954 -> (IORef (IntMap DOM.Text)
1952 -> (IORef (IntMap DOM.Text)
1955 -> DOM.Text
1953 -> DOM.Text
1956− -> PatchIntMap (TraverseChild Spider HydrationM Int v')
1954+ -> PatchIntMap (TraverseChild DomTimeline HydrationM Int v')
1957 -> JSM ())
1955 -> JSM ())
1958− -> (IntMap.Key -> v -> HydrationDomBuilderT HydrationDomSpace Spider HydrationM v')
1956+ -> (IntMap.Key -> v -> HydrationDomBuilderT HydrationDomSpace DomTimeline HydrationM v')
1959 -> IntMap v
1957 -> IntMap v
1960− -> Event Spider (PatchIntMap v)
1958+ -> Event DomTimeline (PatchIntMap v)
1961− -> HydrationDomBuilderT HydrationDomSpace Spider HydrationM (IntMap v', Event Spider (PatchIntMap v'))
1959+ -> HydrationDomBuilderT HydrationDomSpace DomTimeline HydrationM (IntMap v', Event DomTimeline (PatchIntMap v'))
1964{-# SPECIALIZE hoistTraverseIntMapWithKeyWithAdjust
1962{-# SPECIALIZE hoistTraverseIntMapWithKeyWithAdjust
1965− :: ((IntMap.Key -> v -> DomRenderHookT Spider HydrationM (TraverseChild Spider HydrationM Int v'))
1963+ :: ((IntMap.Key -> v -> DomRenderHookT DomTimeline HydrationM (TraverseChild DomTimeline HydrationM Int v'))
1966 -> IntMap v
1964 -> IntMap v
1967− -> Event Spider (PatchIntMap v)
1965+ -> Event DomTimeline (PatchIntMap v)
1968− -> DomRenderHookT Spider HydrationM (IntMap (TraverseChild Spider HydrationM Int v'), Event Spider (PatchIntMap (TraverseChild Spider HydrationM Int v'))))
1966+ -> DomRenderHookT DomTimeline HydrationM (IntMap (TraverseChild DomTimeline HydrationM Int v'), Event DomTimeline (PatchIntMap (TraverseChild DomTimeline HydrationM Int v'))))
1969− -> (PatchIntMap (TraverseChild Spider HydrationM Int v')
1967+ -> (PatchIntMap (TraverseChild DomTimeline HydrationM Int v')
1970 -> IntMap (IORef (ChildReadyState Int))
1968 -> IntMap (IORef (ChildReadyState Int))
1971 -> IO (IntMap (IORef (ChildReadyState Int))))
1969 -> IO (IntMap (IORef (ChildReadyState Int))))
1972 -> (IORef (IntMap DOM.Text)
1970 -> (IORef (IntMap DOM.Text)
1973 -> DOM.Text
1971 -> DOM.Text
1974− -> PatchIntMap (TraverseChild Spider HydrationM Int v')
1972+ -> PatchIntMap (TraverseChild DomTimeline HydrationM Int v')
1975 -> JSM ())
1973 -> JSM ())
1976− -> (IntMap.Key -> v -> HydrationDomBuilderT GhcjsDomSpace Spider HydrationM v')
1974+ -> (IntMap.Key -> v -> HydrationDomBuilderT GhcjsDomSpace DomTimeline HydrationM v')
1977 -> IntMap v
1975 -> IntMap v
1978− -> Event Spider (PatchIntMap v)
1976+ -> Event DomTimeline (PatchIntMap v)
1979− -> HydrationDomBuilderT GhcjsDomSpace Spider HydrationM (IntMap v', Event Spider (PatchIntMap v'))
1977+ -> HydrationDomBuilderT GhcjsDomSpace DomTimeline HydrationM (IntMap v', Event DomTimeline (PatchIntMap v'))
1982data TraverseChildImmediate k = TraverseChildImmediate
1980data TraverseChildImmediate k = TraverseChildImmediate
@@ -2046,17 +2044,17 @@ drawChildUpdate initialEnv markReady child = do
2048{-# SPECIALIZE drawChildUpdate
2046{-# SPECIALIZE drawChildUpdate
2049− :: HydrationDomBuilderEnv Spider HydrationM
2047+ :: HydrationDomBuilderEnv DomTimeline HydrationM
2050 -> (IORef (ChildReadyState Int) -> JSM ())
2048 -> (IORef (ChildReadyState Int) -> JSM ())
2051− -> HydrationDomBuilderT s Spider HydrationM (Identity a)
2049+ -> HydrationDomBuilderT s DomTimeline HydrationM (Identity a)
2052− -> DomRenderHookT Spider HydrationM (Compose (TraverseChild Spider HydrationM Int) Identity a)
2050+ -> DomRenderHookT DomTimeline HydrationM (Compose (TraverseChild DomTimeline HydrationM Int) Identity a)
2055{-# SPECIALIZE drawChildUpdate
2053{-# SPECIALIZE drawChildUpdate
2056− :: HydrationDomBuilderEnv Spider HydrationM
2054+ :: HydrationDomBuilderEnv DomTimeline HydrationM
2057 -> (IORef (ChildReadyState (Some k)) -> JSM ())
2055 -> (IORef (ChildReadyState (Some k)) -> JSM ())
2058− -> HydrationDomBuilderT s Spider HydrationM (f a)
2056+ -> HydrationDomBuilderT s DomTimeline HydrationM (f a)
2059− -> DomRenderHookT Spider HydrationM (Compose (TraverseChild Spider HydrationM (Some k)) f a)
2057+ -> DomRenderHookT DomTimeline HydrationM (Compose (TraverseChild DomTimeline HydrationM (Some k)) f a)
2062{-# INLINABLE drawChildUpdateInt #-}
2060{-# INLINABLE drawChildUpdateInt #-}
@@ -2068,10 +2066,10 @@ drawChildUpdateInt :: (MonadIO m, MonadJSM m, Reflex t)
2068drawChildUpdateInt env mark m = fmap runIdentity . getCompose <$> drawChildUpdate env mark (Identity <$> m)
2066drawChildUpdateInt env mark m = fmap runIdentity . getCompose <$> drawChildUpdate env mark (Identity <$> m)
2070{-# SPECIALIZE drawChildUpdateInt
2068{-# SPECIALIZE drawChildUpdateInt
2071− :: HydrationDomBuilderEnv Spider HydrationM
2069+ :: HydrationDomBuilderEnv DomTimeline HydrationM
2072 -> (IORef (ChildReadyState k) -> JSM ())
2070 -> (IORef (ChildReadyState k) -> JSM ())
2073− -> HydrationDomBuilderT s Spider HydrationM v
2071+ -> HydrationDomBuilderT s DomTimeline HydrationM v
2074− -> DomRenderHookT Spider HydrationM (TraverseChild Spider HydrationM k v)
2072+ -> DomRenderHookT DomTimeline HydrationM (TraverseChild DomTimeline HydrationM k v)
2077{-# INLINE mkHasFocus #-}
2075{-# INLINE mkHasFocus #-}