Fork of daniellemaywood.uk/gleam — Wasm codegen work
2

Configure Feed

Select the types of activity you want to include in your feed.

Optimise more existing cases for collapsing `else-if`

+12 -18
+2 -4
compiler-core/src/javascript/decision.rs
··· 371 371 let if_true_body = this.body_expression(if_true.clause_index)?; 372 372 Ok(join_with_line(if_true_bindings, if_true_body)) 373 373 })?; 374 - let if_false = self 375 - .inside_new_scope(|this| this.decision(if_false))? 376 - .into_doc(); 374 + let if_false = self.inside_new_scope(|this| this.decision(if_false))?; 377 375 378 376 // We can now piece everything together into a case body! 379 377 let if_ = CaseBody::If { ··· 387 385 CaseBody::IfElse( 388 386 if_.into_doc() 389 387 .append(" else ") 390 - .append(break_block(if_false)), 388 + .append(if_false.document_after_else()), 391 389 ) 392 390 }; 393 391
+10 -14
compiler-core/src/javascript/tests/snapshots/gleam_core__javascript__tests__case_clause_guards__keyword_var.snap
··· 34 34 let var$ = 7; 35 35 if (class$ === while$) { 36 36 return true; 37 + } else if (isEqual(toList([class$]), toList([5]))) { 38 + return true; 37 39 } else { 38 - if (isEqual(toList([class$]), toList([5]))) { 40 + let function$1 = var$; 41 + if (isEqual([function$1], [5])) { 42 + return false; 43 + } else if (10 === 5) { 39 44 return true; 40 45 } else { 41 - let function$1 = var$; 42 - if (isEqual([function$1], [5])) { 46 + let while$1 = var$; 47 + if (while$1 > 5) { 43 48 return false; 44 49 } else { 45 - if (10 === 5) { 46 - return true; 47 - } else { 48 - let while$1 = var$; 49 - if (while$1 > 5) { 50 - return false; 51 - } else { 52 - let class$1 = var$; 53 - return false; 54 - } 55 - } 50 + let class$1 = var$; 51 + return false; 56 52 } 57 53 } 58 54 }