docs: function (frameType, beanName) {
              var beanDef = ariaCoreJsonValidator.getBean(beanName);
              var writer = new ariaUtilsFunctionWriter(["skinClassName", "stateName", "state", "stdState", "normal",
                      "stdNormal"]);
              writer.writeEnsureObjectExists("state.frame");
              writer.writeEnsureObjectExists("stdState");
              writer.writeEnsureObjectExists("normal");
              writer.writeEnsureObjectExists("stdNormal");
              ariaUtilsInheritanceNormalization.writeInheritanceNormalization({
                  writer : writer,
                  beanDef : beanDef,
                  varToNormalize : "state.frame",
                  parentVars : ["state", "stdState.frame", "stdState", "normal.frame", "normal", "stdNormal.frame",
                          "stdNormal"]
              });
  
              // remove properties from the direct object in case they are present
              var properties = beanDef.$properties;
              for (var propName in properties) {
                  if (properties.hasOwnProperty(propName)) {
                      writer.out.push("delete state", writer.getDotProperty(propName), ";");
                  }
              }
              if (Aria.debug) {
                  writer.out.push("this.checkFrameState(this.widgetName,skinClassName,stateName,state.frame,", writer.stringify(beanName), ");");
              }
              var res = writer.createFunction();
              writer.$dispose();
              return res;
          }