Number Division Theory
You could compress the code as follows. It doesn't check for early exit conditions, but since it's running on the front-end anyway, i.e. not at high volumes, the performance won't be noticeably degraded.

function chipStack(n){
    var chipValues = [1000,500,300,100,50];
    var stack = [];
    chipValues.forEach(function(e,i){
        stack.push(Math.floor(n / e));
        n -= (stack[stack.length-1] * e);
    })
    return stack;
}