diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2015-07-19 12:36:39 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2015-07-19 12:36:39 +0100 |
commit | 10c5dcd078700ff574512fc692adb6835653ba38 (patch) | |
tree | 94828bb4a1a14e3a9c78d2d9a45c25e902330161 /javascript/duktape/node.c | |
parent | d68e2c879c9254cae1ea8e248ebe70ddf5e797e6 (diff) | |
download | netsurf-10c5dcd078700ff574512fc692adb6835653ba38.tar.gz netsurf-10c5dcd078700ff574512fc692adb6835653ba38.tar.bz2 |
REWORK: ALL THIS CRUD
Diffstat (limited to 'javascript/duktape/node.c')
-rw-r--r-- | javascript/duktape/node.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/javascript/duktape/node.c b/javascript/duktape/node.c index 5a0bc0e1a..d632a2414 100644 --- a/javascript/duktape/node.c +++ b/javascript/duktape/node.c @@ -38,10 +38,28 @@ static DUKKY_FUNC(node, __destructor) return 0; } +static DUKKY_FUNC(node, appendChild) +{ + DUKKY_GET_METHOD_PRIVATE(node); + + if (!dukky_instanceof(ctx, PROTO_NAME(node))) return 0; + + DUKKY_SAFE_GET_ANOTHER(other,node,0); + + dom_exception err; + dom_node *spare; + + err = dom_node_append_child(priv->node, other->node, &spare); + if (err != DOM_NO_ERR) return 0; + dom_node_unref(spare); + + return 0; +} + DUKKY_FUNC(node, __proto) { /* Populate node's prototypical functionality */ - + DUKKY_ADD_METHOD(node, appendChild, 1); /* Set this prototype's prototype (left-parent)*/ DUKKY_GET_PROTOTYPE(event_target); duk_set_prototype(ctx, 0); |