// ECMA-262 13.15 The try statement public Node parseCatchClause() { Node param; List<Node> @params = new List<Node>(); // paramMap = { }, string key; int i; List<Node> body; Node node = new Node(); expectKeyword("catch"); expect("("); if (match(")")) { throwUnexpectedToken(lookahead); } param = null;// parsePattern(@params, ""); for (i = 0; i < @params.Count; i++) { key = "$" + @params[i].value; //if (Object.prototype.hasOwnProperty.call(paramMap, key)) { // tolerateError(Messages.DuplicateBinding, params[i].value); //} // paramMap[key] = true; } // ECMA-262 12.14.1 if (strict && isRestrictedWord(param.name)) { tolerateError(Messages.StrictCatchVariable); } expect(")"); body = new List<Node>() { parseBlock() }; return node.finishCatchClause(param, body); }