| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- //Test odd parameters
- var a = [0, 1, 2, 3, 4, 5, 6];
- var x = a.splice(-100, -100);
- WScript.Echo(a);
- WScript.Echo(x);
- x = a.splice();
- WScript.Echo(a);
- WScript.Echo(x);
- x = a.splice(0);
- WScript.Echo(a);
- WScript.Echo(x);
- var x = a.splice(0, 0);
- WScript.Echo(a);
- WScript.Echo(x);
- var x = a.splice(1, -4);
- WScript.Echo(a);
- WScript.Echo(x);
- var x = a.splice(7, -4, 8, 9, 10);
- WScript.Echo(a);
- WScript.Echo(x);
- var x = a.splice(20, 40);
- WScript.Echo(a);
- WScript.Echo(x);
- var x = a.splice(-20, 4, 11, 12);
- WScript.Echo(a);
- WScript.Echo(x);
- x = a.splice(-100, -100);
- WScript.Echo(a);
- WScript.Echo(x);
- //Test array
- var b = [8,9];
- var c = [11,12];
- x = a.splice(5,1);
- WScript.Echo(x);
- WScript.Echo(a);
- x = a.splice(2, 2, b, c);
- WScript.Echo(x);
- WScript.Echo(a);
- x = a.splice(-2, -2, b, c);
- WScript.Echo(x);
- WScript.Echo(a);
- x = a.splice(10, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b);
- WScript.Echo(x);
- WScript.Echo(a);
- var d = [1, [2, 3, 4], [5, 6, 7]];
- x = a.splice(5, 1, d);
- WScript.Echo(x);
- WScript.Echo(a);
- var f = new Object();
- f.x = 0;
- f.y = 1;
- f.z = 2;
- x = a.splice(1,2, f, "hello");
- WScript.Echo(x);
- WScript.Echo(a);
- //Test object
- var x = new Object();
- x.length = 6;
- x[0] = 1;
- x[1] = 2;
- x[2] = 3;
- x[3] = 4;
- x[4] = 5;
- x[5] = 6;
- x.foo = Array.prototype.splice;
- WScript.Echo(x.length);
- var y = x.foo(0, 1, 9, 10, 11, 12);
- WScript.Echo(y);
- WScript.Echo(x.length);
- y = x.foo(0, 9);
- WScript.Echo(y);
- WScript.Echo(x.length);
- y = x.foo(0, 0, 1, 2, 3, 4, 5, 6);
- WScript.Echo(y);
- WScript.Echo(x.length);
- y = x.foo(3, 3, 7);
- WScript.Echo(y);
- WScript.Echo(x.length);
- y = x.foo(0, 8);
- WScript.Echo(y);
- WScript.Echo(x.length);
- //Test string
- x = new String("hello world");
- x.foo = Array.prototype.splice;
- y = undefined;
- try
- {
- y = x.foo(0, 5);
- }
- catch(e)
- {
- if (!e instanceof TypeError) throw(e);
- WScript.Echo(y);
- WScript.Echo(x);
- }
- try
- {
- y = x.foo(0, 5);
- }
- catch(e)
- {
- if (!e instanceof TypeError) throw(e);
- WScript.Echo(y);
- WScript.Echo(x);
- }
- try
- {
- y = x.foo(0, 13);
- }
- catch(e)
- {
- if (!e instanceof TypeError) throw(e);
- WScript.Echo(y);
- WScript.Echo(x);
- }
- WScript.Echo("Test: splice when the item to replace is not writable."); // WOOB: 1139812
- var a = {};
- Object.defineProperty(a, "0", { value: 0 });
- Object.defineProperty(a, "1", { value: 1 });
- a.length = 2;
- try {
- Array.prototype.splice.apply(a, [0, 1, 'z']);
- } catch (ex) {
- WScript.Echo("e instanceOf TypeError = " + (ex instanceof TypeError));
- }
- WScript.Echo("a.length = " + a.length);
- a = new Array(1000);
- x = a.splice(1, 17, "a");
- function test0()
- {
- var arr = [0,1,2,3,4,5,6,7,8,9];
- for(var __loopvar4 = 0; __loopvar4 < 2; __loopvar4++)
- {
- arr.length --;
- arr.splice(3,1,31,32,33);
- }
- return arr.length;
- }
- WScript.Echo("arr.length = " + test0());
|