// -*- mode: java -*- // $Id: lists.njs,v 1.1 2001/07/08 20:20:06 doug Exp $ // http://www.bagley.org/~doug/shootout/ // from: David Hedbor // modified by Aldo Calpini <dada@perl.it> for Win32 var SIZE = 10000; function test_lists() { var Li1, Li2, Li3; var tmp; // create a list of integers from 1 to SIZE. Li1 = new Array(); for(tmp = 1; tmp <= SIZE; tmp++) Li1.push(tmp); // copy the list to Li2. Li2 = Li1.concat(); // remove each element from left side of Li2 and append to // the right side of Li3 (preserving order) Li3 = new Array(); while( (tmp = Li2.shift()) ) { Li3.push(tmp); } // Li2 is now empty. // Remove each element from right side of Li3 and append to right // side of Li2 while( (tmp = Li3.pop()) ) { Li2.push(tmp); } // Li2 is now reversed, and Li3 empty. // Reverse Li1 in place. Li1.reverse(); if( Li1[0] != SIZE ) return 0; // compare Li1 and Li2 for equality, and return the length of the list. for(tmp = 0; tmp < SIZE; tmp++) if( Li1[tmp] != Li2[tmp] ) return 0; return Li1.length; } ARGS = WScript.Arguments; if(ARGS.length > 0) { n = parseInt(ARGS.Item(0), "10"); if(n < 1) n = 1; } else { n = 1; } var resultl while( n-- ) result = test_lists(); WScript.Echo(result );