Changeset 20999

Show
Ignore:
Timestamp:
10/08/08 23:44:32 (3 months ago)
Author:
tokuhirom
Message:

added node.nextSibling, node.previousSibling

Location:
lang/cplusplus/llv8call/trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • lang/cplusplus/llv8call/trunk/ext/libxml/node.cc

    r20991 r20999  
    3535ENDSUBMODULE 
    3636 
    37 // REST: 11/50 
     37// REST: 13/50 
    3838 
    3939// TODO: node.setNodeName 
     
    4949// TODO: node.addNewChild 
    5050// TODO: node.addSibling 
    51 // TODO: node.nextSibling 
    52 // TODO: node.previousSibling 
    5351// TODO: node.hasChildNodes 
    5452// TODO: node.ownerDocument 
  • lang/cplusplus/llv8call/trunk/ext/libxml/node.h

    r20986 r20999  
    170170    EXTERNAL_NODE(); 
    171171    EXTERNAL_DOC(); 
    172     return CREATE_NODE( doc, node->parent ); 
     172    if (node->parent) { 
     173        return CREATE_NODE( doc, node->parent ); 
     174    } else { 
     175        return Undefined(); 
     176    } 
     177END 
     178 
     179FUNCTION(nextSibling) 
     180    ARG_COUNT(0); 
     181    EXTERNAL_NODE(); 
     182    EXTERNAL_DOC(); 
     183    if (node->next) { 
     184        return CREATE_NODE( doc, node->next ); 
     185    } else { 
     186        return Undefined(); 
     187    } 
     188END 
     189 
     190FUNCTION(previousSibling) 
     191    ARG_COUNT(0); 
     192    EXTERNAL_NODE(); 
     193    EXTERNAL_DOC(); 
     194    if (node->prev) { 
     195        return CREATE_NODE( doc, node->prev ); 
     196    } else { 
     197        return Undefined(); 
     198    } 
    173199END 
    174200 
     
    198224    BIND_IM("lastChild",           lastChild); 
    199225    BIND_IM("parentNode",          parentNode); 
     226    BIND_IM("nextSibling",         nextSibling); 
     227    BIND_IM("previousSibling",     previousSibling); 
    200228    INTERNALCOUNT(2); 
    201229} 
  • lang/cplusplus/llv8call/trunk/t/070_libxml/02_dom.js

    r20988 r20999  
    11require('t/util.js'); 
    22 
    3 plan({tests:25}); 
     3plan({tests:31}); 
    44 
    55check_lib("org.coderepos.libxml"); 
     
    8080    bar.appendChild(eee) 
    8181    is(root.toString(),  '<foo><bar><eee/></bar></foo>', 'node.parentNode()'); 
    82     is(eee.parentNode().nodeName(), 'bar', 'node.parentNode()'); 
     82    is(eee.parentNode().nodeName(),   'bar',     'node.parentNode()'); 
     83    is(doc.createElement("emem").parentNode().parentNode(), undefined, 'node.parentNode()'); 
    8384}); 
    8485 
     
    111112}); 
    112113 
     114test(function () { 
     115    var f1 = doc.createElement("f1"); 
     116    var f2 = doc.createElement("f2"); 
     117    var f3 = doc.createElement("f3"); 
     118    root.appendChild(f1); 
     119    root.appendChild(f2); 
     120    root.appendChild(f3); 
     121    is(root.toString(),  '<foo foo="baz"><f1/><f2/><f3/></foo>',           'doc.nextSibling()'); 
     122    is(f2.nextSibling().nodeName(),     'f3',                              'doc.nextSibling()'); 
     123    is(f3.nextSibling(),                undefined,                         'doc.nextSibling()'); 
     124    is(f2.previousSibling().nodeName(), 'f1',                              'doc.previousSibling()'); 
     125    is(f1.previousSibling(),            undefined,                         'doc.previousSibling()'); 
     126}); 
     127 
    113128doc.close(); 
    114129