old_contents: /**
   * Util
   */
  ( function ( root, factory ) {
  
      if ( typeof define === 'function' && define.amd ) {
  
          define( [
              'jquery'
          ], factory );
  
      } else if ( typeof exports === 'object' ) {
  
          module.exports = factory(
              require( 'jquery' )
          );
  
      } else {
  
          root.AdManager = root.AdManager || {};
  
          root.AdManager.Util = factory(
              root.jQuery
          );
  
      }
  
  } ( this, function ( $ ) {
  
      /**
       * Debug: a console.log wrapper.
       *
       * @return {String}
       */
      var debug = function () {
  
          if ( typeof console !== 'object' || ! console.log ) {
              return;
          }
  
          return Function.prototype.bind.call( console.log, console );
  
      } ();
  
      /**
       * Return difference between arrays.
       *
       * @param  {Array} array
       * @param  {Array} values
       * @return {Array} diff
       */
      function difference( array, values ) {
  
          var diff = [];
  
          $.grep( array, function ( element ) {
              if ( $.inArray( element, values ) === -1 ) {
                  diff.push( element );
              }
          } );
  
          return diff;
  
      }
  
      /**
       * Remove by key.
       *
       * @param  {Array}   array
       * @param  {Integer} key
       * @return {Array}   array
       */
      function removeByKey( array, key ) {
  
          array = $.grep( array, function ( element, index ) {
              return index !== key;
          } );
  
          return array;
  
      }
  
      //////////////////////////////////////////////////////////////////////////////////////
  
      return {
          debug:       debug,
          difference:  difference,
          removeByKey: removeByKey
      };
  
  } ) );
new_contents: /**
   * Util
   */
  ( function ( root, factory ) {
  
      if ( typeof define === 'function' && define.amd ) {
  
          define( [
              'jquery'
          ], factory );
  
      } else if ( typeof exports === 'object' ) {
  
          module.exports = factory(
              require( 'jquery' )
          );
  
      } else {
  
          root.AdManager = root.AdManager || {};
  
          root.AdManager.Util = factory(
              root.jQuery
          );
  
      }
  
  } ( this, function ( $ ) {
  
      /**
       * A console.log wrapper with the correct line numbers.
       *
       * @see    https://gist.github.com/bgrins/5108712
       * @see    https://developer.mozilla.org/en-US/docs/Web/API/Console/log
       * @param  {Mixed}
       * @return {String}
       */
      var debug = function () {
  
          if ( typeof console !== 'object' || ! console.log ) {
              return;
          }
  
          return console.log.bind( console );
  
      } ();
  
      /**
       * Return difference between arrays.
       *
       * @param  {Array} array
       * @param  {Array} values
       * @return {Array} diff
       */
      function difference( array, values ) {
  
          var diff = [];
  
          $.grep( array, function ( element ) {
              if ( $.inArray( element, values ) === -1 ) {
                  diff.push( element );
              }
          } );
  
          return diff;
  
      }
  
      /**
       * Remove by key.
       *
       * @param  {Array}   array
       * @param  {Integer} key
       * @return {Array}   array
       */
      function removeByKey( array, key ) {
  
          array = $.grep( array, function ( element, index ) {
              return index !== key;
          } );
  
          return array;
  
      }
  
      //////////////////////////////////////////////////////////////////////////////////////
  
      return {
          debug:       debug,
          difference:  difference,
          removeByKey: removeByKey
      };
  
  } ) );
subject: Update debug to use a “less expensive” call