diff --git a/mithril.js b/mithril.js
index 12f5bba3..93202c79 100644
--- a/mithril.js
+++ b/mithril.js
@@ -1,7 +1,7 @@
;(function() {
function Vnode(tag, key, attrs0, children, text, dom) {
- return {tag: tag, key: key, attrs: attrs0, children: children, text: text, dom: dom, domSize: undefined, state: {}, events: undefined, instance: undefined, skip: false}
+ return {tag: tag, key: key, attrs: attrs0, children: children, text: text, dom: dom, domSize: undefined, state: undefined, events: undefined, instance: undefined, skip: false}
}
Vnode.normalize = function(node) {
if (Array.isArray(node)) return Vnode("[", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined)
@@ -389,6 +389,7 @@ var coreRenderer = function($window) {
function createNode(parent, vnode, hooks, ns, nextSibling) {
var tag = vnode.tag
if (typeof tag === "string") {
+ vnode.state = {}
if (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)
switch (tag) {
case "#": return createText(parent, vnode, nextSibling)
@@ -597,7 +598,10 @@ var coreRenderer = function($window) {
if (!recycling && shouldNotUpdate(vnode, old)) return
if (typeof oldTag === "string") {
if (vnode.attrs != null) {
- if (recycling) initLifecycle(vnode.attrs, vnode, hooks)
+ if (recycling) {
+ vnode.state = {}
+ initLifecycle(vnode.attrs, vnode, hooks)
+ }
else updateLifecycle(vnode.attrs, vnode, hooks)
}
switch (oldTag) {
diff --git a/mithril.min.js b/mithril.min.js
index 1443cf2a..168bea22 100644
--- a/mithril.min.js
+++ b/mithril.min.js
@@ -1,43 +1,43 @@
-(function(){function B(b,d,f,g,e,p){return{tag:b,key:d,attrs:f,children:g,text:e,dom:p,domSize:void 0,state:{},events:void 0,instance:void 0,skip:!1}}function C(b){var d=arguments[1],f=2,g;if(null==b||"string"!==typeof b&&"function"!==typeof b&&"function"!==typeof b.view)throw Error("The selector must be either a string or a component.");if("string"===typeof b){var e;if(!(e=M[b])){g="div";for(var p=[],k={};e=P.exec(b);){var q=e[1],m=e[2];""===q&&""!==m?g=m:"#"===q?k.id=m:"."===q?p.push(m):"["===e[3][0]&&
-((q=e[6])&&(q=q.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),"class"===e[4]?p.push(q):k[e[4]]=q||!0)}0
a.indexOf("?")?"?":"&";a+=e+d}return a}function k(a){try{return""!==a?JSON.parse(a):null}catch(w){throw Error(a);
-}}function q(a){return a.responseText}function m(a,b){if("function"===typeof a)if(Array.isArray(b))for(var d=0;dl.status||304===l.status||S.test(a.url))d(m(a.type,
-h));else{var c=Error(l.responseText),n;for(n in h)c[n]=h[n];f(c)}}catch(v){f(v)}};g&&null!=a.data?l.send(a.data):l.send()});return!0===a.background?w:u(w)},jsonp:function(a,k){var u=f();a=g(a,k);var q=new d(function(d,f){var g=a.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+l++,k=b.document.createElement("script");b[g]=function(e){k.parentNode.removeChild(k);d(m(a.type,e));delete b[g]};k.onerror=function(){k.parentNode.removeChild(k);f(Error("JSONP request failed"));delete b[g]};null==
-a.data&&(a.data={});a.url=e(a.url,a.data);a.data[a.callbackKey||"callback"]=g;k.src=p(a.url,a.data);b.document.documentElement.appendChild(k)});return!0===a.background?q:u(q)},setCompletionCallback:function(a){u=a}}}(window,x),O=function(b){function d(h,c,n,a,b,d,e){for(;n=v&&y>=t;){var r=c[v],z=n[t];if(r!==z||b)if(null==r)v++;else if(null==z)t++;else if(r.key===z.key){var A=null!=u&&v>=c.length-u.length||null==u&&b;v++;t++;k(h,r,z,e,m(c,v,g),A,p);b&&r.tag===z.tag&&l(h,q(r),g)}else if(r=c[w],r!==z||b)if(null==r)w--;else if(null==z)t++;else if(r.key===z.key)A=
-null!=u&&w>=c.length-u.length||null==u&&b,k(h,r,z,e,m(c,w+1,g),A,p),(b||t=v&&y>=t;){r=c[w];z=n[y];if(r!==z||b)if(null==r)w--;else{if(null!=z)if(r.key===z.key)A=null!=u&&w>=c.length-u.length||null==u&&b,k(h,r,z,e,m(c,w+1,g),A,p),b&&r.tag===z.tag&&l(h,q(r),g),null!=r.dom&&(g=r.dom),w--;else{if(!G){G=c;var r=w,A={},E;for(E=0;Eb.indexOf("?")?"?":"&";b+=e+d}return b}function k(b){try{return""!==b?JSON.parse(b):null}catch(w){throw Error(b);
+}}function q(b){return b.responseText}function n(b,a){if("function"===typeof b)if(Array.isArray(a))for(var d=0;dl.status||304===l.status||S.test(b.url))d(n(b.type,
+h));else{var c=Error(l.responseText),m;for(m in h)c[m]=h[m];f(c)}}catch(v){f(v)}};g&&null!=b.data?l.send(b.data):l.send()});return!0===b.background?w:u(w)},jsonp:function(b,k){var u=f();b=g(b,k);var q=new d(function(d,f){var g=b.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+l++,k=a.document.createElement("script");a[g]=function(e){k.parentNode.removeChild(k);d(n(b.type,e));delete a[g]};k.onerror=function(){k.parentNode.removeChild(k);f(Error("JSONP request failed"));delete a[g]};null==
+b.data&&(b.data={});b.url=e(b.url,b.data);b.data[b.callbackKey||"callback"]=g;k.src=p(b.url,b.data);a.document.documentElement.appendChild(k)});return!0===b.background?q:u(q)},setCompletionCallback:function(b){u=b}}}(window,x),O=function(a){function d(h,c,m,b,a,d,e){for(;m=v&&y>=t;){var r=c[v],z=m[t];if(r!==z||a)if(null==r)v++;else if(null==z)t++;else if(r.key===z.key){var A=null!=u&&v>=c.length-u.length||null==u&&a;v++;t++;k(h,r,z,e,n(c,v,g),A,p);a&&r.tag===z.tag&&l(h,q(r),g)}else if(r=c[w],r!==z||a)if(null==r)w--;else if(null==z)t++;else if(r.key===z.key)A=
+null!=u&&w>=c.length-u.length||null==u&&a,k(h,r,z,e,n(c,w+1,g),A,p),(a||t=v&&y>=t;){r=c[w];z=m[y];if(r!==z||a)if(null==r)w--;else{if(null!=z)if(r.key===z.key)A=null!=u&&w>=c.length-u.length||null==u&&a,k(h,r,z,e,n(c,w+1,g),A,p),a&&r.tag===z.tag&&l(h,q(r),g),null!=r.dom&&(g=r.dom),w--;else{if(!G){G=c;var r=w,A={},E;for(E=0;E