@@ -127,7 +127,8 @@ function shallowCopy(origin) {
127127 nodeData : origin . nodeData ,
128128 render : origin . render ,
129129 arg : origin . arg ,
130- rendered : undefined
130+ rendered : undefined ,
131+ messageMapper : origin . messageMapper
131132 } ;
132133 case managedNode :
133134 return {
@@ -162,6 +163,9 @@ F.prototype.createAllNodes = function (parent, html, referenceNode) {
162163 if ( html . children !== undefined )
163164 this . createChildrenNodes ( node , html . children ) ;
164165 else if ( html . rendered !== undefined ) {
166+ if ( html . messageMapper !== undefined )
167+ html . rendered . messageMapper = html . messageMapper ;
168+
165169 if ( html . rendered . text !== undefined ) {
166170 node . textContent = html . rendered . text ;
167171 }
@@ -196,8 +200,18 @@ F.prototype.createChildrenNodes = function (parent, children) {
196200 else {
197201 if ( c . children !== undefined )
198202 this . createChildrenNodes ( node , c . children ) ;
199- if ( c . rendered !== undefined && c . rendered . children !== undefined )
200- this . createChildrenNodes ( node , c . rendered . children ) ;
203+ if ( c . rendered !== undefined ) {
204+ if ( c . messageMapper !== undefined ) {
205+ c . rendered . messageMapper = c . messageMapper ;
206+
207+ if ( c . rendered . children !== undefined )
208+ for ( let i = 0 ; i < c . rendered . children . length ; ++ i )
209+ c . rendered . children [ i ] . messageMapper = c . rendered . messageMapper ;
210+ }
211+
212+ if ( c . rendered . children !== undefined )
213+ this . createChildrenNodes ( node , c . rendered . children ) ;
214+ }
201215 }
202216
203217 parent . appendChild ( node ) ;
@@ -367,7 +381,6 @@ F.prototype.runHandlers = function (handlers, messageMapper, event) {
367381 maybeMessage = typeof h === "function" ? h ( event ) ( ) : this . eventWrapper ( h ) ;
368382
369383 //handler can be just a message or a function that takes an event
370- // a
371384 this . updater ( messageMapper === undefined ? maybeMessage : messageMapper ( maybeMessage ) ) ( ) ;
372385 }
373386 event . stopPropagation ( ) ;
@@ -970,6 +983,7 @@ F.prototype.removeEvent = function (node, name) {
970983 this . applicationEvents . delete ( name ) ;
971984 }
972985 }
973-
986+ //functor mapping
987+ node [ eventKey + eventPostfix ] = undefined ;
974988 node [ eventKey ] = undefined ;
975989} ;
0 commit comments