Make trailing else on switch fix pass on to multiple when switches

This commit is contained in:
Chris Hoffman 2010-02-22 19:17:54 -06:00
parent a64afe6162
commit fdffacfb40
3 changed files with 13 additions and 2 deletions

View File

@ -1248,7 +1248,7 @@
// Rewrite a chain of IfNodes to add a default case as the final else.
add_else: function add_else(exprs, statement) {
if (this.is_chain()) {
this.else_body.add_else(exprs);
this.else_body.add_else(exprs, statement);
} else {
if (!(statement)) {
exprs = exprs.unwrap();

View File

@ -987,7 +987,7 @@ IfNode: exports.IfNode: inherit Node, {
# Rewrite a chain of IfNodes to add a default case as the final else.
add_else: (exprs, statement) ->
if @is_chain()
@else_body.add_else exprs
@else_body.add_else exprs, statement
else
exprs: exprs.unwrap() unless statement
@children.push @else_body: exprs

View File

@ -51,3 +51,14 @@ switch "word"
result: true unless false
ok result
result: false
switch "word"
when "one thing"
do_something()
when "other thing"
do_something()
else
result: true unless false
ok result