/*
*
* (c) COPYRIGHT INRIA and W3C, 2007
* Please first read the full copyright statement in file COPYRIGHT.
*
*/
#ifndef __AMAYA_JAVASCRIPT_H__
#define __AMAYA_JAVASCRIPT_H__
/* javascript.h : defines functions, properties and classes
* used by the javascript interpreter
*
* Author: F. Wang
*
*/
/*----------------------------------------------------------------------
Instructions to complete the javascript/DOM support
* Properties
- Add a C identifier for your property in the enum list
properties_names.
- Complete or create a JSPropertySpec to integrate your new property.
If your property must not be modified by the user, then add a
JSPROP_READONLY flag in its definition.
- In javascript.c, complete the functions that manipulate your property:
getProperty, setProperty (if your property is not readonly)...
- If your property does not belong to an already declared class, you
have to create one first (see the instructions for Classes). Then
apply JS_DefineProperties to all the object of the classes that
have the property.
* Methods (functions)
- Add a declaration of a C function representing the method.
- Complete or create a JSFunctionSpec to integrate your new method.
- In javascript.c, create the C function representing the method.
- If your method does not belong to an already declared class, you
have to create one first (see the instructions for Classes). Then
apply JS_DefineFunctions to all the object of the classes that
have the method.
* Classes (in DOM specification, they correspond to "Object" in the
pages ECMA Script Language Binding)
- Add a JSClass definition (see all the possible configurations
at http://www.mozilla.org/js/spidermonkey/):
> The first element is the name of your class
> If the class is supposed to be applied to objects that have an
equivalent in Thot document tree (type Element), then add a
JSCLASS_HAS_PRIVATE flag to the second element.
> The next four elements indicate the name of the C functions
(for instance getProperty) that manipulate properties of an
object, respectivly to add, delete, get or set a property.
If they are not used, then put JS_PropertyStub.
> The last elements indicate other manipulations, that normally
are not used, so you can let them to JS_EnumerateStub,
JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub
- Define Properties and Methods to use with your class. See the
instructions before.
- In javascript.c, make Amaya apply your class (and the corresponding
property and methods) to a certain kind of objects:
> If they are childs of the global object (such as Navigator,
Screen...), then only one object is created for this class and
this must directly be done in the function InitJavascript.
> Otherwise, you have to analyse the type of Thot's Document/Node
in the function BuildDocumentTree in order to apply the class to
each object of the expected type.
> To create an object with a given class use the function
JS_NewObject. If the object is actually a property, you have to
use JS_DefineObject. Note that in this case, it is not mandatory
to define the property in javascript.h
-----------------------------------------------------------------------*/
/*----------------------------------------------------------------------
Functions used to manipulate property values
-----------------------------------------------------------------------*/
static JSBool getProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp);
static JSBool setProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp);
/*----------------------------------------------------------------------
Name of all properties used in getProperty, setProperty...
-----------------------------------------------------------------------*/
enum properties_names
{
WINDOW,
WINDOW_CLOSED, WINDOW_FRAMES, WINDOW_LENGTH, WINDOW_OPENER,
WINDOW_PARENT, WINDOW_SELF, WINDOW_TOP, WINDOW_NAME,
NAVIGATOR_APPNAME, NAVIGATOR_APPCODENAME, NAVIGATOR_APPVERSION,
NAVIGATOR_USERAGENT, NAVIGATOR_COOKIESENABLED, NAVIGATOR_PLATFORM,
NAVIGATOR_BROWSERLANGUAGE, /*NAVIGATOR_PLUGINS, */
SCREEN_PIXELDEPTH, SCREEN_COLORDEPTH,
SCREEN_AVAILHEIGHT, SCREEN_AVAILWIDTH, SCREEN_HEIGHT, SCREEN_WIDTH,
HISTORY_LENGTH,
LOCATION_HREF, LOCATION_PATHNAME, LOCATION_HASH,
/*, LOCATION_HOST, LOCATION_HOSTNAME,
LOCATION_PORT, LOCATION_PROTOCOL, LOCATION_SEARCH, */
DOCUMENT_IMPLEMENTATION, DOCUMENT_DOCTYPE, DOCUMENT_DOCUMENTELEMENT,
DOCUMENTTYPE_NAME, DOCUMENTTYPE_ENTITIES, DOCUMENTTYPE_NOTATIONS,
NODE_NODENAME, NODE_NODEVALUE, NODE_NODETYPE, NODE_PARENTNODE, NODE_CHILDNODES, NODE_FIRSTCHILD,
NODE_LASTCHILD, NODE_PREVIOUSSIBLING, NODE_NEXTSIBLING, NODE_ATTRIBUTES, NODE_OWNERDOCUMENT,
NODELIST_LENGTH
};
/*----------------------------------------------------------------------
Global Object Window
-----------------------------------------------------------------------*/
static JSBool window_alert(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_confirm(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_prompt(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_close(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_blur(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_print(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
/*
static JSBool window_clearInterval(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_clearTimeout(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_focus(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_moveBy(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_moveTo(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_open(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_resizeBy(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_resizeTo(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_scrollBy(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_scrollTo(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_setInterval(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool window_setTimeout(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
*/
static JSFunctionSpec window_functions[] =
{
/* name of javascript function name of C function number of arguments */
{"alert" , window_alert , 1},
{"confirm" , window_confirm , 1},
{"prompt" , window_prompt , 2},
{"close" , window_close , 0},
{"blur" , window_blur , 0},
{"print" , window_print , 0},
/*
{"clearInterval" , window_clearInterval , 1},
{"clearTimeout" , window_clearTimeout , 1},
{"focus" , window_focus , 0},
{"moveBy" , window_moveBy , 2},
{"moveTo" , window_moveTo , 2},
{"open" , window_open , 4},
{"resizeBy" , window_resizeBy , 2},
{"resizeTo" , window_resizeTo , 2},
{"scrollBy" , window_scrollBy , 2},
{"scrollTo" , window_scrollTo , 2},
{"setInterval" , window_setInterval , 3},
{"setTimeout" , window_setTimeout , 3},
*/
{0}
};
static JSPropertySpec window_properties[] =
{
{"window" , WINDOW, JSPROP_READONLY},
{"closed" , WINDOW_CLOSED, JSPROP_READONLY},
{"frames" , WINDOW_FRAMES, JSPROP_INDEX & JSPROP_READONLY},
{"length" , WINDOW_LENGTH, JSPROP_READONLY},
{"opener" , WINDOW_OPENER, JSPROP_READONLY},
{"parent" , WINDOW_PARENT, JSPROP_READONLY},
{"self" , WINDOW_SELF , JSPROP_READONLY},
{"top" , WINDOW_TOP , JSPROP_READONLY},
{0}
};
static JSClass window_class =
{
"Window",0,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object Navigator
-----------------------------------------------------------------------*/
static JSBool navigator_javaEnabled(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool navigator_taintEnabled(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSFunctionSpec navigator_functions[] =
{
/* name of javascript function name of C function number of arguments */
{"javaEnabled" , navigator_javaEnabled , 0},
{"taintEnabled" , navigator_taintEnabled , 0},
{0}
};
static JSPropertySpec navigator_properties[] =
{
/* {"plugins" , NAVIGATOR_PLUGINS , JSPROP_INDEX & JSPROP_READONLY},*/
{"appCodeName" , NAVIGATOR_APPCODENAME , JSPROP_READONLY},
{"appName" , NAVIGATOR_APPNAME , JSPROP_READONLY},
{"appVersion" , NAVIGATOR_APPVERSION , JSPROP_READONLY},
{"browserLanguage" , NAVIGATOR_BROWSERLANGUAGE , JSPROP_READONLY},
{"cookieEnabled" , NAVIGATOR_COOKIESENABLED , JSPROP_READONLY},
{"platform" , NAVIGATOR_PLATFORM , JSPROP_READONLY},
{"userAgent" , NAVIGATOR_USERAGENT , JSPROP_READONLY},
{0}
};
static JSClass navigator_class =
{
"Navigator",0,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object Screen
-----------------------------------------------------------------------*/
static JSPropertySpec screen_properties[] =
{
{"availHeight", SCREEN_AVAILHEIGHT , JSPROP_READONLY},
{"availWidth" , SCREEN_AVAILWIDTH , JSPROP_READONLY},
{"colorDepth" , SCREEN_COLORDEPTH , JSPROP_READONLY},
{"pixelDepth" , SCREEN_PIXELDEPTH , JSPROP_READONLY},
{"height" , SCREEN_HEIGHT , JSPROP_READONLY},
{"width" , SCREEN_WIDTH , JSPROP_READONLY},
{0}
};
static JSClass screen_class =
{
"Screen",0,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object History
-----------------------------------------------------------------------*/
static JSBool history_back(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool history_forward(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
/*static JSBool history_go(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);*/
static JSFunctionSpec history_functions[] =
{
/* name of javascript function name of C function number of arguments */
{"back" , history_back , 0},
{"forward" , history_forward , 0},
/* {"go" , history_go , 1},*/
{0}
};
static JSPropertySpec history_properties[] =
{
{"length" , HISTORY_LENGTH , JSPROP_READONLY},
{0}
};
static JSClass history_class =
{
"History",0,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object Location
-----------------------------------------------------------------------*/
static JSBool location_replace(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool location_assign(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool location_reload(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSFunctionSpec location_functions[] =
{
/* name of javascript function name of C function number of arguments */
{"reload" , location_reload , 0},
{"assign" , location_assign , 1},
{"replace" , location_replace , 1},
{0}
};
static JSPropertySpec location_properties[] =
{
{"href" , LOCATION_HREF , 0},
{"pathname" , LOCATION_PATHNAME , JSPROP_READONLY},
{"hash" , LOCATION_HASH , JSPROP_READONLY},
/* {"host" , LOCATION_HOST , 0},
{"hostname" , LOCATION_HOSTNAME , 0},
{"port" , LOCATION_PORT , 0},
{"protocol" , LOCATION_PROTOCOL , 0},
{"search" , LOCATION_SEARCH , 0},*/
{0}
};
static JSClass location_class =
{
"Location",0,
JS_PropertyStub,JS_PropertyStub,getProperty,setProperty,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object DOMException
-----------------------------------------------------------------------*/
/*
static JSClass DOMException_class =
{
"DOMException",0,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};*/
/*----------------------------------------------------------------------
Object ExceptionCode
-----------------------------------------------------------------------*/
/*
static JSClass ExceptionCode_class =
{
"ExceptionCode",0,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
*/
/* Definition ExceptionCode */
#define INDEX_SIZE_ERR 1
#define DOMSTRING_SIZE_ERR 2
#define HIERARCHY_REQUEST_ERR 3
#define WRONG_DOCUMENT_ERR 4
#define INVALID_CHARACTER_ERR 5
#define NO_DATA_ALLOWED_ERR 6
#define NO_MODIFICATION_ALLOWED_ERR 7
#define NOT_FOUND_ERR 8
#define NOT_SUPPORTED_ERR 9
#define INUSE_ATTRIBUTE_ERR 10
/*----------------------------------------------------------------------
Object DOMImplementation
-----------------------------------------------------------------------*/
static JSBool DOMImplementation_hasFeature(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSFunctionSpec DOMImplementation_functions[] =
{
/* name of javascript function name of C function number of arguments */
{"hasFeature" , DOMImplementation_hasFeature , 2},
{0}
};
static JSClass DOMImplementation_class =
{
"DOMImplementation",0,
JS_PropertyStub,JS_PropertyStub,JS_PropertyStub,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object DocumentFragment
-----------------------------------------------------------------------*/
static JSClass DocumentFragment_class =
{
"DocumentFragment",0,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object Document
-----------------------------------------------------------------------*/
/*
static JSBool Document_createElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Document_createDocumentFragment(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Document_createCDATASection(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Document_createProcessingInstruction(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Document_createAttribute(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Document_createEntityReference(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Document_getElementsByTagName(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSFunctionSpec Document_functions[] =
{
/ name of javascript function name of C function number of arguments /
{"createElement" , Document_createElement , 1},
{"createDocumentFragment" , Document_createDocumentFragment , 0},
{"createCDATASection" , Document_createCDATASection , 1},
{"createProcessingInstruction" , Document_createProcessingInstruction , 2},
{"createAttribute" , Document_createAttribute , 1},
{"createEntityReference" , Document_createEntityReference , 1},
{"getElementsByTagName" , Document_getElementsByTagName , 1},
{0}
};
*/
static JSPropertySpec Document_properties[] =
{
{"doctype" , DOCUMENT_DOCTYPE , JSPROP_READONLY},
{"implementation" , DOCUMENT_IMPLEMENTATION , JSPROP_READONLY},
{"documentElement" , DOCUMENT_DOCUMENTELEMENT , JSPROP_READONLY},
{0}
};
static JSClass Document_class =
{
"Document", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object Node
-----------------------------------------------------------------------*/
/*
static JSBool Node_createElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Node_replaceChild(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Node_removeChild(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Node_appendChild(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);*/
static JSBool Node_hasChildNodes(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
//static JSBool Node_cloneNode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);*/
static JSFunctionSpec Node_functions[] =
{
/* {"insertBefore" , Node_createElement , 2},
{"replaceChild" , Node_replaceChild , 1},
{"removeChild" , Node_removeChild , 0},
{"appendChild" , Node_appendChild , 1},*/
{"hasChildNodes" , Node_hasChildNodes , 0},
/* {"cloneNode" , Node_cloneNode , 1},*/
{0}
};
static JSPropertySpec Node_properties[] =
{
{"nodeName" , NODE_NODENAME , JSPROP_READONLY},
{"nodeValue" , NODE_NODEVALUE , JSPROP_READONLY},
{"nodeType" , NODE_NODETYPE , JSPROP_READONLY},
{"parentNode" , NODE_PARENTNODE , JSPROP_READONLY},
{"childNodes" , NODE_CHILDNODES , JSPROP_READONLY},
{"firstChild" , NODE_FIRSTCHILD , JSPROP_READONLY},
{"lastChild" , NODE_LASTCHILD , JSPROP_READONLY},
{"previousSibling" , NODE_PREVIOUSSIBLING , JSPROP_READONLY},
{"nextSibling" , NODE_NEXTSIBLING , JSPROP_READONLY},
{"attributes" , NODE_ATTRIBUTES , JSPROP_READONLY},
{"ownerDocument" , NODE_OWNERDOCUMENT , JSPROP_READONLY},
{0}
};
/*static JSClass Node_class =
{
"Node", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};*/
/* Definition NodeType */
#define ELEMENT_NODE 1
#define ATTRIBUTE_NODE 2
#define TEXT_NODE 3
#define CDATA_SECTION_NODE 4
#define ENTITY_REFERENCE_NODE 5
#define ENTITY_NODE 6
#define PROCESSING_INSTRUCTION_NODE 7
#define COMMENT_NODE 8
#define DOCUMENT_NODE 9
#define DOCUMENT_TYPE_NODE 10
#define DOCUMENT_FRAGMENT_NODE 11
#define NOTATION_NODE 12
/*----------------------------------------------------------------------
Object NodeList
-----------------------------------------------------------------------*/
static JSBool NodeList_item(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSFunctionSpec NodeList_functions[] =
{
{"item" , NodeList_item , 1},
{0}
};
static JSPropertySpec NodeList_properties[] =
{
{"length" , NODELIST_LENGTH , JSPROP_READONLY},
{0}
};
static JSClass NodeList_class =
{
"NodeList", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object NamedNodeMap
-----------------------------------------------------------------------*/
/*
static JSBool NamedNodeMap_getNamedItem(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool NamedNodeMap_setNamedItem(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool NamedNodeMap_removeNamedItem(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool NamedNodeMap_item(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSFunctionSpec NamedNodeMap_functions[] =
{
{"getNamedItem" , NamedNodeMap_getNamedItem , 1},
{"setNamedItem" , NamedNodeMap_setNamedItem , 1},
{"removeNamedItem" , NamedNodeMap_removeNamedItem , 1},
{"item" , NamedNodeMap_item , 1},
{0}
};
static JSPropertySpec NamedNodeMap_properties[] =
{
{"length" , NAMEDNODEMAP_LENGTH , JSPROP_READONLY},
{0}
};
static JSClass NamedNodeMap_class =
{
"NamedNodeMap", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
*/
/*----------------------------------------------------------------------
Object CharacterData
-----------------------------------------------------------------------*/
/*
static JSBool CharacterData_substringData(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool CharacterData_appendData(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool CharacterData_insertData(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool CharacterData_deleteData(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool CharacterData_replaceData(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSFunctionSpec CharacterData_functions[] =
{
{"substringData" , CharacterData_createElement , 2},
{"appendData" , CharacterData_createElement , 1},
{"insertData" , CharacterData_createElement , 2},
{"deleteData" , CharacterData_createElement , 2},
{"replaceData" , CharacterData_createElement , 3},
{0}
};
static JSPropertySpec CharacterData_properties[] =
{
{"data" , CHARACTERDATA_DATA , JSPROP_READONLY},
{"length" , CHARACTERDATA_LENGTH , JSPROP_READONLY},
{0}
};
static JSClass CharacterData_class =
{
"CharacterData", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
*/
/*----------------------------------------------------------------------
Object Attr
-----------------------------------------------------------------------*/
/*
static JSPropertySpec Attr_properties[] =
{
{"name" , ATTR_NAME , JSPROP_READONLY},
{"specified" , ATTR_SPECIFIED , JSPROP_READONLY},
{"value" , ATTR_VALUE , JSPROP_READONLY},
{0}
};
*/
static JSClass Attr_class =
{
"Attr", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object Element
-----------------------------------------------------------------------*/
/*
static JSBool Element_getAttribute(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Element_setAttribute(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Element_removeAttribute(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Element_getAttributeNode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Element_setAttributeNode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Element_removeAttributeNode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Element_getElementsByTagName(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSBool Element_normalize(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSFunctionSpec Element_functions[] =
{
{"getAttribute" , Element_getAttribute , 1},
{"setAttribute" , Element_setAttribute , 1},
{"removeAttribute" , Element_removeAttribute , 1},
{"getAttributeNode" , Element_getAttributeNode , 1},
{"setAttributeNode" , Element_setAttributeNode , 1},
{"removeAttributeNode" , Element_removeAttributeNode , 1},
{"getElementsByTagName" , Element_getElementsByTagName , 1},
{"normalize" , Element_normalize , 0},
{0}
};
static JSPropertySpec Element_properties[] =
{
{"tagName" , ELEMENT_TAGNAME , JSPROP_READONLY},
{0}
};
*/
static JSClass Element_class =
{
"Element", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object Text
-----------------------------------------------------------------------*/
/*
static JSBool Element_splitText(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
static JSFunctionSpec Text_functions[] =
{
{"splitText" , Text_splitText , 1},
{0}
};*/
static JSClass Text_class =
{
"Text", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object Comment
-----------------------------------------------------------------------*/
static JSClass Comment_class =
{
"Comment", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object CDATASection
-----------------------------------------------------------------------*/
static JSClass CDATASection_class =
{
"CDATASection", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object DocumentType
-----------------------------------------------------------------------*/
static JSPropertySpec DocumentType_properties[] =
{
{"name" , DOCUMENTTYPE_NAME , JSPROP_READONLY},
{"entities" , DOCUMENTTYPE_ENTITIES , JSPROP_READONLY},
{"notations" , DOCUMENTTYPE_NOTATIONS , JSPROP_READONLY},
{0}
};
static JSClass DocumentType_class =
{
"DocumentType", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object Notation
-----------------------------------------------------------------------*/
/*
static JSPropertySpec Notation_properties[] =
{
{"publicId" , NOTATION_PUBLICID , JSPROP_READONLY},
{"systemId" , NOTATION_SYSTEMID , JSPROP_READONLY},
{0}
};
*/
static JSClass Notation_class =
{
"Notation", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object Entity
-----------------------------------------------------------------------*/
/*
static JSPropertySpec Entity_properties[] =
{
{"publicId" , ENTITY_PUBLICID , JSPROP_READONLY},
{"systemId" , ENTITY_SYSTEMID , JSPROP_READONLY},
{"notationName" , ENTITY_NOTATIONNAME , JSPROP_READONLY},
{0}
};
*/
static JSClass Entity_class =
{
"Entity_properties", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object EntityReference
-----------------------------------------------------------------------*/
static JSClass EntityReference_class =
{
"EntityReference", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
/*----------------------------------------------------------------------
Object ProcessingInstruction
-----------------------------------------------------------------------*/
/*
static JSPropertySpec ProcessingInstruction_properties[] =
{
{"target" , PROCESSINGINSTRUCTION_TARGET , JSPROP_READONLY},
{"data" , PROCESSINGINSTRUCTION_DATA , JSPROP_READONLY},
{0}
};
*/
static JSClass ProcessingInstruction_class =
{
"ProcessingInstruction", JSCLASS_HAS_PRIVATE,
JS_PropertyStub,JS_PropertyStub,getProperty,JS_PropertyStub,
JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
};
#endif /* __AMAYA_JAVASCRIPT_H__ */
Webmaster