Skip to content
This repository was archived by the owner on Jun 14, 2024. It is now read-only.

INTERNAL COMPILER ERROR. Node(ARRAY_PATTERN) #59

Closed
GeoffreyBooth opened this issue Apr 13, 2017 · 7 comments
Closed

INTERNAL COMPILER ERROR. Node(ARRAY_PATTERN) #59

GeoffreyBooth opened this issue Apr 13, 2017 · 7 comments
Labels

Comments

@GeoffreyBooth
Copy link

I’m a contributor to CoffeeScript and we use closure-compiler-js to minify the browser version of the CoffeeScript compiler. Starting with version 2, CoffeeScript’s compiler is output as ES2015 JavaScript (from original CoffeeScript source) which we then pass to closure-compiler-js.

This worked fine for 2.0.0-alpha1, which started outputting things like classes and default parameters using their ES2015 syntax. In 2.0.0-beta1, which I’m preparing now, we output destructuring using ES2015 syntax; and this seems to throw an error in closure-compiler-js:

./coffeescript/node_modules/google-closure-compiler-js/jscomp.js:4453
function iFb(b){var c;try{return b.Vh()}catch(a){a=Ogb(a);if(YK(a,70)){c=a;throw Pgb(new cJ(c))}else throw Pgb(a)}}
                                                                           ^

Error: java.lang.RuntimeException: java.lang.RuntimeException: INTERNAL COMPILER ERROR. Please report this problem.  undefined   Node(ARRAY_PATTERN): Input_0:3071:54       location = 'first_line' in options ? options : ([first_line, first_column] = this.getLineAndColumnFromChunk((ref = options.offset) != null ? ref : 0), {   Parent(ASSIGN): Input_0:3071:54       location = 'first_line' in options ? options : ([first_line, first_column] = this.getLineAndColumnFromChunk((ref = options.offset) != null ? ref : 0), {
    at cJ.zG (/private/tmp/coffeescript/node_modules/google-closure-compiler-js/jscomp.js:7571:21850)
    at cJ.CG (/private/tmp/coffeescript/node_modules/google-closure-compiler-js/jscomp.js:7571:22051)
    at cJ (/private/tmp/coffeescript/node_modules/google-closure-compiler-js/jscomp.js:3458:76)
    at iFb (/private/tmp/coffeescript/node_modules/google-closure-compiler-js/jscomp.js:4453:86)
    at iDb (/private/tmp/coffeescript/node_modules/google-closure-compiler-js/jscomp.js:6237:93)
    at r5c (/private/tmp/coffeescript/node_modules/google-closure-compiler-js/jscomp.js:7196:350)
    at rJ (/private/tmp/coffeescript/node_modules/google-closure-compiler-js/jscomp.js:1737:29)
    at uJ (/private/tmp/coffeescript/node_modules/google-closure-compiler-js/jscomp.js:3014:44)
    at /private/tmp/coffeescript/node_modules/google-closure-compiler-js/jscomp.js:3196:46
    at Object.module.exports [as compile] (/private/tmp/coffeescript/node_modules/google-closure-compiler-js/compile.js:31:15)
    at Object.action (/private/tmp/coffeescript/Cakefile:197:52)
    at invoke (/usr/local/lib/node_modules/coffeescript/lib/coffee-script/cake.js:44:26)
    at Object.exports.run (/usr/local/lib/node_modules/coffeescript/lib/coffee-script/cake.js:70:20)
    at Object.<anonymous> (/usr/local/lib/node_modules/coffeescript/bin/cake:7:38)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.runMain (module.js:605:10)
    at run (bootstrap_node.js:423:7)
    at startup (bootstrap_node.js:147:9)
    at bootstrap_node.js:538:3

You can reproduce this yourself quite easily:

git clone https://github.com/jashkenas/coffeescript.git
cd coffeescript
git checkout 9b77371ea846d498b06d0a88aeaa06bafed2abd9
npm install
cake build:browser
GeoffreyBooth added a commit to GeoffreyBooth/coffeescript that referenced this issue Apr 13, 2017
…FY=false, because Closure Compiler throws an error on our current code; see google/closure-compiler-js#59
GeoffreyBooth added a commit to jashkenas/coffeescript that referenced this issue Apr 13, 2017
* Fix browser build to incorporate Markdown-It, not Marked

* Update Google Closure Compiler; recompile browser build but with MINIFY=false, because Closure Compiler throws an error on our current code; see google/closure-compiler-js#59

* Bump version to 2.0.0-beta1; do release build, with updated docs and annotated source
@Dominator008 Dominator008 self-assigned this Apr 13, 2017
@Dominator008
Copy link

I admit the stack trace is not helpful at all. While I dig into it more, have you tried using the Java version instead (https://www.npmjs.com/package/google-closure-compiler)?

@GeoffreyBooth
Copy link
Author

From commit jashkenas/coffeescript@db216ec, I edited docs/v2/browser-compiler/coffeescript.js to remove the embedded markdown-it.min.js, just to try to isolate the issue. I still get errors. Here’s the Java compiler, from java -jar /usr/local/lib/node_modules/google-closure-compiler/compiler.jar coffeescript.js --js_output_file coffeescript.min.js:

coffeescript.js:1740: WARNING - Suspicious code. The result of the 'getelem' operator is not being used.
      match[0], before = match[1], octal = match[2], hex = match[3], unicode = match[4];
      ^^^^^^^^

coffeescript.js:1818: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
        true;
        ^^^^

coffeescript.js:2032: WARNING - If this if/for/while really shouldn't have a body, use {}
var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,22],$V1=[1,52],$V2=[1,86],$V3=[1,82],$V4=[1,87],$V5=[1,88],$V6=[1,84],$V7=[1,85],$V8=[1,60],$V9=[1,62],$Va=[1,63],$Vb=[1,64],$Vc=[1,65],$Vd=[1,66],$Ve=[1,53],$Vf=[1,40],$Vg=[1,54],$Vh=[1,34],$Vi=[1,71],$Vj=[1,72],$Vk=[1,33],$Vl=[1,81],$Vm=[1,50],$Vn=[1,55],$Vo=[1,56],$Vp=[1,69],$Vq=[1,70],$Vr=[1,68],$Vs=[1,45],$Vt=[1,51],$Vu=[1,67],$Vv=[1,76],$Vw=[1,77],$Vx=[1,78],$Vy=[1,79],$Vz=[1,49],$VA=[1,75],$VB=[1,36],$VC=[1,37],$VD=[1,38],$VE=[1,39],$VF=[1,41],$VG=[1,42],$VH=[1,89],$VI=[1,6,34,44,134],$VJ=[1,104],$VK=[1,92],$VL=[1,91],$VM=[1,90],$VN=[1,93],$VO=[1,94],$VP=[1,95],$VQ=[1,96],$VR=[1,97],$VS=[1,98],$VT=[1,99],$VU=[1,100],$VV=[1,101],$VW=[1,102],$VX=[1,103],$VY=[1,107],$VZ=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$V_=[2,171],$V$=[1,113],$V01=[1,118],$V11=[1,114],$V21=[1,115],$V31=[1,116],$V41=[1,119],$V51=[1,112],$V61=[1,6,34,44,134,136,138,142,159],$V71=[1,6,33,34,42,43,44,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$V81=[2,98],$V91=[2,77],$Va1=[1,129],$Vb1=[1,134],$Vc1=[1,135],$Vd1=[1,137],$Ve1=[1,141],$Vf1=[1,139],$Vg1=[1,6,33,34,42,43,44,57,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vh1=[2,95],$Vi1=[1,6,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vj1=[2,29],$Vk1=[1,167],$Vl1=[2,65],$Vm1=[1,175],$Vn1=[1,187],$Vo1=[1,189],$Vp1=[1,184],$Vq1=[1,191],$Vr1=[1,6,33,34,42,43,44,57,68,73,76,87,88,89,90,91,92,95,99,101,116,117,118,123,125,134,136,137,138,142,143,159,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178],$Vs1=[2,117],$Vt1=[1,6,33,34,42,43,44,60,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vu1=[1,6,33,34,42,43,44,48,60,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vv1=[1,239],$Vw1=[42,43,117],$Vx1=[1,249],$Vy1=[1,248],$Vz1=[2,75],$VA1=[1,259],$VB1=[6,33,34,68,73],$VC1=[6,33,34,57,68,73,76],$VD1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,167,168,169,170,171,172,173,174,175,176,177],$VE1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,167,169,170,171,172,173,174,175,176,177],$VF1=[42,43,87,88,90,91,92,95,116,117],$VG1=[1,279],$VH1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159],$VI1=[2,64],$VJ1=[1,291],$VK1=[1,293],$VL1=[1,298],$VM1=[1,300],$VN1=[2,192],$VO1=[1,6,33,34,42,43,44,57,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,149,150,151,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$VP1=[1,309],$VQ1=[6,33,34,73,118,123],$VR1=[1,6,33,34,42,43,44,57,60,68,73,76,87,88,89,90,91,92,95,99,101,116,117,118,123,125,134,136,137,138,142,143,149,150,151,159,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178],$VS1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,143,159],$VT1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,137,143,159],$VU1=[149,150,151],$VV1=[73,149,150,151],$VW1=[6,33,99],$VX1=[1,321],$VY1=[6,33,34,73,99],$VZ1=[6,33,34,60,73,99],$V_1=[6,33,34,57,60,73,99],$V$1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,169,170,171,172,173,174,175,176,177],$V02=[1,6,33,34,44,48,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$V12=[14,30,36,40,42,43,46,47,50,51,52,53,54,55,63,64,65,66,70,71,86,89,97,100,102,110,120,121,122,128,132,133,136,138,140,142,152,158,160,161,162,163,164,165],$V22=[2,181],$V32=[6,33,34],$V42=[2,76],$V52=[1,336],$V62=[1,337],$V72=[1,6,33,34,44,68,73,76,89,99,118,123,125,130,131,134,136,137,138,142,143,154,156,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$V82=[34,154,156],$V92=[1,6,34,44,68,73,76,89,99,118,123,125,134,137,143,159],$Va2=[1,363],$Vb2=[1,369],$Vc2=[1,6,34,44,134,159],$Vd2=[2,90],$Ve2=[1,380],$Vf2=[1,381],$Vg2=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,154,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vh2=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,138,142,143,159],$Vi2=[1,393],$Vj2=[1,394],$Vk2=[6,33,34,99],$Vl2=[6,33,34,73],$Vm2=[1,6,33,34,44,68,73,76,89,99,118,123,125,130,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vn2=[33,73],$Vo2=[1,421],$Vp2=[1,422],$Vq2=[1,428],$Vr2=[1,429];
                                                             ^

coffeescript.js:3256: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
                  [].splice.apply(children, [i, i - i + 1].concat(ref2 = replacement(child, this))), ref2;
                                                                                                     ^^^^

coffeescript.js:3356: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
          [].splice.apply(fragments, [i, i - i + 1].concat(ref1 = this.expand(fragment.fragments))), ref1;
                                                                                                     ^^^^

coffeescript.js:4542: WARNING - Suspicious code. The result of the 'void' operator is not being used.
          key = prop instanceof Assign && prop.context === 'object' ? prop.variable : prop instanceof Assign ? (!this.lhs ? prop.operatorToken.error(`unexpected ${prop.operatorToken.value}`) : void 0, prop.variable) : !(prop instanceof Comment) ? prop : void 0;
                                                                                                                                                                                                 ^^^^^^

coffeescript.js:4849: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
            [].splice.apply(expressions, [i, i - i + 1].concat(exprs)), exprs;
                                                                        ^^^^^

coffeescript.js:6624: WARNING - Suspicious code. The result of the 'void' operator is not being used.
        }), placeholder = new IdentifierLiteral(generatedErrorVariableName), this.errorVariable ? (message = isUnassignable(this.errorVariable.unwrapAll().value), message ? this.errorVariable.error(message) : void 0, this.recovery.unshift(new Assign(this.errorVariable, placeholder))) : void 0, [].concat(this.makeCode(" catch ("), placeholder.compileToFragments(o), this.makeCode(") {\n"), this.recovery.compileToFragments(o, LEVEL_TOP), this.makeCode(`\n${this.tab}}`))) : !(this.ensure || this.recovery) ? (generatedErrorVariableName = o.scope.freeVariable('error', {
                                                                                                                                                                                                                 ^^^^^^

coffeescript.js:6624: WARNING - Suspicious code. The result of the 'void' operator is not being used.
        }), placeholder = new IdentifierLiteral(generatedErrorVariableName), this.errorVariable ? (message = isUnassignable(this.errorVariable.unwrapAll().value), message ? this.errorVariable.error(message) : void 0, this.recovery.unshift(new Assign(this.errorVariable, placeholder))) : void 0, [].concat(this.makeCode(" catch ("), placeholder.compileToFragments(o), this.makeCode(") {\n"), this.recovery.compileToFragments(o, LEVEL_TOP), this.makeCode(`\n${this.tab}}`))) : !(this.ensure || this.recovery) ? (generatedErrorVariableName = o.scope.freeVariable('error', {
                                                                                                                                                                                                                                                                                               ^^^^^^

0 error(s), 9 warning(s)
java.lang.RuntimeException: java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.

null
  Node(ARRAY_PATTERN): coffeescript.js:1788:54
      location = 'first_line' in options ? options : ([first_line, first_column] = this.getLineAndColumnFromChunk((ref = options.offset) != null ? ref : 0), {
  Parent(ASSIGN): coffeescript.js:1788:54
      location = 'first_line' in options ? options : ([first_line, first_column] = this.getLineAndColumnFromChunk((ref = options.offset) != null ? ref : 0), {

	at com.google.javascript.jscomp.CompilerExecutor.runInCompilerThread(CompilerExecutor.java:126)
	at com.google.javascript.jscomp.Compiler.runInCompilerThread(Compiler.java:753)
	at com.google.javascript.jscomp.Compiler.compile(Compiler.java:723)
	at com.google.javascript.jscomp.Compiler.compile(Compiler.java:693)
	at com.google.javascript.jscomp.AbstractCommandLineRunner.doRun(AbstractCommandLineRunner.java:1080)
	at com.google.javascript.jscomp.AbstractCommandLineRunner.run(AbstractCommandLineRunner.java:492)
	at com.google.javascript.jscomp.CommandLineRunner.main(CommandLineRunner.java:1898)
Caused by: java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.

null
  Node(ARRAY_PATTERN): coffeescript.js:1788:54
      location = 'first_line' in options ? options : ([first_line, first_column] = this.getLineAndColumnFromChunk((ref = options.offset) != null ? ref : 0), {
  Parent(ASSIGN): coffeescript.js:1788:54
      location = 'first_line' in options ? options : ([first_line, first_column] = this.getLineAndColumnFromChunk((ref = options.offset) != null ? ref : 0), {

	at com.google.common.base.Preconditions.checkState(Preconditions.java:429)
	at com.google.javascript.jscomp.Es6RewriteDestructuring.visitArrayPattern(Es6RewriteDestructuring.java:324)
	at com.google.javascript.jscomp.Es6RewriteDestructuring.visit(Es6RewriteDestructuring.java:75)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:639)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBlockScope(NodeTraversal.java:726)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:633)
	at com.google.javascript.jscomp.NodeTraversal.traverseFunction(NodeTraversal.java:670)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:627)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseClass(NodeTraversal.java:701)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:629)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBlockScope(NodeTraversal.java:726)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:633)
	at com.google.javascript.jscomp.NodeTraversal.traverseFunction(NodeTraversal.java:670)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:627)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBlockScope(NodeTraversal.java:726)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:633)
	at com.google.javascript.jscomp.NodeTraversal.traverseFunction(NodeTraversal.java:670)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:627)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBlockScope(NodeTraversal.java:726)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:633)
	at com.google.javascript.jscomp.NodeTraversal.traverseFunction(NodeTraversal.java:670)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:627)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBlockScope(NodeTraversal.java:726)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:633)
	at com.google.javascript.jscomp.NodeTraversal.traverseFunction(NodeTraversal.java:670)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:627)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverse(NodeTraversal.java:311)
	at com.google.javascript.jscomp.NodeTraversal.traverseEs6(NodeTraversal.java:582)
	at com.google.javascript.jscomp.TranspilationPasses.processTranspile(TranspilationPasses.java:240)
	at com.google.javascript.jscomp.Es6RewriteDestructuring.process(Es6RewriteDestructuring.java:45)
	at com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process(PhaseOptimizer.java:304)
	at com.google.javascript.jscomp.PhaseOptimizer.process(PhaseOptimizer.java:236)
	at com.google.javascript.jscomp.Compiler.check(Compiler.java:892)
	at com.google.javascript.jscomp.Compiler.compileInternal(Compiler.java:781)
	at com.google.javascript.jscomp.Compiler.access$000(Compiler.java:87)
	at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:726)
	at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:723)
	at com.google.javascript.jscomp.CompilerExecutor$2.call(CompilerExecutor.java:91)
	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.IllegalStateException
	... 91 more

@Dominator008
Copy link

Yeah it's a bug in Es6RewriteDestructuring. I'll get to it soon. Thanks for the stack trace!

@Dominator008
Copy link

Dominator008 commented Apr 14, 2017

Reduced to a minimal repro:

var x;
([x] = [1], 2)

@Dominator008
Copy link

Hi, sorry for the wait. This particular issue should have been fixed by google/closure-compiler@1ea642a. Could you build closure-compiler-js from HEAD and take a look? Thanks!

@GeoffreyBooth
Copy link
Author

GeoffreyBooth commented Jun 13, 2017

I’m not sure how to do that, but my reproduction instructions above should work for you to test it:

git clone https://github.com/jashkenas/coffeescript.git
cd coffeescript
git checkout 9b77371ea846d498b06d0a88aeaa06bafed2abd9
npm install
cake build:browser

@ChadKillingsworth
Copy link
Contributor

If this is still an issue can you post it at https://github.com/google/closure-compiler?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants