code: function (identifier, obj) {
          var legal = true;
          if (_cs.istypeof(_cs.state_methods) === "function") {
              var stateMethods = _cs.state_methods();
              var wrongFields = [];
              for (var field in obj) {
                  if (   _cs.isown(obj, field)
                      && stateMethods[field]) {
                      legal = false;
                      wrongFields.push("\"" + field + "\"");
                  }
              }
              if (!legal)
                  throw _cs.exception("clazz_or_trait", "definition of \"" + identifier +
                      "\" failed. You can not redefine state transition functions named " +
                      wrongFields.join(", "));
          }
          return legal;
      }
docs: /*
  STEP 3: EXTEND CLASS WITH OWN PROPERTIES AND METHODS
   /*  internal utility method for determining whether a given object
  defines a field that matches a state function