array-extras.js revision 3196419a9bc437f0c1d6429213ecaa16b4c7569c