41 lines
1.0 KiB
Plaintext
41 lines
1.0 KiB
Plaintext
Verify that IDBRequest is not leaked when there is a reference cycle for result attribute
|
|
|
|
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')
|
|
store = tx.objectStore('store')
|
|
getRequest = store.get('key1')
|
|
getRequest2 = store.get('key2')
|
|
|
|
():
|
|
Verify that the request's result can be accessed lazily:
|
|
gc()
|
|
result = getRequest.result
|
|
PASS result.value is "value1"
|
|
result.source = getRequest
|
|
PASS getRequest2.result.value is "value2"
|
|
getRequest = null
|
|
gc()
|
|
PASS getRequestObervation.wasCollected is false
|
|
PASS resultObservation.wasCollected is false
|
|
result = null
|
|
gc()
|
|
PASS getRequestObervation.wasCollected is true
|
|
PASS resultObservation.wasCollected is true
|
|
PASS successfullyParsed is true
|
|
|
|
TEST COMPLETE
|
|
|