code: function (out, name, map, defaultValue) {
              if (out.parentClassType == this._classType) {
                  // merge maps at class loading time, as there is a parent template:
                  if (map) {
                      var newMap = out.newVarName();
                      // create the map of the child (which is now a different object, and we can change it)
                      out.writeln("var ", newMap, " = {};");
                      // get parent macrolibs:
                      out.writeln("Aria.copyObject(proto.", name, ",", newMap, ");");
                      // add or change child's own macrolibs:
                      out.writeln("Aria.copyObject(", ariaUtilsJson.convertToJsonString(map), ",", newMap, ");");
                      out.writeln("proto.", name, " = ", newMap, ";");
                  }
              } else {
                  var mapStr = map ? ariaUtilsJson.convertToJsonString(map) : defaultValue;
                  out.writeln("proto.", name, " = ", mapStr, ";");
              }
          }
docs: Write to the current block of the class writer some code to handle inheritance of a map (e.g.: macrolibs).
  This code is intended to be put in the $init method. The map is merged with the parent map: any property not
  defined in the map is inherited from the parent.
  @param {aria.templates.ClassWriter} out markup writer.
  @param {String} name Name of the value in the class prototype
  @param {Object} map Map at this level.
  @param {String} defaultValue default value
  @protected