Coffeescript 1.7.1意外的新行怪异

Coffeescript 1.7.1意外的新行怪异,coffeescript,Coffeescript,我有以下代码(大约一年前),用于在应用程序中使用zipcodes。今天我不得不更改一个值,现在突然我无法再编译它了。我在“hilleroed”中的“h”处收到了一条意想不到的新行 我一辈子都搞不清楚出了什么事。这是一个错误还是我遗漏了什么?如果我将代码粘贴到coffeescript.org上的在线编译器中,我会得到相同的错误。如何修复 编辑: 我正在使用咖啡脚本1.7.1。它在1.6.3中起作用 更新: 这是一个意外错误,请参见问题出在Office对象中。此代码失败: offices:

我有以下代码(大约一年前),用于在应用程序中使用zipcodes。今天我不得不更改一个值,现在突然我无法再编译它了。我在“hilleroed”中的“h”处收到了一条意想不到的新行

我一辈子都搞不清楚出了什么事。这是一个错误还是我遗漏了什么?如果我将代码粘贴到coffeescript.org上的在线编译器中,我会得到相同的错误。如何修复

编辑:

我正在使用咖啡脚本1.7.1。它在1.6.3中起作用

更新:


这是一个意外错误,请参见

问题出在Office对象中。此代码失败:

offices:                           
  ringsted: [0..2690]              
    .concat [2770, 2791]           
    .concat [4000..4030]           
    .concat [4050..4990]           
  hilleroed: [2700..2765]          
    .concat [2980..3670]           
    .concat [4040]                 
  kgslyngby: [2800..2970]         
在这一过程中:

offices:                                                                           
  ringsted: [0..2690].concat [2770, 2791].concat [4000..4030].concat [4050..4990]  
  hilleroed: [2700..2765].concat [2980..3670].concat [4040]                        
  kgslyngby: [2800..2970] 
如果确实要保留换行符,请添加一些参数:

offices:                          
  ringsted: ([0..2690]            
    .concat [2770..2791]          
    .concat [4000..4030]          
    .concat [4050..4990])         
  hilleroed: ([2700..2765]        
    .concat [2980..3670]          
    .concat [4040])               
  kgslyngby: [2800..2970]       
编译器似乎对对象定义的结束位置感到困惑。如果你不考虑父母,你会得到这个js:

// without parens

var _i, _j, _k, _l, _results, _results1, _results2, _results3;

({
  offices: {
    ringsted: (function() {
      _results3 = [];
      for (_l = 0; _l <= 233; _l++){ _results3.push(_l); }
      return _results3;
    }).apply(this)
  }.concat((function() {
    _results2 = [];
    for (_k = 2770; _k <= 2791; _k++){ _results2.push(_k); }
    return _results2;
  }).apply(this)).concat((function() {
    _results1 = [];
    for (_j = 4000; _j <= 4030; _j++){ _results1.push(_j); }
    return _results1;
  }).apply(this)).concat((function() {
    _results = [];
    for (_i = 4050; _i <= 4990; _i++){ _results.push(_i); }
    return _results;
  }).apply(this))
});
//不带参数
变量i、j、k、l、结果1、结果2、结果3;
({
办公室:{
林斯特德:(函数(){
_结果3=[];

对于(_l=0;_l可能您的编辑器切换了换行符方案,或插入了制表符而不是空格。请还原并重试,并尝试确保不会发生这种情况。复制已粘贴到此处且可能已由格式化程序清理的内容时,很难进行诊断。您的编辑器是否允许您查看空白字符/行结尾?试过了,没有雪茄。如果是这样的话,它也会失败得更早。如果你只是把这里贴的东西复制到coffeescript.org的“try coffeescript”你会得到同样的错误。你是对的,看起来plnkr使用的是Coffee 1.6.3。plnkr一定使用的是旧版本的coffeescript。如果我将你的示例中的代码复制粘贴到coffeescript.org上的编辑器中,我会得到错误。你尝试过使用coffeescript.org的Supreme lint吗?它大多数时候都会发现类似的错误。我只是尝试过使用1.6.3进行编译,而且很有效。看起来它可能是1.7.1中的一个bug。@Freshyeball我差不多每天都在用coffeescript,已经有2年了。到目前为止,我还没有用过一根棉线。我会试试看,但它开始看起来像1.7.1中的一个bug。有效,有效,失败。这些都是coffeescript.org链接的缩短版本,非缩短版本是太大了,无法发表评论。希望第三个案例将有助于将问题缩小到任何想要提交错误报告的人。
// without parens

var _i, _j, _k, _l, _results, _results1, _results2, _results3;

({
  offices: {
    ringsted: (function() {
      _results3 = [];
      for (_l = 0; _l <= 233; _l++){ _results3.push(_l); }
      return _results3;
    }).apply(this)
  }.concat((function() {
    _results2 = [];
    for (_k = 2770; _k <= 2791; _k++){ _results2.push(_k); }
    return _results2;
  }).apply(this)).concat((function() {
    _results1 = [];
    for (_j = 4000; _j <= 4030; _j++){ _results1.push(_j); }
    return _results1;
  }).apply(this)).concat((function() {
    _results = [];
    for (_i = 4050; _i <= 4990; _i++){ _results.push(_i); }
    return _results;
  }).apply(this))
});