code: function decodeStr(s, decoder) {
    try {
      return decoder(s);
    } catch (e) {
      return QueryString.unescape(s, true);
    }
  }
docs: v8 does not optimize functions with try-catch blocks, so we isolate them here to minimize the damage