Testing that sorting behaves reasonably with a bad comparison function.
authorolehougaard <olehougaard@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 14 Oct 2008 10:50:44 +0000 (10:50 +0000)
committerolehougaard <olehougaard@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 14 Oct 2008 10:50:44 +0000 (10:50 +0000)
Review URL: http://codereview.chromium.org/7137

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

test/mjsunit/array-sort.js

index a68b819..dfa4590 100644 (file)
@@ -134,9 +134,21 @@ TestArraySortingWithHoles();
 
 // Test array sorting with undefined elemeents in the array.
 function TestArraySortingWithUndefined() {
-  var a = [3, void 0, 2];
+  var a = [ 3, void 0, 2 ];
   a.sort();
-  assertArrayEquals([ 2, 3, void 0], a);
+  assertArrayEquals([ 2, 3, void 0 ], a);
 }
 
 TestArraySortingWithUndefined();
+
+// Test that sorting using an unsound comparison function still gives a
+// sane result, i.e. it terminates without error and retains the elements
+// in the array.
+function TestArraySortingWithUnsoundComparisonFunction() {
+  var a = [ 3, void 0, 2 ];
+  a.sort(function(x, y) { return 1; });
+  a.sort();
+  assertArrayEquals([ 2, 3, void 0 ], a);
+}
+
+TestArraySortingWithUnsoundComparisonFunction();