function parseNodeValue(target, ctx) {
      if (_.isPlainObject(target)) {
        return new KVPairNode(target, ctx);
      } else if (_.isArray(target)) {
        return _.map(target, function(v) {