Skip to content

Support for comments inside JSX (CS2) #1481

@IlyaSkriblovsky

Description

@IlyaSkriblovsky

decaffeinate is crashing on my CoffeeScript input:

<div>
    {### comment ###}
</div>

(repl)

I get this error:

/home/ilya/zont/node_modules/decaffeinate/dist/cli.js:304
        throw err;
        ^

TypeError: Reduce of empty array with no initial value
    at Array.reduceRight (<anonymous>)
    at Object.mapParens [as default] (/home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapParens.js:18:10)                                                                                           
    at Object.mapAny [as default] (/home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapAny.js:76:38)                                                                                                 
    at Object.mapValue [as default] (/home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapValue.js:12:149)                                                                                            
    at Object.mapAny [as default] (/home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapAny.js:37:37)                                                                                                 
    at /home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapCSX.js:70:89
    at Array.map (<anonymous>)
    at mapCSXChildren (/home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapCSX.js:70:32)
    at Object.mapCSX [as default] (/home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapCSX.js:12:26)                                                                                                 
    at Object.mapCall [as default] (/home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapCall.js:18:35)                                                                                               
    at Object.mapAny [as default] (/home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapAny.js:52:36)                                                                                                 
    at Object.mapValue [as default] (/home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapValue.js:12:149)                                                                                            
    at Object.mapAny [as default] (/home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapAny.js:37:37)                                                                                                 
    at mapChild (/home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapBlock.js:74:32)
    at /home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapBlock.js:29:45
    at Array.map (<anonymous>)
    at Object.mapBlock [as default] (/home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapBlock.js:29:10)                                                                                             
    at Object.mapPossiblyEmptyBlock [as default] (/home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapPossiblyEmptyBlock.js:44:33)                                                                   
    at Object.mapProgram [as default] (/home/ilya/zont/node_modules/decaffeinate-parser/dist/mappers/mapProgram.js:6:114)                                                                                         
    at Object.parse (/home/ilya/zont/node_modules/decaffeinate-parser/dist/parser.js:20:42)
    at Function.DecaffeinateContext.create (/home/ilya/zont/node_modules/decaffeinate/dist/utils/DecaffeinateContext.js:20:45)                                                                                    
    at Function.TransformCoffeeScriptStage.run (/home/ilya/zont/node_modules/decaffeinate/dist/stages/TransformCoffeeScriptStage.js:22:53)                                                                        
    at runStage (/home/ilya/zont/node_modules/decaffeinate/dist/index.js:96:22)
    at /home/ilya/zont/node_modules/decaffeinate/dist/index.js:88:18
    at Array.forEach (<anonymous>)
    at runStages (/home/ilya/zont/node_modules/decaffeinate/dist/index.js:87:12)
    at Object.convert (/home/ilya/zont/node_modules/decaffeinate/dist/index.js:60:18)
    at runWithCode (/home/ilya/zont/node_modules/decaffeinate/dist/cli.js:296:28)
    at ReadStream.<anonymous> (/home/ilya/zont/node_modules/decaffeinate/dist/cli.js:278:42)
    at ReadStream.emit (events.js:194:15)
    at endReadableNT (_stream_readable.js:1103:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)

This is a usual way we use to comment parts of JSX in CoffeeScript 2.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions