/** * Phoebe DOM Implementation. * * This is a C++ approximation of the W3C DOM model, which follows * fairly closely the specifications in the various .idl files, copies of * which are provided for reference. Most important is this one: * * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html * * Authors: * Bob Jamison * * Copyright (C) 2006-2007 Bob Jamison * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ /** * This code provides the ECMAScript (Javascript) binding to the classes * of the DOM Level 3 Core. This should provide DOM manipulation for * most general-purpose XML and Document-like applications. More specialized * applications like SVG should inherit from the core C++ classes, and also * use the prototypes in this file as the basis for their bindings. * * To ensure that we at least attempt to bind ECMAScript to DOM * as closely as possible to the standards, we will include the entire * Appendix H of the XML Level 3 Core spec as annotations in this file. * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding.html */ #include "domimpl.h" #include "jsdombind.h" #include namespace org { namespace w3c { namespace dom { //######################################################################## //# M E S S A G E S //######################################################################## void JavascriptDOMBinder::error(char *fmt, ...) { va_list args; va_start(args, fmt); fprintf(stderr, "JS error: "); vfprintf(stderr, fmt, args); fprintf(stderr, "\n"); va_end(args); } void JavascriptDOMBinder::trace(char *fmt, ...) { va_list args; va_start(args, fmt); fprintf(stdout, "JS: "); vfprintf(stdout, fmt, args); fprintf(stdout, "\n"); va_end(args); } //######################################################################## //# U T I L I T Y //######################################################################## //Use this for getting the JavascriptEngine from an object method #define BINDER ((JavascriptDOMBinder *) JS_GetContextPrivate(cx)) #define NewObjectVal (CLASSNAME) \ OBJECT_TO_JSVAL( JS_NewObject(cx, \ &wrapperClassDef, \ (JavascriptDOMBinder *) JS_GetContextPrivate(cx)->proto_## CLASSNAME, \ (void *) priv) ); #define NewObjectPtrVal (CLASSNAME) \ OBJECT_TO_JSVAL( JS_NewObject(cx, \ &wrapperClassDef, \ (JavascriptDOMBinder *) JS_GetContextPrivate(cx)->proto_## CLASSNAME, \ (void *) new ## CLASSNAME ## Ptr (priv) )); /** * The name of the property is an enumeration, so just return the value. */ static JSBool GetEnumProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp) { *vp = id; return JS_TRUE; } static JSString *domToJString(JSContext *cx, const DOMString &s) { JSString *str = JS_NewStringCopyN(cx, s.c_str(), s.size()); return str; } static DOMString jvToDomString(JSContext *cx, jsval s) { JSString *jstr = JS_ValueToString(cx, s); DOMString str = JS_GetStringBytes(jstr); return str; } static DOMString jToDomString(JSString *s) { DOMString str = JS_GetStringBytes(s); return str; } //######################################################################## //# C L A S S E S //######################################################################## /** * Appendix H: ECMAScript Language Binding * * This appendix contains the complete ECMAScript [ECMAScript] binding for the * Level 3 Document Object Model Core definitions. H.1 ECMAScript Binding * Extension * */ class Wrapper { public: Wrapper(JSContext *context, JSObject *object) { cx = context; obj = object; } virtual ~Wrapper() {} virtual JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } virtual JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } virtual JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } protected: JSContext *cx; JSObject *obj; }; /** * WrapperProperty - Callback for retrieving properties */ static JSBool wrapperGetProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp) { Wrapper *w = (Wrapper *) JS_GetPrivate(cx, obj); return w->getProperty(id, vp); } /** * JSSetProperty - Callback for setting properties */ static JSBool wrapperSetProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp) { Wrapper *w = (Wrapper *) JS_GetPrivate(cx, obj); return w->setProperty(id, vp); } /** * JSConstructor - Callback for when a this object is created */ static JSBool wrapperConstructor(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { Wrapper *w = new Wrapper(cx, obj); JSBool ret = w->init(argc, argv); *rval = OBJECT_TO_JSVAL(obj); return ret; } /** * JSDestructor - Callback for when a this object is destroyed */ static void wrapperDestructor(JSContext *cx, JSObject *obj) { Wrapper *w = (Wrapper *) JS_GetPrivate(cx, obj); delete w; } static JSClass wrapperClassDef = { "DOMWrapper", JSCLASS_HAS_PRIVATE, JS_PropertyStub, JS_PropertyStub, wrapperGetProperty, wrapperSetProperty, JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, wrapperDestructor }; /** * JSInit - Create a prototype for this class */ static JSObject* wrapperInit(JSContext *cx, JSObject *obj, JSNative constructor, JSPropertySpec *properties, JSFunctionSpec *methods, JSPropertySpec *staticProperties, JSFunctionSpec *staticMethods, JSObject *proto = NULL) { JSObject *protoObj = JS_InitClass(cx, obj, proto, &wrapperClassDef, wrapperConstructor, 0, properties, methods, staticProperties, staticMethods); return protoObj; } #define WRAP_NAME(NAME) NAME ## _wrapper #define CLASS_NAME(NAME) WRAP_NAME(NAME) #define CONST_NAME(NAME) NAME ## _constructor #define CONSTRUCTOR_NAME(NAME) CONST_NAME(NAME) #define PT_NAME(NAME) NAME ## _properties #define PROPERTY_TABLE(NAME) PT_NAME(NAME) #define M_NAME(NAME) NAME ## _method #define METHOD_NAME(NAME) M_NAME(NAME) #define MT_NAME(NAME) NAME ## _methods #define METHOD_TABLE(NAME) MT_NAME(NAME) #define SPT_NAME(NAME) NAME ## _staticProperties #define STATIC_PROPERTY_TABLE(NAME) SPT_NAME(NAME) #define SMT_NAME(NAME) NAME ## _staticMethods #define STATIC_METHOD_TABLE(NAME) SMT_NAME(NAME) #define METHOD(NAME) \ static JSBool NAME(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) \ { return ((CLASS_NAME(CURRENT_CLASS) *) JS_GetPrivate(cx, obj))->METHOD_NAME(NAME)(argc, argv, rval); } \ JSBool METHOD_NAME(NAME)(uintN argc, jsval *argv, jsval *rval) #define CONSTRUCTOR(NAME) \ static JSBool CONSTRUCTOR_NAME(NAME)(JSContext *cx, \ JSObject *obj, uintN argc, \ jsval *argv, jsval *rval) \ { \ CLASS_NAME(NAME) *w = new CLASS_NAME(NAME)(cx, obj); \ JSBool ret = w->init(argc, argv); \ *rval = OBJECT_TO_JSVAL(obj); \ return ret; \ } #define CREATE_PROTO(NAME, cx, obj, proto) \ JS_InitClass(cx, obj, proto, &wrapperClassDef, \ CONSTRUCTOR_NAME(NAME), 0, \ PROPERTY_TABLE(NAME), \ METHOD_TABLE(NAME), \ STATIC_PROPERTY_TABLE(NAME), \ STATIC_METHOD_TABLE(NAME)); //######################################################################## //# DOMImplementationRegistry //######################################################################## /** * This section defines the DOMImplementationRegistry object, discussed in * Bootstrapping, for ECMAScript. * * * Objects that implements the DOMImplementationRegistry interface * * DOMImplementationRegistry is a global variable which has the following * functions: * * getDOMImplementation(features) * This method returns the first registered object that implements * the DOMImplementation interface and has the desired features, * or null if none is found. The features parameter is a String. * See also DOMImplementationSource.getDOMImplementation(). * * getDOMImplementationList(features) * This method returns a DOMImplementationList list of registered * object that implements the DOMImplementation interface and * has the desired features. The features parameter is a String. * See also DOMImplementationSource.getDOMImplementationList(). * * */ #define CURRENT_CLASS DOMImplementationRegistry class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { "getDOMImplementation", CLASS_NAME(CURRENT_CLASS)::getDOMImplementation, 1, 0, 0 }, { "getDOMImplementationList", CLASS_NAME(CURRENT_CLASS)::getDOMImplementationList, 1, 0, 0 }, { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) /** * H.2 Other Core interfaces */ //######################################################################## //# DOMException //######################################################################## /** * Properties of the DOMException Constructor function: * * DOMException.INDEX_SIZE_ERR * The value of the constant DOMException.INDEX_SIZE_ERR is 1. * DOMException.DOMSTRING_SIZE_ERR * The value of the constant DOMException.DOMSTRING_SIZE_ERR is 2. * DOMException.HIERARCHY_REQUEST_ERR * The value of the constant DOMException.HIERARCHY_REQUEST_ERR is 3. * DOMException.WRONG_DOCUMENT_ERR * The value of the constant DOMException.WRONG_DOCUMENT_ERR is 4. * DOMException.INVALID_CHARACTER_ERR * The value of the constant DOMException.INVALID_CHARACTER_ERR is 5. * DOMException.NO_DATA_ALLOWED_ERR * The value of the constant DOMException.NO_DATA_ALLOWED_ERR is 6. * DOMException.NO_MODIFICATION_ALLOWED_ERR * The value of the constant DOMException.NO_MODIFICATION_ALLOWED_ERR is 7. * DOMException.NOT_FOUND_ERR * The value of the constant DOMException.NOT_FOUND_ERR is 8. * DOMException.NOT_SUPPORTED_ERR * The value of the constant DOMException.NOT_SUPPORTED_ERR is 9. * DOMException.INUSE_ATTRIBUTE_ERR * The value of the constant DOMException.INUSE_ATTRIBUTE_ERR is 10. * DOMException.INVALID_STATE_ERR * The value of the constant DOMException.INVALID_STATE_ERR is 11. * DOMException.SYNTAX_ERR * The value of the constant DOMException.SYNTAX_ERR is 12. * DOMException.INVALID_MODIFICATION_ERR * The value of the constant DOMException.INVALID_MODIFICATION_ERR is 13. * DOMException.NAMESPACE_ERR * The value of the constant DOMException.NAMESPACE_ERR is 14. * DOMException.INVALID_ACCESS_ERR * The value of the constant DOMException.INVALID_ACCESS_ERR is 15. * DOMException.VALIDATION_ERR * The value of the constant DOMException.VALIDATION_ERR is 16. * DOMException.TYPE_MISMATCH_ERR * The value of the constant DOMException.TYPE_MISMATCH_ERR is 17. * * Objects that implement the DOMException interface: * * Properties of objects that implement the DOMException interface: * * code * This property is a Number. * */ #undef CURRENT_CLASS #define CURRENT_CLASS DOMException class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { "code", CLASS_NAME(CURRENT_CLASS)::prop_code, JSPROP_ENUMERATE }, { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { "INDEX_SIZE_ERR", DOMException::INDEX_SIZE_ERR, JSPROP_READONLY, GetEnumProperty }, { "DOMSTRING_SIZE_ERR", DOMException::DOMSTRING_SIZE_ERR, JSPROP_READONLY, GetEnumProperty }, { "HIERARCHY_REQUEST_ERR", DOMException::HIERARCHY_REQUEST_ERR, JSPROP_READONLY, GetEnumProperty }, { "WRONG_DOCUMENT_ERR", DOMException::WRONG_DOCUMENT_ERR, JSPROP_READONLY, GetEnumProperty }, { "INVALID_CHARACTER_ERR", DOMException::INVALID_CHARACTER_ERR, JSPROP_READONLY, GetEnumProperty }, { "NO_DATA_ALLOWED_ERR", DOMException::NO_DATA_ALLOWED_ERR, JSPROP_READONLY, GetEnumProperty }, { "NO_MODIFICATION_ALLOWED_ERR", DOMException::NO_MODIFICATION_ALLOWED_ERR, JSPROP_READONLY, GetEnumProperty }, { "NOT_FOUND_ERR", DOMException::NOT_FOUND_ERR, JSPROP_READONLY, GetEnumProperty }, { "NOT_SUPPORTED_ERR", DOMException::NOT_SUPPORTED_ERR, JSPROP_READONLY, GetEnumProperty }, { "INUSE_ATTRIBUTE_ERR", DOMException::INUSE_ATTRIBUTE_ERR, JSPROP_READONLY, GetEnumProperty }, { "INVALID_STATE_ERR", DOMException::INVALID_STATE_ERR, JSPROP_READONLY, GetEnumProperty }, { "SYNTAX_ERR", DOMException::SYNTAX_ERR, JSPROP_READONLY, GetEnumProperty }, { "INVALID_MODIFICATION_ERR", DOMException::INVALID_MODIFICATION_ERR, JSPROP_READONLY, GetEnumProperty }, { "NAMESPACE_ERR", DOMException::NAMESPACE_ERR, JSPROP_READONLY, GetEnumProperty }, { "INVALID_ACCESS_ERR", DOMException::INVALID_ACCESS_ERR, JSPROP_READONLY, GetEnumProperty }, { "VALIDATION_ERR", DOMException::VALIDATION_ERR, JSPROP_READONLY, GetEnumProperty }, { "TYPE_MISMATCH_ERR", DOMException::TYPE_MISMATCH_ERR, JSPROP_READONLY, GetEnumProperty }, { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# DOMStringList //######################################################################## /** * Objects that implement the DOMStringList interface: * * Properties of objects that implement the DOMStringList interface: * * length * This read-only property is a Number. * * Functions of objects that implement the DOMStringList interface: * * item(index) * This function returns a String. * The index parameter is a Number. * Note: This object can also be dereferenced using square bracket * notation (e.g. obj[1]). Dereferencing with an integer index * is equivalent to invoking the item function with that index. * * contains(str) * This function returns a Boolean. * The str parameter is a String. * */ #undef CURRENT_CLASS #define CURRENT_CLASS DOMStringList class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# NameList //######################################################################## /** * Objects that implement the NameList interface: * * Properties of objects that implement the NameList interface: * * length * This read-only property is a Number. * * Functions of objects that implement the NameList interface: * * getName(index) * This function returns a String. * The index parameter is a Number. * getNamespaceURI(index) * This function returns a String. * The index parameter is a Number. * contains(str) * This function returns a Boolean. * The str parameter is a String. * containsNS(namespaceURI, name) * This function returns a Boolean. * The namespaceURI parameter is a String. * The name parameter is a String. */ #undef CURRENT_CLASS #define CURRENT_CLASS NameList class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# DOMImplementationList //######################################################################## /** * Objects that implement the DOMImplementationList interface: * * Properties of objects that implement the DOMImplementationList interface: * * length * This read-only property is a Number. * * Functions of objects that implement the DOMImplementationList interface: * * item(index) * This function returns an object that implements the * DOMImplementation interface. * The index parameter is a Number. * Note: This object can also be dereferenced using square bracket * notation (e.g. obj[1]). Dereferencing with an integer index * is equivalent to invoking the item function with that index. * * */ #undef CURRENT_CLASS #define CURRENT_CLASS DOMImplementationList class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# DOMImplementationSource //######################################################################## /** * Objects that implement the DOMImplementationSource interface: * * Functions of objects that implement the DOMImplementationSource interface: * * getDOMImplementation(features) * This function returns an object that implements the * DOMImplementation interface. * The features parameter is a String. * getDOMImplementationList(features) * This function returns an object that implements the * DOMImplementationList interface. * The features parameter is a String. */ #undef CURRENT_CLASS #define CURRENT_CLASS DOMImplementationSource class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# DOMImplementation //######################################################################## /** * Objects that implement the DOMImplementation interface: * * Functions of objects that implement the DOMImplementation interface: * * hasFeature(feature, version) * This function returns a Boolean. * The feature parameter is a String. * The version parameter is a String. * createDocumentType(qualifiedName, publicId, systemId) * This function returns an object that implements the * DocumentType interface. * The qualifiedName parameter is a String. * The publicId parameter is a String. * The systemId parameter is a String. * This function can raise an object that implements the * DOMException interface. * createDocument(namespaceURI, qualifiedName, doctype) * This function returns an object that implements the * Document interface. * The namespaceURI parameter is a String. * The qualifiedName parameter is a String. * The doctype parameter is an object that implements the * DocumentType interface. * This function can raise an object that implements the * DOMException interface. * getFeature(feature, version) * This function returns an object that implements * the Object interface. * The feature parameter is a String. * The version parameter is a String. */ #undef CURRENT_CLASS #define CURRENT_CLASS DOMImplementation class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# DocumentFragment //######################################################################## /** * Objects that implement the DocumentFragment interface: * * Objects that implement the DocumentFragment interface have all * properties and functions of the Node interface. */ #undef CURRENT_CLASS #define CURRENT_CLASS DocumentFragment class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# Document //######################################################################## /** * Objects that implement the Document interface: * * Objects that implement the Document interface have all properties * and functions of the Node interface as well as the properties * and functions defined below. * Properties of objects that implement the Document interface: * * * doctype * This read-only property is an object that implements * the DocumentType interface. * implementation * This read-only property is an object that implements * the DOMImplementation interface. * documentElement * This read-only property is an object that implements * the Element interface. * inputEncoding * This read-only property is a String. * xmlEncoding * This read-only property is a String. * xmlStandalone * This property is a Boolean and can raise an object * that implements the DOMException interface on setting. * xmlVersion * This property is a String and can raise an object * that implements the DOMException interface on setting. * strictErrorChecking * This property is a Boolean. * documentURI * This property is a String. * domConfig * This read-only property is an object that implements * the DOMConfiguration interface. * * * Functions of objects that implement the Document interface: * * createElement(tagName) * This function returns an object that implements * the Element interface. * The tagName parameter is a String. * This function can raise an object that implements * the DOMException interface. * createDocumentFragment() * This function returns an object that implements * the DocumentFragment interface. * createTextNode(data) * This function returns an object that implements * the Text interface. * The data parameter is a String. * createComment(data) * This function returns an object that implements * the Comment interface. * The data parameter is a String. * createCDATASection(data) * This function returns an object that implements * the CDATASection interface. * The data parameter is a String. * This function can raise an object that implements * the DOMException interface. * createProcessingInstruction(target, data) * This function returns an object that implements * the ProcessingInstruction interface. * The target parameter is a String. * The data parameter is a String. * This function can raise an object that implements * the DOMException interface. * createAttribute(name) * This function returns an object that implements * the Attr interface. * The name parameter is a String. * This function can raise an object that implements * the DOMException interface. * createEntityReference(name) * This function returns an object that implements * the EntityReference interface. * The name parameter is a String. * This function can raise an object that implements * the DOMException interface. * getElementsByTagName(tagname) * This function returns an object that implements * the NodeList interface. * The tagname parameter is a String. * importNode(importedNode, deep) * This function returns an object that implements * the Node interface. * The importedNode parameter is an object that implements * the Node interface. * The deep parameter is a Boolean. * This function can raise an object that implements * the DOMException interface. * createElementNS(namespaceURI, qualifiedName) * This function returns an object that implements * the Element interface. * The namespaceURI parameter is a String. * The qualifiedName parameter is a String. * This function can raise an object that implements * the DOMException interface. * createAttributeNS(namespaceURI, qualifiedName) * This function returns an object that implements * the Attr interface. * The namespaceURI parameter is a String. * The qualifiedName parameter is a String. * This function can raise an object that implements * the DOMException interface. * getElementsByTagNameNS(namespaceURI, localName) * This function returns an object that implements * the NodeList interface. * The namespaceURI parameter is a String. * The localName parameter is a String. * getElementById(elementId) * This function returns an object that implements * the Element interface. * The elementId parameter is a String. * adoptNode(source) * This function returns an object that implements * the Node interface. * The source parameter is an object that implements * the Node interface. * This function can raise an object that implements * the DOMException interface. * normalizeDocument() * This function has no return value. * renameNode(n, namespaceURI, qualifiedName) * This function returns an object that implements * the Node interface. * The n parameter is an object that implements * the Node interface. * The namespaceURI parameter is a String. * The qualifiedName parameter is a String. * This function can raise an object that implements * the DOMException interface. */ #undef CURRENT_CLASS #define CURRENT_CLASS Document class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; DocumentPtr doc; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# Node //######################################################################## /** * Properties of the Node Constructor function: * * Node.ELEMENT_NODE * The value of the constant Node.ELEMENT_NODE is 1. * Node.ATTRIBUTE_NODE * The value of the constant Node.ATTRIBUTE_NODE is 2. * Node.TEXT_NODE * The value of the constant Node.TEXT_NODE is 3. * Node.CDATA_SECTION_NODE * The value of the constant Node.CDATA_SECTION_NODE is 4. * Node.ENTITY_REFERENCE_NODE * The value of the constant Node.ENTITY_REFERENCE_NODE is 5. * Node.ENTITY_NODE * The value of the constant Node.ENTITY_NODE is 6. * Node.PROCESSING_INSTRUCTION_NODE * The value of the constant Node.PROCESSING_INSTRUCTION_NODE is 7. * Node.COMMENT_NODE * The value of the constant Node.COMMENT_NODE is 8. * Node.DOCUMENT_NODE * The value of the constant Node.DOCUMENT_NODE is 9. * Node.DOCUMENT_TYPE_NODE * The value of the constant Node.DOCUMENT_TYPE_NODE is 10. * Node.DOCUMENT_FRAGMENT_NODE * The value of the constant Node.DOCUMENT_FRAGMENT_NODE is 11. * Node.NOTATION_NODE * The value of the constant Node.NOTATION_NODE is 12. * Node.DOCUMENT_POSITION_DISCONNECTED * The value of the constant Node.DOCUMENT_POSITION_DISCONNECTED * is 0x01. * Node.DOCUMENT_POSITION_PRECEDING * The value of the constant Node.DOCUMENT_POSITION_PRECEDING * is 0x02. * Node.DOCUMENT_POSITION_FOLLOWING * The value of the constant Node.DOCUMENT_POSITION_FOLLOWING * is 0x04. * Node.DOCUMENT_POSITION_CONTAINS * The value of the constant Node.DOCUMENT_POSITION_CONTAINS * is 0x08. * Node.DOCUMENT_POSITION_CONTAINED_BY * The value of the constant Node.DOCUMENT_POSITION_CONTAINED_BY * is 0x10. * Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC * The value of the constant Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC * is 0x20. * * Objects that implement the Node interface: * * Properties of objects that implement the Node interface: * * nodeName * This read-only property is a String. * nodeValue * This property is a String, can raise an object that implements * the DOMException * interface on setting and can raise an object that implements * the DOMException * interface on retrieval. * nodeType * This read-only property is a Number. * parentNode * This read-only property is an object that implements * the Node interface. * childNodes * This read-only property is an object that implements * the NodeList interface. * firstChild * This read-only property is an object that implements * the Node interface. * lastChild * This read-only property is an object that implements * the Node interface. * previousSibling * This read-only property is an object that implements * the Node interface. * nextSibling * This read-only property is an object that implements * the Node interface. * attributes * This read-only property is an object that implements * the NamedNodeMap interface. * ownerDocument * This read-only property is an object that implements * the Document interface. * namespaceURI * This read-only property is a String. * prefix * This property is a String and can raise an object * that implements the DOMException interface on setting. * localName * This read-only property is a String. * baseURI * This read-only property is a String. * textContent * This property is a String, can raise an object that implements * the DOMException interface on setting and can raise * an object that implements the DOMException interface * on retrieval. * * * Functions of objects that implement the Node interface: * * insertBefore(newChild, refChild) * This function returns an object that implements * the Node interface. * The newChild parameter is an object that implements * the Node interface. * The refChild parameter is an object that implements * the Node interface. * This function can raise an object that implements * the DOMException interface. * replaceChild(newChild, oldChild) * This function returns an object that implements * the Node interface. * The newChild parameter is an object that implements * the Node interface. * The oldChild parameter is an object that implements * the Node interface. * This function can raise an object that implements * the DOMException interface. * removeChild(oldChild) * This function returns an object that implements * the Node interface. * The oldChild parameter is an object that implements * the Node interface. * This function can raise an object that implements * the DOMException interface. * appendChild(newChild) * This function returns an object that implements * the Node interface. * The newChild parameter is an object that implements * the Node interface. * This function can raise an object that implements * the DOMException interface. * hasChildNodes() * This function returns a Boolean. * cloneNode(deep) * This function returns an object that implements * the Node interface. * The deep parameter is a Boolean. * normalize() * This function has no return value. * isSupported(feature, version) * This function returns a Boolean. * The feature parameter is a String. * The version parameter is a String. * hasAttributes() * This function returns a Boolean. * compareDocumentPosition(other) * This function returns a Number. * The other parameter is an object that implements * the Node interface. * This function can raise an object that implements * the DOMException interface. * isSameNode(other) * This function returns a Boolean. * The other parameter is an object that implements * the Node interface. * lookupPrefix(namespaceURI) * This function returns a String. * The namespaceURI parameter is a String. * isDefaultNamespace(namespaceURI) * This function returns a Boolean. * The namespaceURI parameter is a String. * lookupNamespaceURI(prefix) * This function returns a String. * The prefix parameter is a String. * isEqualNode(arg) * This function returns a Boolean. * The arg parameter is an object that implements * the Node interface. * getFeature(feature, version) * This function returns an object that implements * the Object interface. * The feature parameter is a String. * The version parameter is a String. * setUserData(key, data, handler) * This function returns an object that implements * the any type interface. * The key parameter is a String. * The data parameter is an object that implements * the any type interface. * The handler parameter is an object that implements * the UserDataHandler interface. * getUserData(key) * This function returns an object that implements * the any type interface. * The key parameter is a String. * */ #undef CURRENT_CLASS #define CURRENT_CLASS Node class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# NodeList //######################################################################## /** * Objects that implement the NodeList interface: * * Properties of objects that implement the NodeList interface: * * length * This read-only property is a Number. * * Functions of objects that implement the NodeList interface: * * item(index) * This function returns an object that implements * the Node interface. * The index parameter is a Number. * Note: This object can also be dereferenced using square * bracket notation (e.g. obj[1]). Dereferencing with * an integer index is equivalent to invoking the item * function with that index. * * */ #undef CURRENT_CLASS #define CURRENT_CLASS NodeList class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# NamedNodeMap //######################################################################## /** * Objects that implement the NamedNodeMap interface: * * Properties of objects that implement the NamedNodeMap interface: * * length * This read-only property is a Number. * * Functions of objects that implement the NamedNodeMap interface: * * getNamedItem(name) * This function returns an object that implements * the Node interface. * The name parameter is a String. * setNamedItem(arg) * This function returns an object that implements * the Node interface. * The arg parameter is an object that implements * the Node interface. * This function can raise an object that implements * the DOMException interface. * removeNamedItem(name) * This function returns an object that implements * the Node interface. * The name parameter is a String. * This function can raise an object that implements * the DOMException interface. * item(index) * This function returns an object that implements * the Node interface. * The index parameter is a Number. * Note: This object can also be dereferenced using square * bracket notation (e.g. obj[1]). Dereferencing with * an integer index is equivalent to invoking the item * function with that index. * getNamedItemNS(namespaceURI, localName) * This function returns an object that implements * the Node interface. * The namespaceURI parameter is a String. * The localName parameter is a String. * This function can raise an object that implements * the DOMException interface. * setNamedItemNS(arg) * This function returns an object that implements * the Node interface. * The arg parameter is an object that implements * the Node interface. * This function can raise an object that implements * the DOMException interface. * removeNamedItemNS(namespaceURI, localName) * This function returns an object that implements * the Node interface. * The namespaceURI parameter is a String. * The localName parameter is a String. * This function can raise an object that implements * the DOMException interface. */ #undef CURRENT_CLASS #define CURRENT_CLASS NamedNodeMap class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# CharacterData //######################################################################## /** * Objects that implement the CharacterData interface: * * Objects that implement the CharacterData interface have all * properties and functions of the Node interface as well as * the properties and functions defined below. Properties * of objects that implement the CharacterData interface: * * * data * This property is a String, can raise an object * that implements the DOMException interface on setting * and can raise an object that implements the DOMException * interface on retrieval. * length * This read-only property is a Number. * * Functions of objects that implement the CharacterData interface: * * substringData(offset, count) * This function returns a String. * The offset parameter is a Number. * The count parameter is a Number. * This function can raise an object that implements * the DOMException interface. * appendData(arg) * This function has no return value. * The arg parameter is a String. * This function can raise an object that implements * the DOMException interface. * insertData(offset, arg) * This function has no return value. * The offset parameter is a Number. * The arg parameter is a String. * This function can raise an object that implements * the DOMException interface. * deleteData(offset, count) * This function has no return value. * The offset parameter is a Number. * The count parameter is a Number. * This function can raise an object that implements * the DOMException interface. * replaceData(offset, count, arg) * This function has no return value. * The offset parameter is a Number. * The count parameter is a Number. * The arg parameter is a String. * This function can raise an object that implements * the DOMException interface. */ #undef CURRENT_CLASS #define CURRENT_CLASS CharacterData class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# Attr //######################################################################## /** * Objects that implement the Attr interface: * * Objects that implement the Attr interface have all properties * and functions of the Node interface as well as the properties * and functions defined below. * Properties of objects that implement the Attr interface: * * * name * This read-only property is a String. * specified * This read-only property is a Boolean. * value * This property is a String and can raise an object * that implements the DOMException interface on setting. * ownerElement * This read-only property is an object that implements * the Element interface. * schemaTypeInfo * This read-only property is an object that implements * the TypeInfo interface. * isId * This read-only property is a Boolean. * */ #undef CURRENT_CLASS #define CURRENT_CLASS Attr class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# Element //######################################################################## /** * Objects that implement the Element interface: * * Objects that implement the Element interface have all properties * and functions of the Node interface as well as the properties * and functions defined below. * Properties of objects that implement the Element interface: * * * tagName * This read-only property is a String. * schemaTypeInfo * This read-only property is an object that implements * the TypeInfo interface. * * Functions of objects that implement the Element interface: * * getAttribute(name) * This function returns a String. * The name parameter is a String. * setAttribute(name, value) * This function has no return value. * The name parameter is a String. * The value parameter is a String. * This function can raise an object that implements * the DOMException interface. * removeAttribute(name) * This function has no return value. * The name parameter is a String. * This function can raise an object that implements * the DOMException interface. * getAttributeNode(name) * This function returns an object that implements * the Attr interface. * The name parameter is a String. * setAttributeNode(newAttr) * This function returns an object that implements * the Attr interface. * The newAttr parameter is an object that implements * the Attr interface. * This function can raise an object that implements * the DOMException interface. * removeAttributeNode(oldAttr) * This function returns an object that implements * the Attr interface. * The oldAttr parameter is an object that implements * the Attr interface. * This function can raise an object that implements * the DOMException interface. * getElementsByTagName(name) * This function returns an object that implements * the NodeList interface. * The name parameter is a String. * getAttributeNS(namespaceURI, localName) * This function returns a String. * The namespaceURI parameter is a String. * The localName parameter is a String. * This function can raise an object that implements * the DOMException interface. * setAttributeNS(namespaceURI, qualifiedName, value) * This function has no return value. * The namespaceURI parameter is a String. * The qualifiedName parameter is a String. * The value parameter is a String. * This function can raise an object that implements * the DOMException interface. * removeAttributeNS(namespaceURI, localName) * This function has no return value. * The namespaceURI parameter is a String. * The localName parameter is a String. * This function can raise an object that implements * the DOMException interface. * getAttributeNodeNS(namespaceURI, localName) * This function returns an object that implements * the Attr interface. * The namespaceURI parameter is a String. * The localName parameter is a String. * This function can raise an object that implements * the DOMException interface. * setAttributeNodeNS(newAttr) * This function returns an object that implements * the Attr interface. * The newAttr parameter is an object that implements * the Attr interface. * This function can raise an object that implements * the DOMException interface. * getElementsByTagNameNS(namespaceURI, localName) * This function returns an object that implements * the NodeList interface. * The namespaceURI parameter is a String. * The localName parameter is a String. * This function can raise an object that implements * the DOMException interface. * hasAttribute(name) * This function returns a Boolean. * The name parameter is a String. * hasAttributeNS(namespaceURI, localName) * This function returns a Boolean. * The namespaceURI parameter is a String. * The localName parameter is a String. * This function can raise an object that implements * the DOMException interface. * setIdAttribute(name, isId) * This function has no return value. * The name parameter is a String. * The isId parameter is a Boolean. * This function can raise an object that implements * the DOMException interface. * setIdAttributeNS(namespaceURI, localName, isId) * This function has no return value. * The namespaceURI parameter is a String. * The localName parameter is a String. * The isId parameter is a Boolean. * This function can raise an object that implements * the DOMException interface. * setIdAttributeNode(idAttr, isId) * This function has no return value. * The idAttr parameter is an object that implements * the Attr interface. * The isId parameter is a Boolean. * This function can raise an object that implements * the DOMException interface. */ #undef CURRENT_CLASS #define CURRENT_CLASS Element class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# Text //######################################################################## /** * Objects that implement the Text interface: * * Objects that implement the Text interface have all properties * and functions of the CharacterData interface as well as * the properties and functions defined below. Properties of objects * that implement the Text interface: * * * isElementContentWhitespace * This read-only property is a Boolean. * wholeText * This read-only property is a String. * * Functions of objects that implement the Text interface: * * splitText(offset) * This function returns an object that implements * the Text interface. * The offset parameter is a Number. * This function can raise an object that implements * the DOMException interface. * replaceWholeText(content) * This function returns an object that implements * the Text interface. * The content parameter is a String. * This function can raise an object that implements * the DOMException interface. */ #undef CURRENT_CLASS #define CURRENT_CLASS Text class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# Comment //######################################################################## /** * Objects that implement the Comment interface: * * Objects that implement the Comment interface have all properties * and functions of the CharacterData interface. * */ #undef CURRENT_CLASS #define CURRENT_CLASS Comment class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# TypeInfo //######################################################################## /** * Properties of the TypeInfo Constructor function: * * TypeInfo.DERIVATION_RESTRICTION * The value of the constant TypeInfo.DERIVATION_RESTRICTION * is 0x00000001. * TypeInfo.DERIVATION_EXTENSION * The value of the constant TypeInfo.DERIVATION_EXTENSION * is 0x00000002. * TypeInfo.DERIVATION_UNION * The value of the constant TypeInfo.DERIVATION_UNION * is 0x00000004. * TypeInfo.DERIVATION_LIST * The value of the constant TypeInfo.DERIVATION_LIST * is 0x00000008. * * Objects that implement the TypeInfo interface: * * Properties of objects that implement the TypeInfo interface: * * typeName * This read-only property is a String. * typeNamespace * This read-only property is a String. * * Functions of objects that implement the TypeInfo interface: * * isDerivedFrom(typeNamespaceArg, typeNameArg, derivationMethod) * This function returns a Boolean. * The typeNamespaceArg parameter is a String. * The typeNameArg parameter is a String. * The derivationMethod parameter is a Number. */ #undef CURRENT_CLASS #define CURRENT_CLASS TypeInfo class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# UserDataHandler //######################################################################## /** * Properties of the UserDataHandler Constructor function: * * UserDataHandler.NODE_CLONED * The value of the constant UserDataHandler.NODE_CLONED is 1. * UserDataHandler.NODE_IMPORTED * The value of the constant UserDataHandler.NODE_IMPORTED is 2. * UserDataHandler.NODE_DELETED * The value of the constant UserDataHandler.NODE_DELETED is 3. * UserDataHandler.NODE_RENAMED * The value of the constant UserDataHandler.NODE_RENAMED is 4. * UserDataHandler.NODE_ADOPTED * The value of the constant UserDataHandler.NODE_ADOPTED is 5. * * UserDataHandler function: * This function has no return value. * The first parameter is a Number. * The second parameter is a String. * The third parameter is an object that implements the any * type interface. * The fourth parameter is an object that implements the Node * interface. * The fifth parameter is an object that implements the Node interface. * Properties of the DOMError Constructor function: * * * DOMError.SEVERITY_WARNING * The value of the constant DOMError.SEVERITY_WARNING is 1. * DOMError.SEVERITY_ERROR * The value of the constant DOMError.SEVERITY_ERROR is 2. * DOMError.SEVERITY_FATAL_ERROR * The value of the constant DOMError.SEVERITY_FATAL_ERROR is 3. */ #undef CURRENT_CLASS #define CURRENT_CLASS UserDataHandler class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# DOMError //######################################################################## /** * Objects that implement the DOMError interface: * * Properties of objects that implement the DOMError interface: * * severity * This read-only property is a Number. * message * This read-only property is a String. * type * This read-only property is a String. * relatedException * This read-only property is an object that implements * the Object interface. * relatedData * This read-only property is an object that implements * the Object interface. * location * This read-only property is an object that implements * the DOMLocator interface. * * DOMErrorHandler function: * This function returns a Boolean. * The parameter is an object that implements the * DOMError interface. * * */ #undef CURRENT_CLASS #define CURRENT_CLASS DOMError class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# DOMLocator //######################################################################## /** * Objects that implement the DOMLocator interface: * * Properties of objects that implement the DOMLocator interface: * * lineNumber * This read-only property is a Number. * columnNumber * This read-only property is a Number. * byteOffset * This read-only property is a Number. * utf16Offset * This read-only property is a Number. * relatedNode * This read-only property is an object that implements * the Node interface. * uri * This read-only property is a String. */ #undef CURRENT_CLASS #define CURRENT_CLASS DOMLocator class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# DOMConfiguration //######################################################################## /** * Objects that implement the DOMConfiguration interface: * * Properties of objects that implement the DOMConfiguration interface: * * parameterNames * This read-only property is an object that implements * the DOMStringList interface. * * Functions of objects that implement the DOMConfiguration interface: * * setParameter(name, value) * This function has no return value. * The name parameter is a String. * The value parameter is an object that implements * the any type interface. * This function can raise an object that implements * the DOMException interface. * getParameter(name) * This function returns an object that implements * the any type interface. * The name parameter is a String. * This function can raise an object that implements * the DOMException interface. * canSetParameter(name, value) * This function returns a Boolean. * The name parameter is a String. * The value parameter is an object that implements * the any type interface. */ #undef CURRENT_CLASS #define CURRENT_CLASS DOMConfiguration class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# CDATASection //######################################################################## /** * Objects that implement the CDATASection interface: * * Objects that implement the CDATASection interface * have all properties and functions of the Text interface. * */ #undef CURRENT_CLASS #define CURRENT_CLASS CDATASection class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# DocumentType //######################################################################## /** * Objects that implement the DocumentType interface: * * Objects that implement the DocumentType interface have all * properties and functions of the Node interface as well as * the properties and functions defined below. * Properties of objects that implement the DocumentType interface: * * * name * This read-only property is a String. * entities * This read-only property is an object that implements * the NamedNodeMap interface. * notations * This read-only property is an object that implements * the NamedNodeMap interface. * publicId * This read-only property is a String. * systemId * This read-only property is a String. * internalSubset * This read-only property is a String. */ #undef CURRENT_CLASS #define CURRENT_CLASS DocumentType class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# Notation //######################################################################## /** * Objects that implement the Notation interface: * * Objects that implement the Notation interface have all * properties and functions of the Node interface as well as * the properties and functions defined below. * Properties of objects that implement the Notation interface: * * * publicId * This read-only property is a String. * systemId * This read-only property is a String. */ #undef CURRENT_CLASS #define CURRENT_CLASS Notation class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# Entity //######################################################################## /** * Objects that implement the Entity interface: * * Objects that implement the Entity interface have all properties * and functions of the Node interface as well as the properties * and functions defined below. * Properties of objects that implement the Entity interface: * * * publicId * This read-only property is a String. * systemId * This read-only property is a String. * notationName * This read-only property is a String. * inputEncoding * This read-only property is a String. * xmlEncoding * This read-only property is a String. * xmlVersion * This read-only property is a String. */ #undef CURRENT_CLASS #define CURRENT_CLASS Entity class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# EntityReference //######################################################################## /** * Objects that implement the EntityReference interface: * * Objects that implement the EntityReference interface have all * properties and functions of the Node interface. * */ #undef CURRENT_CLASS #define CURRENT_CLASS EntityReference class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) //######################################################################## //# ProcessingInstruction //######################################################################## /** * Objects that implement the ProcessingInstruction interface: * * Objects that implement the ProcessingInstruction interface * have all properties and functions of the Node interface * as well as the properties and functions defined below. * Properties of objects that implement the ProcessingInstruction * interface: * * target * This read-only property is a String. * data * This property is a String and can raise an object * that implements the DOMException interface on setting. * */ #undef CURRENT_CLASS #define CURRENT_CLASS ProcessingInstruction class CLASS_NAME(CURRENT_CLASS) : public Wrapper { public: CLASS_NAME(CURRENT_CLASS)(JSContext*cx, JSObject *obj) : Wrapper(cx, obj) {} ~CLASS_NAME(CURRENT_CLASS)() {} JSBool init(uintN argc, jsval *argv) { return JS_TRUE; } JSBool getProperty(jsval id, jsval *vp) { return JS_FALSE; } JSBool setProperty(jsval id, jsval *vp) { return JS_FALSE; } /** * */ METHOD(getDOMImplementation) { return JS_FALSE; } /** * */ METHOD(getDOMImplementationList) { return JS_FALSE; } enum { prop_code }; }; JSPropertySpec PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSPropertySpec STATIC_PROPERTY_TABLE(CURRENT_CLASS)[] = { { 0 } }; JSFunctionSpec STATIC_METHOD_TABLE(CURRENT_CLASS)[] = { { 0 } }; CONSTRUCTOR ( CURRENT_CLASS ) /** * Note: In addition of having DOMConfiguration parameters * exposed to the application using the setParameter * and getParameter, those parameters are also exposed * as ECMAScript properties on the DOMConfiguration object. * The name of the parameter is converted into a property name * using a camel-case convention: * the character '-' (HYPHEN-MINUS) is removed * and the following character is * being replaced by its uppercase equivalent. */ //######################################################################## //# M A I N B I N D I N G //######################################################################## bool JavascriptDOMBinder::createClasses() { void *savedContext = JS_GetContextPrivate(cx); JS_SetContextPrivate(cx, (void *)this); proto_Node = CREATE_PROTO(Node, cx, globalObj, NULL); proto_CharacterData = CREATE_PROTO(CharacterData, cx, globalObj, proto_Node); proto_Text = CREATE_PROTO(Text, cx, globalObj, proto_CharacterData); proto_CDATASection = CREATE_PROTO(CDATASection, cx, globalObj, proto_Text); proto_Document = CREATE_PROTO(Document, cx, globalObj, proto_CDATASection); JS_SetContextPrivate(cx, savedContext); return true; } JSObject *JavascriptDOMBinder::wrapDocument(const Document *doc) { if (!doc) { error("wrapDocument: null document parameter"); return NULL; } JSObject *jsdoc = JS_NewObject(cx, &wrapperClassDef, proto_Document, NULL); //Wrap around the document... done! CLASS_NAME(Document) *docWrap = new CLASS_NAME(Document)(cx, globalObj); docWrap->doc = doc; JS_SetPrivate(cx, jsdoc, (void *)docWrap); return jsdoc; } } // namespace dom } // namespace w3c } // namespace org //######################################################################## //# E N D O F F I L E //########################################################################