48 lines
1.3 KiB
Plaintext
48 lines
1.3 KiB
Plaintext
Verify that that cursors weakly hold request, and work if request is GC'd
|
|
|
|
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
|
|
|
|
|
|
indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
|
|
|
|
indexedDB.deleteDatabase(dbname)
|
|
indexedDB.open(dbname)
|
|
|
|
prepareDatabase():
|
|
db = event.target.result
|
|
store = db.createObjectStore('store')
|
|
|
|
onOpen():
|
|
db = event.target.result
|
|
tx = db.transaction('store', 'readonly')
|
|
store = tx.objectStore('store')
|
|
Create 1000 cursorRequests and check their results in otherRequestSuccess().
|
|
otherRequest = store.get(0)
|
|
|
|
otherRequestSuccess():
|
|
Verify that results of openCursor requests can be accessed lazily.
|
|
gc()
|
|
Ensure requests are not released if cursors are still around.
|
|
cursorRequests = null
|
|
gc()
|
|
PASS isAnyCollected(cursorRequestObservers) is false
|
|
Ensure requests are not released if they are pending.
|
|
cursors = null
|
|
gc()
|
|
PASS isAnyCollected(cursorObservers) is false
|
|
PASS isAnyCollected(cursorRequestObservers) is false
|
|
finalRequest = store.get(0)
|
|
|
|
finalRequestSuccess():
|
|
Ensure requests and cursors are released.
|
|
PASS cursors is non-null.
|
|
PASS cursors.length is 1000
|
|
cursors = null
|
|
gc()
|
|
PASS isAnyCollected(cursorObservers) is true
|
|
PASS isAnyCollected(cursorRequestObservers) is true
|
|
PASS successfullyParsed is true
|
|
|
|
TEST COMPLETE
|
|
|