Hi all,
I've recently landed a few changes to Storage.idl (used by localStorage
and sessionStorage) to make it more compatible with the spec. Some of
the changes are user-visible, but not big enough to require an Intent
email, so jsbell and I agreed a small FYI email should be fine.
In a nutshell:
* All methods (e.g. getItem(), removeItem(), key() etc) in the Storage
interface used to have the [NotEnumerable] extended attribute, so they
wouldn't show up in for-in loops and Object.getOwnPropertyDescriptor()
would return a dictionary with 'enumerable' set to false. This is no
longer the case, and it aligns us with the spec as well as Firefox
(since version 34) and WebKit (since Safari 10.1).
* We had anonymous getter, setter and deleter operations in addition to
getItem(), setItem() and removeItem(), respectively. The anonymous
getter and getItem() in particular behaved a bit differently: getItem()
returned null if a key wasn't found, whereas the anonymous getter
returned undefined. The anonymous operations have now been merged into
the named ones.
The CL implementing this behavior change is
http://crrev.com/c/691974
and the corresponding bug report is
http://crbug.com/651774.