js/deps/isaac/isaac.js
function toIntArray(str) {
  var w1, w2, u, r4 = [], r = [], i = 0;
  var s = str + '\0\0\0'; // pad string to avoid discarding last chars
  var l = s.length - 1;

  while(i < l) {
    w1 = s.charCodeAt(i++);
    w2 = s.charCodeAt(i+1);
    if       (w1 < 0x0080) {
      // 0x0000 - 0x007f code point: basic ascii
      r4.push(w1);
    } else if(w1 < 0x0800) {
      // 0x0080 - 0x07ff code point
      r4.push(((w1 >>>  6) & 0x1f) | 0xc0);
      r4.push(((w1 >>>  0) & 0x3f) | 0x80);
    } else if((w1 & 0xf800) != 0xd800) {
      // 0x0800 - 0xd7ff / 0xe000 - 0xffff code point
      r4.push(((w1 >>> 12) & 0x0f) | 0xe0);
      r4.push(((w1 >>>  6) & 0x3f) | 0x80);
      r4.push(((w1 >>>  0) & 0x3f) | 0x80);
    } else if(((w1 & 0xfc00) == 0xd800)
           && ((w2 & 0xfc00) == 0xdc00)) {
      // 0xd800 - 0xdfff surrogate / 0x10ffff - 0x10000 code point
      u = ((w2 & 0x3f) | ((w1 & 0x3f) << 10)) + 0x10000;
      r4.push(((u >>> 18) & 0x07) | 0xf0);
      r4.push(((u >>> 12) & 0x3f) | 0x80);
      r4.push(((u >>>  6) & 0x3f) | 0x80);
      r4.push(((u >>>  0) & 0x3f) | 0x80);
      i++;
    } else {
      // invalid char
    }
    /* add integer (four utf-8 value) to array */
    if(r4.length > 3) {
      // little endian
      r.push((r4.shift() <<  0) | (r4.shift() <<  8) |
             (r4.shift() << 16) | (r4.shift() << 24));
    }
  }

  return r;
}
function toIntArray(str) {
  var w1, w2, u, r4 = [], r = [], i = 0;
  var s = str + '\0\0\0'; // pad string to avoid discarding last chars
  var l = s.length - 1;

  while(i < l) {
    w1 = s.charCodeAt(i++);
    w2 = s.charCodeAt(i+1);
    if       (w1 < 0x0080) {
      // 0x0000 - 0x007f code point: basic ascii
      r4.push(w1);
    } else if(w1 < 0x0800) {
      // 0x0080 - 0x07ff code point
      r4.push(((w1 >>>  6) & 0x1f) | 0xc0);
      r4.push(((w1 >>>  0) & 0x3f) | 0x80);
    } else if((w1 & 0xf800) != 0xd800) {
      // 0x0800 - 0xd7ff / 0xe000 - 0xffff code point
      r4.push(((w1 >>> 12) & 0x0f) | 0xe0);
      r4.push(((w1 >>>  6) & 0x3f) | 0x80);
      r4.push(((w1 >>>  0) & 0x3f) | 0x80);
    } else if(((w1 & 0xfc00) == 0xd800)
           && ((w2 & 0xfc00) == 0xdc00)) {
      // 0xd800 - 0xdfff surrogate / 0x10ffff - 0x10000 code point
      u = ((w2 & 0x3f) | ((w1 & 0x3f) << 10)) + 0x10000;
      r4.push(((u >>> 18) & 0x07) | 0xf0);
      r4.push(((u >>> 12) & 0x3f) | 0x80);
      r4.push(((u >>>  6) & 0x3f) | 0x80);
      r4.push(((u >>>  0) & 0x3f) | 0x80);
      i++;
    } else {
      // invalid char
    }
    /* add integer (four utf-8 value) to array */
    if(r4.length > 3) {
      // little endian
      r.push((r4.shift() <<  0) | (r4.shift() <<  8) |
             (r4.shift() << 16) | (r4.shift() << 24));
    }
  }

  return r;
}
function toIntArray ( str ) { var w1 , w2 , u , r4 = [ ] , r = [ ] , i = 0 ; var s = str + '\0\0\0' ; // pad string to avoid discarding last chars var l = s . length - 1 ; while ( i < l ) { w1 = s . charCodeAt ( i ++ ) ; w2 = s . charCodeAt ( i + 1 ) ; if ( w1 < 0x0080 ) { // 0x0000 - 0x007f code point: basic ascii r4 . push ( w1 ) ; } else if ( w1 < 0x0800 ) { // 0x0080 - 0x07ff code point r4 . push ( ( ( w1 >>> 6 ) & 0x1f ) | 0xc0 ) ; r4 . push ( ( ( w1 >>> 0 ) & 0x3f ) | 0x80 ) ; } else if ( ( w1 & 0xf800 ) != 0xd800 ) { // 0x0800 - 0xd7ff / 0xe000 - 0xffff code point r4 . push ( ( ( w1 >>> 12 ) & 0x0f ) | 0xe0 ) ; r4 . push ( ( ( w1 >>> 6 ) & 0x3f ) | 0x80 ) ; r4 . push ( ( ( w1 >>> 0 ) & 0x3f ) | 0x80 ) ; } else if ( ( ( w1 & 0xfc00 ) == 0xd800 ) && ( ( w2 & 0xfc00 ) == 0xdc00 ) ) { // 0xd800 - 0xdfff surrogate / 0x10ffff - 0x10000 code point u = ( ( w2 & 0x3f ) | ( ( w1 & 0x3f ) << 10 ) ) + 0x10000 ; r4 . push ( ( ( u >>> 18 ) & 0x07 ) | 0xf0 ) ; r4 . push ( ( ( u >>> 12 ) & 0x3f ) | 0x80 ) ; r4 . push ( ( ( u >>> 6 ) & 0x3f ) | 0x80 ) ; r4 . push ( ( ( u >>> 0 ) & 0x3f ) | 0x80 ) ; i ++ ; } else { // invalid char } /* add integer (four utf-8 value) to array */ if ( r4 . length > 3 ) { // little endian r . push ( ( r4 . shift ( ) << 0 ) | ( r4 . shift ( ) << 8 ) | ( r4 . shift ( ) << 16 ) | ( r4 . shift ( ) << 24 ) ) ; } } return r ; }
/*
This sofware has been modified and adapted for use in runtimejs by the runtime.js project authors.
 /* js string (ucs-2/utf16) to a 32-bit integer (utf-8 chars, little-endian) array
/ * This sofware has been modified and adapted for use in runtimejs by the runtime . js project authors . / * js string ( ucs - 2 / utf16 ) to a 32 - bit integer ( utf - 8 chars little - endian ) array