File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -821,11 +821,12 @@ return (function () {
821821 }
822822 }
823823
824+ // based on https://gist.github.com/hyamamoto/fd435505d29ebfa3d9716fd2be8d42f0,
825+ // derived from Java's string hashcode implementation
824826 function stringHash ( string , hash ) {
825- for ( var i = 0 ; i < string . length ; i ++ ) {
826- var char = string . charCodeAt ( i ) ;
827- hash = ( ( hash << 5 ) - hash ) + char ;
828- hash = hash & hash ;
827+ var char = 0 ;
828+ while ( char < string . length ) {
829+ hash = ( hash << 5 ) - hash + string . charCodeAt ( char ++ ) | 0 ; // bitwise or ensures we have a 32-bit int
829830 }
830831 return hash ;
831832 }
Original file line number Diff line number Diff line change @@ -821,11 +821,12 @@ return (function () {
821821 }
822822 }
823823
824+ // based on https://gist.github.com/hyamamoto/fd435505d29ebfa3d9716fd2be8d42f0,
825+ // derived from Java's string hashcode implementation
824826 function stringHash ( string , hash ) {
825- for ( var i = 0 ; i < string . length ; i ++ ) {
826- var char = string . charCodeAt ( i ) ;
827- hash = ( ( hash << 5 ) - hash ) + char ;
828- hash = hash & hash ;
827+ var char = 0 ;
828+ while ( char < string . length ) {
829+ hash = ( hash << 5 ) - hash + string . charCodeAt ( char ++ ) | 0 ; // bitwise or ensures we have a 32-bit int
829830 }
830831 return hash ;
831832 }
Original file line number Diff line number Diff line change @@ -821,11 +821,12 @@ return (function () {
821821 }
822822 }
823823
824+ // based on https://gist.github.com/hyamamoto/fd435505d29ebfa3d9716fd2be8d42f0,
825+ // derived from Java's string hashcode implementation
824826 function stringHash ( string , hash ) {
825- for ( var i = 0 ; i < string . length ; i ++ ) {
826- var char = string . charCodeAt ( i ) ;
827- hash = ( ( hash << 5 ) - hash ) + char ;
828- hash = hash & hash ;
827+ var char = 0 ;
828+ while ( char < string . length ) {
829+ hash = ( hash << 5 ) - hash + string . charCodeAt ( char ++ ) | 0 ; // bitwise or ensures we have a 32-bit int
829830 }
830831 return hash ;
831832 }
Original file line number Diff line number Diff line change @@ -821,11 +821,12 @@ return (function () {
821821 }
822822 }
823823
824+ // based on https://gist.github.com/hyamamoto/fd435505d29ebfa3d9716fd2be8d42f0,
825+ // derived from Java's string hashcode implementation
824826 function stringHash ( string , hash ) {
825- for ( var i = 0 ; i < string . length ; i ++ ) {
826- var char = string . charCodeAt ( i ) ;
827- hash = ( ( hash << 5 ) - hash ) + char ;
828- hash = hash & hash ;
827+ var char = 0 ;
828+ while ( char < string . length ) {
829+ hash = ( hash << 5 ) - hash + string . charCodeAt ( char ++ ) | 0 ; // bitwise or ensures we have a 32-bit int
829830 }
830831 return hash ;
831832 }
You can’t perform that action at this time.
0 commit comments