| //------------------------------------------------------------------------------------------------------- | |
| // Copyright (C) Microsoft. All rights reserved. | |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. | |
| //------------------------------------------------------------------------------------------------------- | |
| function write(args) | |
| { | |
| WScript.Echo(args); | |
| } | |
| write("Test case 1"); | |
| for(var i =0;i<10;i++) | |
| { | |
| Object.defineProperty(Array.prototype, i, { get: function (i) { return function () { return "p"+i; } }(i), configurable: true, enumerable: true }); | |
| } | |
| var arr=new Array(10); | |
| var newarr=arr.splice(0,5,"d1","d2","d3","d4") | |
| write(arr); | |
| write(arr.length); | |
| write(newarr); | |
| write(newarr.length); | |
| for(var i =0;i<10;i++) | |
| { | |
| delete Array.prototype[i]; | |
| } | |
| write(""); | |
| write("Test case 2"); | |
| for(var i =0;i<10;i++) | |
| { | |
| Object.defineProperty(Array.prototype, i, { get: function (i) { return function () { return "p"+i; } }(i), configurable: true, enumerable: true }); | |
| } | |
| var arr=new Array(10); | |
| var newarr=arr.splice(0,5,"d1","d2","d3","d4","d5","d6","d7") | |
| write(arr); | |
| write(arr.length); | |
| write(newarr); | |
| write(newarr.length); | |
| for(var i =0;i<10;i++) | |
| { | |
| delete Array.prototype[i]; | |
| } | |
| write(""); | |
| write("Test case 3"); | |
| for(var i =0;i<10;i++) | |
| { | |
| i++; | |
| Object.defineProperty(Array.prototype, i, { get: function (i) { return function () { return "p"+i; } }(i), configurable: true, enumerable: true }); | |
| } | |
| var arr=new Array(10); | |
| var newarr=arr.splice(0,5,"d1","d2","d3","d4","d5","d6","d7") | |
| write(arr); | |
| write(arr.length); | |
| write(newarr); | |
| write(newarr.length); | |
| for(var i =0;i<10;i++) | |
| { | |
| delete Array.prototype[i]; | |
| } | |
| write(""); | |
| write("Test case 4"); | |
| for(var k=0;k<10;k++) | |
| { | |
| Object.defineProperty(Array.prototype, k, { get: function (k) { return function () { return "P"+k; } }(k), configurable: true, enumerable: true }); | |
| } | |
| var arr=new Array(10); | |
| var newarr=arr.splice(3,5,"d1","d2","d3") | |
| write(arr); | |
| write(arr.length); | |
| write(newarr); | |
| write(newarr.length); | |
| for(var k=0;k<10;k++) | |
| { | |
| delete Array.prototype[k]; | |
| } | |
| write(""); | |
| write("Test case 5"); | |
| for(var k=0;k<10;k++) | |
| { | |
| Object.defineProperty(Array.prototype, k, { get: function (k) { return function () { return "P"+k; } }(k), configurable: true, enumerable: true }); | |
| } | |
| var arr=new Array(10); | |
| var newarr=arr.splice(3,5,"d1","d2","d3") | |
| write(arr); | |
| write(arr.length); | |
| write(newarr); | |
| write(newarr.length); | |
| for(var k=0;k<10;k++) | |
| { | |
| delete Array.prototype[k]; | |
| } | |
| write(""); | |
| write("Test case 6"); | |
| for(var k=0;k<10;k++) | |
| { | |
| Object.defineProperty(Array.prototype, k, { get: function (k) { return function () { return "P"+k; } }(k), configurable: true, enumerable: true }); | |
| } | |
| var arr=new Array(10); | |
| var newarr=arr.splice(3,1,"d1","d2","d3") | |
| write(arr); | |
| write(arr.length); | |
| write(newarr); | |
| write(newarr.length); | |
| for(var k=0;k<10;k++) | |
| { | |
| delete Array.prototype[k]; | |
| } | |
| write(""); | |
| write("Test case 7"); | |
| Object.prototype.shift=Array.prototype.shift; | |
| var obj =new Object(); | |
| obj.length=10; | |
| obj[0]=101; | |
| obj[1]="string"; | |
| obj[9]="lastelement"; | |
| var res=obj.shift() | |
| for(var i in obj) | |
| write("expando:" + i +"=" +obj[i]); | |
| delete Object.prototype.shift; | |
| write(""); | |
| write("Test case 8"); | |
| Object.defineProperty(Object.prototype, 0, { get: function () { return "hello world"; }, configurable: true, enumerable: true }); | |
| Object.defineProperty(Array.prototype, 9, { get: function () { return "p9"; }, configurable: true, enumerable: true }); | |
| var arr =new Array(10); | |
| arr[1]=123; | |
| var res=arr.shift(); | |
| write(res); | |
| write(res.length); | |
| write(arr); | |
| write(arr.length); | |
| delete Object.prototype[0]; | |
| delete Array.prototype[9]; | |
| write(""); | |
| write("Test case 9"); | |
| var arr1 = new Array(2147483649); | |
| arr1[2147483647]=100; | |
| var newarr=arr1.slice(2147483640,2147483648); | |
| write(newarr); | |
| write(newarr.length); | |
| write(arr1.length); | |
| var test11arr = new Array(5); | |
| test11arr[2] = 2; | |
| test11arr[3] = 3; | |
| test11arr[4] = 4; | |
| write(""); | |
| write("Test case 10"); | |
| var arr = []; | |
| for(var i = 1; i< 20; i = i+3) | |
| { | |
| arr[i] = i; | |
| } | |
| for(var i = 0; i< 20; i = i+3) | |
| { | |
| Object.defineProperty(Object.prototype, i, { get: function (i) { return function () { return "O"+i; } }(i), configurable: true, enumerable: true }); | |
| } | |
| for(var i = 1; i< 20; i = i+3) | |
| { | |
| Object.defineProperty(Array.prototype, i, { get: function (i) { return function () { return "a"+i; } }(i), configurable: true, enumerable: true }); | |
| } | |
| arr.shift(); | |
| write(arr); | |
| write(arr.length); | |
| arr.unshift(10); | |
| write(arr); | |
| write(arr.length); | |
| var newarr = arr.splice(5,2,"a","b"); | |
| write(arr); | |
| write(arr.length); | |
| write(newarr); | |
| write(newarr.length); | |
| newarr = arr.splice(7,6,"a","b"); | |
| write(arr); | |
| write(arr.length); | |
| write(newarr); | |
| write(newarr.length); | |
| newarr = arr.splice(10,2,"a","b","c","e","f"); | |
| write(arr); | |
| write(arr.length); | |
| write(newarr); | |
| write(newarr.length); | |
| write(""); | |
| write("Test case 11"); | |
| Object.defineProperty(Object.prototype, 2, { get: function () { return 10; }, configurable: true, enumerable: true }); | |
| var arr = new Array(5); | |
| write(arr); | |
| write(arr.length); | |
| arr.shift(); | |
| write(arr); | |
| write(arr.length); | |
| arr.unshift("10","20"); | |
| arr.shift(); | |
| write(arr); | |
| arr.shift(); | |
| write(arr); | |
| arr.unshift(10,40); | |
| write(arr); | |
| arr.unshift(50); | |
| write(arr); | |
| arr.shift(50); | |
| write(arr); | |
| var arr = new Array(5); | |
| write(arr); | |
| write(arr.length); | |
| arr.reverse(); | |
| write(arr); | |
| write(arr.length); | |
| var arr = test11arr; | |
| write(arr); | |
| write(arr.length); | |
| arr.reverse(); | |
| write(arr); | |
| write(arr.length); | |
| var a = [1, 2, 3]; | |
| var b = []; | |
| b.length = 3; | |
| write(a.concat(b)); |