summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2013-04-23 14:14:38 +0000
committerhallgren <hallgren@chalmers.se>2013-04-23 14:14:38 +0000
commit7f0f91a54be94d65e38da6489babc5266fab84c5 (patch)
tree66f63c3b0f56637c9be8d7cd848289031feeeb75 /src
parent1146b94685331341a2b16ad27ef76b5d7612cb3d (diff)
js/localstorage.js: don't throw an exception if JSON parsing fails
Return the given default value instead.
Diffstat (limited to 'src')
-rw-r--r--src/www/js/localstorage.js8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/www/js/localstorage.js b/src/www/js/localstorage.js
index 8af2906a4..3c6a0fa12 100644
--- a/src/www/js/localstorage.js
+++ b/src/www/js/localstorage.js
@@ -12,14 +12,18 @@ function supports_html5_storage() {
var fakedLocalStorage = [] // a shared substitute for persistent localStorage
-// An interface to localStorage to store JSON data under a unique prefix
+// An interface to localStorage, to store JSON data under a unique prefix
function appLocalStorage(appPrefix,privateStorage) {
+ function parse(s) {
+ try { return JSON.parse(s) } catch(e) { return null }
+ }
+
function methods(storage) {
return {
get: function (name,def) {
var id=appPrefix+name
- return storage[id] ? JSON.parse(storage[id]) : def;
+ return storage[id] && parse(storage[id]) || def;
},
put: function (name,value) {
var id=appPrefix+name;