From b7ca54058c1543f159b8a362bd7f5e1d8a124d6d Mon Sep 17 00:00:00 2001 From: Danny Yoo Date: Fri, 10 Feb 2012 14:57:34 -0500 Subject: [PATCH] more micro-optimizations --- js-assembler/runtime-src/baselib-check.js | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/js-assembler/runtime-src/baselib-check.js b/js-assembler/runtime-src/baselib-check.js index 138704da..64e4c327 100644 --- a/js-assembler/runtime-src/baselib-check.js +++ b/js-assembler/runtime-src/baselib-check.js @@ -10,6 +10,7 @@ var EMPTY = baselib.lists.EMPTY; var isPair = baselib.lists.isPair; + var isList = baselib.lists.isList; var makeLowLevelEqHash = baselib.hashes.makeLowLevelEqHash; @@ -75,26 +76,14 @@ var makeCheckListofArgumentType = function (predicate, predicateName) { var listPredicate = function (x) { - var seen = makeLowLevelEqHash(); + if (! isList(x)) { return false; } while (true) { if (x === EMPTY){ return true; } - - if (!isPair(x)) { - return false; - } - - if(seen.containsKey(x)) { - // raise an error? we've got a cycle! - return false; - } - if (! predicate(x.first)) { return false; } - - seen.put(x, true); x = x.rest; } }; @@ -210,7 +199,7 @@ 'pair'); var checkList = makeCheckArgumentType( - baselib.lists.isList, + isList, 'list'); var checkVector = makeCheckArgumentType(