Coffeescript Coffee脚本1.6.3出现奇数缩进错误

Coffeescript Coffee脚本1.6.3出现奇数缩进错误,coffeescript,Coffeescript,我更新了最新的咖啡脚本,但仍然得到以下错误:关于什么可能导致错误的想法 ie = (-> undef = undefined v = 3 div = document.createElement("div") all = div.getElementsByTagName("i") while div.innerHTML = "<!--[if gt IE " + (++v) +"]><i></i><![endif]-->

我更新了最新的咖啡脚本,但仍然得到以下错误:关于什么可能导致错误的想法

ie = (->
  undef = undefined
  v = 3
  div = document.createElement("div")
  all = div.getElementsByTagName("i")
    while div.innerHTML = "<!--[if gt IE " + (++v) +"]><i></i><![endif]-->"
  all[0]

  (if v > 4 then v else undef)
())
ie=(->
未定义=未定义
v=3
div=document.createElement(“div”)
all=div.getElementsByTagName(“i”)
而div.innerHTML=“”
全部[0]
(如果v>4,则v否则未定义)
())
我已经从一个巨大的js文件中删除了这一行,我正在将其转换为coffee脚本,所有这些都编译得很好。有人知道这有什么问题吗

SyntaxError: unexpected INDENT
>> On line: 816
>>     while div.innerHTML = "<!--[if gt IE " + (++v) +"]><i></i><![endif]-->"
>> ^
语法错误:意外缩进
>>在线:816
>>而div.innerHTML=“”
>> ^

假设你的JS是从那里来的,那么你就把JavaScript翻译成CoffeeScript

你想要的是这样的:

ie = do ->
  version = 3
  div = document.createElement 'div'
  all = div.getElementsByTagName 'i'

  testVersion = ->
    div.innerHTML = "<!--[if gt IE #{version}]><i></i><![endif]-->"
    all[0]

  while testVersion()
    version += 1

  if version > 4 then version else no
ie=do->
版本=3
div=document.createElement“div”
all=div.getElementsByTagName'i'
testVersion=->
div.innerHTML=“”
全部[0]
而testVersion()
版本+=1
如果版本>4,则版本其他否

为什么
缩进?我很难弄清楚那个循环的预期结构。@muistooshort源代码中的while是奇怪的,它不是while(stuff是真的){do this other stuff}
它是while(do this stuff)
。源js对我来说真的很奇怪,我想这把翻译搞砸了。我实际上使用了一些工具将js转换成coffeescript。它在过去一直有效,但这次我认为它失败了miserably@imaginethepoet我认为源代码中while循环的结构搞错了翻译器。不是你的错。我不知道这是“棘手”的js还是糟糕的js。muistooshort可能知道。@phenomnomnominal返回一个数字或布尔值对我来说似乎很奇怪。如果你不写其他的,你会返回未定义的,这看起来很好,因为这是一种生活。自动翻译器(AFAIK)都以“有趣”的方式被破坏了。我认为它们根本不应该被使用:把你的JavaScript作为JavaScript,或者手工翻译,然后学习一些东西。@jcollum,我想我不同意。我的假设是,如果ie,它将被用作类似于
的东西。而且它实际上不应该是未定义的,因为IIFE已经被评估过了,并且确实应该改变一些东西,所以显式的
false
似乎更好。