Changeset 20849 for lang/cplusplus

Show
Ignore:
Timestamp:
10/06/08 21:09:32 (2 months ago)
Author:
tokuhirom
Message:

added createElement support

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

Legend:

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

    r20828 r20849  
    2424 
    2525#define EXTERNAL_DOC() EXTERNAL(xmlDocPtr, doc, args.This(), 0); 
     26 
     27static inline Handle<Object> createNode(xmlNodePtr node_raw) { 
     28    Handle<Value> consarg[1]; 
     29    consarg[0] = External::New(node_raw); 
     30    return node_class()->NewInstance(1, consarg); 
     31} 
    2632 
    2733FUNCTION(_readFile) 
     
    5258    xmlNodePtr node_raw = xmlDocGetRootElement(doc); 
    5359    assert(node_raw); 
     60    return createNode( node_raw ); 
     61END 
    5462 
    55     Handle<Value> consarg[1]; 
    56     consarg[0] = External::New(node_raw); 
    57     Handle<Object> node = node_class()->NewInstance(1, consarg); 
    58     return node; 
     63FUNCTION(_createElement) 
     64    ARG_COUNT(1); 
     65    ARG_str(elname, 0); 
     66 
     67    xmlNodePtr node_raw = xmlNewNode(NULL, (const xmlChar*)*elname); 
     68    assert(node_raw); 
     69    return createNode( node_raw ); 
    5970END 
    6071 
     
    7283    BIND_IM("version",                _version); 
    7384    BIND_IM("documentElement",        _documentElement); 
     85    BIND_IM("createElement",          _createElement); 
    7486    BIND_IM("close",                  _close); 
    7587    INTERNALCOUNT(1); 
  • lang/cplusplus/llv8call/trunk/ext/libxml/node.cc

    r20828 r20849  
    4545ENDSUBMODULE 
    4646 
    47 // TODO: node.nodeName 
    4847// TODO: node.setNodeName 
    4948// TODO: node.isSameNode 
     
    9594// TODO: node.nodePath 
    9695// TODO: node.line_number 
     96 
  • lang/cplusplus/llv8call/trunk/t/070_libxml/01_simple.js

    r20828 r20849  
    1010is(doc.version(),  "1.0"); 
    1111is(doc.documentElement().nodeName(), "foo"); 
     12is(doc.createElement("bar").nodeName(), "bar", 'createElement'); 
    1213doc.close(); 
    1314 
    14 ok(true);