whole_func_string: function sortTasks(obj) {
      var nodes = _.keys(obj);
      var edges = _(obj).chain()
          .pairs()
          .map(function (o) {
              return _.map(o[1].dependencies || [], function (d) {
                  return [d, o[0]];
              });
          })
          .flatten(true)
          .value();
      var sorted = toposort.array(nodes, edges);
      return sorted;
  }
func_code_string: function sortTasks(obj) {
      var nodes = _.keys(obj);
      var edges = _(obj).chain()
          .pairs()
          .map(function (o) {
              return _.map(o[1].dependencies || [], function (d) {
                  return [d, o[0]];
              });
          })
          .flatten(true)
          .value();
      var sorted = toposort.array(nodes, edges);
      return sorted;
  }
func_documentation_string: This function takes an object like `grunt.config.get('default')` and
  returns a topologically sorted array of tasks.