mirror of
https://github.com/rkd77/elinks.git
synced 2025-06-30 22:19:29 -04:00
[mujs] Try to set prototypes
If you know how to fix element.prototype.html test, let me know.
This commit is contained in:
parent
cf239130eb
commit
ecfc2e2bad
@ -470,15 +470,15 @@ mujs_eval_boolback(struct ecmascript_interpreter *interpreter,
|
||||
void
|
||||
addmethod(js_State *J, const char *name, js_CFunction fun, int n)
|
||||
{
|
||||
const char *realname = strchr(name, '.');
|
||||
const char *realname = strrchr(name, '.');
|
||||
realname = realname ? realname + 1 : name;
|
||||
js_newcfunction(J, fun, name, n);
|
||||
js_defproperty(J, -2, realname, JS_READONLY | JS_DONTENUM | JS_DONTCONF);
|
||||
js_defproperty(J, -2, realname, JS_DONTENUM);
|
||||
}
|
||||
|
||||
void addproperty(js_State *J, const char *name, js_CFunction getfun, js_CFunction setfun)
|
||||
{
|
||||
const char *realname = strchr(name, '.');
|
||||
const char *realname = strrchr(name, '.');
|
||||
realname = realname ? realname + 1 : name;
|
||||
js_newcfunction(J, getfun, name, 0);
|
||||
if (setfun) {
|
||||
@ -486,7 +486,7 @@ void addproperty(js_State *J, const char *name, js_CFunction getfun, js_CFunctio
|
||||
} else {
|
||||
js_pushnull(J);
|
||||
}
|
||||
js_defaccessor(J, -3, realname, JS_READONLY | JS_DONTENUM | JS_DONTCONF);
|
||||
js_defaccessor(J, -3, realname, JS_DONTENUM);
|
||||
}
|
||||
|
||||
struct module mujs_module = struct_module(
|
||||
|
@ -116,7 +116,7 @@ mjs_push_attr(js_State *J, void *node)
|
||||
js_newobject(J);
|
||||
{
|
||||
js_newuserdata(J, "attr", node, mjs_attr_finalizer);
|
||||
addmethod(J, "toString", mjs_attr_toString, 0);
|
||||
addmethod(J, "Attr.prototype.toString", mjs_attr_toString, 0);
|
||||
addproperty(J, "name", mjs_attr_get_property_name, NULL);
|
||||
addproperty(J, "value", mjs_attr_get_property_value, NULL);
|
||||
}
|
||||
|
@ -239,9 +239,9 @@ mjs_push_attributes(js_State *J, void *node)
|
||||
js_newarray(J);
|
||||
{
|
||||
js_newuserdata(J, "attribute", node, mjs_attributes_finalizer);
|
||||
addmethod(J, "item", mjs_attributes_item, 1);
|
||||
addmethod(J, "getNamedItem", mjs_attributes_getNamedItem, 1);
|
||||
addmethod(J, "toString", mjs_attributes_toString, 0);
|
||||
addmethod(J, "Attribute.prototype.item", mjs_attributes_item, 1);
|
||||
addmethod(J, "Attribute.prototype.getNamedItem", mjs_attributes_getNamedItem, 1);
|
||||
addmethod(J, "Attribute.prototype.toString", mjs_attributes_toString, 0);
|
||||
// addproperty(J, "length", mjs_attributes_get_property_length, NULL);
|
||||
|
||||
mjs_attributes_set_items(J, node);
|
||||
|
@ -262,9 +262,9 @@ mjs_push_collection(js_State *J, void *node)
|
||||
js_newarray(J);
|
||||
{
|
||||
js_newuserdata(J, "collection", node, mjs_htmlCollection_finalizer);
|
||||
addmethod(J, "item", mjs_htmlCollection_item, 1);
|
||||
addmethod(J, "namedItem", mjs_htmlCollection_namedItem, 1);
|
||||
addmethod(J, "toString", mjs_htmlCollection_toString, 0);
|
||||
addmethod(J, "htmlCollection.prototype.item", mjs_htmlCollection_item, 1);
|
||||
addmethod(J, "htmlCollection.prototype.namedItem", mjs_htmlCollection_namedItem, 1);
|
||||
addmethod(J, "htmlCollection.prototype.toString", mjs_htmlCollection_toString, 0);
|
||||
addproperty(J, "length", mjs_htmlCollection_get_property_length, NULL);
|
||||
mjs_htmlCollection_set_items(J, node);
|
||||
}
|
||||
|
@ -271,9 +271,9 @@ mjs_push_collection2(js_State *J, void *node)
|
||||
js_newarray(J);
|
||||
{
|
||||
js_newuserdata(J, "collection2", node, mjs_htmlCollection2_finalizer);
|
||||
addmethod(J, "item", mjs_htmlCollection2_item, 1);
|
||||
addmethod(J, "namedItem", mjs_htmlCollection2_namedItem, 1);
|
||||
addmethod(J, "toString", mjs_htmlCollection2_toString, 0);
|
||||
addmethod(J, "htmlCollection2.prototype.item", mjs_htmlCollection2_item, 1);
|
||||
addmethod(J, "htmlCollection2.prototype.namedItem", mjs_htmlCollection2_namedItem, 1);
|
||||
addmethod(J, "htmlCollection2.prototype.toString", mjs_htmlCollection2_toString, 0);
|
||||
addproperty(J, "length", mjs_htmlCollection2_get_property_length, NULL);
|
||||
mjs_htmlCollection2_set_items(J, node);
|
||||
}
|
||||
|
@ -117,10 +117,10 @@ mjs_push_CSSStyleDeclaration(js_State *J, void *node)
|
||||
js_newarray(J);
|
||||
{
|
||||
js_newuserdata(J, "CSSStyleDeclaration", node, mjs_CSSStyleDeclaration_finalizer);
|
||||
addmethod(J, "getPropertyValue", mjs_CSSStyleDeclaration_getPropertyValue, 1);
|
||||
addmethod(J, "item", mjs_CSSStyleDeclaration_item, 1);
|
||||
addmethod(J, "namedItem", mjs_CSSStyleDeclaration_namedItem, 1);
|
||||
addmethod(J, "toString", mjs_CSSStyleDeclaration_toString, 0);
|
||||
addmethod(J, "CSSStyleDeclaration.prototype.getPropertyValue", mjs_CSSStyleDeclaration_getPropertyValue, 1);
|
||||
addmethod(J, "CSSStyleDeclaration.prototype.item", mjs_CSSStyleDeclaration_item, 1);
|
||||
addmethod(J, "CSSStyleDeclaration.prototype.namedItem", mjs_CSSStyleDeclaration_namedItem, 1);
|
||||
addmethod(J, "CSSStyleDeclaration.prototype.toString", mjs_CSSStyleDeclaration_toString, 0);
|
||||
addproperty(J, "length", mjs_CSSStyleDeclaration_get_property_length, NULL);
|
||||
mjs_CSSStyleDeclaration_set_items(J, node);
|
||||
}
|
||||
|
@ -333,7 +333,7 @@ mjs_customEvent_constructor(js_State *J)
|
||||
js_newobject(J);
|
||||
{
|
||||
js_newuserdata(J, "event", event, mjs_customEvent_finalizer);
|
||||
addmethod(J, "preventDefault", mjs_customEvent_preventDefault, 0);
|
||||
addmethod(J, "CustomEvent.prototype.preventDefault", mjs_customEvent_preventDefault, 0);
|
||||
addproperty(J, "bubbles", mjs_customEvent_get_property_bubbles, NULL);
|
||||
addproperty(J, "cancelable", mjs_customEvent_get_property_cancelable, NULL);
|
||||
// addproperty(J, "composed", mjs_customEvent_get_property_composed, NULL);
|
||||
|
@ -1845,23 +1845,23 @@ mjs_document_constructor(js_State *J)
|
||||
js_newobject(J);
|
||||
{
|
||||
js_newuserdata(J, "document", doc_private, mjs_doc_private_finalizer);
|
||||
addmethod(J, "addEventListener", mjs_document_addEventListener, 3);
|
||||
addmethod(J, "createComment", mjs_document_createComment, 1);
|
||||
addmethod(J, "createDocumentFragment",mjs_document_createDocumentFragment, 0);
|
||||
addmethod(J, "createElement", mjs_document_createElement, 1);
|
||||
addmethod(J, "createTextNode", mjs_document_createTextNode, 1);
|
||||
addmethod(J, "dispatchEvent", mjs_document_dispatchEvent, 1);
|
||||
addmethod(J, "write", mjs_document_write, 1);
|
||||
addmethod(J, "writeln", mjs_document_writeln, 1);
|
||||
addmethod(J, "replace", mjs_document_replace, 2);
|
||||
addmethod(J, "getElementById", mjs_document_getElementById, 1);
|
||||
addmethod(J, "getElementsByClassName", mjs_document_getElementsByClassName, 1);
|
||||
// addmethod(J, "getElementsByName", mjs_document_getElementsByName, 1);
|
||||
addmethod(J, "getElementsByTagName", mjs_document_getElementsByTagName, 1);
|
||||
addmethod(J, "querySelector", mjs_document_querySelector, 1);
|
||||
addmethod(J, "querySelectorAll", mjs_document_querySelectorAll, 1);
|
||||
addmethod(J, "removeEventListener", mjs_document_removeEventListener, 3);
|
||||
addmethod(J, "toString", mjs_document_toString, 0);
|
||||
addmethod(J, "Document.property.addEventListener", mjs_document_addEventListener, 3);
|
||||
addmethod(J, "Document.property.createComment", mjs_document_createComment, 1);
|
||||
addmethod(J, "Document.property.createDocumentFragment",mjs_document_createDocumentFragment, 0);
|
||||
addmethod(J, "Document.property.createElement", mjs_document_createElement, 1);
|
||||
addmethod(J, "Document.property.createTextNode", mjs_document_createTextNode, 1);
|
||||
addmethod(J, "Document.property.dispatchEvent", mjs_document_dispatchEvent, 1);
|
||||
addmethod(J, "Document.property.write", mjs_document_write, 1);
|
||||
addmethod(J, "Document.property.writeln", mjs_document_writeln, 1);
|
||||
addmethod(J, "Document.property.replace", mjs_document_replace, 2);
|
||||
addmethod(J, "Document.property.getElementById", mjs_document_getElementById, 1);
|
||||
addmethod(J, "Document.property.getElementsByClassName", mjs_document_getElementsByClassName, 1);
|
||||
// addmethod(J, "Document.property.getElementsByName", mjs_document_getElementsByName, 1);
|
||||
addmethod(J, "Document.property.getElementsByTagName", mjs_document_getElementsByTagName, 1);
|
||||
addmethod(J, "Document.property.querySelector", mjs_document_querySelector, 1);
|
||||
addmethod(J, "Document.property.querySelectorAll", mjs_document_querySelectorAll, 1);
|
||||
addmethod(J, "Document.property.removeEventListener", mjs_document_removeEventListener, 3);
|
||||
addmethod(J, "Document.property.toString", mjs_document_toString, 0);
|
||||
|
||||
addproperty(J, "anchors", mjs_document_get_property_anchors, NULL);
|
||||
addproperty(J, "baseURI", mjs_document_get_property_baseURI, NULL);
|
||||
|
@ -59,7 +59,7 @@ mjs_domparser_constructor(js_State *J)
|
||||
#endif
|
||||
js_newobject(J);
|
||||
{
|
||||
addmethod(J, "parseFromString", mjs_domparser_parseFromString, 2);
|
||||
addmethod(J, "DOMParser.prototype.parseFromString", mjs_domparser_parseFromString, 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3971,10 +3971,12 @@ mjs_push_element(js_State *J, void *node)
|
||||
#ifdef ECMASCRIPT_DEBUG
|
||||
fprintf(stderr, "Before: %s:%d\n", __FUNCTION__, __LINE__);
|
||||
#endif
|
||||
dom_node_ref((dom_node *)node);
|
||||
if (node) {
|
||||
dom_node_ref((dom_node *)node);
|
||||
|
||||
attr_save_in_map(map_privates, node, el_private);
|
||||
attr_save_in_map(map_elements, el_private, node);
|
||||
attr_save_in_map(map_privates, node, el_private);
|
||||
attr_save_in_map(map_elements, el_private, node);
|
||||
}
|
||||
}
|
||||
|
||||
js_newobject(J);
|
||||
@ -3982,36 +3984,36 @@ fprintf(stderr, "Before: %s:%d\n", __FUNCTION__, __LINE__);
|
||||
js_copy(J, 0);
|
||||
el_private->thisval = js_ref(J);
|
||||
js_newuserdata(J, "element", el_private, mjs_element_finalizer);
|
||||
addmethod(J, "addEventListener", mjs_element_addEventListener, 3);
|
||||
addmethod(J, "append",mjs_element_append, 1);
|
||||
addmethod(J, "appendChild",mjs_element_appendChild, 1);
|
||||
addmethod(J, "blur", mjs_element_blur, 0);
|
||||
addmethod(J, "click", mjs_element_click, 0);
|
||||
addmethod(J, "cloneNode", mjs_element_cloneNode, 1);
|
||||
addmethod(J, "closest", mjs_element_closest, 1);
|
||||
addmethod(J, "contains", mjs_element_contains, 1);
|
||||
addmethod(J, "dispatchEvent", mjs_element_dispatchEvent, 1);
|
||||
addmethod(J, "focus", mjs_element_focus, 0);
|
||||
addmethod(J, "getAttribute", mjs_element_getAttribute, 1);
|
||||
addmethod(J, "getAttributeNode", mjs_element_getAttributeNode, 1);
|
||||
addmethod(J, "getBoundingClientRect", mjs_element_getBoundingClientRect, 0);
|
||||
addmethod(J, "getElementsByTagName", mjs_element_getElementsByTagName, 1);
|
||||
addmethod(J, "hasAttribute", mjs_element_hasAttribute, 1);
|
||||
addmethod(J, "hasAttributes", mjs_element_hasAttributes, 0);
|
||||
addmethod(J, "hasChildNodes", mjs_element_hasChildNodes, 0);
|
||||
addmethod(J, "insertBefore", mjs_element_insertBefore, 2);
|
||||
addmethod(J, "isEqualNode", mjs_element_isEqualNode, 1);
|
||||
addmethod(J, "isSameNode", mjs_element_isSameNode, 1);
|
||||
addmethod(J, "matches", mjs_element_matches, 1);
|
||||
addmethod(J, "querySelector", mjs_element_querySelector, 1);
|
||||
addmethod(J, "querySelectorAll", mjs_element_querySelectorAll, 1);
|
||||
addmethod(J, "remove", mjs_element_remove, 0);
|
||||
addmethod(J, "removeAttribute", mjs_element_removeAttribute, 1);
|
||||
addmethod(J, "removeChild", mjs_element_removeChild, 1);
|
||||
addmethod(J, "removeEventListener", mjs_element_removeEventListener, 3);
|
||||
addmethod(J, "replaceWith", mjs_element_replaceWith, 1);
|
||||
addmethod(J, "setAttribute", mjs_element_setAttribute, 2);
|
||||
addmethod(J, "toString", mjs_element_toString, 0);
|
||||
addmethod(J, "Element.prototype.addEventListener", mjs_element_addEventListener, 3);
|
||||
addmethod(J, "Element.prototype.append",mjs_element_append, 1);
|
||||
addmethod(J, "Element.prototype.appendChild",mjs_element_appendChild, 1);
|
||||
addmethod(J, "Element.prototype.blur", mjs_element_blur, 0);
|
||||
addmethod(J, "Element.prototype.click", mjs_element_click, 0);
|
||||
addmethod(J, "Element.prototype.cloneNode", mjs_element_cloneNode, 1);
|
||||
addmethod(J, "Element.prototype.closest", mjs_element_closest, 1);
|
||||
addmethod(J, "Element.prototype.contains", mjs_element_contains, 1);
|
||||
addmethod(J, "Element.prototype.dispatchEvent", mjs_element_dispatchEvent, 1);
|
||||
addmethod(J, "Element.prototype.focus", mjs_element_focus, 0);
|
||||
addmethod(J, "Element.prototype.getAttribute", mjs_element_getAttribute, 1);
|
||||
addmethod(J, "Element.prototype.getAttributeNode", mjs_element_getAttributeNode, 1);
|
||||
addmethod(J, "Element.prototype.getBoundingClientRect", mjs_element_getBoundingClientRect, 0);
|
||||
addmethod(J, "Element.prototype.getElementsByTagName", mjs_element_getElementsByTagName, 1);
|
||||
addmethod(J, "Element.prototype.hasAttribute", mjs_element_hasAttribute, 1);
|
||||
addmethod(J, "Element.prototype.hasAttributes", mjs_element_hasAttributes, 0);
|
||||
addmethod(J, "Element.prototype.hasChildNodes", mjs_element_hasChildNodes, 0);
|
||||
addmethod(J, "Element.prototype.insertBefore", mjs_element_insertBefore, 2);
|
||||
addmethod(J, "Element.prototype.isEqualNode", mjs_element_isEqualNode, 1);
|
||||
addmethod(J, "Element.prototype.isSameNode", mjs_element_isSameNode, 1);
|
||||
addmethod(J, "Element.prototype.matches", mjs_element_matches, 1);
|
||||
addmethod(J, "Element.prototype.querySelector", mjs_element_querySelector, 1);
|
||||
addmethod(J, "Element.prototype.querySelectorAll", mjs_element_querySelectorAll, 1);
|
||||
addmethod(J, "Element.prototype.remove", mjs_element_remove, 0);
|
||||
addmethod(J, "Element.prototype.removeAttribute", mjs_element_removeAttribute, 1);
|
||||
addmethod(J, "Element.prototype.removeChild", mjs_element_removeChild, 1);
|
||||
addmethod(J, "Element.prototype.removeEventListener", mjs_element_removeEventListener, 3);
|
||||
addmethod(J, "Element.prototype.replaceWith", mjs_element_replaceWith, 1);
|
||||
addmethod(J, "Element.prototype.setAttribute", mjs_element_setAttribute, 2);
|
||||
addmethod(J, "Element.prototype.toString", mjs_element_toString, 0);
|
||||
|
||||
addproperty(J, "attributes", mjs_element_get_property_attributes, NULL);
|
||||
addproperty(J, "checked", mjs_element_get_property_checked, mjs_element_set_property_checked);
|
||||
@ -4065,14 +4067,38 @@ fprintf(stderr, "Before: %s:%d\n", __FUNCTION__, __LINE__);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
mjs_element_fun(js_State *J)
|
||||
{
|
||||
#ifdef ECMASCRIPT_DEBUG
|
||||
fprintf(stderr, "%s:%s\n", __FILE__, __FUNCTION__);
|
||||
#endif
|
||||
js_pushundefined(J);
|
||||
}
|
||||
|
||||
static void
|
||||
mjs_element_constructor(js_State *J)
|
||||
{
|
||||
#ifdef ECMASCRIPT_DEBUG
|
||||
fprintf(stderr, "%s:%s\n", __FILE__, __FUNCTION__);
|
||||
#endif
|
||||
mjs_push_element(J, NULL);
|
||||
}
|
||||
|
||||
int
|
||||
mjs_element_init(js_State *J)
|
||||
{
|
||||
#if 0
|
||||
mjs_push_node(J, NULL);
|
||||
#if 1
|
||||
js_pushglobal(J);
|
||||
js_newcconstructor(J, mjs_element_fun, mjs_element_constructor, "Element", 1);
|
||||
js_defglobal(J, "Element", JS_DONTENUM);
|
||||
#endif
|
||||
return 0;
|
||||
#endif
|
||||
#if 0
|
||||
mjs_push_element(J, NULL);
|
||||
js_defglobal(J, "Element", JS_DONTENUM);
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -237,7 +237,7 @@ mjs_event_constructor(js_State *J)
|
||||
js_newobject(J);
|
||||
{
|
||||
js_newuserdata(J, "event", event, mjs_event_finalizer);
|
||||
addmethod(J, "preventDefault", mjs_event_preventDefault, 0);
|
||||
addmethod(J, "Event.prototype.preventDefault", mjs_event_preventDefault, 0);
|
||||
addproperty(J, "bubbles", mjs_event_get_property_bubbles, NULL);
|
||||
addproperty(J, "cancelable", mjs_event_get_property_cancelable, NULL);
|
||||
// addproperty(J, "composed", mjs_event_get_property_composed, NULL);
|
||||
|
@ -814,9 +814,9 @@ mjs_push_form_object(js_State *J, struct form *form)
|
||||
{
|
||||
js_newuserdata(J, "form", form, mjs_form_finalizer);
|
||||
|
||||
addmethod(J, "reset", mjs_form_reset, 0);
|
||||
addmethod(J, "submit", mjs_form_submit, 0);
|
||||
addmethod(J, "toString", mjs_form_toString, 0);
|
||||
addmethod(J, "form.reset", mjs_form_reset, 0);
|
||||
addmethod(J, "form.submit", mjs_form_submit, 0);
|
||||
addmethod(J, "form.toString", mjs_form_toString, 0);
|
||||
|
||||
addproperty(J, "action", mjs_form_get_property_action, mjs_form_set_property_action);
|
||||
addproperty(J, "elements", mjs_form_get_property_elements, NULL);
|
||||
|
@ -194,9 +194,9 @@ mjs_push_forms(js_State *J, void *node)
|
||||
{
|
||||
js_newuserdata(J, "forms", node, NULL);
|
||||
|
||||
addmethod(J, "item", mjs_forms_item, 1);
|
||||
addmethod(J, "namedItem", mjs_forms_namedItem, 1);
|
||||
addmethod(J, "toString", mjs_forms_toString, 0);
|
||||
addmethod(J, "forms.item", mjs_forms_item, 1);
|
||||
addmethod(J, "forms.namedItem", mjs_forms_namedItem, 1);
|
||||
addmethod(J, "forms.toString", mjs_forms_toString, 0);
|
||||
|
||||
addproperty(J, "length", mjs_forms_get_property_length, NULL);
|
||||
mjs_forms_set_items(J);
|
||||
|
@ -1435,20 +1435,20 @@ mjs_DocumentFragment_constructor(js_State *J)
|
||||
js_copy(J, 0);
|
||||
el_private->thisval = js_ref(J);
|
||||
js_newuserdata(J, "fragment", el_private, mjs_fragment_finalizer);
|
||||
addmethod(J, "addEventListener", mjs_fragment_addEventListener, 3);
|
||||
addmethod(J, "appendChild",mjs_fragment_appendChild, 1);
|
||||
addmethod(J, "cloneNode", mjs_fragment_cloneNode, 1);
|
||||
addmethod(J, "contains", mjs_fragment_contains, 1);
|
||||
addmethod(J, "dispatchEvent", mjs_fragment_dispatchEvent, 1);
|
||||
addmethod(J, "hasChildNodes", mjs_fragment_hasChildNodes, 0);
|
||||
addmethod(J, "insertBefore", mjs_fragment_insertBefore, 2);
|
||||
addmethod(J, "isEqualNode", mjs_fragment_isEqualNode, 1);
|
||||
addmethod(J, "isSameNode", mjs_fragment_isSameNode, 1);
|
||||
addmethod(J, "querySelector", mjs_fragment_querySelector, 1);
|
||||
addmethod(J, "querySelectorAll", mjs_fragment_querySelectorAll, 1);
|
||||
addmethod(J, "removeChild", mjs_fragment_removeChild, 1);
|
||||
addmethod(J, "removeEventListener", mjs_fragment_removeEventListener, 3);
|
||||
addmethod(J, "toString", mjs_fragment_toString, 0);
|
||||
addmethod(J, "DocumentFragment.prototype.addEventListener", mjs_fragment_addEventListener, 3);
|
||||
addmethod(J, "DocumentFragment.prototype.appendChild",mjs_fragment_appendChild, 1);
|
||||
addmethod(J, "DocumentFragment.prototype.cloneNode", mjs_fragment_cloneNode, 1);
|
||||
addmethod(J, "DocumentFragment.prototype.contains", mjs_fragment_contains, 1);
|
||||
addmethod(J, "DocumentFragment.prototype.dispatchEvent", mjs_fragment_dispatchEvent, 1);
|
||||
addmethod(J, "DocumentFragment.prototype.hasChildNodes", mjs_fragment_hasChildNodes, 0);
|
||||
addmethod(J, "DocumentFragment.prototype.insertBefore", mjs_fragment_insertBefore, 2);
|
||||
addmethod(J, "DocumentFragment.prototype.isEqualNode", mjs_fragment_isEqualNode, 1);
|
||||
addmethod(J, "DocumentFragment.prototype.isSameNode", mjs_fragment_isSameNode, 1);
|
||||
addmethod(J, "DocumentFragment.prototype.querySelector", mjs_fragment_querySelector, 1);
|
||||
addmethod(J, "DocumentFragment.prototype.querySelectorAll", mjs_fragment_querySelectorAll, 1);
|
||||
addmethod(J, "DocumentFragment.prototype.removeChild", mjs_fragment_removeChild, 1);
|
||||
addmethod(J, "DocumentFragment.prototype.removeEventListener", mjs_fragment_removeEventListener, 3);
|
||||
addmethod(J, "DocumentFragment.prototype.toString", mjs_fragment_toString, 0);
|
||||
|
||||
addproperty(J, "children", mjs_fragment_get_property_children, NULL);
|
||||
addproperty(J, "childElementCount", mjs_fragment_get_property_childElementCount, NULL);
|
||||
|
@ -63,7 +63,7 @@ mjs_push_implementation(js_State *J)
|
||||
|
||||
js_newobject(J);
|
||||
{
|
||||
addmethod(J, "createHTMLDocument", mjs_implementation_createHTMLDocument, 1);
|
||||
addmethod(J, "toString", mjs_implementation_toString, 0);
|
||||
addmethod(J, "Implementation.prototype.createHTMLDocument", mjs_implementation_createHTMLDocument, 1);
|
||||
addmethod(J, "Implementation.prototype.toString", mjs_implementation_toString, 0);
|
||||
}
|
||||
}
|
||||
|
@ -1322,11 +1322,11 @@ mjs_push_input_object(js_State *J, struct form_state *fs)
|
||||
{
|
||||
js_newuserdata(J, "input", fs, mjs_input_finalizer);
|
||||
|
||||
addmethod(J, "blur", mjs_input_blur, 0);
|
||||
addmethod(J, "click", mjs_input_click, 0);
|
||||
addmethod(J, "focus", mjs_input_focus, 0);
|
||||
addmethod(J, "select", mjs_input_select, 0);
|
||||
addmethod(J, "toString", mjs_input_toString, 0);
|
||||
addmethod(J, "input.blur", mjs_input_blur, 0);
|
||||
addmethod(J, "input.click", mjs_input_click, 0);
|
||||
addmethod(J, "input.focus", mjs_input_focus, 0);
|
||||
addmethod(J, "input.select", mjs_input_select, 0);
|
||||
addmethod(J, "input.toString", mjs_input_toString, 0);
|
||||
|
||||
addproperty(J, "accessKey", mjs_input_get_property_accessKey, mjs_input_set_property_accessKey);
|
||||
addproperty(J, "alt", mjs_input_get_property_alt, mjs_input_set_property_alt);
|
||||
|
@ -358,7 +358,7 @@ mjs_keyboardEvent_constructor(js_State *J)
|
||||
js_newobject(J);
|
||||
{
|
||||
js_newuserdata(J, "event", event, mjs_keyboardEvent_finalizer);
|
||||
addmethod(J, "preventDefault", mjs_keyboardEvent_preventDefault, 0);
|
||||
addmethod(J, "KeyboardEvent.prototype.preventDefault", mjs_keyboardEvent_preventDefault, 0);
|
||||
addproperty(J, "bubbles", mjs_keyboardEvent_get_property_bubbles, NULL);
|
||||
addproperty(J, "cancelable", mjs_keyboardEvent_get_property_cancelable, NULL);
|
||||
addproperty(J, "code", mjs_keyboardEvent_get_property_code, NULL);
|
||||
|
@ -696,11 +696,11 @@ mjs_location_init(js_State *J, struct view_state *vs)
|
||||
js_newobject(J);
|
||||
{
|
||||
js_newuserdata(J, "location", vs, mjs_location_finalizer);
|
||||
addmethod(J, "assign", mjs_location_assign, 1);
|
||||
addmethod(J, "reload", mjs_location_reload, 0);
|
||||
addmethod(J, "replace", mjs_location_replace, 1);
|
||||
addmethod(J, "toString", mjs_location_toString, 0);
|
||||
addmethod(J, "toLocaleString", mjs_location_toString, 0);
|
||||
addmethod(J, "location.assign", mjs_location_assign, 1);
|
||||
addmethod(J, "location.reload", mjs_location_reload, 0);
|
||||
addmethod(J, "location.replace", mjs_location_replace, 1);
|
||||
addmethod(J, "location.toString", mjs_location_toString, 0);
|
||||
addmethod(J, "location.toLocaleString", mjs_location_toString, 0);
|
||||
|
||||
addproperty(J, "hash", mjs_location_get_property_hash, mjs_location_set_property_hash);
|
||||
addproperty(J, "host", mjs_location_get_property_host, mjs_location_set_property_host);
|
||||
|
@ -305,7 +305,7 @@ mjs_messageEvent_constructor(js_State *J)
|
||||
js_newobject(J);
|
||||
{
|
||||
js_newuserdata(J, "event", event, mjs_messageEvent_finalizer);
|
||||
addmethod(J, "preventDefault", mjs_messageEvent_preventDefault, 0);
|
||||
addmethod(J, "MessageEvent.prototype.preventDefault", mjs_messageEvent_preventDefault, 0);
|
||||
addproperty(J, "bubbles", mjs_messageEvent_get_property_bubbles, NULL);
|
||||
addproperty(J, "cancelable", mjs_messageEvent_get_property_cancelable, NULL);
|
||||
addproperty(J, "composed", mjs_messageEvent_get_property_composed, NULL);
|
||||
|
@ -154,8 +154,8 @@ mjs_push_nodelist(js_State *J, void *node)
|
||||
{
|
||||
js_newuserdata(J, "nodelist", node, mjs_nodeList_finalizer);
|
||||
// addproperty(J, "length", mjs_nodeList_get_property_length, NULL);
|
||||
addmethod(J, "item", mjs_nodeList_item, 1);
|
||||
addmethod(J, "toString", mjs_nodeList_toString, 0);
|
||||
addmethod(J, "Nodelist.prototype.item", mjs_nodeList_item, 1);
|
||||
addmethod(J, "Nodelist.prototype.toString", mjs_nodeList_toString, 0);
|
||||
mjs_nodeList_set_items(J, node);
|
||||
}
|
||||
//attr_save_in_map(map_nodelist, node, node);
|
||||
|
@ -136,8 +136,8 @@ mjs_push_nodelist2(js_State *J, void *nodes)
|
||||
{
|
||||
js_newuserdata(J, "nodelist2", nodes, mjs_nodeList2_finalizer);
|
||||
// addproperty(J, "length", mjs_nodeList_get_property_length, NULL);
|
||||
addmethod(J, "item", mjs_nodeList2_item, 1);
|
||||
addmethod(J, "toString", mjs_nodeList2_toString, 0);
|
||||
addmethod(J, "Nodelist2.prototype.item", mjs_nodeList2_item, 1);
|
||||
addmethod(J, "Nodelist2.prototype.toString", mjs_nodeList2_toString, 0);
|
||||
mjs_nodeList2_set_items(J, nodes);
|
||||
}
|
||||
attr_save_in_map(map_nodelist2, nodes, nodes);
|
||||
|
@ -461,7 +461,7 @@ mjs_push_style(js_State *J, void *node)
|
||||
js_newobject(J);
|
||||
{
|
||||
js_newuserdata(J, "style", node, mjs_style_finalizer);
|
||||
addmethod(J, "toString", mjs_style_toString, 0);
|
||||
addmethod(J, "style.toString", mjs_style_toString, 0);
|
||||
addproperty(J, "background", mjs_style_get_property_background, mjs_style_set_property_background);
|
||||
addproperty(J, "backgroundClip", mjs_style_get_property_backgroundClip, mjs_style_set_property_backgroundClip);
|
||||
addproperty(J, "backgroundColor", mjs_style_get_property_backgroundColor, mjs_style_set_property_backgroundColor);
|
||||
|
@ -1377,20 +1377,20 @@ fprintf(stderr, "Before: %s:%d\n", __FUNCTION__, __LINE__);
|
||||
js_copy(J, 0);
|
||||
el_private->thisval = js_ref(J);
|
||||
js_newuserdata(J, "text", el_private, mjs_text_finalizer);
|
||||
addmethod(J, "addEventListener", mjs_text_addEventListener, 3);
|
||||
addmethod(J, "appendChild",mjs_text_appendChild, 1);
|
||||
addmethod(J, "cloneNode", mjs_text_cloneNode, 1);
|
||||
addmethod(J, "contains", mjs_text_contains, 1);
|
||||
addmethod(J, "dispatchEvent", mjs_text_dispatchEvent, 1);
|
||||
addmethod(J, "hasChildNodes", mjs_text_hasChildNodes, 0);
|
||||
addmethod(J, "insertBefore", mjs_text_insertBefore, 2);
|
||||
addmethod(J, "isEqualNode", mjs_text_isEqualNode, 1);
|
||||
addmethod(J, "isSameNode", mjs_text_isSameNode, 1);
|
||||
addmethod(J, "querySelector", mjs_text_querySelector, 1);
|
||||
addmethod(J, "querySelectorAll", mjs_text_querySelectorAll, 1);
|
||||
addmethod(J, "removeChild", mjs_text_removeChild, 1);
|
||||
addmethod(J, "removeEventListener", mjs_text_removeEventListener, 3);
|
||||
addmethod(J, "toString", mjs_text_toString, 0);
|
||||
addmethod(J, "Text.prototype.addEventListener", mjs_text_addEventListener, 3);
|
||||
addmethod(J, "Text.prototype.appendChild",mjs_text_appendChild, 1);
|
||||
addmethod(J, "Text.prototype.cloneNode", mjs_text_cloneNode, 1);
|
||||
addmethod(J, "Text.prototype.contains", mjs_text_contains, 1);
|
||||
addmethod(J, "Text.prototype.dispatchEvent", mjs_text_dispatchEvent, 1);
|
||||
addmethod(J, "Text.prototype.hasChildNodes", mjs_text_hasChildNodes, 0);
|
||||
addmethod(J, "Text.prototype.insertBefore", mjs_text_insertBefore, 2);
|
||||
addmethod(J, "Text.prototype.isEqualNode", mjs_text_isEqualNode, 1);
|
||||
addmethod(J, "Text.prototype.isSameNode", mjs_text_isSameNode, 1);
|
||||
addmethod(J, "Text.prototype.querySelector", mjs_text_querySelector, 1);
|
||||
addmethod(J, "Text.prototype.querySelectorAll", mjs_text_querySelectorAll, 1);
|
||||
addmethod(J, "Text.prototype.removeChild", mjs_text_removeChild, 1);
|
||||
addmethod(J, "Text.prototype.removeEventListener", mjs_text_removeEventListener, 3);
|
||||
addmethod(J, "Text.prototype.toString", mjs_text_toString, 0);
|
||||
|
||||
addproperty(J, "children", mjs_text_get_property_children, NULL);
|
||||
addproperty(J, "childElementCount", mjs_text_get_property_childElementCount, NULL);
|
||||
|
@ -199,10 +199,10 @@ mjs_push_tokenlist(js_State *J, void *node)
|
||||
js_newobject(J);
|
||||
{
|
||||
js_newuserdata(J, "tokenlist", node, mjs_tokenlist_finalizer);
|
||||
addmethod(J, "add", mjs_tokenlist_add, 1);
|
||||
addmethod(J, "contains", mjs_tokenlist_contains, 1);
|
||||
addmethod(J, "remove", mjs_tokenlist_remove, 1);
|
||||
addmethod(J, "toggle", mjs_tokenlist_toggle, 1);
|
||||
addmethod(J, "toString", mjs_tokenlist_toString, 0);
|
||||
addmethod(J, "Tokenlist.prototype.add", mjs_tokenlist_add, 1);
|
||||
addmethod(J, "Tokenlist.prototype.contains", mjs_tokenlist_contains, 1);
|
||||
addmethod(J, "Tokenlist.prototype.remove", mjs_tokenlist_remove, 1);
|
||||
addmethod(J, "Tokenlist.prototype.toggle", mjs_tokenlist_toggle, 1);
|
||||
addmethod(J, "Tokenlist.prototype.toString", mjs_tokenlist_toString, 0);
|
||||
}
|
||||
}
|
||||
|
@ -585,7 +585,7 @@ mjs_url_constructor(js_State *J)
|
||||
js_newobject(J);
|
||||
{
|
||||
js_newuserdata(J, "URL", url, mjs_url_finalizer);
|
||||
addmethod(J, "toString", mjs_url_toString, 0);
|
||||
addmethod(J, "URL.prototype.toString", mjs_url_toString, 0);
|
||||
|
||||
addproperty(J, "hash", mjs_url_get_property_hash, mjs_url_set_property_hash);
|
||||
addproperty(J, "host", mjs_url_get_property_host, mjs_url_set_property_host);
|
||||
|
@ -870,17 +870,17 @@ mjs_push_window(js_State *J, struct view_state *vs)
|
||||
js_newobject(J);
|
||||
{
|
||||
js_newuserdata(J, "window", elwin, mjs_window_finalizer);
|
||||
addmethod(J, "addEventListener", mjs_window_addEventListener, 3);
|
||||
addmethod(J, "alert", mjs_window_alert, 1);
|
||||
addmethod(J, "clearInterval", mjs_window_clearInterval, 1);
|
||||
addmethod(J, "clearTimeout", mjs_window_clearTimeout, 1);
|
||||
addmethod(J, "getComputedStyle", mjs_window_getComputedStyle, 2);
|
||||
addmethod(J, "open", mjs_window_open, 3);
|
||||
addmethod(J, "postMessage", mjs_window_postMessage, 3);
|
||||
addmethod(J, "removeEventListener", mjs_window_removeEventListener, 3);
|
||||
addmethod(J, "setInterval", mjs_window_setInterval, 2);
|
||||
addmethod(J, "setTimeout", mjs_window_setTimeout, 2);
|
||||
addmethod(J, "toString", mjs_window_toString, 0);
|
||||
addmethod(J, "window.addEventListener", mjs_window_addEventListener, 3);
|
||||
addmethod(J, "window.alert", mjs_window_alert, 1);
|
||||
addmethod(J, "window.clearInterval", mjs_window_clearInterval, 1);
|
||||
addmethod(J, "window.clearTimeout", mjs_window_clearTimeout, 1);
|
||||
addmethod(J, "window.getComputedStyle", mjs_window_getComputedStyle, 2);
|
||||
addmethod(J, "window.open", mjs_window_open, 3);
|
||||
addmethod(J, "window.postMessage", mjs_window_postMessage, 3);
|
||||
addmethod(J, "window.removeEventListener", mjs_window_removeEventListener, 3);
|
||||
addmethod(J, "window.setInterval", mjs_window_setInterval, 2);
|
||||
addmethod(J, "window.setTimeout", mjs_window_setTimeout, 2);
|
||||
addmethod(J, "window.toString", mjs_window_toString, 0);
|
||||
|
||||
addproperty(J, "closed", mjs_window_get_property_closed, NULL);
|
||||
addproperty(J, "event", mjs_window_get_property_event, NULL);
|
||||
|
@ -1460,15 +1460,15 @@ mjs_xhr_constructor(js_State *J)
|
||||
{
|
||||
xhr->thisval = js_ref(J);
|
||||
js_newuserdata(J, "xhr", xhr, mjs_xhr_finalizer);
|
||||
addmethod(J, "abort", mjs_xhr_abort, 0);
|
||||
addmethod(J, "addEventListener", mjs_xhr_addEventListener, 3);
|
||||
addmethod(J, "getAllResponseHeaders", mjs_xhr_getAllResponseHeaders, 0);
|
||||
addmethod(J, "getResponseHeader", mjs_xhr_getResponseHeader, 1);
|
||||
addmethod(J, "open", mjs_xhr_open, 5);
|
||||
addmethod(J, "overrideMimeType", mjs_xhr_overrideMimeType, 1);
|
||||
addmethod(J, "removeEventListener", mjs_xhr_removeEventListener, 3);
|
||||
addmethod(J, "send", mjs_xhr_send, 1);
|
||||
addmethod(J, "setRequestHeader", mjs_xhr_setRequestHeader, 2);
|
||||
addmethod(J, "XMLHttpRequest.prototype.abort", mjs_xhr_abort, 0);
|
||||
addmethod(J, "XMLHttpRequest.prototype.addEventListener", mjs_xhr_addEventListener, 3);
|
||||
addmethod(J, "XMLHttpRequest.prototype.getAllResponseHeaders", mjs_xhr_getAllResponseHeaders, 0);
|
||||
addmethod(J, "XMLHttpRequest.prototype.getResponseHeader", mjs_xhr_getResponseHeader, 1);
|
||||
addmethod(J, "XMLHttpRequest.prototype.open", mjs_xhr_open, 5);
|
||||
addmethod(J, "XMLHttpRequest.prototype.overrideMimeType", mjs_xhr_overrideMimeType, 1);
|
||||
addmethod(J, "XMLHttpRequest.prototype.removeEventListener", mjs_xhr_removeEventListener, 3);
|
||||
addmethod(J, "XMLHttpRequest.prototype.send", mjs_xhr_send, 1);
|
||||
addmethod(J, "XMLHttpRequest.prototype.setRequestHeader", mjs_xhr_setRequestHeader, 2);
|
||||
|
||||
addproperty(J, "UNSENT", mjs_xhr_static_get_property_UNSENT, NULL);
|
||||
addproperty(J, "OPENED", mjs_xhr_static_get_property_OPENED, NULL);
|
||||
|
@ -1,9 +1,9 @@
|
||||
<script>
|
||||
console.error('element.prototype.matches.html');
|
||||
if (Element.prototype.matches) {
|
||||
console.assert(1, 'matches');
|
||||
if (!Element.prototype.matches) {
|
||||
console.assert(false, 'not matches');
|
||||
} else {
|
||||
console.assert(0, 'not matches');
|
||||
console.assert(true, 'matches');
|
||||
}
|
||||
console.exit();
|
||||
</script>
|
Loading…
x
Reference in New Issue
Block a user