I've tested this on Chrome version 24.0.1312.57 m, but it all works ok for me. This is what my localstorage looks like when I have timer 1 running: Perhaps you can try deleting that empty array (click on the 'saveShipTimers' row and then push the Delete key on your keyboard. Other than that, I have no clue what could be causing this behaviour in your browser, or how to solve it... Nope, it doesn't work. I've even tested it with console.log(JSON.stringify({first:0,second:0,third:0,fourth:0})); and that gives this result: I'll look around myself a bit, and if I find it, I'll let you know. Edit: I've looked around a bit, tested basic code on jsfiddle. var timer={first:0,second:0}; console.log(JSON.stringify(timer)); It prints: {"first":0,"second":0} If I put that line in your script on line 99, right before saving, it outputs [] I've asked another guy to test it for me, he had the same problem. Tested in Chome 24.0.1312.57 m, FireFox 18.0.1 and 18.0.2