summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2019-05-03 12:20:10 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2019-05-03 12:20:10 +0100
commit2739a47d83c44ae3aac13d11f17ce5fbefc4c5a2 (patch)
tree48c12c34420d4e9300fc232238b06a7557254fd5
parent177a0477522c03ddd28237704a8ab2d1b2ea0dd8 (diff)
downloadnetsurf-2739a47d83c44ae3aac13d11f17ce5fbefc4c5a2.tar.gz
netsurf-2739a47d83c44ae3aac13d11f17ce5fbefc4c5a2.tar.bz2
Event: Implement initEvent() and getter isTrusted
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
-rw-r--r--content/handlers/javascript/duktape/Event.bnd37
-rw-r--r--docs/UnimplementedJavascript.txt2
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