--- /dev/null
+'use strict';
+
+var isPlainObject = require('./is-plain-object')
+ , forEach = require('./for-each')
+
+ , process;
+
+process = function self(value, key) {
+ if (isPlainObject(value)) forEach(value, self, this);
+ else this[key] = value;
+};
+
+module.exports = function (obj) {
+ var flattened = {};
+ forEach(obj, process, flattened);
+ return flattened;
+};