| <html> |
| <head> |
| <script type="text/javascript"> |
| |
| function print(str) { |
| document.writeln(str+"<br/>"); |
| } |
| |
| if (window.layoutTestController) |
| layoutTestController.dumpAsText(); |
| </script> |
| </head> |
| <body> |
| 1.0 Behavior with Holes in Array<br/> |
| The following tests ensure that map skips holes in the array it constructs. You should see false and true printed in that order, followed by the printing of the indexes and values in two arrays, the first of which has no indexes and the second of which has one, whose value is NaN:<br/><br/> |
| <script> |
| function twice(element, index, array) { |
| return 2 * element; |
| } |
| var arr = [1, 2, 3, 4]; |
| delete arr[2]; |
| var res = arr.map(twice); |
| print(2 in res); |
| print(res[0] == 2 && res[1] == 4 && res[3] == 8); |
| |
| arr = new Array(20); |
| res = arr.map(twice); |
| print("The following indexes are in the result array:"); |
| for (var i in res) |
| print(i + ": " + res[i]); |
| print("End indexes in the result array."); |
| |
| arr[15] = undefined; |
| res = arr.map(twice); |
| print("The following indexes are in the result array:"); |
| for (var i in res) |
| print(i + ": " + res[i]); |
| print("End indexes in the result array."); |
| |
| </script> |
| </body> |
| </html> |