We've come across an issue with storage keys in Widget preferences; namely that 
the Web Storage spec [1] states that:

Keys are strings. Any string (including the empty string) is a valid key. 
Values can be any data type supported by the structured clone algorithm. 

However, common guidance on JavaScript states that:

Variable names must begin with a letter or the underscore character

ECMAScript[3] follows the Unicode identifier syntax[4], which defines variable 
names as starting with:

Characters having the Unicode General_Category of uppercase letters (Lu), 
lowercase letters (Ll), titlecase letters (Lt), modifier letters (Lm), other 
letters (Lo), letter numbers (Nl), minus Pattern_Syntax and Pattern_White_Space 
code points, plus stability extensions

So we get into problems using keys that begin with digits, which are allowed as 
far as I can tell in WebStorage and Widgets, but not in ECMAScript, and things 
like "widgets.preferences.12345="xyz" throw exceptions.

[1] http://www.w3.org/TR/webstorage/
[2] http://www.w3schools.com/js/js_variables.asp
[3] http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf
[4] http://unicode.org/reports/tr31/

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to