blob: 4eb449fd8ea648cf26d0500c5c6ca21b73145cfc [file] [log] [blame]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
if (this.WScript && this.WScript.LoadScriptFile) { // Check for running in ch
this.WScript.LoadScriptFile("..\\UnitTestFramework\\UnitTestFramework.js");
}
var tests = [
{
name: "concat Bug",
body: function ()
{
Array.prototype.length = 0;
Array.prototype[0]="start";
Array.prototype[1]="p1";
Array.prototype[2]="p2";
Array.prototype[3]="p3";
Array.prototype[4]="p4";
Array.prototype[5]="p5";
Array.prototype[7]="p6";
var arr = new Array();
arr[3]="test";
arr[4]=12;
arr[6]=345;
arr.concat(Array.prototype);
delete Array.prototype[0];
delete Array.prototype[3];
delete Array.prototype[4];
//Resulting Array from concat should look up the prototype
assert.areEqual([,"p1","p2","test",12,"p5",345,"p6","p1","p2",,,"p5",,"p6"], arr.concat(Array.prototype));
}
},
{
name: "slice Bug",
body: function ()
{
var retarr = new Array();
var arr=new Array(2)
arr[0]=0;
Array.prototype[1]="p"+1;
retarr[1]=arr;
var result = retarr[1].slice(-2,2);
for(var i=0;i<Array.prototype.length;i++)
{
delete Array.prototype[i];
}
assert.areEqual([0,undefined].toString(),retarr[1].toString());
}
}
];
testRunner.runTests(tests, { verbose: WScript.Arguments[0] != "summary" });