src/virtual-machines/source-1-with-mark-region-gc.js
// if no free blocks, BUMP_HEAD and BUMP_TAIL remain as previous
if no free blocks, BUMP_HEAD and BUMP_TAIL remain as previous
if no free blocks BUMP_HEAD and BUMP_TAIL remain as previous
function ALLOCATE_TO_FREE() {
  for (I = 0; I < NUMBER_OF_BLOCKS; I = I + 1) {
    if (HEAP[I * BLOCK_SIZE + BLOCK_STATE_SLOT] === FREE) {
      BUMP_HEAD = I * BLOCK_SIZE + HEAP[HEAP[I * BLOCK_SIZE + FIRST_CHILD_SLOT]];
      BUMP_TAIL = I * BLOCK_SIZE + BLOCK_SIZE;
      break;
    } else {}
  }
}
function ALLOCATE_TO_FREE ( ) { for ( I = 0 ; I < NUMBER_OF_BLOCKS ; I = I + 1 ) { if ( HEAP [ I * BLOCK_SIZE + BLOCK_STATE_SLOT ] === FREE ) { BUMP_HEAD = I * BLOCK_SIZE + HEAP [ HEAP [ I * BLOCK_SIZE + FIRST_CHILD_SLOT ] ] ; BUMP_TAIL = I * BLOCK_SIZE + BLOCK_SIZE ; break ; } else { } } }
if no free blocks, BUMP_HEAD and BUMP_TAIL remain as previous
if no free blocks BUMP_HEAD and BUMP_TAIL remain as previous