[widgets] Storage keys and ECMAScript incompatibility?

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/

Received on Wednesday, 15 December 2010 13:31:15 UTC