mirror of
https://github.com/jashkenas/coffeescript.git
synced 2022-11-09 12:23:24 -05:00
for whatever reason, don't need to force else-bodies to compile as statements anymore ... let them do what they want
This commit is contained in:
parent
e916d4648d
commit
6555473788
6 changed files with 24 additions and 12 deletions
|
@ -2,7 +2,7 @@ grade: student =>
|
||||||
if student.excellent_work
|
if student.excellent_work
|
||||||
"A+"
|
"A+"
|
||||||
else if student.okay_stuff
|
else if student.okay_stuff
|
||||||
"B"
|
if student.tried_hard then "B" else "B-".
|
||||||
else
|
else
|
||||||
"C"..
|
"C"..
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
body {
|
body {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
background: #efefef;
|
background: #efeff9;
|
||||||
color: #191933;
|
color: #191933;
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
<!-- <%# code_for('intro') %>-->
|
<!-- <%# code_for('intro') %>-->
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<b>Disclaimer:</b><br />
|
<b>Disclaimer:</b>
|
||||||
CoffeeScript is just for fun and seriously alpha. <i>There is no guarantee,
|
CoffeeScript is just for fun and seriously alpha. <i>There is no guarantee,
|
||||||
explicit or implied, of its suitability for any purpose.</i> That said, it
|
explicit or implied, of its suitability for any purpose.</i> That said, it
|
||||||
compiles into pretty-printed JavaScript (the good parts) that can pass through
|
compiles into pretty-printed JavaScript (the good parts) that can pass through
|
||||||
|
|
|
@ -3,7 +3,11 @@
|
||||||
if (student.excellent_work) {
|
if (student.excellent_work) {
|
||||||
return "A+";
|
return "A+";
|
||||||
} else if (student.okay_stuff) {
|
} else if (student.okay_stuff) {
|
||||||
return "B";
|
return if (student.tried_hard) {
|
||||||
|
return "B";
|
||||||
|
} else {
|
||||||
|
return "B-";
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
return "C";
|
return "C";
|
||||||
}
|
}
|
||||||
|
|
20
index.html
20
index.html
|
@ -26,7 +26,7 @@
|
||||||
<!-- -->
|
<!-- -->
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<b>Disclaimer:</b><br />
|
<b>Disclaimer:</b>
|
||||||
CoffeeScript is just for fun and seriously alpha. <i>There is no guarantee,
|
CoffeeScript is just for fun and seriously alpha. <i>There is no guarantee,
|
||||||
explicit or implied, of its suitability for any purpose.</i> That said, it
|
explicit or implied, of its suitability for any purpose.</i> That said, it
|
||||||
compiles into pretty-printed JavaScript (the good parts) that can pass through
|
compiles into pretty-printed JavaScript (the good parts) that can pass through
|
||||||
|
@ -210,7 +210,7 @@ expensive <span class="Keyword">=</span> expensive <span class="Keyword">||</spa
|
||||||
<span class="Keyword">if</span> student.excellent_work
|
<span class="Keyword">if</span> student.excellent_work
|
||||||
<span class="String"><span class="String">"</span>A+<span class="String">"</span></span>
|
<span class="String"><span class="String">"</span>A+<span class="String">"</span></span>
|
||||||
<span class="Keyword">else</span> <span class="Keyword">if</span> student.okay_stuff
|
<span class="Keyword">else</span> <span class="Keyword">if</span> student.okay_stuff
|
||||||
<span class="String"><span class="String">"</span>B<span class="String">"</span></span>
|
<span class="Keyword">if</span> student.tried_hard <span class="Keyword">then</span> <span class="String"><span class="String">"</span>B<span class="String">"</span></span> <span class="Keyword">else</span> <span class="String"><span class="String">"</span>B-<span class="String">"</span></span>.
|
||||||
<span class="Keyword">else</span>
|
<span class="Keyword">else</span>
|
||||||
<span class="String"><span class="String">"</span>C<span class="String">"</span></span>..
|
<span class="String"><span class="String">"</span>C<span class="String">"</span></span>..
|
||||||
|
|
||||||
|
@ -219,7 +219,11 @@ eldest<span class="Keyword">:</span> <span class="Keyword">if</span> <span class
|
||||||
<span class="Keyword">if</span> (student.excellent_work) {
|
<span class="Keyword">if</span> (student.excellent_work) {
|
||||||
<span class="Keyword">return</span> <span class="String"><span class="String">"</span>A+<span class="String">"</span></span>;
|
<span class="Keyword">return</span> <span class="String"><span class="String">"</span>A+<span class="String">"</span></span>;
|
||||||
} <span class="Keyword">else</span> <span class="Keyword">if</span> (student.okay_stuff) {
|
} <span class="Keyword">else</span> <span class="Keyword">if</span> (student.okay_stuff) {
|
||||||
<span class="Keyword">return</span> <span class="String"><span class="String">"</span>B<span class="String">"</span></span>;
|
<span class="Keyword">return</span> <span class="Keyword">if</span> (student.tried_hard) {
|
||||||
|
<span class="Keyword">return</span> <span class="String"><span class="String">"</span>B<span class="String">"</span></span>;
|
||||||
|
} <span class="Keyword">else</span> {
|
||||||
|
<span class="Keyword">return</span> <span class="String"><span class="String">"</span>B-<span class="String">"</span></span>;
|
||||||
|
};
|
||||||
} <span class="Keyword">else</span> {
|
} <span class="Keyword">else</span> {
|
||||||
<span class="Keyword">return</span> <span class="String"><span class="String">"</span>C<span class="String">"</span></span>;
|
<span class="Keyword">return</span> <span class="String"><span class="String">"</span>C<span class="String">"</span></span>;
|
||||||
}
|
}
|
||||||
|
@ -229,7 +233,11 @@ eldest<span class="Keyword">:</span> <span class="Keyword">if</span> <span class
|
||||||
if (student.excellent_work) {
|
if (student.excellent_work) {
|
||||||
return "A+";
|
return "A+";
|
||||||
} else if (student.okay_stuff) {
|
} else if (student.okay_stuff) {
|
||||||
return "B";
|
return if (student.tried_hard) {
|
||||||
|
return "B";
|
||||||
|
} else {
|
||||||
|
return "B-";
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
return "C";
|
return "C";
|
||||||
}
|
}
|
||||||
|
@ -319,13 +327,13 @@ var three_to_six = nums.slice(3, 6 + 1);
|
||||||
alert(<span class="Variable">this</span>.name <span class="Keyword">+</span> <span class="String"><span class="String">"</span> moved <span class="String">"</span></span> <span class="Keyword">+</span> meters <span class="Keyword">+</span> <span class="String"><span class="String">"</span>m.<span class="String">"</span></span>).
|
alert(<span class="Variable">this</span>.name <span class="Keyword">+</span> <span class="String"><span class="String">"</span> moved <span class="String">"</span></span> <span class="Keyword">+</span> meters <span class="Keyword">+</span> <span class="String"><span class="String">"</span>m.<span class="String">"</span></span>).
|
||||||
|
|
||||||
<span class="FunctionName">Snake</span><span class="Keyword">:</span> <span class="FunctionArgument">name</span> <span class="Storage">=></span> <span class="Variable">this</span>.name<span class="Keyword">:</span> name.
|
<span class="FunctionName">Snake</span><span class="Keyword">:</span> <span class="FunctionArgument">name</span> <span class="Storage">=></span> <span class="Variable">this</span>.name<span class="Keyword">:</span> name.
|
||||||
Snake <span class="Variable">extends</span> <span class="Keyword">new</span> <span class="TypeName">Animal</span>()
|
Snake.prototype<span class="Keyword">:</span> <span class="Keyword">new</span> <span class="TypeName">Animal</span>()
|
||||||
<span class="FunctionName">Snake.prototype.move</span><span class="Keyword">:</span> <span class="Storage">=></span>
|
<span class="FunctionName">Snake.prototype.move</span><span class="Keyword">:</span> <span class="Storage">=></span>
|
||||||
alert(<span class="String"><span class="String">"</span>Slithering...<span class="String">"</span></span>)
|
alert(<span class="String"><span class="String">"</span>Slithering...<span class="String">"</span></span>)
|
||||||
<span class="Variable">super</span>(<span class="Number">5</span>).
|
<span class="Variable">super</span>(<span class="Number">5</span>).
|
||||||
|
|
||||||
<span class="FunctionName">Horse</span><span class="Keyword">:</span> <span class="FunctionArgument">name</span> <span class="Storage">=></span> <span class="Variable">this</span>.name<span class="Keyword">:</span> name.
|
<span class="FunctionName">Horse</span><span class="Keyword">:</span> <span class="FunctionArgument">name</span> <span class="Storage">=></span> <span class="Variable">this</span>.name<span class="Keyword">:</span> name.
|
||||||
Horse <span class="Variable">extends</span> <span class="Keyword">new</span> <span class="TypeName">Animal</span>()
|
Horse.prototype<span class="Keyword">:</span> <span class="Keyword">new</span> <span class="TypeName">Animal</span>()
|
||||||
<span class="FunctionName">Horse.prototype.move</span><span class="Keyword">:</span> <span class="Storage">=></span>
|
<span class="FunctionName">Horse.prototype.move</span><span class="Keyword">:</span> <span class="Storage">=></span>
|
||||||
alert(<span class="String"><span class="String">"</span>Galloping...<span class="String">"</span></span>)
|
alert(<span class="String"><span class="String">"</span>Galloping...<span class="String">"</span></span>)
|
||||||
<span class="Variable">super</span>(<span class="Number">45</span>).
|
<span class="Variable">super</span>(<span class="Number">45</span>).
|
||||||
|
|
|
@ -648,7 +648,7 @@ module CoffeeScript
|
||||||
|
|
||||||
def compile(o={})
|
def compile(o={})
|
||||||
o = super(o)
|
o = super(o)
|
||||||
write(o[:statement] || statement? ? compile_statement(o) : compile_ternary(o))
|
write(statement? ? compile_statement(o) : compile_ternary(o))
|
||||||
end
|
end
|
||||||
|
|
||||||
# Compile the IfNode as a regular if-else statement. Flattened chains
|
# Compile the IfNode as a regular if-else statement. Flattened chains
|
||||||
|
@ -659,7 +659,7 @@ module CoffeeScript
|
||||||
if_part = "if (#{@condition.compile(o.merge(:no_paren => true))}) {\n#{Expressions.wrap(@body).compile(o)}\n#{indent}}"
|
if_part = "if (#{@condition.compile(o.merge(:no_paren => true))}) {\n#{Expressions.wrap(@body).compile(o)}\n#{indent}}"
|
||||||
return if_part unless @else_body
|
return if_part unless @else_body
|
||||||
else_part = chain? ?
|
else_part = chain? ?
|
||||||
" else #{@else_body.compile(o.merge(:statement => true, :indent => indent))}" :
|
" else #{@else_body.compile(o.merge(:indent => indent))}" :
|
||||||
" else {\n#{Expressions.wrap(@else_body).compile(o)}\n#{indent}}"
|
" else {\n#{Expressions.wrap(@else_body).compile(o)}\n#{indent}}"
|
||||||
if_part + else_part
|
if_part + else_part
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue