Bug 982856 - Make Preferences.jsm not use mutable [[Prototype]].  Special thanks to Edouard Oger for debugging the issue with the initial version of this patch.  r=Unfocused
Bug 982856 - Rename Preferences._prefBranch to Preferences._branchStr, so that the preferences branch accessor can use the name instead in a followup patch.  r=Unfocused
Bug 982856 - Rename Preferences._prefSvc to Preferences._prefBranch to better reflect its meaning.  r=Unfocused
Bug 982856 - De-indent Preferences.jsm contents that are now over-indented.  r=Unfocused
Bug 712939 - Replace a bunch more JS_STATIC_ASSERTs with static_assert.  r=jandem
Bug 712939 - Use JS_ENUM_HEADER and JS_ENUM_FOOTER only where absolutely necessary, and don't expose them for general use.  r=jandem
Bug 712939 - Convert more JS_STATIC_ASSERT to static_assert.  r=jandem
Bug 712939 - Make a bunch of JIT code that depends on element-count * sizeof(Value), or slot-count * sizeof(Value), not overflowing int32_t, have markers indicating such.  Also add BaseValueIndex for computing Value addresses from a base/index/offset triple, BaseObjectElementIndex for computing addresses of elements, and BaseObjectSlotIndex for computing addresses of slots.  r=jandem
Bug 712939 - Convert more JS_STATIC_ASSERT to static_assert.  r=jandem