docs: function advanceSlash() {
          var regex, previous, check;
  
          function testKeyword(value) {
              return value && (value.length > 1) && (value[0] >= 'a') && (value[0] <= 'z');
          }
  
          previous = extra.tokenValues[extra.tokens.length - 1];
          regex = (previous !== null);
  
          switch (previous) {
          case 'this':
          case ']':
              regex = false;
              break;
  
          case ')':
              check = extra.tokenValues[extra.openParenToken - 1];
              regex = (check === 'if' || check === 'while' || check === 'for' || check === 'with');
              break;
  
          case '}':
              // Dividing a function by anything makes little sense,
              // but we have to check for that.
              regex = false;
              if (testKeyword(extra.tokenValues[extra.openCurlyToken - 3])) {
                  // Anonymous function, e.g. function(){} /42
                  check = extra.tokenValues[extra.openCurlyToken - 4];
                  regex = check ? (FnExprTokens.indexOf(check) < 0) : false;
              } else if (testKeyword(extra.tokenValues[extra.openCurlyToken - 4])) {
                  // Named function, e.g. function f(){} /42/
                  check = extra.tokenValues[extra.openCurlyToken - 5];
                  regex = check ? (FnExprTokens.indexOf(check) < 0) : true;
              }
          }
  
          return regex ? collectRegex() : scanPunctuator();
      }