IEの ruby 要素の中の rb要素 は無視されてるのか・・・。

javascriptのreplaceについて
http://oshiete.goo.ne.jp/qa/6388384.html

コードを書いてみた。(どうせ正規表現で置換えするのは無理があると判断)
またしても IEは・・・・。

<!DOCTYPE html>
<title></title>

<style type="text/css">
</style>

<div id="hoge">
  <p>
    <ruby>
      漢<rt>かん</rt>
      字<rt>じ</rt>
    </ruby>
  </p>

  <p>
    <ruby>
      漢<rp>(</rp><rt>かん</rt><rp>)</rp>
      字<rp>(</rp><rt>じ</rt><rp>)</rp>
    </ruby>
  </p>

  <p>
    <ruby>
      <rb>亜米利加</rb>
      <rp>(</rp>
      <rt>アメリカ</rt>
      <rp>)</rp>
    </ruby>
  </p>
</div>

<script>
//@cc_on

function replaceRubyTag (node, mode) {
  var doc = node.ownerDocument;
  var rubys = node.getElementsByTagName ('ruby');
  var ruby;
  var span;
  var cnt;
  var node;
  var child;
  var text;
  
  while (ruby = rubys[0]) {
    if (mode)
      text = ruby./*@if (1) innerText @else@*/ textContent /*@end@*/;

    else {
      cnt = 0;
      text = '';
      child = ruby.childNodes;
      
      while (node = child[cnt++]) {
        if (3 === node.nodeType) 
          text += node.nodeValue;
        if ('RB' === node.nodeName) {
          text += node./*@if (1) innerText @else@*/ textContent /*@end@*/;
          alert(node.hasChildNodes());
        }
      }
    }
    
    span = doc.createElement ('span');
    span.appendChild (doc.createTextNode (text));
    ruby.parentNode.replaceChild (span, ruby);
  }
}

replaceRubyTag (document.getElementById ('hoge'));
</script>