From 0606fa3703d872721c986d3e6cc9a014c048b6be Mon Sep 17 00:00:00 2001 From: mfranz <mfranz> Date: Wed, 21 Mar 2007 18:37:06 +0000 Subject: [PATCH] make condition() slightly faster and prettier (or not) --- Nasal/props.nas | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Nasal/props.nas b/Nasal/props.nas index 59eb084b0..fb94d8b81 100644 --- a/Nasal/props.nas +++ b/Nasal/props.nas @@ -215,12 +215,12 @@ var _cond = func(p) { if(n == "or") { return _cond_or(p); } if(n == "and") { return _cond_and(p); } if(n == "not") { return !_cond_and(p); } - if(n == "equals") { return _cond_cmp(p, "EQ"); } - if(n == "not-equals") { return !_cond_cmp(p, "EQ"); } - if(n == "less-than") { return _cond_cmp(p, "LT"); } - if(n == "greater-than") { return _cond_cmp(p, "GT"); } - if(n == "less-than-equals") { return !_cond_cmp(p, "GT"); } - if(n == "greater-than-equals") { return !_cond_cmp(p, "LT"); } + if(n == "equals") { return _cond_cmp(p, 0); } + if(n == "not-equals") { return !_cond_cmp(p, 0); } + if(n == "less-than") { return _cond_cmp(p, -1); } + if(n == "greater-than") { return _cond_cmp(p, 1); } + if(n == "less-than-equals") { return !_cond_cmp(p, 1); } + if(n == "greater-than-equals") { return !_cond_cmp(p, -1); } if(n == "property") { return !!getprop(p.getValue()); } printlog("alert", "condition: invalid operator ", n); dump(p); @@ -251,7 +251,9 @@ var _cond_cmp = func(p, op) { dump(p); return nil; } - return op == "LT" ? left < right : op == "GT" ? left > right : left == right; + if(op < 0) { return left < right; } + if(op > 0) { return left > right; } + return left == right; }