| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- function echo(v) {
- WScript.Echo(v);
- }
- echo("-------slice sparse array-------------");
- function dump_array(arr) {
- echo("length: " + arr.length);
- for (var p in arr) {
- echo(" " + p + ": " + arr[p]);
- }
- }
- echo("-- arr1");
- var arr = [];
- arr[2147483647] = 100;
- var newarr = arr.slice(0, 2147483648);
- dump_array(newarr);
- echo("-- arr2");
- var arr = [];
- var base = 4294967290;
- for (var i = 0; i < 10; i++) {
- arr[base + i] = 100 + i;
- }
- echo("-src");
- dump_array(arr);
- echo("-sliced");
- var newarr = arr.slice(2147483648, 4294967299);
- dump_array(newarr);
- echo("-------test prototype lookup-------------");
- function test_slice(start, end) {
- for (var i = 0; i < 10; i++) {
- Array.prototype[i] = 100 + i;
- }
- delete Array.prototype[3];
- var a = [200, 201, 202, 203, 204];
- delete a[1];
- a[7] = 207;
- var astr = "" + a;
- var r = a.slice(start, end);
- for (var i = 0; i < 10; i++) {
- delete Array.prototype[i];
- }
- echo(astr + " ==> [" + start + ".." + end + "]: " + r);
- }
- test_slice(0, 0);
- test_slice(0, 5);
- test_slice(0, 7);
- test_slice(0, 8);
- test_slice(0, 100);
- test_slice(2, 0);
- test_slice(2, 5);
- test_slice(2, 7);
- test_slice(2, 8);
- test_slice(2, 100);
- test_slice(7, 0);
- test_slice(7, 5);
- test_slice(7, 7);
- test_slice(7, 8);
- test_slice(7, 100);
- test_slice(8, 0);
- test_slice(8, 5);
- test_slice(8, 7);
- test_slice(8, 8);
- test_slice(8, 100);
|