static final MessageQueue LOUD_MQ = new EchoingMessageQueue(
new PrintWriter(System.err), new MessageContext(), true);
static String normJs(String js, MessageQueue mq) throws ParseException {
JsLexer lexer = new JsLexer(
CharProducer.Factory.fromString(js, FilePosition.UNKNOWN));
JsTokenQueue tq = new JsTokenQueue(lexer, InputSource.UNKNOWN);
Expression e = new Parser(tq, mq).parseExpression(true);
tq.expectEmpty();
StringBuilder sb = new StringBuilder(js.length() + 16);
RenderContext rc = new RenderContext(new JsMinimalPrinter(sb));
e.render(rc);
rc.getOut().noMoreTokens();
return sb.toString();