// procedural statements execute in order, except when there is a call that is asynchronous var order = []; order.push('before'); setTimeout(function(){ order.push('within'); assertDeepEqual(order, ['before', 'after', 'within'], "timeout callback executed last"); }, 100); order.push('after');