diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2019-05-03 12:20:10 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2019-05-03 12:20:10 +0100 |
commit | 2739a47d83c44ae3aac13d11f17ce5fbefc4c5a2 (patch) | |
tree | 48c12c34420d4e9300fc232238b06a7557254fd5 /content/handlers/javascript/duktape | |
parent | 177a0477522c03ddd28237704a8ab2d1b2ea0dd8 (diff) | |
download | netsurf-2739a47d83c44ae3aac13d11f17ce5fbefc4c5a2.tar.gz netsurf-2739a47d83c44ae3aac13d11f17ce5fbefc4c5a2.tar.bz2 |
Event: Implement initEvent() and getter isTrusted
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Diffstat (limited to 'content/handlers/javascript/duktape')
-rw-r--r-- | content/handlers/javascript/duktape/Event.bnd | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/content/handlers/javascript/duktape/Event.bnd b/content/handlers/javascript/duktape/Event.bnd index a0bc3c3e7..2d0d6a548 100644 --- a/content/handlers/javascript/duktape/Event.bnd +++ b/content/handlers/javascript/duktape/Event.bnd @@ -148,3 +148,40 @@ getter Event::defaultPrevented () return 1; %} +getter Event::isTrusted () +%{ + dom_exception exc; + bool ret; + + exc = dom_event_get_is_trusted(priv->evt, &ret); + if (exc != DOM_NO_ERR) return 0; + + duk_push_boolean(ctx, ret); + return 1; +%} + + +method Event::initEvent () +%{ + dom_exception exc; + bool bubbles; + bool cancellable; + + duk_size_t text_len; + const char *text = duk_safe_to_lstring(ctx, 0, &text_len); + dom_string *text_str; + + exc = dom_string_create((const uint8_t*)text, text_len, &text_str); + if (exc != DOM_NO_ERR) return 0; /* coerced to undefined */ + + bubbles = duk_get_boolean(ctx, 1); + cancellable = duk_get_boolean(ctx, 2); + + exc = dom_event_init(priv->evt, text_str, bubbles, cancellable); + if (exc != DOM_NO_ERR) { + dom_string_unref(text_str); + return 0; + } + + return 0; +%} |