description( 'Test for regression against Calling unshift passing more than 1 argument causes array corruption. It also tests some other unshift combinations.' ); function unshift1(n) { var anArray = []; for (var i = 0; i < n; i++) { anArray.unshift('a'); } return anArray; } function unshift2(n) { var anArray = []; for (var i = 0; i < n; i++) { anArray.unshift('a', 'b'); } return anArray; } function unshift5(n) { var anArray = []; for (var i = 0; i < n; i++) { anArray.unshift('a', 'b', 'c', 'd', 'e'); } return anArray; } shouldBe('unshift1(1)', '["a"]'); shouldBe('unshift1(2)', '["a", "a"]'); shouldBe('unshift1(4)', '["a", "a", "a", "a"]'); shouldBe('unshift2(1)', '["a", "b"]'); shouldBe('unshift2(2)', '["a", "b", "a", "b"]'); shouldBe('unshift2(4)', '["a", "b", "a", "b", "a", "b", "a", "b"]'); shouldBe('unshift2(10)', '["a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b"]'); shouldBe('unshift5(1)', '["a", "b", "c", "d", "e"]'); shouldBe('unshift5(2)', '["a", "b", "c", "d", "e", "a", "b", "c", "d", "e"]'); shouldBe('unshift5(6)', '["a", "b", "c", "d", "e", "a", "b", "c", "d", "e", "a", "b", "c", "d", "e", "a", "b", "c", "d", "e", "a", "b", "c", "d", "e", "a", "b", "c", "d", "e"]');