Bug 901351 - Properly handle various edge cases in JSON.parse when walking/reviving the initial object tree.  r=jorendorff, a=akeybl