JavaScript (175)
function t(e,v,f){if(!v&&v!=''){v=e.data||'';for(c in f=e.childNodes)v+=t(f[c]);return v}else{ while(c=e.lastChild)e.removeChild(c);e.appendChild(document.createTextNode(v))}}
I have significantly less morality than @dystroy, so I didn't bother with var. I did have to scope f though, and I did it somewhat cleverly.
That said, our answers are pretty similar, and I'm not sure there's much of a better way to go about it.
With collection recognition (173):
function t(e,v){if(!v&&v!=''){v=e.data||'';for each(c in e.childNodes)v+=t(c);return v}else{ while(c=e.lastChild)e.removeChild(c);e.appendChild(document.createTextNode(v))}}
is function name going to be counted towards the total? – Shmiddty – 2013-04-08T17:07:59.163
Yep. I should be able to put your function in my page and use it right away. But it should be the same limitation for everyone, so it's not like it's unfair to anyone. – Florian Margaine – 2013-04-08T17:09:45.360
1So, one letter function names. Got it. – Shmiddty – 2013-04-08T17:10:38.370
@Shmiddty Also, not having the function declaration would be unfair to people wanting to use recursion. – Florian Margaine – 2013-04-08T20:17:50.217