code: function count (target, options) {
      let original = '' + (typeof target === 'string' ? target : ('value' in target ? target.value : target.textContent))
      options = options || {}
  
      /**
       * The initial implementation to allow for HTML tags stripping was created
       * @craniumslows while the current one was created by @Rob--W.
       *
       * @see <http://goo.gl/Exmlr>
       * @see <http://goo.gl/gFQQh>
       */
  
      if (options.stripTags) original = original.replace(/<\/?[a-z][^>]*>/gi, '')
  
      if (options.ignore) {
          each.call(options.ignore, function (i) {
              original = original.replace(i, '')
          })
      }
  
      const trimmed = original.trim()
  
      /**
       * Most of the performance improvements are based on the works of @epmatsw.
       *
       * @see <http://goo.gl/SWOLB>
       */
  
      return {
        paragraphs: trimmed ? (trimmed.match(options.hardReturns ? /\n{2,}/g : /\n+/g) || []).length + 1 : 0,
        sentences: trimmed ? (trimmed.match(/[.?!…]+./g) || []).length + 1 : 0,
        words: trimmed ? (trimmed.replace(/['";:,.?¿\-!¡]+/g, '').match(/\S+/g) || []).length : 0,
        characters: trimmed ? decode(trimmed.replace(/\s/g, '')).length : 0,
        all: decode(original).length
      }
    }
docs: `count` trims an element's value, optionally strips HTML tags and counts
  paragraphs, sentences, words, characters and characters plus spaces.
  
  @private
  
  @param   {Node|String}  target   The target for the count.
  
  @param   {Object}   	   options  The options to use for the counting.
  
  @return  {Object}       The object containing the number of paragraphs,
  sentences, words, characters and characters
  plus spaces.