diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2015-09-09 14:00:37 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2015-09-09 14:00:37 +0100 |
commit | 73c6476112181bd5e151be719dde7d5cd48e14c3 (patch) | |
tree | 9466e1faa0d94c4c237467acf7b4b9edb4513240 | |
parent | 410f6fdb9ef5e12506dd50ae6dc74ebc4a06dae4 (diff) | |
download | netsurf-73c6476112181bd5e151be719dde7d5cd48e14c3.tar.gz netsurf-73c6476112181bd5e151be719dde7d5cd48e14c3.tar.bz2 |
Fix instanceof to be correct and improve documentation of stack contents
-rw-r--r-- | javascript/dukky.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/javascript/dukky.c b/javascript/dukky.c index 0358a572e..3b7ca4725 100644 --- a/javascript/dukky.c +++ b/javascript/dukky.c @@ -42,29 +42,30 @@ 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 */ + /* ... obj ... */ duk_get_global_string(ctx, "\xFF\xFFNETSURF_DUKTAPE_PROTOTYPES"); - /* ... obj protos */ - duk_get_prop_string(ctx, idx, klass); - /* ... obj protos goalproto */ + /* ... obj ... protos */ + duk_get_prop_string(ctx, -1, klass); + /* ... obj ... protos goalproto */ duk_get_prototype(ctx, idx); - /* ... obj protos goalproto proto? */ + /* ... 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? */ + /* ... obj ... protos goalproto proto proto? */ duk_replace(ctx, -2); - /* ... obj protos goalproto proto? */ + /* ... obj ... protos goalproto proto? */ } duk_pop_3(ctx); - /* ... obj */ + /* ... obj ... */ return false; } |