anchor.diff:          break;
         }
         tf = new Foreign.fromAddress(sp, 20);
  +      // Workaround. We take the first byte address to sort of normalize
  +      // the integer value or memory address value, otherwise during the
  +      // conversion from machine to Dart integer there could be some kind
  +      // nagging overflow that when compared with the next values to get
  +      // the length of key and value tokens would not represent the right
  +      // sizes.
         firstByteAddress = _memchr.icall$3(sp, tf.getUint8(0), 1);
         equalCharAddress = _rawmemchr.icall$2(sp, 61);
         valueAddress = equalCharAddress + 1;
  
positive.code:       keyLen = equalCharAddress - firstByteAddress;
        if (keyLen > list.length) {
          list = new Uint8List(keyLen);
        }
        _memcpy.icall$3(list.buffer.getForeign().value, sp, keyLen);
        key = new String.fromCharCodes(list, 0, keyLen);
        valueLen = stringEndAddress - valueAddress;
        if (valueLen > list.length) {
          list = new Uint8List(valueLen);
        }
        _memcpy.icall$3(list.buffer.getForeign().value, valueAddress, valueLen);
        h[key] = new String.fromCharCodes(list, 0, valueLen);
        j += 4;
      }
  
negative.code:     return s;
    }
  
    static get environment {
      // Navigate the pointer maze.
      var h = {}, envAddress = Foreign.lookup("environ").value, j = 0, tf, sp,
        firstByteAddress, list = new Uint8List(1024),
        listAddress = list.buffer.getForeign().value,
        firstItemAddress = new Foreign.fromAddress(envAddress, 4).getUint32(0),
        equalCharAddress, valueAddress, stringEndAddress,
        keyLen, key, valueLen;
  