--- sbbs/include/mozilla/js/jsxml.h 2018/04/24 16:41:23 1.1.1.1 +++ sbbs/include/mozilla/js/jsxml.h 2018/04/24 16:41:59 1.1.1.2 @@ -45,9 +45,6 @@ extern const char js_AnyName_str[]; extern const char js_AttributeName_str[]; extern const char js_isXMLName_str[]; -extern const char js_Namespace_str[]; -extern const char js_QName_str[]; -extern const char js_XML_str[]; extern const char js_XMLList_str[]; extern const char js_amp_entity_str[]; @@ -67,7 +64,7 @@ js_NewXMLNamespace(JSContext *cx, JSStri JSBool declared); extern void -js_MarkXMLNamespace(JSContext *cx, JSXMLNamespace *ns, void *arg); +js_MarkXMLNamespace(JSContext *cx, JSXMLNamespace *ns); extern void js_FinalizeXMLNamespace(JSContext *cx, JSXMLNamespace *ns); @@ -91,7 +88,7 @@ js_NewXMLQName(JSContext *cx, JSString * JSString *localName); extern void -js_MarkXMLQName(JSContext *cx, JSXMLQName *qn, void *arg); +js_MarkXMLQName(JSContext *cx, JSXMLQName *qn); extern void js_FinalizeXMLQName(JSContext *cx, JSXMLQName *qn); @@ -119,17 +116,22 @@ struct JSXMLArray { JSXMLArrayCursor *cursors; }; +#define JSXML_PRESET_CAPACITY JS_BIT(31) +#define JSXML_CAPACITY_MASK JS_BITMASK(31) +#define JSXML_CAPACITY(array) ((array)->capacity & JSXML_CAPACITY_MASK) + struct JSXMLArrayCursor { JSXMLArray *array; uint32 index; JSXMLArrayCursor *next; JSXMLArrayCursor **prevp; + void *root; }; /* * NB: don't reorder this enum without changing all array initializers that * depend on it in jsxml.c. - */ + */ typedef enum JSXMLClass { JSXML_CLASS_LIST, JSXML_CLASS_ELEMENT, @@ -201,7 +203,7 @@ extern JSXML * js_NewXML(JSContext *cx, JSXMLClass xml_class); extern void -js_MarkXML(JSContext *cx, JSXML *xml, void *arg); +js_MarkXML(JSContext *cx, JSXML *xml); extern void js_FinalizeXML(JSContext *cx, JSXML *xml); @@ -217,10 +219,10 @@ js_GetXMLObject(JSContext *cx, JSXML *xm extern JS_FRIEND_DATA(JSXMLObjectOps) js_XMLObjectOps; extern JS_FRIEND_DATA(JSClass) js_XMLClass; +extern JS_FRIEND_DATA(JSExtendedClass) js_NamespaceClass; extern JS_FRIEND_DATA(JSExtendedClass) js_QNameClass; extern JS_FRIEND_DATA(JSClass) js_AttributeNameClass; extern JS_FRIEND_DATA(JSClass) js_AnyNameClass; -extern JS_FRIEND_DATA(JSExtendedClass) js_NamespaceClass; /* * Macros to test whether an object or a value is of type "xml" (per typeof). @@ -237,6 +239,12 @@ extern JSObject * js_InitQNameClass(JSContext *cx, JSObject *obj); extern JSObject * +js_InitAttributeNameClass(JSContext *cx, JSObject *obj); + +extern JSObject * +js_InitAnyNameClass(JSContext *cx, JSObject *obj); + +extern JSObject * js_InitXMLClass(JSContext *cx, JSObject *obj); extern JSObject * @@ -285,6 +293,9 @@ extern JSBool js_GetXMLProperty(JSContext *cx, JSObject *obj, jsval name, jsval *vp); extern JSBool +js_GetXMLFunction(JSContext *cx, JSObject *obj, jsid id, jsval *vp); + +extern JSBool js_SetXMLProperty(JSContext *cx, JSObject *obj, jsval name, jsval *vp); extern JSBool @@ -309,4 +320,13 @@ extern JSObject * js_NewXMLSpecialObject(JSContext *cx, JSXMLClass xml_class, JSString *name, JSString *value); +extern JSString * +js_MakeXMLCDATAString(JSContext *cx, JSString *str); + +extern JSString * +js_MakeXMLCommentString(JSContext *cx, JSString *str); + +extern JSString * +js_MakeXMLPIString(JSContext *cx, JSString *name, JSString *str); + #endif /* jsxml_h___ */