| 24 | description("test that comparison operators work correctly.") |
| 25 | |
| 26 | function makeTest(start, end, expression, relationship, override, invert) { |
| 27 | var resultValue = eval(relationship + expression + 0) || !!override; |
| 28 | if (invert) |
| 29 | resultValue = !resultValue; |
| 30 | var expr = start + expression + end; |
| 31 | var result = []; |
| 32 | function func(content) { var f = new Function(content); f.toString = function(){ return content}; return f; } |
| 33 | result.push([new func("return " + expr + ";"), resultValue]); |
| 34 | result.push([new func("if (" + expr + ") return true; return false;"), resultValue]); |
| 35 | result.push([new func("var k = 0; while (" + expr + ") if (k++) return true; return false;"), resultValue]); |
| 36 | result.push([new func("var k = 0; for (; " + expr + "; ) if (k++) return true; return false;"), resultValue]); |
| 37 | return result; |
| 38 | } |
| 39 | function doTest(lhs, rhs, relationship) { |
| 40 | var expressionParts = [["(",")"],["(", ") || 1", true],["(", ") && 1"],["(", ") || 1", true],["1 || (",")", true],["1 && (",")"]]; |
| 41 | var expressions = []; |