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) {