mirror of
https://github.com/jashkenas/coffeescript.git
synced 2026-02-18 03:21:20 -05:00
fixed range comprehension indexing
This commit is contained in:
@@ -542,10 +542,12 @@ module CoffeeScript
|
|||||||
if range
|
if range
|
||||||
source_part = ''
|
source_part = ''
|
||||||
operator = @source.exclusive? ? '<' : '<='
|
operator = @source.exclusive? ? '<' : '<='
|
||||||
for_part = "#{ivar}=#{@source.from.compile(o)}, #{lvar}=#{@source.to.compile(o)}; #{ivar}#{operator}#{lvar}; #{ivar}++"
|
index_var = scope.free_variable
|
||||||
|
for_part = "#{index_var}=0, #{ivar}=#{@source.from.compile(o)}, #{lvar}=#{@source.to.compile(o)}; #{ivar}#{operator}#{lvar}; #{ivar}++, #{index_var}++"
|
||||||
var_part = ''
|
var_part = ''
|
||||||
index_part = ''
|
index_part = ''
|
||||||
else
|
else
|
||||||
|
index_var = nil
|
||||||
source_part = "#{svar} = #{@source.compile(o)};\n#{o[:indent]}"
|
source_part = "#{svar} = #{@source.compile(o)};\n#{o[:indent]}"
|
||||||
for_part = "#{ivar}=0, #{lvar}=#{svar}.length; #{ivar}<#{lvar}; #{ivar}++"
|
for_part = "#{ivar}=0, #{lvar}=#{svar}.length; #{ivar}<#{lvar}; #{ivar}++"
|
||||||
var_part = "\n#{o[:indent] + TAB}#{@name} = #{svar}[#{ivar}];"
|
var_part = "\n#{o[:indent] + TAB}#{@name} = #{svar}[#{ivar}];"
|
||||||
@@ -554,7 +556,7 @@ module CoffeeScript
|
|||||||
body = @body
|
body = @body
|
||||||
suffix = ';'
|
suffix = ';'
|
||||||
set_result = "#{rvar} = [];\n#{o[:indent]}"
|
set_result = "#{rvar} = [];\n#{o[:indent]}"
|
||||||
save_result = "#{rvar}[#{ivar}] = "
|
save_result = "#{rvar}[#{index_var || ivar}] = "
|
||||||
return_result = rvar
|
return_result = rvar
|
||||||
|
|
||||||
if o[:return] || o[:assign]
|
if o[:return] || o[:assign]
|
||||||
|
|||||||
Reference in New Issue
Block a user