mirror of
https://github.com/rkd77/elinks.git
synced 2025-05-18 00:48:57 -04:00
[spidermonkey] DocumentFragment.insertBefore modified
This commit is contained in:
parent
d8c60d4612
commit
9bff7dad40
@ -1947,34 +1947,34 @@ fragment_insertBefore(JSContext *ctx, unsigned int argc, JS::Value *rval)
|
|||||||
JS::RootedObject hobj(ctx, &args.thisv().toObject());
|
JS::RootedObject hobj(ctx, &args.thisv().toObject());
|
||||||
|
|
||||||
if (!JS_InstanceOf(ctx, hobj, &fragment_class, NULL)) {
|
if (!JS_InstanceOf(ctx, hobj, &fragment_class, NULL)) {
|
||||||
args.rval().setBoolean(false);
|
return false;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
dom_node *el = (dom_node *)JS::GetMaybePtrFromReservedSlot<dom_node>(hobj, 0);
|
dom_node *el = (dom_node *)JS::GetMaybePtrFromReservedSlot<dom_node>(hobj, 0);
|
||||||
|
|
||||||
if (!el) {
|
if (!el) {
|
||||||
args.rval().setUndefined();
|
return false;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
JS::RootedObject next_sibling1(ctx, &args[1].toObject());
|
dom_node *next_sibling = NULL;
|
||||||
JS::RootedObject child1(ctx, &args[0].toObject());
|
dom_node *child = NULL;
|
||||||
|
|
||||||
dom_node *next_sibling = (dom_node *)JS::GetMaybePtrFromReservedSlot<dom_node>(next_sibling1, 0);
|
if (!args[1].isNull()) {
|
||||||
|
JS::RootedObject next_sibling1(ctx, &args[1].toObject());
|
||||||
if (!next_sibling) {
|
next_sibling = (dom_node *)JS::GetMaybePtrFromReservedSlot<dom_node>(next_sibling1, 0);
|
||||||
args.rval().setNull();
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dom_node *child = (dom_node *)JS::GetMaybePtrFromReservedSlot<dom_node>(child1, 0);
|
if (!args[0].isNull()) {
|
||||||
|
JS::RootedObject child1(ctx, &args[0].toObject());
|
||||||
|
child = (dom_node *)JS::GetMaybePtrFromReservedSlot<dom_node>(child1, 0);
|
||||||
|
}
|
||||||
|
|
||||||
dom_exception err;
|
if (!child) {
|
||||||
dom_node *spare;
|
return false;
|
||||||
|
}
|
||||||
|
dom_node *spare = NULL;
|
||||||
|
dom_exception err = dom_node_insert_before(el, child, next_sibling, &spare);
|
||||||
|
|
||||||
err = dom_node_insert_before(el, child, next_sibling, &spare);
|
if (err != DOM_NO_ERR || !spare) {
|
||||||
if (err != DOM_NO_ERR) {
|
return false;
|
||||||
args.rval().setUndefined();
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
JSObject *obj = getElement(ctx, spare);
|
JSObject *obj = getElement(ctx, spare);
|
||||||
dom_node_unref(spare);
|
dom_node_unref(spare);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user