Changeset 21020

Show
Ignore:
Timestamp:
10/09/08 08:34:47 (3 months ago)
Author:
tokuhirom
Message:

added node.childNodes

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

Legend:

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

    r21007 r21020  
    3535ENDSUBMODULE 
    3636 
    37 // REST: 15/50 
     37// REST: 16/50 
    3838 
    3939// TODO: node.isEqual 
     
    5454// TODO: node.find 
    5555// TODO: node.findvalue 
    56 // TODO: node.childNodes 
    5756// TODO: node.toStringC14N 
    5857// TODO: node.toStringEC14N 
  • lang/cplusplus/llv8call/trunk/ext/libxml/node.h

    r21007 r21020  
    227227END 
    228228 
     229FUNCTION(childNodes) 
     230    ARG_COUNT(0); 
     231    EXTERNAL_NODE(); 
     232    EXTERNAL_DOC(); 
     233    xmlNodePtr c = node->children; 
     234    Handle<Array> ret = Array::New(); 
     235    for (int i=0; c; i++, c=c->next) { 
     236        ret->Set(Int32::New(i), CREATE_NODE(doc, c)); 
     237    } 
     238    return ret; 
     239END 
     240 
    229241static inline void setupNodeIM(Handle<ObjectTemplate> OBJECT_TEMPLATE) { 
    230242    BIND_IM("nodeName",            nodeName); 
     
    243255    BIND_IM("previousSibling",     previousSibling); 
    244256    BIND_IM("isSameNode",          isSameNode); 
     257    BIND_IM("childNodes",          childNodes); 
    245258    INTERNALCOUNT(2); 
    246259} 
  • lang/cplusplus/llv8call/trunk/t/070_libxml/02_dom.js

    r21008 r21020  
    11require('t/util.js'); 
    22 
    3 plan({tests:39}); 
     3plan({tests:42}); 
    44 
    55check_lib("org.coderepos.libxml"); 
     
    154154}); 
    155155 
     156test(function () { 
     157    root.appendChild(bar); 
     158    root.appendChild(eee); 
     159    is(root.childNodes().length,        2,     'node.childNodes'); 
     160    is(root.childNodes()[0].nodeName(), 'bar', 'node.childNodes'); 
     161    is(root.childNodes()[1].nodeName(), 'eee', 'node.childNodes'); 
     162}); 
     163 
    156164doc.close(); 
    157165