From 87c5aac69fb67f9775402ffb182443e101af1b51 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Fri, 23 May 2014 14:30:36 -0400 Subject: [PATCH] Use JSON stringification to distinguish between numbers and strings in pattern literals --- route.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/route.js b/route.js index 922ff21..850e70c 100644 --- a/route.js +++ b/route.js @@ -128,7 +128,7 @@ function Routing(exports) { return rseq(SOA, acc); } - return rseq(p, acc); + return rseq(JSON.stringify(p), acc); } } @@ -571,8 +571,9 @@ function Routing(exports) { r = r.get(__); } } else { - if (v in r.entries) { - r = r.get(v); + var key = JSON.stringify(v); + if (key in r.entries) { + r = r.get(key); } else { r = r.get(__); } @@ -702,7 +703,11 @@ function Routing(exports) { return; } - acc.push(p); + if (p === __) { + acc.push(p); + } else { + acc.push(JSON.stringify(p)); + } } } @@ -906,7 +911,7 @@ function Routing(exports) { } else if (is_keyClose(key)) { die("matcherKeys: internal error: unexpected key-close"); } else { - piece = k(key, mk); + piece = k(JSON.parse(key), mk); } if (piece == null) return null; acc = acc.concat(piece);