From a897d87d18c9b35bd520a44fa5a76521fb0ccf15 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Fri, 9 Oct 2015 10:16:17 +0100 Subject: use the duckky_instanceof from the bindings The bindings provide a generated duckky_instanceof function, this changes to using that implementation. --- javascript/dukky.c | 32 -------------------------------- javascript/dukky.h | 1 - javascript/duktape/Node.bnd | 18 +++++++++--------- 3 files changed, 9 insertions(+), 42 deletions(-) (limited to 'javascript') diff --git a/javascript/dukky.c b/javascript/dukky.c index 3b7ca4725..96f78b9a4 100644 --- a/javascript/dukky.c +++ b/javascript/dukky.c @@ -37,38 +37,6 @@ #include - -duk_bool_t -dukky_instanceof_at(duk_context *ctx, duk_idx_t _idx, const char *klass) -{ - duk_idx_t idx = duk_normalize_index(ctx, _idx); - /* ... ??? ... */ - if (!duk_check_type(ctx, idx, DUK_TYPE_OBJECT)) { - return false; - } - /* ... obj ... */ - duk_get_global_string(ctx, "\xFF\xFFNETSURF_DUKTAPE_PROTOTYPES"); - /* ... obj ... protos */ - duk_get_prop_string(ctx, -1, klass); - /* ... obj ... protos goalproto */ - duk_get_prototype(ctx, idx); - /* ... obj ... protos goalproto proto? */ - while (!duk_is_undefined(ctx, -1)) { - if (duk_strict_equals(ctx, -1, -2)) { - duk_pop_3(ctx); - /* ... obj ... */ - return true; - } - duk_get_prototype(ctx, -1); - /* ... obj ... protos goalproto proto proto? */ - duk_replace(ctx, -2); - /* ... obj ... protos goalproto proto? */ - } - duk_pop_3(ctx); - /* ... obj ... */ - return false; -} - static duk_ret_t dukky_populate_object(duk_context *ctx) { /* ... obj args protoname nargs */ diff --git a/javascript/dukky.h b/javascript/dukky.h index f484e3a13..abe21ba35 100644 --- a/javascript/dukky.h +++ b/javascript/dukky.h @@ -28,6 +28,5 @@ duk_ret_t dukky_create_object(duk_context *ctx, const char *name, int args); duk_bool_t dukky_push_node_stacked(duk_context *ctx); duk_bool_t dukky_push_node(duk_context *ctx, struct dom_node *node); void dukky_inject_not_ctr(duk_context *ctx, int idx, const char *name); -duk_bool_t dukky_instanceof_at(duk_context *ctx, duk_idx_t _idx, const char *klass); #endif diff --git a/javascript/duktape/Node.bnd b/javascript/duktape/Node.bnd index b93606490..0b1bfe390 100644 --- a/javascript/duktape/Node.bnd +++ b/javascript/duktape/Node.bnd @@ -273,7 +273,7 @@ method Node::isEqualNode() dom_exception exc; bool result; - if (!dukky_instanceof_at(ctx, 0, PROTO_NAME(NODE))) return 0; + if (!dukky_instanceof(ctx, 0, PROTO_NAME(NODE))) return 0; duk_get_prop_string(ctx, 0, PRIVATE_MAGIC); node_private_t *other = duk_get_pointer(ctx, -1); @@ -290,7 +290,7 @@ method Node::compareDocumentPosition() dom_exception exc; uint16_t ret; - if (!dukky_instanceof_at(ctx, 0, PROTO_NAME(NODE))) return 0; + if (!dukky_instanceof(ctx, 0, PROTO_NAME(NODE))) return 0; duk_get_prop_string(ctx, 0, PRIVATE_MAGIC); node_private_t *other = duk_get_pointer(ctx, -1); @@ -311,7 +311,7 @@ method Node::contains() dom_exception exc; uint16_t ret; - if (!dukky_instanceof_at(ctx, 0, PROTO_NAME(NODE))) return 0; + if (!dukky_instanceof(ctx, 0, PROTO_NAME(NODE))) return 0; duk_get_prop_string(ctx, 0, PRIVATE_MAGIC); node_private_t *other = duk_get_pointer(ctx, -1); @@ -386,7 +386,7 @@ method Node::isDefaultNamespace() method Node::insertBefore() %{ - if (!dukky_instanceof_at(ctx, 0, PROTO_NAME(NODE))) return 0; + if (!dukky_instanceof(ctx, 0, PROTO_NAME(NODE))) return 0; duk_get_prop_string(ctx, 0, PRIVATE_MAGIC); node_private_t *other = duk_get_pointer(ctx, -1); @@ -395,7 +395,7 @@ method Node::insertBefore() dom_node *before = NULL; if (duk_get_top(ctx) == 2) { - if (!dukky_instanceof_at(ctx, 1, PROTO_NAME(NODE))) return 0; + if (!dukky_instanceof(ctx, 1, PROTO_NAME(NODE))) return 0; duk_get_prop_string(ctx, 1, PRIVATE_MAGIC); node_private_t *another = duk_get_pointer(ctx, -1); before = another->node; @@ -415,7 +415,7 @@ method Node::insertBefore() method Node::appendChild() %{ - if (!dukky_instanceof_at(ctx, 0, PROTO_NAME(NODE))) return 0; + if (!dukky_instanceof(ctx, 0, PROTO_NAME(NODE))) return 0; duk_get_prop_string(ctx, 0, PRIVATE_MAGIC); node_private_t *other = duk_get_pointer(ctx, -1); @@ -434,13 +434,13 @@ method Node::appendChild() method Node::replaceChild() %{ - if (!dukky_instanceof_at(ctx, 0, PROTO_NAME(NODE))) return 0; + if (!dukky_instanceof(ctx, 0, PROTO_NAME(NODE))) return 0; duk_get_prop_string(ctx, 0, PRIVATE_MAGIC); node_private_t *other = duk_get_pointer(ctx, -1); duk_pop(ctx); - if (!dukky_instanceof_at(ctx, 1, PROTO_NAME(NODE))) return 0; + if (!dukky_instanceof(ctx, 1, PROTO_NAME(NODE))) return 0; duk_get_prop_string(ctx, 1, PRIVATE_MAGIC); node_private_t *old = duk_get_pointer(ctx, -1); @@ -459,7 +459,7 @@ method Node::replaceChild() method Node::removeChild() %{ - if (!dukky_instanceof_at(ctx, 0, PROTO_NAME(NODE))) return 0; + if (!dukky_instanceof(ctx, 0, PROTO_NAME(NODE))) return 0; duk_get_prop_string(ctx, 0, PRIVATE_MAGIC); node_private_t *other = duk_get_pointer(ctx, -1); -- cgit v1.2.3