whole_func_string: function addRevealingModuleCall (obj, functionKey, shortFunctionKey) {
          functionKey = functionKey || 'module';
          /**
           * Revealing module function/method.
           * @note If `nsString` is undefined returns the protected modules/packages object itself.
           * @param nsString {String} - Namespace string or just property name itself.
           * @param value {*} - If passed in function/method acts as a setter.
           * @private
           * @returns {*} - Returns whatever is found
           */
          obj[shortFunctionKey || 'ns'] =
              obj[functionKey] = function (nsString, value) {
                  return sjl.isUndefined(nsString) ?
                      obj[functionKey] : unConfigurableNamespace(nsString, obj[functionKey], value);
              };
  
          // Return namespace function
          return obj[functionKey];
      }
func_code_string: function addRevealingModuleCall (obj, functionKey, shortFunctionKey) {
          functionKey = functionKey || 'module';
          /**
           * Revealing module function/method.
           * @note If `nsString` is undefined returns the protected modules/packages object itself.
           * @param nsString {String} - Namespace string or just property name itself.
           * @param value {*} - If passed in function/method acts as a setter.
           * @private
           * @returns {*} - Returns whatever is found
           */
          obj[shortFunctionKey || 'ns'] =
              obj[functionKey] = function (nsString, value) {
                  return sjl.isUndefined(nsString) ?
                      obj[functionKey] : unConfigurableNamespace(nsString, obj[functionKey], value);
              };
  
          // Return namespace function
          return obj[functionKey];
      }
func_documentation_string: Revealing module pattern seeder.  Adds the revealing module pattern call to passed in object.  Gives said object
  the revealing module pattern capability (for in browser use).
  @example
  ```
  var myApp = sjl.addRevealingModuleCall ({}, 'module');
  
  // Creates all namespace objects, if they don't already exist, and protects them from being overwritten (uses Object.defineProper(ty|ties) internally)
  // Then sets your module at the end of the chain also making it `unconfigurable` and `unwritable` as a property
  // on the namespace chain though does not protect MyModule itself from being tampered with (for security on
  // that level look into `Object.freeze`).
  myApp.module('some.deep.namespace.MyModule', MyModule); // returns MyModule
  
  // Fetching module that was set now becomes cleaner and module will always be there and cannot be deleted from location
  myApp.some.namespace.MyModule === MyModule; // true
  
  ```
  
  @note For similar a effect on the server side @see sjl.nodejs or 'sjljs/src/nodejs/Namespace' (
  creates a dynamic module loader using object namespaces).
  @function module:sjl.addRevealingModuleCall
  @param obj {Object|*} - Object to set the revealing module pattern method on.
  @param functionKey {String} - Key to set the revealing module setter and store to.  Default 'module'.
  @param shortFunctionKey {String} - Shorthand name to use for revealing module setter and store.  Default 'ns'.
  @return {Object|*} - Returns passed in `obj`.