| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| |
| var x = [1, 2, 2, 4, 5, +0, -0, NaN, 0, true, true , false] |
| |
| for(i=-3; i < 15;i++) |
| { |
| WScript.Echo(x.indexOf(i)); |
| for(j=-3; j< 15;j++) |
| { |
| WScript.Echo(x.indexOf(x[i],j)); |
| WScript.Echo(x.indexOf(i,j)); |
| } |
| } |
| |
| var b = function(){}; |
| b.prototype = Array.prototype; |
| |
| var y = new b(); |
| |
| var z = new Object(); |
| var a = new Object(); |
| |
| y[0] = "abc"; |
| y[1] = "def"; |
| y[2] = "efg"; |
| y[3] = true; |
| y[4] = true; |
| y[5] = false; |
| y[6] = a; |
| y[7] = a; |
| y[8] = null; |
| |
| y.length = 10; |
| |
| WScript.Echo(y.indexOf("abc")); |
| WScript.Echo(y.indexOf("abc", 3)); |
| WScript.Echo(y.indexOf("abc", 2)); |
| WScript.Echo(y.indexOf("abc", -2)); |
| |
| WScript.Echo(y.indexOf("efg")); |
| WScript.Echo(y.indexOf("efg", 6)); |
| WScript.Echo(y.indexOf("efg", 1)); |
| WScript.Echo(y.indexOf("efg", -3)); |
| |
| WScript.Echo(y.indexOf("xyg")); |
| WScript.Echo(y.indexOf("esg", 2)); |
| WScript.Echo(y.indexOf("eag", 2)); |
| WScript.Echo(y.indexOf("", -2)); |
| |
| WScript.Echo(y.indexOf(true)); |
| WScript.Echo(y.indexOf(false)); |
| WScript.Echo(y.indexOf(new Boolean(true))); |
| |
| WScript.Echo(y.indexOf(a , 6)); |
| WScript.Echo(y.indexOf(a , 1)); |
| WScript.Echo(y.indexOf(a )); |
| WScript.Echo(y.indexOf(b)); |
| |
| WScript.Echo(y.indexOf(null)); |
| |
| |
| WScript.Echo(y.indexOf()); |
| |
| //implicit calls |
| var a ; |
| var arr = [10]; |
| Object.defineProperty(Array.prototype, "4", {configurable : true, get: function(){a = true; return 30;}}); |
| a = false; |
| arr.length = 6; |
| var f = arr.indexOf(30); |
| WScript.Echo(a); |
| |
| //Float array with gaps |
| var floatArray = new Array(5.5, 5.6); |
| floatArray[6] = 5.6; |
| WScript.Echo(floatArray.indexOf(5.7)); |
| |
| // Cases where we do/don't have to resume after failing to find the value in the head segment. |
| // Run with -forcearraybtree to really stress these. |
| var gap = [0, 1]; |
| WScript.Echo(gap.indexOf(4)); |
| Array.prototype[2] = 'foo'; |
| WScript.Echo(gap.indexOf('foo')); |
| gap[5] = 4; |
| WScript.Echo(gap.indexOf('foo')); |
| WScript.Echo(gap.indexOf(4)); |
| |
| gap = [0, 1.1]; |
| WScript.Echo(gap.indexOf(4)); |
| Array.prototype[2] = 'bar'; |
| WScript.Echo(gap.indexOf('bar')); |
| gap[5] = 4; |
| WScript.Echo(gap.indexOf(4)); |
| WScript.Echo(gap.indexOf('bar')); |
| |
| gap = [0, 'test']; |
| WScript.Echo(gap.indexOf(4)); |
| Array.prototype[2] = 4; |
| WScript.Echo(gap.indexOf(4)); |
| gap[5] = 4; |
| WScript.Echo(gap.indexOf(4)); |
| delete Array.prototype[2] |
| WScript.Echo(gap.indexOf(4)); |