pass lint; work around chromium jit bug

This commit is contained in:
Mike Hamburg
2010-10-08 16:02:09 -07:00
parent 4f316afb56
commit f7559d7535
6 changed files with 110 additions and 102 deletions

View File

@@ -50,11 +50,14 @@ sjcl.bitArray = {
* @return {Number} The requested slice.
*/
extract: function(a, bstart, blength) {
var x, sh = (-bstart-blength) & 31;
// FIXME: this Math.floor is not necessary at all, but for some reason
// seems to suppress a bug in the Chromium JIT.
var x, sh = Math.floor((-bstart-blength) & 31);
if ((bstart + blength - 1 ^ bstart) & -32) {
// it crosses a boundary
x = (a[bstart/32|0] << (32 - sh)) ^ (a[bstart/32+1|0] >>> sh);
} else {
// within a single word
x = a[bstart/32|0] >>> sh;
}
return x & ((1<<blength) - 1);