summaryrefslogtreecommitdiff
path: root/content/handlers/javascript
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2019-08-01 21:03:07 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2019-08-01 21:03:07 +0100
commitbb3e0e51f1cbae2134b7891c44a24bccc2f7f255 (patch)
tree63f98bb5e68970ec83c793f54a15cdf335e68db1 /content/handlers/javascript
parent7f612548e747d60f65d8f331ba68dbd00191a16a (diff)
downloadnetsurf-bb3e0e51f1cbae2134b7891c44a24bccc2f7f255.tar.gz
netsurf-bb3e0e51f1cbae2134b7891c44a24bccc2f7f255.tar.bz2
dukky: Attempt to make the fallback to HTMLUnknownElement more useful.
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Diffstat (limited to 'content/handlers/javascript')
-rw-r--r--content/handlers/javascript/duktape/dukky.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/content/handlers/javascript/duktape/dukky.c b/content/handlers/javascript/duktape/dukky.c
index 538a15b03..491c5c276 100644
--- a/content/handlers/javascript/duktape/dukky.c
+++ b/content/handlers/javascript/duktape/dukky.c
@@ -68,17 +68,20 @@ static duk_ret_t dukky_populate_object(duk_context *ctx, void *udata)
/* ... obj args protoname */
duk_get_global_string(ctx, PROTO_MAGIC);
/* .. obj args protoname prototab */
- duk_insert(ctx, -2);
- /* ... obj args prototab protoname */
+ duk_dup(ctx, -2);
+ /* ... obj args protoname prototab protoname */
duk_get_prop(ctx, -2);
- /* ... obj args prototab {proto/undefined} */
+ /* ... obj args protoname prototab {proto/undefined} */
if (duk_is_undefined(ctx, -1)) {
NSLOG(dukky, WARNING,
- "RuhRoh, couldn't find a prototype, HTMLUnknownElement it is");
+ "Unable to find dukky prototype for `%s` - falling back to HTMLUnknownElement",
+ duk_get_string(ctx, -3) + 2 /* Skip the two unprintables */);
duk_pop(ctx);
duk_push_string(ctx, PROTO_NAME(HTMLUNKNOWNELEMENT));
duk_get_prop(ctx, -2);
}
+ /* ... obj args protoname prototab proto */
+ duk_remove(ctx, -3);
/* ... obj args prototab proto */
duk_dup(ctx, -1);
/* ... obj args prototab proto proto */