[CLJS-471] Empty regexp causes Closure Compiler error Created: 13/Feb/13 Updated: 25/Apr/13
|Reporter:||Bodil Stokke||Assignee:||Michał Marczyk|
An empty regexp of the form #"" compiles to //, which is not an empty regexp but a comment, causing the code following the supposed regexp on the affected line to be commented out. This tends to cause compiler errors when Closure Compiler tries to parse it.
#"" should instead produce either /(?:)/ or new RegExp("").
|Comment by Michał Marczyk [ 06/Apr/13 6:50 PM ]|
|Comment by David Nolen [ 24/Apr/13 9:52 PM ]|
I tried applying this in master, the included test fails.
|Comment by Michał Marczyk [ 25/Apr/13 5:57 AM ]|
Thanks for letting me know. I've checked the value of new RegExp("").source in a Node.js REPL (0.10.3) and it turns out to be '(?'. So, how important is it that we return "#\"\"" rather than "#\"(?\"" anyway? I'm thinking maybe not that much, seeing how regexp support in JS is different to that on the JVM in more fundamental ways. I'll just assume this is correct and attach a new patch accepting both representations soon. Of course if there's a better way to do it, I'll be happy to implement it.