diff --git a/examples/guide-supported-types-examples/bool.js b/examples/guide-supported-types-examples/bool.js
index 3276d1a7..ae2a0587 100644
--- a/examples/guide-supported-types-examples/bool.js
+++ b/examples/guide-supported-types-examples/bool.js
@@ -1,9 +1,22 @@
 import {
   take_char_by_value,
   return_char,
+  take_option_bool,
+  return_option_bool,
 } from './guide_supported_types_examples';
 
 take_bool_by_value(true);
 
 let b = return_bool();
 console.log(typeof b); // "boolean"
+
+take_option_bool(null);
+take_option_bool(undefined);
+take_option_bool(true);
+
+let c = return_option_bool();
+if (c == null) {
+  // ...
+} else {
+  console.log(typeof c); // "boolean"
+}
diff --git a/examples/guide-supported-types-examples/src/bool.rs b/examples/guide-supported-types-examples/src/bool.rs
index 43edb430..924e6882 100644
--- a/examples/guide-supported-types-examples/src/bool.rs
+++ b/examples/guide-supported-types-examples/src/bool.rs
@@ -7,3 +7,11 @@ pub fn take_bool_by_value(x: bool) {}
 pub fn return_bool() -> bool {
     true
 }
+
+#[wasm_bindgen]
+pub fn take_option_bool(x: Option<bool>) {}
+
+#[wasm_bindgen]
+pub fn return_option_bool() -> Option<bool> {
+    Some(false)
+}
diff --git a/guide/src/reference/types.md b/guide/src/reference/types.md
index 79e85879..846ddf4b 100644
--- a/guide/src/reference/types.md
+++ b/guide/src/reference/types.md
@@ -107,7 +107,7 @@ garbage-collected heap and the Wasm linear memory with `TextDecoder` and
 
 | `T` parameter | `&T` parameter | `&mut T` parameter | `T` return value | `Option<T>` parameter | `Option<T>` return value | JavaScript representation |
 |:---:|:---:|:---:|:---:|:---:|:---:|:---:|
-| Yes | No | No | Yes | No | No | A JavaScript boolean value |
+| Yes | No | No | Yes | Yes | Yes | A JavaScript boolean value |
 
 ### Example Rust Usage