Mercurial > browser-couch
changeset 17:4edbac0644f9
The dicitonary no longer needs to be ordered.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Mon, 13 Apr 2009 10:46:51 -0700 |
parents | 53b9f2e988da |
children | 75b17e0a7897 |
files | browser-couch.js tests.js |
diffstat | 2 files changed, 7 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/browser-couch.js Fri Apr 10 17:25:57 2009 -0700 +++ b/browser-couch.js Mon Apr 13 10:46:51 2009 -0700 @@ -88,21 +88,6 @@ var keysAndValues = []; var keyIndex = {}; - function sort() { - keyIndex = {}; - keysAndValues.sort(function compare(a, b) { - if (a[0] < b[0]) - return -1; - if (a[0] > b[0]) - return 1; - return 0; - }); - for (var i = 0; i < keysAndValues.length; i++) { - var tuple = keysAndValues[i]; - keyIndex[tuple[0]] = i; - } - } - this.has = function Dictionary_has(key) { return (key in keyIndex); }; @@ -122,15 +107,17 @@ this.set = function Dictionary_set(key, value) { if (key in keyIndex) keysAndValues[keyIndex[key]][1] = value; - else { - keysAndValues.push([key, value]); - sort(); - } + else + keyIndex[key] = keysAndValues.push([key, value]) - 1; }; this.delete = function Dictionary_delete(key) { keysAndValues.splice(keyIndex[key], 1); - sort(); + keyIndex = {}; + for (var i = 0; i < keysAndValues.length; i++) { + var tuple = keysAndValues[i]; + keyIndex[tuple[0]] = i; + } }; this.clear = function Dictionary_clear() {
--- a/tests.js Fri Apr 10 17:25:57 2009 -0700 +++ b/tests.js Mon Apr 13 10:46:51 2009 -0700 @@ -49,15 +49,12 @@ dict.set('bar', {b: 'goodbye'}); self.assertEqual(dict.get('foo').a, 'hello'); self.assertEqual(dict.get('bar').b, 'goodbye'); - self.assertEqual(dict.getNthValue(0).b, 'goodbye'); - self.assertEqual(dict.getNthValue(1).a, 'hello'); self.assertEqual(dict.getLength(), 2); self.assertEqual(dict.has('foo'), true); self.assertEqual(dict.has('bar'), true); self.assertEqual(dict.has('spatula'), false); dict.delete('bar'); self.assertEqual(dict.getLength(), 1); - self.assertEqual(dict.getNthValue(0).a, 'hello'); self.assertEqual(dict.has('foo'), true); }, testDbView_async: function(self) {