mirror of
https://github.com/netsurf-browser/netsurf
synced 2025-02-27 20:04:08 +03:00
Add createElementNS
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
This commit is contained in:
parent
ed829a4772
commit
85a4792280
@ -147,6 +147,46 @@ method Document::createElement()
|
||||
return 1;
|
||||
%}
|
||||
|
||||
method Document::createElementNS()
|
||||
%{
|
||||
dom_node *newnode;
|
||||
dom_exception err;
|
||||
duk_size_t text_len;
|
||||
duk_size_t ns_len;
|
||||
const char *ns = duk_safe_to_lstring(ctx, 0, &ns_len);
|
||||
const char *text = duk_safe_to_lstring(ctx, 0, &text_len);
|
||||
dom_string *text_str;
|
||||
dom_string *ns_str;
|
||||
|
||||
err = dom_string_create((const uint8_t*)ns, ns_len, &ns_str);
|
||||
if (err != DOM_NO_ERR) return 0; /* coerced to undefined */
|
||||
|
||||
err = dom_string_create((const uint8_t*)text, text_len, &text_str);
|
||||
if (err != DOM_NO_ERR) {
|
||||
dom_string_unref(ns_str);
|
||||
return 0; /* coerced to undefined */
|
||||
}
|
||||
|
||||
err = dom_document_create_element_ns(priv->parent.node,
|
||||
ns_str,
|
||||
text_str,
|
||||
&newnode);
|
||||
if (err != DOM_NO_ERR) {
|
||||
dom_string_unref(ns_str);
|
||||
dom_string_unref(text_str);
|
||||
return 0; /* coerced to undefined */
|
||||
}
|
||||
|
||||
dom_string_unref(text_str);
|
||||
dom_string_unref(ns_str);
|
||||
|
||||
dukky_push_node(ctx, newnode);
|
||||
|
||||
dom_node_unref(newnode);
|
||||
|
||||
return 1;
|
||||
%}
|
||||
|
||||
getter Document::head()
|
||||
%{
|
||||
struct dom_nodelist *nodes;
|
||||
|
@ -721,7 +721,8 @@ bool js_exec(jscontext *ctx, const char *txt, size_t txtlen, const char *name)
|
||||
assert(ctx);
|
||||
if (txt == NULL || txtlen == 0) return false;
|
||||
duk_set_top(CTX, 0);
|
||||
NSLOG(dukky, DEEPDEBUG, "%zd bytes: %s", txtlen, txt);
|
||||
NSLOG(dukky, DEEPDEBUG, "Running %zd bytes from %s", txtlen, name);
|
||||
NSLOG(dukky, DEEPDEBUG, "\n%s\n", txt);
|
||||
|
||||
(void) nsu_getmonotonic_ms(&ctx->exec_start_time);
|
||||
if (name != NULL) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user