From 2739a47d83c44ae3aac13d11f17ce5fbefc4c5a2 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Fri, 3 May 2019 12:20:10 +0100 Subject: Event: Implement initEvent() and getter isTrusted Signed-off-by: Daniel Silverstone --- content/handlers/javascript/duktape/Event.bnd | 37 +++++++++++++++++++++++++++ docs/UnimplementedJavascript.txt | 2 -- 2 files changed, 37 insertions(+), 2 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; +%} diff --git a/docs/UnimplementedJavascript.txt b/docs/UnimplementedJavascript.txt index fbc3106e3..8b5ea0a94 100644 --- a/docs/UnimplementedJavascript.txt +++ b/docs/UnimplementedJavascript.txt @@ -426,8 +426,6 @@ getter ErrorEvent::error(any);\n getter ErrorEvent::filename(string);\n getter ErrorEvent::lineno(unsigned long);\n getter ErrorEvent::message(string);\n -method Event::initEvent();\n -getter Event::isTrusted(boolean);\n method EventListener::handleEvent();\n method EventSource::close();\n getter EventSource::onerror(user);\n -- cgit v1.2.3