From 202d7470359c35e21653a7f1672e9436d912d72d Mon Sep 17 00:00:00 2001 From: CYBAI Date: Sun, 11 Nov 2018 11:37:53 +0800 Subject: [PATCH 1/2] Fail to construct if promise is none --- components/script/dom/promiserejectionevent.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/components/script/dom/promiserejectionevent.rs b/components/script/dom/promiserejectionevent.rs index b4119cd7242..917601bb8be 100644 --- a/components/script/dom/promiserejectionevent.rs +++ b/components/script/dom/promiserejectionevent.rs @@ -5,7 +5,7 @@ use crate::dom::bindings::codegen::Bindings::EventBinding::EventMethods; use crate::dom::bindings::codegen::Bindings::PromiseRejectionEventBinding; use crate::dom::bindings::codegen::Bindings::PromiseRejectionEventBinding::PromiseRejectionEventMethods; -use crate::dom::bindings::error::Fallible; +use crate::dom::bindings::error::{Error, Fallible}; use crate::dom::bindings::inheritance::Castable; use crate::dom::bindings::reflector::reflect_dom_object; use crate::dom::bindings::root::DomRoot; @@ -73,7 +73,11 @@ impl PromiseRejectionEvent { let reason = init.reason.handle(); let promise = match init.promise.as_ref() { Some(promise) => promise.clone(), - None => Promise::new(global), + None => { + return Err(Error::Type( + "required member promise is undefined.".to_string(), + )) + }, }; let bubbles = EventBubbles::from(init.parent.bubbles); let cancelable = EventCancelable::from(init.parent.cancelable); From 8093438082a1a6e67ac6f80b4e17e9bc8f730a85 Mon Sep 17 00:00:00 2001 From: CYBAI Date: Sun, 11 Nov 2018 11:46:40 +0800 Subject: [PATCH 2/2] Update test expectation --- .../promise-rejection-event-constructor.html.ini | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html.ini diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html.ini deleted file mode 100644 index 3df660bcb08..00000000000 --- a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[promise-rejection-event-constructor.html] - type: testharness - [This tests the constructor for the PromiseRejectionEvent DOM class.] - expected: FAIL -