diff options
author | Gregory Terzian <gterzian@users.noreply.github.com> | 2018-03-18 13:20:24 +0800 |
---|---|---|
committer | Gregory Terzian <gterzian@users.noreply.github.com> | 2018-05-05 19:14:36 +0800 |
commit | 427eaed535dfdeaf735a40e3cb82ad7077aa86c5 (patch) | |
tree | cc723041b13093541e8d5986b74bbd02e1c920a6 /components/script/dom/eventtarget.rs | |
parent | a1d1b187102b340ba65955f2c4f1131c8276d050 (diff) | |
download | servo-427eaed535dfdeaf735a40e3cb82ad7077aa86c5.tar.gz servo-427eaed535dfdeaf735a40e3cb82ad7077aa86c5.zip |
beforeunload and unload infrastructure
Diffstat (limited to 'components/script/dom/eventtarget.rs')
-rw-r--r-- | components/script/dom/eventtarget.rs | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs index f909d97e253..df15ff1b2bc 100644 --- a/components/script/dom/eventtarget.rs +++ b/components/script/dom/eventtarget.rs @@ -187,22 +187,21 @@ impl CompiledEventListener { CommonEventHandler::BeforeUnloadEventHandler(ref handler) => { if let Some(event) = event.downcast::<BeforeUnloadEvent>() { - let rv = event.ReturnValue(); - + // Step 5 if let Ok(value) = handler.Call_(object, event.upcast::<Event>(), exception_handle) { - match value { - Some(value) => { - if rv.is_empty() { - event.SetReturnValue(value); - } - } - None => { - event.upcast::<Event>().PreventDefault(); + let rv = event.ReturnValue(); + if let Some(v) = value { + if rv.is_empty() { + event.SetReturnValue(v); } + event.upcast::<Event>().PreventDefault(); } } + } else { + // Step 5, "Otherwise" clause + let _ = handler.Call_(object, event.upcast::<Event>(), exception_handle); } } |