HoriSun / closure-compiler

Automatically exported from code.google.com/p/closure-compiler
0 stars 0 forks source link

Compiler Crashes when all components of a hook are functions #1147

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
Run the compiler in simple mode and compile this code snippet:
throw function x_20() {
} ? function() {
} : function x_21() {
};

What is the expected output? What do you see instead?
It should compile without errors, but I get:

23: java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.
INTERNAL COMPILER ERROR.
Please report this problem.
null
  Node(HOOK): Input_0:2:6
} ? function() {
  Parent(THROW): Input_0:1:0
throw function x_20() {

    at com.google.common.base.Preconditions.checkState(Preconditions.java:137)
    at com.google.javascript.jscomp.NodeUtil.isStatementParent(NodeUtil.java:1785)
    at com.google.javascript.jscomp.NodeUtil.isStatement(NodeUtil.java:1778)
    at com.google.javascript.jscomp.NodeUtil.isFunctionExpression(NodeUtil.java:1971)
    at com.google.javascript.jscomp.NodeUtil.checkForStateChangeHelper(NodeUtil.java:856)
    at com.google.javascript.jscomp.NodeUtil.mayHaveSideEffects(NodeUtil.java:786)
    at com.google.javascript.jscomp.AbstractPeepholeOptimization.mayHaveSideEffects(AbstractPeepholeOptimization.java:119)
    at com.google.javascript.jscomp.PeepholeRemoveDeadCode.tryFoldHook(PeepholeRemoveDeadCode.java:815)
    at com.google.javascript.jscomp.PeepholeRemoveDeadCode.optimizeSubtree(PeepholeRemoveDeadCode.java:57)
    at com.google.javascript.jscomp.PeepholeOptimizationsPass$PeepCallback.visit(PeepholeOptimizationsPass.java:87)
    at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:544)
    at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:538)
    at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:538)
    at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:538)
    at com.google.javascript.jscomp.NodeTraversal.traverse(NodeTraversal.java:291)
    at com.google.javascript.jscomp.NodeTraversal.traverse(NodeTraversal.java:498)
    at com.google.javascript.jscomp.PeepholeOptimizationsPass$1.visit(PeepholeOptimizationsPass.java:71)
    at com.google.javascript.jscomp.NodeTraversal$1.shouldTraverse(NodeTraversal.java:484)
    at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:527)
    at com.google.javascript.jscomp.NodeTraversal.traverse(NodeTraversal.java:291)
    at com.google.javascript.jscomp.NodeTraversal.traverseChangedFunctions(NodeTraversal.java:489)
    at com.google.javascript.jscomp.PeepholeOptimizationsPass.process(PeepholeOptimizationsPass.java:63)
    at com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process(PhaseOptimizer.java:271)
    at com.google.javascript.jscomp.PhaseOptimizer$Loop.process(PhaseOptimizer.java:432)
    at com.google.javascript.jscomp.PhaseOptimizer.process(PhaseOptimizer.java:215)
    at com.google.javascript.jscomp.Compiler.optimize(Compiler.java:1947)
    at com.google.javascript.jscomp.Compiler.compileInternal(Compiler.java:776)
    at com.google.javascript.jscomp.Compiler.access$000(Compiler.java:88)
    at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:657)
    at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:654)
    at com.google.javascript.jscomp.Compiler.runInCompilerThread(Compiler.java:732)
    at com.google.javascript.jscomp.Compiler.compile(Compiler.java:654)
    at com.google.javascript.jscomp.Compiler.compile(Compiler.java:610)
    at com.google.javascript.jscomp.webservice.backend.CompilerInvokerImpl.compile(CompilerInvokerImpl.java:47)
    at com.google.javascript.jscomp.webservice.backend.ServerController.executeRequest(ServerController.java:174)
    at com.google.javascript.jscomp.webservice.backend.CompilationRequestHandler.serviceParsedRequest(CompilationRequestHandler.java:180)
    at com.google.javascript.jscomp.webservice.backend.CompilationRequestHandler.service(CompilationRequestHandler.java:162)
    at com.google.javascript.jscomp.webservice.frontend.CompilationServlet.doPost(CompilationServlet.java:83)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
    at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)
    at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:446)
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:435)
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:442)
    at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:186)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:306)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:298)
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:439)
    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
    at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.
null
  Node(HOOK): Input_0:2:6
} ? function() {
  Parent(THROW): Input_0:1:0
throw function x_20() {

    ... 72 more
Caused by: java.lang.IllegalStateException
    ... 72 more

Original issue reported on code.google.com by zp...@google.com on 20 Nov 2013 at 7:08

GoogleCodeExporter commented 9 years ago
Thanks for the report.

A slightly simpler repro:
(function() {}) ? function() {} : function() {};

Original comment by dim...@google.com on 20 Nov 2013 at 7:19

GoogleCodeExporter commented 9 years ago
This issue was closed by revision 5ce4b296d374.

Original comment by blic...@google.com on 21 Nov 2013 at 10:08

GoogleCodeExporter commented 9 years ago
This issue was closed by revision 5ce4b296d374.

Original comment by blic...@google.com on 15 Jan 2014 at 3:53