code: function(args)
      {
          var i, max, match, log;
          
          // Convert argument list to real array
          args = Array.prototype.slice.call(arguments, 0);
          
          // First argument is the log method to call
          log = args.shift();
          
          max = args.length;
          if (max > 1 && window["__consoleShimTest__"] !== false)
          {
              // When first parameter is not a string then add a format string to
              // the argument list so we are able to modify it in the next stop
              if (typeof(args[0]) != "string")
              {
                  args.unshift("%o");
                  max += 1;
              }
              
              // For each additional parameter which has no placeholder in the
              // format string we add another placeholder separated with a
              // space character.
              match = args[0].match(/%[a-z]/g);
              for (i = match ? match.length + 1 : 1; i < max; i += 1)
              {
                  args[0] += " %o";
              }
          }
          Function.apply.call(log, console, args);
      }
docs: Wraps the call to a real IE logging method. Modifies the arguments so
  parameters which are not represented by a placeholder are properly
  printed with a space character as separator.
  
  @param {...*} args
  The function arguments. First argument is the log function
  to call, the other arguments are the log arguments.