Sample: indexedDB = window.indexedDB || window.webkitIndexedDB; indexedDB.open('db-test' + String(new Date)).onsuccess = function(e) { var db = e.target.result; db.setVersion('1').onsuccess = function(e) { var trans = e.target.result; trans.oncomplete = function() { test(db); }; }; }; function test(db) { var dsl = db.objectStoreNames; var trans = db.transaction(dsl); } Expected: db.transaction() succeeds with ["store"] as the scope Actual: INVALID_ACCESS_ERR is thrown
Created attachment 119097 [details] Patch
The code generator spits out: if ( ... V8DOMStringList::HasInstance(args[0]) ... ) { ... } And later: EXCEPTION_BLOCK(RefPtr<DOMStringList>, storeNames, v8ValueToWebCoreDOMStringList(MAYBE_MISSING_PARAMETER(args, 0, Mi ssingIsUndefined))); .. but v8ValueToWebCoreDOMStringList doesn't actually handle DOMStringList arguments. Dur..... This worked prior to M17 because bogus first arguments to IDBDatabase.transaction() were treated as [] (empty-array) which meant "use all stores", but that functionality was removed.
Comment on attachment 119097 [details] Patch IDB functionality LG. All yours, Adam.
Created attachment 119456 [details] Patch
Comment on attachment 119456 [details] Patch Just removed a blank line. (DOS line endings in the layout test blinded me.)
Comment on attachment 119456 [details] Patch Looks great.
Comment on attachment 119456 [details] Patch Clearing flags on attachment: 119456 Committed r103018: <http://trac.webkit.org/changeset/103018>
All reviewed patches have been landed. Closing bug.