code: function () {
              var args = S.makeArray(arguments),
                  l = args.length,
                  o = null, i, j, p,
                  global = (args[l - 1] === TRUE && l--);
  
              for (i = 0; i < l; i++) {
                  p = (EMPTY + args[i]).split('.');
                  o = global ? host : this;
                  for (j = (host[p[0]] === o) ? 1 : 0; j < p.length; ++j) {
                      o = o[p[j]] = o[p[j]] || { };
                  }
              }
              return o;
          }
docs: Returns the namespace specified and creates it if it doesn't exist. Be careful
  when naming packages. Reserved words may work in some browsers and not others.
  
  for example:
  @example
  S.namespace('KISSY.app'); // returns KISSY.app
  S.namespace('app.Shop'); // returns KISSY.app.Shop
  S.namespace('TB.app.Shop', TRUE); // returns TB.app.Shop
  
  @return {Object}  A reference to the last namespace object created
  @member KISSY