diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0d534b4..c3fa5c3 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
### v0.1.9
+* New map_is_empty command.
* New map_size command.
* New map_remove command.
* New is_map command.
diff --git a/docs/sdk.md b/docs/sdk.md
index d4773f1..d0ceffc 100644
--- a/docs/sdk.md
+++ b/docs/sdk.md
@@ -24,6 +24,7 @@
* [std::collections::IsMap (is_map)](#std__collections__IsMap)
* [std::collections::Map (map)](#std__collections__Map)
* [std::collections::MapGet (map_get)](#std__collections__MapGet)
+* [std::collections::MapIsEmpty (map_is_empty)](#std__collections__MapIsEmpty)
* [std::collections::MapPut (map_put)](#std__collections__MapPut)
* [std::collections::MapRemove (map_remove)](#std__collections__MapRemove)
* [std::collections::MapSize (map_size)](#std__collections__MapSize)
@@ -1138,6 +1139,45 @@ release ${handle}
#### Aliases:
map_get
+
+## std::collections::MapIsEmpty
+
+```sh
+var = map_is_empty handle
+```
+
+Returns true if the provided map handle is an empty map.
+
+#### Parameters
+
+The map handle.
+
+#### Return Value
+
+True if the provided handle belongs to an empty map.
+
+#### Examples
+
+```sh
+handle = map
+map_put ${handle} key value
+empty = map_is_empty ${handle}
+```
+
+
+#### Source:
+
+```sh
+
+scope::map_is_empty::length = map_size ${scope::map_is_empty::argument::1}
+equals 0 ${scope::map_is_empty::length}
+
+```
+
+
+#### Aliases:
+map_is_empty
+
## std::collections::MapPut
```sh
diff --git a/duckscript_sdk/src/sdk/std/collections/map_is_empty/help.md b/duckscript_sdk/src/sdk/std/collections/map_is_empty/help.md
new file mode 100644
index 0000000..6c46ebd
--- /dev/null
+++ b/duckscript_sdk/src/sdk/std/collections/map_is_empty/help.md
@@ -0,0 +1,21 @@
+```sh
+var = map_is_empty handle
+```
+
+Returns true if the provided map handle is an empty map.
+
+#### Parameters
+
+The map handle.
+
+#### Return Value
+
+True if the provided handle belongs to an empty map.
+
+#### Examples
+
+```sh
+handle = map
+map_put ${handle} key value
+empty = map_is_empty ${handle}
+```
diff --git a/duckscript_sdk/src/sdk/std/collections/map_is_empty/mod.rs b/duckscript_sdk/src/sdk/std/collections/map_is_empty/mod.rs
new file mode 100755
index 0000000..a1a2593
--- /dev/null
+++ b/duckscript_sdk/src/sdk/std/collections/map_is_empty/mod.rs
@@ -0,0 +1,22 @@
+use crate::types::command::create_alias_command;
+use crate::utils::pckg;
+use duckscript::types::command::Command;
+use duckscript::types::error::ScriptError;
+
+#[cfg(test)]
+#[path = "./mod_test.rs"]
+mod mod_test;
+
+pub(crate) fn create(package: &str) -> Result, ScriptError> {
+ let name = pckg::concat(package, "MapIsEmpty");
+ let command = create_alias_command(
+ name,
+ vec!["map_is_empty".to_string()],
+ include_str!("help.md").to_string(),
+ "map_is_empty".to_string(),
+ include_str!("script.ds").to_string(),
+ 1,
+ )?;
+
+ Ok(Box::new(command))
+}
diff --git a/duckscript_sdk/src/sdk/std/collections/map_is_empty/mod_test.rs b/duckscript_sdk/src/sdk/std/collections/map_is_empty/mod_test.rs
new file mode 100644
index 0000000..cbc4367
--- /dev/null
+++ b/duckscript_sdk/src/sdk/std/collections/map_is_empty/mod_test.rs
@@ -0,0 +1,7 @@
+use super::*;
+use crate::test;
+
+#[test]
+fn common_functions() {
+ test::test_common_command_functions(create("").unwrap());
+}
diff --git a/duckscript_sdk/src/sdk/std/collections/map_is_empty/script.ds b/duckscript_sdk/src/sdk/std/collections/map_is_empty/script.ds
new file mode 100644
index 0000000..69392ea
--- /dev/null
+++ b/duckscript_sdk/src/sdk/std/collections/map_is_empty/script.ds
@@ -0,0 +1,3 @@
+
+scope::map_is_empty::length = map_size ${scope::map_is_empty::argument::1}
+equals 0 ${scope::map_is_empty::length}
diff --git a/duckscript_sdk/src/sdk/std/collections/mod.rs b/duckscript_sdk/src/sdk/std/collections/mod.rs
index 8fbe1ba..72836b5 100755
--- a/duckscript_sdk/src/sdk/std/collections/mod.rs
+++ b/duckscript_sdk/src/sdk/std/collections/mod.rs
@@ -9,6 +9,7 @@ mod is_array;
mod is_map;
mod map;
mod map_get;
+mod map_is_empty;
mod map_put;
mod map_remove;
mod map_size;
@@ -36,6 +37,7 @@ pub(crate) fn load(commands: &mut Commands, parent: &str) -> Result<(), ScriptEr
commands.set(is_map::create(&package))?;
commands.set(map::create(&package))?;
commands.set(map_get::create(&package))?;
+ commands.set(map_is_empty::create(&package)?)?;
commands.set(map_put::create(&package))?;
commands.set(map_remove::create(&package))?;
commands.set(map_size::create(&package))?;
diff --git a/test/std/collections/array_is_empty_test.ds b/test/std/collections/array_is_empty_test.ds
new file mode 100644
index 0000000..e10ef28
--- /dev/null
+++ b/test/std/collections/array_is_empty_test.ds
@@ -0,0 +1,30 @@
+
+fn test_size_empty
+ handle = array
+
+ result = array_is_empty ${handle}
+ assert ${result}
+
+ release ${handle}
+end
+
+fn test_size_emptied
+ handle = array
+
+ result = array_push ${handle} value
+ assert_eq ${result} true
+ array_pop ${handle}
+
+ result = array_is_empty ${handle}
+ assert ${result}
+ release ${handle}
+end
+
+fn test_size_not_empty
+ handle = array 1 2 3
+
+ result = array_is_empty ${handle}
+ assert_false ${result}
+
+ release ${handle}
+end
diff --git a/test/std/collections/map_is_empty_test.ds b/test/std/collections/map_is_empty_test.ds
new file mode 100644
index 0000000..039c158
--- /dev/null
+++ b/test/std/collections/map_is_empty_test.ds
@@ -0,0 +1,35 @@
+
+fn test_size_empty
+ handle = map
+
+ result = map_is_empty ${handle}
+ assert ${result}
+
+ release ${handle}
+end
+
+fn test_size_emptied
+ handle = map
+
+ result = map_put ${handle} key value
+ assert_eq ${result} true
+ map_remove ${handle} key
+
+ result = map_is_empty ${handle}
+ assert ${result}
+ release ${handle}
+end
+
+fn test_size_not_empty
+ handle = map
+
+ result = map_put ${handle} a 1
+ result = map_put ${handle} b 2
+ result = map_put ${handle} c 3
+ result = map_put ${handle} a 4
+
+ result = map_is_empty ${handle}
+ assert_false ${result}
+
+ release ${handle}
+end