aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/eventtarget.rs
diff options
context:
space:
mode:
authorGregory Terzian <gterzian@users.noreply.github.com>2018-03-18 13:20:24 +0800
committerGregory Terzian <gterzian@users.noreply.github.com>2018-05-05 19:14:36 +0800
commit427eaed535dfdeaf735a40e3cb82ad7077aa86c5 (patch)
treecc723041b13093541e8d5986b74bbd02e1c920a6 /components/script/dom/eventtarget.rs
parenta1d1b187102b340ba65955f2c4f1131c8276d050 (diff)
downloadservo-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.rs19
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);
}
}