docs: function (frameType, beanDef) {
              var writer = new ariaUtilsFunctionWriter(["skin", "std"]);
              var out = writer.out;
              // writer.writeEnsureObjectExists("skin.frame"); // not necessary, already done by normFrame
              // writer.writeEnsureObjectExists("std"); // not necessary, already done by normFrame
              ariaUtilsInheritanceNormalization.writeInheritanceNormalization({
                  writer : writer,
                  beanDef : beanDef,
                  varToNormalize : "skin.frame",
                  parentVars : ["skin", "std.frame", "std"]
              });
              // remove properties from the direct object in case they are present
              var properties = beanDef.$properties;
              for (var propName in properties) {
                  if (properties.hasOwnProperty(propName)) {
                      out.push("delete skin", writer.getDotProperty(propName), ";");
                  }
              }
              var res = writer.createFunction();
              writer.$dispose();
              return res;
          }