Skip to content

Closure internal error on '[].slice.call(arguments)' #4274

@juj

Description

@juj

From https://stackoverflow.com/a/960870 I randomly stumbled to using [].slice.call(arguments) to convert the old arguments object to an array (for use in scenarios where ES6 constructs are not allowed).

Though then got to see Closure compiler croak in that construct:

null
  Node(NAME arguments): C:/Users/clb/AppData/Local/Temp/emscripten_temp_9jd6b43i/a.out.jso1.js:158:31
      var args = [].slice.call(arguments);
  Parent(CALL): C:/Users/clb/AppData/Local/Temp/emscripten_temp_9jd6b43i/a.out.jso1.js:158:17
      var args = [].slice.call(arguments);

        at com.google.javascript.jscomp.Compiler.throwInternalError(Compiler.java:3282)
        at com.google.javascript.jscomp.NodeTraversal.throwUnexpectedException(NodeTraversal.java:516)
        at com.google.javascript.jscomp.NodeTraversal.traverse(NodeTraversal.java:536)
        at com.google.javascript.jscomp.NodeTraversal$Builder.traverse(NodeTraversal.java:472)
        at com.google.javascript.jscomp.NodeTraversal.traverse(NodeTraversal.java:542)
        at com.google.javascript.jscomp.OptimizeArgumentsArray.process(OptimizeArgumentsArray.java:98)
        at com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process(PhaseOptimizer.java:240)
        at com.google.javascript.jscomp.PhaseOptimizer.process(PhaseOptimizer.java:179)
        at com.google.javascript.jscomp.Compiler.performTranspilationAndOptimizations(Compiler.java:2968)
        at com.google.javascript.jscomp.Compiler.lambda$stage2Passes$7(Compiler.java:1025)
        at com.google.javascript.jscomp.CompilerExecutor.lambda$runInCompilerThread$0(CompilerExecutor.java:100)
        at [email protected]/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at [email protected]/java.lang.Thread.run(Thread.java:833)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.windows.WindowsPlatformThreads.osThreadStartRoutine(WindowsPlatformThreads.java:178)
Caused by: java.lang.UnsupportedOperationException
        at com.google.common.collect.ImmutableCollection.add(ImmutableCollection.java:268)
        at com.google.javascript.jscomp.OptimizeArgumentsArray.visit(OptimizeArgumentsArray.java:141)
        at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:961)
        at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:951)
        at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:951)
        at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:951)
        at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:951)
        at com.google.javascript.jscomp.NodeTraversal.traverseFunction(NodeTraversal.java:1006)
        at com.google.javascript.jscomp.NodeTraversal.handleFunction(NodeTraversal.java:857)
        at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:903)
        at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:951)
        at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:951)
        at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:951)
        at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:951)
        at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:951)
        at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:951)
        at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:1134)
        at com.google.javascript.jscomp.NodeTraversal.handleScript(NodeTraversal.java:845)
        at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:900)
        at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:951)
        at com.google.javascript.jscomp.NodeTraversal.traverse(NodeTraversal.java:533)
        ... 14 more

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions