From e476bfea5261b04e32cd444208bbffa34bc6f475 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 13 Oct 2017 18:09:04 -0700 Subject: Improved code generation for "when" statements using elseif, and improved code generation for loops by omitting goto labels when not used. --- utils.moon | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'utils.moon') diff --git a/utils.moon b/utils.moon index 9cceaac..7d1e39e 100644 --- a/utils.moon +++ b/utils.moon @@ -138,15 +138,16 @@ utils = { comparison = if reverse then ((x,y)->(keyFn(x)>keyFn(y))) else ((x,y)->(keyFn(x) + equivalent: (x,y,depth=1)-> if x == y then return true if type(x) != type(y) then return false if type(x) != 'table' then return false + if depth == 0 then return false for k,v in pairs(x) - if y[k] != v + unless utils.equivalent(y[k], v, depth-1) return false for k,v in pairs(y) - if x[k] != v + unless utils.equivalent(x[k], v, depth-1) return false return true -- cgit v1.2.3