From c5fe2351124c673d1dc4d59355a03654b4fcc541 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20DAVID?= Date: Wed, 23 Aug 2017 14:10:08 +0200 Subject: order derivable traits lists Ignoring : - **generated**.rs - python/tidy/servo_tidy_tests/rust_tidy.rs --- components/script/dom/domexception.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 628ae5ceed5..63be8dc83e8 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -12,7 +12,7 @@ use dom::globalscope::GlobalScope; use dom_struct::dom_struct; #[repr(u16)] -#[derive(JSTraceable, Copy, Clone, Debug, HeapSizeOf)] +#[derive(Clone, Copy, Debug, HeapSizeOf, JSTraceable)] pub enum DOMErrorName { IndexSizeError = DOMExceptionConstants::INDEX_SIZE_ERR, HierarchyRequestError = DOMExceptionConstants::HIERARCHY_REQUEST_ERR, -- cgit v1.2.3 From 0e3c54c1911ba2c3bf305ee04f04fcd9bf2fc2fe Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Mon, 25 Sep 2017 23:30:24 +0200 Subject: Rename dom::bindings::js to dom::bindings::root --- components/script/dom/domexception.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 63be8dc83e8..933818e1a4f 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -5,8 +5,8 @@ use dom::bindings::codegen::Bindings::DOMExceptionBinding; use dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionConstants; use dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionMethods; -use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; +use dom::bindings::root::Root; use dom::bindings::str::DOMString; use dom::globalscope::GlobalScope; use dom_struct::dom_struct; -- cgit v1.2.3 From f87c2a8d7616112ca924e30292db2d244cf87eec Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Tue, 26 Sep 2017 01:53:40 +0200 Subject: Rename Root to DomRoot In a later PR, DomRoot will become a type alias of Root>, where Root will be able to handle all the things that need to be rooted that have a stable traceable address that doesn't move for the whole lifetime of the root. Stay tuned. --- components/script/dom/domexception.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 933818e1a4f..c9fc953950a 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::DOMExceptionBinding; use dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionConstants; use dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionMethods; use dom::bindings::reflector::{Reflector, reflect_dom_object}; -use dom::bindings::root::Root; +use dom::bindings::root::DomRoot; use dom::bindings::str::DOMString; use dom::globalscope::GlobalScope; use dom_struct::dom_struct; @@ -51,7 +51,7 @@ impl DOMException { } } - pub fn new(global: &GlobalScope, code: DOMErrorName) -> Root { + pub fn new(global: &GlobalScope, code: DOMErrorName) -> DomRoot { reflect_dom_object(box DOMException::new_inherited(code), global, DOMExceptionBinding::Wrap) -- cgit v1.2.3 From aa15dc269f41503d81ad44cd7e85d69e6f4aeac7 Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Mon, 16 Oct 2017 14:35:30 +0200 Subject: Remove use of unstable box syntax. http://www.robohornet.org gives a score of 101.36 on master, and 102.68 with this PR. The latter is slightly better, but probably within noise level. So it looks like this PR does not affect DOM performance. This is expected since `Box::new` is defined as: ```rust impl Box { #[inline(always)] pub fn new(x: T) -> Box { box x } } ``` With inlining, it should compile to the same as box syntax. --- components/script/dom/domexception.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index c9fc953950a..4e661dc52c7 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -52,7 +52,7 @@ impl DOMException { } pub fn new(global: &GlobalScope, code: DOMErrorName) -> DomRoot { - reflect_dom_object(box DOMException::new_inherited(code), + reflect_dom_object(Box::new(DOMException::new_inherited(code)), global, DOMExceptionBinding::Wrap) } -- cgit v1.2.3 From 4506f0d30cbbb02df32e9c16135ef288ad6b7e2e Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Wed, 18 Oct 2017 10:42:01 +1100 Subject: Replace all uses of the `heapsize` crate with `malloc_size_of`. Servo currently uses `heapsize`, but Stylo/Gecko use `malloc_size_of`. `malloc_size_of` is better -- it handles various cases that `heapsize` does not -- so this patch changes Servo to use `malloc_size_of`. This patch makes the following changes to the `malloc_size_of` crate. - Adds `MallocSizeOf` trait implementations for numerous types, some built-in (e.g. `VecDeque`), some external and Servo-only (e.g. `string_cache`). - Makes `enclosing_size_of_op` optional, because vanilla jemalloc doesn't support that operation. - For `HashSet`/`HashMap`, falls back to a computed estimate when `enclosing_size_of_op` isn't available. - Adds an extern "C" `malloc_size_of` function that does the actual heap measurement; this is based on the same functions from the `heapsize` crate. This patch makes the following changes elsewhere. - Converts all the uses of `heapsize` to instead use `malloc_size_of`. - Disables the "heapsize"/"heap_size" feature for the external crates that provide it. - Removes the `HeapSizeOf` implementation from `hashglobe`. - Adds `ignore` annotations to a few `Rc`/`Arc`, because `malloc_size_of` doesn't derive those types, unlike `heapsize`. --- components/script/dom/domexception.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 4e661dc52c7..e94689b242b 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -12,7 +12,7 @@ use dom::globalscope::GlobalScope; use dom_struct::dom_struct; #[repr(u16)] -#[derive(Clone, Copy, Debug, HeapSizeOf, JSTraceable)] +#[derive(Clone, Copy, Debug, JSTraceable, MallocSizeOf)] pub enum DOMErrorName { IndexSizeError = DOMExceptionConstants::INDEX_SIZE_ERR, HierarchyRequestError = DOMExceptionConstants::HIERARCHY_REQUEST_ERR, -- cgit v1.2.3 From 0fdafb08c8813229fb756bd0900ac54278cf1c85 Mon Sep 17 00:00:00 2001 From: Jonas Reinwald Date: Thu, 7 Dec 2017 16:57:06 +0100 Subject: Implement read methods on FileReaderSync --- components/script/dom/domexception.rs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index e94689b242b..4f2c076ec66 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -35,6 +35,7 @@ pub enum DOMErrorName { TimeoutError = DOMExceptionConstants::TIMEOUT_ERR, InvalidNodeTypeError = DOMExceptionConstants::INVALID_NODE_TYPE_ERR, DataCloneError = DOMExceptionConstants::DATA_CLONE_ERR, + NotReadableError = DOMExceptionConstants::NOT_READABLE_ERR, } #[dom_struct] @@ -94,6 +95,7 @@ impl DOMExceptionMethods for DOMException { DOMErrorName::InvalidNodeTypeError => "The supplied node is incorrect or has an incorrect ancestor for this operation.", DOMErrorName::DataCloneError => "The object can not be cloned.", + DOMErrorName::NotReadableError => "The I/O read operation failed." }; DOMString::from(message) -- cgit v1.2.3 From c37a345dc9f4dda6ea29c42f96f6c7201c42cbac Mon Sep 17 00:00:00 2001 From: chansuke Date: Tue, 18 Sep 2018 23:24:15 +0900 Subject: Format script component --- components/script/dom/domexception.rs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 4f2c076ec66..92debdc825e 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -53,9 +53,11 @@ impl DOMException { } pub fn new(global: &GlobalScope, code: DOMErrorName) -> DomRoot { - reflect_dom_object(Box::new(DOMException::new_inherited(code)), - global, - DOMExceptionBinding::Wrap) + reflect_dom_object( + Box::new(DOMException::new_inherited(code)), + global, + DOMExceptionBinding::Wrap, + ) } } @@ -74,7 +76,9 @@ impl DOMExceptionMethods for DOMException { fn Message(&self) -> DOMString { let message = match self.code { DOMErrorName::IndexSizeError => "The index is not in the allowed range.", - DOMErrorName::HierarchyRequestError => "The operation would yield an incorrect node tree.", + DOMErrorName::HierarchyRequestError => { + "The operation would yield an incorrect node tree." + }, DOMErrorName::WrongDocumentError => "The object is in the wrong document.", DOMErrorName::InvalidCharacterError => "The string contains invalid characters.", DOMErrorName::NoModificationAllowedError => "The object can not be modified.", @@ -85,17 +89,20 @@ impl DOMExceptionMethods for DOMException { DOMErrorName::SyntaxError => "The string did not match the expected pattern.", DOMErrorName::InvalidModificationError => "The object can not be modified in this way.", DOMErrorName::NamespaceError => "The operation is not allowed by Namespaces in XML.", - DOMErrorName::InvalidAccessError => "The object does not support the operation or argument.", + DOMErrorName::InvalidAccessError => { + "The object does not support the operation or argument." + }, DOMErrorName::SecurityError => "The operation is insecure.", DOMErrorName::NetworkError => "A network error occurred.", DOMErrorName::AbortError => "The operation was aborted.", DOMErrorName::TypeMismatchError => "The given type does not match any expected type.", DOMErrorName::QuotaExceededError => "The quota has been exceeded.", DOMErrorName::TimeoutError => "The operation timed out.", - DOMErrorName::InvalidNodeTypeError => - "The supplied node is incorrect or has an incorrect ancestor for this operation.", + DOMErrorName::InvalidNodeTypeError => { + "The supplied node is incorrect or has an incorrect ancestor for this operation." + }, DOMErrorName::DataCloneError => "The object can not be cloned.", - DOMErrorName::NotReadableError => "The I/O read operation failed." + DOMErrorName::NotReadableError => "The I/O read operation failed.", }; DOMString::from(message) -- cgit v1.2.3 From 45f7199eee82c66637ec68287eafa40a651001c4 Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Thu, 1 Nov 2018 23:45:06 +0100 Subject: `cargo fix --edition` --- components/script/dom/domexception.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 92debdc825e..623a5b3adf2 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -2,13 +2,13 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -use dom::bindings::codegen::Bindings::DOMExceptionBinding; -use dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionConstants; -use dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionMethods; -use dom::bindings::reflector::{Reflector, reflect_dom_object}; -use dom::bindings::root::DomRoot; -use dom::bindings::str::DOMString; -use dom::globalscope::GlobalScope; +use crate::dom::bindings::codegen::Bindings::DOMExceptionBinding; +use crate::dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionConstants; +use crate::dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionMethods; +use crate::dom::bindings::reflector::{Reflector, reflect_dom_object}; +use crate::dom::bindings::root::DomRoot; +use crate::dom::bindings::str::DOMString; +use crate::dom::globalscope::GlobalScope; use dom_struct::dom_struct; #[repr(u16)] -- cgit v1.2.3 From 9e92eb205a2a12fe0be883e42cb7f82deebc9031 Mon Sep 17 00:00:00 2001 From: Pyfisch Date: Tue, 6 Nov 2018 20:38:02 +0100 Subject: Reorder imports --- components/script/dom/domexception.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 623a5b3adf2..e61f76caf96 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -5,7 +5,7 @@ use crate::dom::bindings::codegen::Bindings::DOMExceptionBinding; use crate::dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionConstants; use crate::dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionMethods; -use crate::dom::bindings::reflector::{Reflector, reflect_dom_object}; +use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::str::DOMString; use crate::dom::globalscope::GlobalScope; -- cgit v1.2.3 From a1a14459c141afc6ac6771b8a6c9ca374537edf2 Mon Sep 17 00:00:00 2001 From: Jan Andre Ikenmeyer Date: Mon, 19 Nov 2018 14:47:12 +0100 Subject: Update MPL license to https (part 3) --- components/script/dom/domexception.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index e61f76caf96..6f35b23f7a8 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -1,6 +1,6 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use crate::dom::bindings::codegen::Bindings::DOMExceptionBinding; use crate::dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionConstants; -- cgit v1.2.3 From 220a471b149c6dbeaeee4af44f3a122d66f719e9 Mon Sep 17 00:00:00 2001 From: cdeler Date: Sat, 5 Jan 2019 22:20:25 +0300 Subject: implemented missed constructor for DOMException; fixed the tests expectations --- components/script/dom/domexception.rs | 123 +++++++++++++++++++++++++--------- 1 file changed, 90 insertions(+), 33 deletions(-) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 6f35b23f7a8..b5b0ca5a8c4 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -5,6 +5,7 @@ use crate::dom::bindings::codegen::Bindings::DOMExceptionBinding; use crate::dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionConstants; use crate::dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionMethods; +use crate::dom::bindings::error::Error; use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::str::DOMString; @@ -38,43 +39,46 @@ pub enum DOMErrorName { NotReadableError = DOMExceptionConstants::NOT_READABLE_ERR, } +impl DOMErrorName { + pub fn from(s: &DOMString) -> Option { + match s.as_ref() { + "IndexSizeError" => Some(DOMErrorName::IndexSizeError), + "HierarchyRequestError" => Some(DOMErrorName::HierarchyRequestError), + "WrongDocumentError" => Some(DOMErrorName::WrongDocumentError), + "InvalidCharacterError" => Some(DOMErrorName::InvalidCharacterError), + "NoModificationAllowedError" => Some(DOMErrorName::NoModificationAllowedError), + "NotFoundError" => Some(DOMErrorName::NotFoundError), + "NotSupportedError" => Some(DOMErrorName::NotSupportedError), + "InUseAttributeError" => Some(DOMErrorName::InUseAttributeError), + "InvalidStateError" => Some(DOMErrorName::InvalidStateError), + "SyntaxError" => Some(DOMErrorName::SyntaxError), + "InvalidModificationError" => Some(DOMErrorName::InvalidModificationError), + "NamespaceError" => Some(DOMErrorName::NamespaceError), + "InvalidAccessError" => Some(DOMErrorName::InvalidAccessError), + "SecurityError" => Some(DOMErrorName::SecurityError), + "NetworkError" => Some(DOMErrorName::NetworkError), + "AbortError" => Some(DOMErrorName::AbortError), + "TypeMismatchError" => Some(DOMErrorName::TypeMismatchError), + "QuotaExceededError" => Some(DOMErrorName::QuotaExceededError), + "TimeoutError" => Some(DOMErrorName::TimeoutError), + "InvalidNodeTypeError" => Some(DOMErrorName::InvalidNodeTypeError), + "DataCloneError" => Some(DOMErrorName::DataCloneError), + "NotReadableError" => Some(DOMErrorName::NotReadableError), + _ => None, + } + } +} + #[dom_struct] pub struct DOMException { reflector_: Reflector, - code: DOMErrorName, + message: DOMString, + name: DOMString, } impl DOMException { - fn new_inherited(code: DOMErrorName) -> DOMException { - DOMException { - reflector_: Reflector::new(), - code: code, - } - } - - pub fn new(global: &GlobalScope, code: DOMErrorName) -> DomRoot { - reflect_dom_object( - Box::new(DOMException::new_inherited(code)), - global, - DOMExceptionBinding::Wrap, - ) - } -} - -impl DOMExceptionMethods for DOMException { - // https://heycam.github.io/webidl/#dfn-DOMException - fn Code(&self) -> u16 { - self.code as u16 - } - - // https://heycam.github.io/webidl/#idl-DOMException-error-names - fn Name(&self) -> DOMString { - DOMString::from(format!("{:?}", self.code)) - } - - // https://heycam.github.io/webidl/#error-names - fn Message(&self) -> DOMString { - let message = match self.code { + fn get_error_data_by_code(code: DOMErrorName) -> (DOMString, DOMString) { + let message = match &code { DOMErrorName::IndexSizeError => "The index is not in the allowed range.", DOMErrorName::HierarchyRequestError => { "The operation would yield an incorrect node tree." @@ -105,11 +109,64 @@ impl DOMExceptionMethods for DOMException { DOMErrorName::NotReadableError => "The I/O read operation failed.", }; - DOMString::from(message) + ( + DOMString::from(message), + DOMString::from(format!("{:?}", code)), + ) + } + + fn new_inherited(message_: DOMString, name_: DOMString) -> DOMException { + DOMException { + reflector_: Reflector::new(), + message: message_, + name: name_, + } + } + + pub fn new(global: &GlobalScope, code: DOMErrorName) -> DomRoot { + let (message, name) = DOMException::get_error_data_by_code(code); + + reflect_dom_object( + Box::new(DOMException::new_inherited(message, name)), + global, + DOMExceptionBinding::Wrap, + ) + } + + pub fn Constructor( + global: &GlobalScope, + message: DOMString, + name: DOMString, + ) -> Result, Error> { + Ok(reflect_dom_object( + Box::new(DOMException::new_inherited(message, name)), + global, + DOMExceptionBinding::Wrap, + )) + } +} + +impl DOMExceptionMethods for DOMException { + // https://heycam.github.io/webidl/#dfn-DOMException + fn Code(&self) -> u16 { + match DOMErrorName::from(&self.name) { + Some(code) => code as u16, + None => 0 as u16, + } + } + + // https://heycam.github.io/webidl/#idl-DOMException-error-names + fn Name(&self) -> DOMString { + self.name.clone() + } + + // https://heycam.github.io/webidl/#error-names + fn Message(&self) -> DOMString { + self.message.clone() } // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-error.prototype.tostring fn Stringifier(&self) -> DOMString { - DOMString::from(format!("{}: {}", self.Name(), self.Message())) + DOMString::from(format!("{}: {}", self.name, self.message)) } } -- cgit v1.2.3 From aa0a72df0f5017c71572af38ec912e8b011bb34d Mon Sep 17 00:00:00 2001 From: Alan Jeffrey Date: Wed, 17 Jul 2019 18:09:15 -0500 Subject: Added framebuffer and related attributes to XRWebGLLayer --- components/script/dom/domexception.rs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index b5b0ca5a8c4..0df528edb87 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -37,6 +37,7 @@ pub enum DOMErrorName { InvalidNodeTypeError = DOMExceptionConstants::INVALID_NODE_TYPE_ERR, DataCloneError = DOMExceptionConstants::DATA_CLONE_ERR, NotReadableError = DOMExceptionConstants::NOT_READABLE_ERR, + OperationError = DOMExceptionConstants::OPERATION_ERR, } impl DOMErrorName { @@ -64,6 +65,7 @@ impl DOMErrorName { "InvalidNodeTypeError" => Some(DOMErrorName::InvalidNodeTypeError), "DataCloneError" => Some(DOMErrorName::DataCloneError), "NotReadableError" => Some(DOMErrorName::NotReadableError), + "OperationError" => Some(DOMErrorName::OperationError), _ => None, } } @@ -107,6 +109,9 @@ impl DOMException { }, DOMErrorName::DataCloneError => "The object can not be cloned.", DOMErrorName::NotReadableError => "The I/O read operation failed.", + DOMErrorName::OperationError => { + "The operation failed for an operation-specific reason." + }, }; ( -- cgit v1.2.3 From 23f15c94efe800db6bbee44a3a5d7464f5c19f31 Mon Sep 17 00:00:00 2001 From: Alan Jeffrey Date: Thu, 18 Jul 2019 16:54:29 -0500 Subject: Decoupled DOMErrorName from legacy error codes --- components/script/dom/domexception.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 0df528edb87..3cfe6092dd1 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -13,7 +13,7 @@ use crate::dom::globalscope::GlobalScope; use dom_struct::dom_struct; #[repr(u16)] -#[derive(Clone, Copy, Debug, JSTraceable, MallocSizeOf)] +#[derive(Clone, Copy, Debug, Eq, JSTraceable, MallocSizeOf, Ord, PartialEq, PartialOrd)] pub enum DOMErrorName { IndexSizeError = DOMExceptionConstants::INDEX_SIZE_ERR, HierarchyRequestError = DOMExceptionConstants::HIERARCHY_REQUEST_ERR, @@ -36,8 +36,8 @@ pub enum DOMErrorName { TimeoutError = DOMExceptionConstants::TIMEOUT_ERR, InvalidNodeTypeError = DOMExceptionConstants::INVALID_NODE_TYPE_ERR, DataCloneError = DOMExceptionConstants::DATA_CLONE_ERR, - NotReadableError = DOMExceptionConstants::NOT_READABLE_ERR, - OperationError = DOMExceptionConstants::OPERATION_ERR, + NotReadableError, + OperationError, } impl DOMErrorName { @@ -152,11 +152,11 @@ impl DOMException { } impl DOMExceptionMethods for DOMException { - // https://heycam.github.io/webidl/#dfn-DOMException + // https://heycam.github.io/webidl/#dom-domexception-code fn Code(&self) -> u16 { match DOMErrorName::from(&self.name) { - Some(code) => code as u16, - None => 0 as u16, + Some(code) if code <= DOMErrorName::DataCloneError => code as u16, + _ => 0, } } -- cgit v1.2.3 From 981d13dcfc9176e7e5042450b2c5475a2b9e7c77 Mon Sep 17 00:00:00 2001 From: Patrick Shaughnessy Date: Thu, 12 Dec 2019 16:18:21 -0500 Subject: Stringifier is sno longer exposed --- components/script/dom/domexception.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 3cfe6092dd1..218771851b6 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -149,6 +149,11 @@ impl DOMException { DOMExceptionBinding::Wrap, )) } + + // not an IDL stringifier, used internally + pub fn stringifier(&self) -> DOMString { + DOMString::from(format!("{}: {}", self.name, self.message)) + } } impl DOMExceptionMethods for DOMException { @@ -169,9 +174,4 @@ impl DOMExceptionMethods for DOMException { fn Message(&self) -> DOMString { self.message.clone() } - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-error.prototype.tostring - fn Stringifier(&self) -> DOMString { - DOMString::from(format!("{}: {}", self.name, self.message)) - } } -- cgit v1.2.3 From f7db4b7f8011239f01c3ba2e5e402c866fbe68fb Mon Sep 17 00:00:00 2001 From: Kunal Mohan Date: Sat, 18 Jan 2020 01:29:26 +0530 Subject: Modify `script` to prevent further violations of snake_case --- components/script/dom/domexception.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 218771851b6..e8d848d0b9f 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -138,6 +138,7 @@ impl DOMException { ) } + #[allow(non_snake_case)] pub fn Constructor( global: &GlobalScope, message: DOMString, -- cgit v1.2.3 From 15e1bdf1bf0d5950349bfe6878d90bf4101bf8a8 Mon Sep 17 00:00:00 2001 From: Patrick Shaughnessy Date: Tue, 28 Jan 2020 14:22:13 -0500 Subject: Add an unused but part-of-the-spec exception type --- components/script/dom/domexception.rs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index e8d848d0b9f..e749541eace 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -32,6 +32,7 @@ pub enum DOMErrorName { NetworkError = DOMExceptionConstants::NETWORK_ERR, AbortError = DOMExceptionConstants::ABORT_ERR, TypeMismatchError = DOMExceptionConstants::TYPE_MISMATCH_ERR, + URLMismatchError = DOMExceptionConstants::URL_MISMATCH_ERR, QuotaExceededError = DOMExceptionConstants::QUOTA_EXCEEDED_ERR, TimeoutError = DOMExceptionConstants::TIMEOUT_ERR, InvalidNodeTypeError = DOMExceptionConstants::INVALID_NODE_TYPE_ERR, @@ -60,6 +61,7 @@ impl DOMErrorName { "NetworkError" => Some(DOMErrorName::NetworkError), "AbortError" => Some(DOMErrorName::AbortError), "TypeMismatchError" => Some(DOMErrorName::TypeMismatchError), + "URLMismatchError" => Some(DOMErrorName::URLMismatchError), "QuotaExceededError" => Some(DOMErrorName::QuotaExceededError), "TimeoutError" => Some(DOMErrorName::TimeoutError), "InvalidNodeTypeError" => Some(DOMErrorName::InvalidNodeTypeError), @@ -102,6 +104,7 @@ impl DOMException { DOMErrorName::NetworkError => "A network error occurred.", DOMErrorName::AbortError => "The operation was aborted.", DOMErrorName::TypeMismatchError => "The given type does not match any expected type.", + DOMErrorName::URLMismatchError => "The given URL does not match another URL.", DOMErrorName::QuotaExceededError => "The quota has been exceeded.", DOMErrorName::TimeoutError => "The operation timed out.", DOMErrorName::InvalidNodeTypeError => { -- cgit v1.2.3 From 3ea6d87bcc37167464e856949a4b9b77d0e9318a Mon Sep 17 00:00:00 2001 From: YUAN LYU Date: Fri, 20 Mar 2020 22:14:18 -0400 Subject: Add trait DomObjectWrap to provide WRAP function --- components/script/dom/domexception.rs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'components/script/dom/domexception.rs') diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index e749541eace..c2533cd7932 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -2,7 +2,6 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -use crate::dom::bindings::codegen::Bindings::DOMExceptionBinding; use crate::dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionConstants; use crate::dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionMethods; use crate::dom::bindings::error::Error; @@ -134,11 +133,7 @@ impl DOMException { pub fn new(global: &GlobalScope, code: DOMErrorName) -> DomRoot { let (message, name) = DOMException::get_error_data_by_code(code); - reflect_dom_object( - Box::new(DOMException::new_inherited(message, name)), - global, - DOMExceptionBinding::Wrap, - ) + reflect_dom_object(Box::new(DOMException::new_inherited(message, name)), global) } #[allow(non_snake_case)] @@ -150,7 +145,6 @@ impl DOMException { Ok(reflect_dom_object( Box::new(DOMException::new_inherited(message, name)), global, - DOMExceptionBinding::Wrap, )) } -- cgit v1.2.3