diff options
| author | hallgren <hallgren@chalmers.se> | 2013-04-23 14:14:38 +0000 |
|---|---|---|
| committer | hallgren <hallgren@chalmers.se> | 2013-04-23 14:14:38 +0000 |
| commit | 7f0f91a54be94d65e38da6489babc5266fab84c5 (patch) | |
| tree | 66f63c3b0f56637c9be8d7cd848289031feeeb75 /src | |
| parent | 1146b94685331341a2b16ad27ef76b5d7612cb3d (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.js | 8 |
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; |
