summaryrefslogtreecommitdiff
path: root/javascript
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2015-10-09 10:16:17 +0100
committerVincent Sanders <vince@kyllikki.org>2015-10-09 10:16:17 +0100
commita897d87d18c9b35bd520a44fa5a76521fb0ccf15 (patch)
treead5426f48704a3c4b5c46f3e71c4638dbd6eda93 /javascript
parentb9a23939b29d5973a04a9172248a98be4b6a8ef1 (diff)
downloadnetsurf-a897d87d18c9b35bd520a44fa5a76521fb0ccf15.tar.gz
netsurf-a897d87d18c9b35bd520a44fa5a76521fb0ccf15.tar.bz2
use the duckky_instanceof from the bindings
The bindings provide a generated duckky_instanceof function, this changes to using that implementation.
Diffstat (limited to 'javascript')
-rw-r--r--javascript/dukky.c32
-rw-r--r--javascript/dukky.h1
-rw-r--r--javascript/duktape/Node.bnd18
3 files changed, 9 insertions, 42 deletions
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 <dom/dom.h>
-
-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);