Changeset 20850 for lang/cplusplus

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

added doc.toString

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

Legend:

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

    r20849 r20850  
    7070END 
    7171 
     72FUNCTION(toString) 
     73    ARG_BETWEEN(0, 1); 
     74    EXTERNAL_DOC(); 
     75    int format = args.Length() > 0 ? args[0]->Int32Value() : 0; 
     76    xmlChar * result = NULL; 
     77    int len = 0; 
     78    if (format <= 0) { 
     79        xmlDocDumpMemory(doc, &result, &len); 
     80    } else { 
     81        int t_indent_var = xmlIndentTreeOutput; 
     82        xmlIndentTreeOutput = 1; 
     83        xmlDocDumpFormatMemory(doc, &result, &len, format ); 
     84        xmlIndentTreeOutput = t_indent_var; 
     85    } 
     86    Handle<String> str = String::New((const char*)result, len); 
     87    xmlFree(result); 
     88    return str; 
     89END 
     90 
    7291FUNCTION(_close) 
    7392    ARG_COUNT(0); 
     
    84103    BIND_IM("documentElement",        _documentElement); 
    85104    BIND_IM("createElement",          _createElement); 
     105    BIND_IM("toString",               toString); 
    86106    BIND_IM("close",                  _close); 
    87107    INTERNALCOUNT(1); 
    88108    EXPORT_CLASS("Document"); 
    89109ENDSUBMODULE 
     110 
     111// rest: 44/51 
    90112 
    91113// TODO: doc.createDocument 
     
    96118// TODO: doc.compression 
    97119// TODO: doc.setCompression 
    98 // TODO: doc.toString 
    99120// TODO: doc.toStringC14N 
    100121// TODO: doc.toStringEC14N 
     
    110131// TODO: doc.documentElement 
    111132// TODO: doc.setDocumentElement 
    112 // TODO: doc.createElement 
    113133// TODO: doc.createElementNS 
    114134// TODO: doc.createTextNode 
  • lang/cplusplus/llv8call/trunk/ext/libxml/node.cc

    r20849 r20850  
    4545ENDSUBMODULE 
    4646 
     47// REST: 49/50 
    4748// TODO: node.setNodeName 
    4849// TODO: node.isSameNode 
  • lang/cplusplus/llv8call/trunk/t/070_libxml/01_simple.js

    r20849 r20850  
    1111is(doc.documentElement().nodeName(), "foo"); 
    1212is(doc.createElement("bar").nodeName(), "bar", 'createElement'); 
     13is(doc.toString(), '<?xml version="1.0" encoding="UTF-8"?>' + "\n" + '<foo/>' + "\n", 'toString'); 
    1314doc.close(); 
    1415