//------------------------------------------------------------------------------------------------------- // Copyright (C) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. //------------------------------------------------------------------------------------------------------- //Array sort testing for Object type var x = new Object(); x = [8,41, 25, 7]; x.foo = Array.prototype.sort; WScript.Echo(x.foo(function(a,b){return a - b})); y = [9, 8, 4, 10, 190, 12, 20]; y.foo = Array.prototype.sort; WScript.Echo(y.foo()); // Test sort on generic object var objs = { "empty array": function () { return []; }, "array with one undefined": function () { return [undefined]; }, "array with one null": function () { var o = [0]; delete o[0]; return o; }, "array with two undefined": function () { return [undefined, undefined]; }, "array with multiple undefined": function () { var o = [undefined,,undefined,undefined,,,,undefined]; return o; }, "array with multiple null": function () { var o = [7,,5,2,,,6]; for (var i = 0; i < o.length; i++) { delete o[i]; } return o; }, "array with mixed undefined and null": function () { var o = [undefined,1,,9,,3,8,undefined]; delete o[0]; return o; }, "empty object": function () { return { length: 0 }; }, "object with one undefined": function () { return { 0: undefined, length: 1 }; }, "object with one missing": function () { return { length: 1 }; }, "object with undefined, missing": function () { return { 0: undefined, length: 2 }; }, "object with multiple undefined": function () { return { 0: undefined, 3: undefined, 7: undefined, 8: undefined, length: 10 }; }, "adhoc object": function () { return { 0: 7, 2: 5, 3: 2, 6: 6, length: 10 }; }, }; function getObj(name) { var obj = objs[name](); obj.sort = Array.prototype.sort; obj.join = Array.prototype.join; obj.toString = Array.prototype.toString; return obj; } var echo = WScript.Echo; echo(); for (var name in objs) { echo("Test " + name); echo(getObj(name).sort()); echo(getObj(name).sort(function(a,b){return b - a;})); echo(); }