diff options
author | CYBAI <cyb.ai.815@gmail.com> | 2018-12-26 16:29:30 +0800 |
---|---|---|
committer | CYBAI <cyb.ai.815@gmail.com> | 2018-12-26 18:05:43 +0800 |
commit | 115b73f636ee8f97e74e514523b10ffa9aed7369 (patch) | |
tree | ebcb61b076f60bcc7caf2177790a3e8e48547d00 /components/script/dom/bindings/trace.rs | |
parent | 4ba0ab7bd01482649ce9beff905d35c7471f3e1b (diff) | |
download | servo-115b73f636ee8f97e74e514523b10ffa9aed7369.tar.gz servo-115b73f636ee8f97e74e514523b10ffa9aed7369.zip |
Use `IndexMap` for WebIDL Record
Diffstat (limited to 'components/script/dom/bindings/trace.rs')
-rw-r--r-- | components/script/dom/bindings/trace.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index 4fecf083737..ae1a9e6e3b4 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -61,6 +61,7 @@ use html5ever::{LocalName, Namespace, Prefix, QualName}; use http::header::HeaderMap; use hyper::Method; use hyper::StatusCode; +use indexmap::IndexMap; use ipc_channel::ipc::{IpcReceiver, IpcSender}; use js::glue::{CallObjectTracer, CallValueTracer}; use js::jsapi::{GCTraceKindToAscii, Heap, JSObject, JSTracer, TraceKind}; @@ -356,6 +357,21 @@ unsafe impl<K: Ord + JSTraceable, V: JSTraceable> JSTraceable for BTreeMap<K, V> } } +unsafe impl<K, V, S> JSTraceable for IndexMap<K, V, S> +where + K: Hash + Eq + JSTraceable, + V: JSTraceable, + S: BuildHasher, +{ + #[inline] + unsafe fn trace(&self, trc: *mut JSTracer) { + for (k, v) in &*self { + k.trace(trc); + v.trace(trc); + } + } +} + unsafe impl<A: JSTraceable, B: JSTraceable> JSTraceable for (A, B) { #[inline] unsafe fn trace(&self, trc: *mut JSTracer) { |