google / google/closure-compiler

INTERNAL COMPILER ERROR when imported variables are used in object property shorthand

Open
#2,219 2 comments 2 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
7.7k
Forks
1.2k
Avg merge
2d 12h
Merged PRs (30d)
6

Description

```js
// export.js
export default "banana";
```

```js
// import.js
import banana from "./export";
const foo = { banana };
```

command:
`java -jar closure-compiler-v20161201.jar --js default_import.js --js default_export.js`

output:
```
java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.

GETPROP 2 [length: 6] [source_file: default_import.js] is not a string node
Node(OBJECTLIT): default_import.js:2:12
const foo = { banana };
Parent(NAME foo$$module$default_import): default_import.js:2:6
const foo = { banana };

at com.google.javascript.rhino.Node.getString(Node.java:1122)
at com.google.javascript.jscomp.StrictModeCheck.checkObjectLiteralOrClass(StrictModeCheck.java:190)
at com.google.javascript.jscomp.StrictModeCheck.visit(StrictModeCheck.java:114)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:642)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:714)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:638)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:714)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:638)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:714)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:638)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:714)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:638)
at com.google.javascript.jscomp.NodeTraversal.traverseRoots(NodeTraversal.java:336)
at com.google.javascript.jscomp.NodeTraversal.traverseRootsEs6(NodeTraversal.java:606)
at com.google.javascript.jscomp.StrictModeCheck.process(StrictModeCheck.java:102)
at com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process(PhaseOptimizer.java:296)
at com.google.javascript.jscomp.PhaseOptimizer.process(PhaseOptimizer.java:228)
at com.google.javascript.jscomp.Compiler.check(Compiler.java:877)
at com.google.javascript.jscomp.Compiler.compileInternal(Compiler.java:770)
at com.google.javascript.jscomp.Compiler.access$000(Compiler.java:84)
at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:718)
at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:715)
at com.google.javascript.jscomp.CompilerExecutor$2.call(CompilerExecutor.java:93)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.UnsupportedOperationException: GETPROP 2 [length: 6] [source_file: default_import.js] is not a string node
... 27 more
```
Same issue when using named exports.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.