- From: Joshua Bell <jsbell@chromium.org>
- Date: Tue, 9 Oct 2012 10:52:27 -0700
- To: public-webapps@w3.org
- Message-ID: <CAD649j5w2yb=M=vrBTROZrK+-fiSbJag11DxhC+NqWuZGPCpZQ@mail.gmail.com>
We were looking at Opera's w3c-test submissions, and noticed that several of them use a pattern like: request = index.openCursor(undefined, 'prev'); or: opts = {}; request = index.openCursor(opts.range, opts.direction); In Chrome, these throw DataError per our interpretation of the spec: "If the range parameter is specified but is not a valid key or a key range, this method throws a DOMException of type DataError." [1] Looking at WebIDL, "If it is specified as [TreatUndefinedAs=Missing] on an optional operation argument, then an explicit undefined value will cause the function call to be treated as if the argument had been omitted." [2] The IDB spec does not have [TreatUndefinedAs=Missing] specified on openCursor()'s arguments (or anywhere else), so I believe Chrome's behavior here is correct. Am I misunderstanding how WebIDL specifies explicit undefined values should be handled here? Or, perhaps more helpfully for users, should we sprinkle [TreatUndefinedAs=Missing] into the spec as appropriate. [1] http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBObjectStore-openCursor-IDBRequest-any-range-DOMString-direction [2] http://dev.w3.org/2006/webapi/WebIDL/#TreatUndefinedAs
Received on Tuesday, 9 October 2012 17:52:59 UTC