code: function parseCatchClause() {
          var param, body, startToken;
  
          startToken = lookahead;
          expectKeyword('catch');
  
          expect('(');
          if (match(')')) {
              throwUnexpected(lookahead);
          }
  
          param = parseVariableIdentifier();
          // 12.14.1
          if (strict && isRestrictedWord(param.name)) {
              throwErrorTolerant({}, Messages.StrictCatchVariable);
          }
  
          expect(')');
          body = parseBlock();
          return delegate.markEnd(delegate.createCatchClause(param, body), startToken);
      }
docs: 12.14 The try statement