diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2019-05-04 17:32:17 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2019-05-04 17:32:17 +0100 |
commit | ed829a477222f169e4ff0727db920e8029fd0c7d (patch) | |
tree | 02972aa43de616e3f307754e661d92b22860b675 /content/handlers/javascript | |
parent | 8009444918b167e8499c8abb06e406d9769c38e8 (diff) | |
download | netsurf-ed829a477222f169e4ff0727db920e8029fd0c7d.tar.gz netsurf-ed829a477222f169e4ff0727db920e8029fd0c7d.tar.bz2 |
JS: Attribute external JS to the URI it came from in backtraces
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Diffstat (limited to 'content/handlers/javascript')
-rw-r--r-- | content/handlers/javascript/duktape/dukky.c | 8 | ||||
-rw-r--r-- | content/handlers/javascript/js.h | 2 | ||||
-rw-r--r-- | content/handlers/javascript/none/none.c | 2 |
3 files changed, 8 insertions, 4 deletions
diff --git a/content/handlers/javascript/duktape/dukky.c b/content/handlers/javascript/duktape/dukky.c index e9e72650c..171736338 100644 --- a/content/handlers/javascript/duktape/dukky.c +++ b/content/handlers/javascript/duktape/dukky.c @@ -716,7 +716,7 @@ duk_int_t dukky_pcall(duk_context *ctx, duk_size_t argc, bool reset_timeout) } -bool js_exec(jscontext *ctx, const char *txt, size_t txtlen) +bool js_exec(jscontext *ctx, const char *txt, size_t txtlen, const char *name) { assert(ctx); if (txt == NULL || txtlen == 0) return false; @@ -724,7 +724,11 @@ bool js_exec(jscontext *ctx, const char *txt, size_t txtlen) NSLOG(dukky, DEEPDEBUG, "%zd bytes: %s", txtlen, txt); (void) nsu_getmonotonic_ms(&ctx->exec_start_time); - duk_push_string(CTX, "?unknown source?"); + if (name != NULL) { + duk_push_string(CTX, name); + } else { + duk_push_string(CTX, "?unknown source?"); + } if (duk_pcompile_lstring_filename(CTX, DUK_COMPILE_EVAL, txt, txtlen) != 0) { NSLOG(dukky, INFO, "Failed to compile JavaScript input"); goto handle_error; diff --git a/content/handlers/javascript/js.h b/content/handlers/javascript/js.h index 2929d0b5e..89a87afe3 100644 --- a/content/handlers/javascript/js.h +++ b/content/handlers/javascript/js.h @@ -67,7 +67,7 @@ void js_destroycontext(jscontext *ctx); jsobject *js_newcompartment(jscontext *ctx, void *win_priv, void *doc_priv); /* execute some javascript in a context */ -bool js_exec(jscontext *ctx, const char *txt, size_t txtlen); +bool js_exec(jscontext *ctx, const char *txt, size_t txtlen, const char *name); /* fire an event at a dom node */ diff --git a/content/handlers/javascript/none/none.c b/content/handlers/javascript/none/none.c index 9a8b0a49d..e1c992ebf 100644 --- a/content/handlers/javascript/none/none.c +++ b/content/handlers/javascript/none/none.c @@ -51,7 +51,7 @@ jsobject *js_newcompartment(jscontext *ctx, void *win_priv, void *doc_priv) return NULL; } -bool js_exec(jscontext *ctx, const char *txt, size_t txtlen) +bool js_exec(jscontext *ctx, const char *txt, size_t txtlen, const char *name) { return true; } |