'use strict';

var isArray   = Array.isArray
  , forEach   = Array.prototype.forEach
  , push      = Array.prototype.push;

module.exports = function flatten() {
	var r = [];
	forEach.call(this, function (x) {
		push.apply(r, isArray(x) ? flatten.call(x) : [x]);
	});
	return r;
};
