throws UnableToCompleteException {
logger = logger.branch(TreeLogger.DEBUG, "Attempting to optimize JS", null);
Reader r = new StringReader(program);
JsProgram jsProgram = new JsProgram();
JsScope topScope = jsProgram.getScope();
JsName funcName = topScope.declareName(getModuleFunctionName());
funcName.setObfuscatable(false);
try {
SourceInfo sourceInfo = jsProgram.createSourceInfoSynthetic(
StandardLinkerContext.class, "Linker-derived JS");
JsParser.parseInto(sourceInfo, topScope, jsProgram.getGlobalBlock(), r);