Merge pull request #546 from dhardy/0.5

Prepare 0.5.4 release
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3b75684..716f663 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,10 @@
 
 You may also find the [Update Guide](UPDATING.md) useful.
 
+## [0.5.4] - 2018-07-11
+### Platform support
+- Make `OsRng` work via WASM/stdweb for WebWorkers
+
 ## [0.5.3] - 2018-06-26
 ### Platform support
 - OpenBSD, Bitrig: fix compilation (broken in 0.5.1) (#530)
diff --git a/Cargo.toml b/Cargo.toml
index af16495..7c9feb2 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "rand"
-version = "0.5.3" # NB: When modifying, also modify html_root_url in lib.rs
+version = "0.5.4" # NB: When modifying, also modify html_root_url in lib.rs
 authors = ["The Rust Project Developers"]
 license = "MIT/Apache-2.0"
 readme = "README.md"
diff --git a/src/distributions/other.rs b/src/distributions/other.rs
index ef8ce63..f23d2b8 100644
--- a/src/distributions/other.rs
+++ b/src/distributions/other.rs
@@ -174,7 +174,7 @@
 mod tests {
     use {Rng, RngCore, Standard};
     use distributions::Alphanumeric;
-    #[cfg(all(not(feature="std"), feature="alloc"))] use alloc::String;
+    #[cfg(all(not(feature="std"), feature="alloc"))] use alloc::string::String;
 
     #[test]
     fn test_misc() {
diff --git a/src/lib.rs b/src/lib.rs
index 00b8a88..c81ad28 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -223,7 +223,7 @@
 
 #![doc(html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk.png",
        html_favicon_url = "https://www.rust-lang.org/favicon.ico",
-       html_root_url = "https://docs.rs/rand/0.5.3")]
+       html_root_url = "https://docs.rs/rand/0.5.4")]
 
 #![deny(missing_docs)]
 #![deny(missing_debug_implementations)]
diff --git a/src/seq.rs b/src/seq.rs
index 68f7ab0..8c7ed47 100644
--- a/src/seq.rs
+++ b/src/seq.rs
@@ -13,11 +13,10 @@
 use super::Rng;
 
 // This crate is only enabled when either std or alloc is available.
+#[cfg(all(feature="alloc", not(feature="std")))] use alloc::vec::Vec;
 // BTreeMap is not as fast in tests, but better than nothing.
 #[cfg(feature="std")] use std::collections::HashMap;
-#[cfg(not(feature="std"))] use alloc::btree_map::BTreeMap;
-
-#[cfg(not(feature="std"))] use alloc::Vec;
+#[cfg(all(feature="alloc", not(feature="std")))] use alloc::collections::BTreeMap;
 
 /// Randomly sample `amount` elements from a finite iterator.
 ///
@@ -227,7 +226,7 @@
     use super::*;
     use {XorShiftRng, Rng, SeedableRng};
     #[cfg(not(feature="std"))]
-    use alloc::Vec;
+    use alloc::vec::Vec;
 
     #[test]
     fn test_sample_iter() {