| OLD | NEW |
| 1 Verify that that cursors weakly hold request, and work if request is GC'd | 1 Verify that that key cursors weakly hold request, and work if request is GC'd |
| 2 | 2 |
| 3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
". | 3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
". |
| 4 | 4 |
| 5 | 5 |
| 6 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.
msIndexedDB || self.OIndexedDB; | 6 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.
msIndexedDB || self.OIndexedDB; |
| 7 | 7 |
| 8 dbname = "cursor-request-cycle.html" | 8 dbname = "key-cursor-request-cycle.html" |
| 9 indexedDB.deleteDatabase(dbname) | 9 indexedDB.deleteDatabase(dbname) |
| 10 indexedDB.open(dbname) | 10 indexedDB.open(dbname) |
| 11 | 11 |
| 12 prepareDatabase(): | 12 prepareDatabase(): |
| 13 db = event.target.result | 13 db = event.target.result |
| 14 store = db.createObjectStore('store') | 14 store = db.createObjectStore('store') |
| 15 | 15 |
| 16 onOpen(): | 16 onOpen(): |
| 17 db = event.target.result | 17 db = event.target.result |
| 18 tx = db.transaction('store') | 18 tx = db.transaction('store') |
| 19 store = tx.objectStore('store') | 19 store = tx.objectStore('store') |
| 20 cursorRequest = store.openCursor() | 20 cursorRequest = store.openKeyCursor() |
| 21 otherRequest = store.get(0) | 21 otherRequest = store.get(0) |
| 22 | 22 |
| 23 openCursorRequestSuccess(): | 23 openCursorRequestSuccess(): |
| 24 Result will be checked later, to ensure that lazy access is safe | 24 Result will be checked later, to ensure that lazy access is safe |
| 25 | 25 |
| 26 otherRequestSuccess(): | 26 otherRequestSuccess(): |
| 27 Verify that the request's result can be accessed lazily: | 27 Verify that the request's result can be accessed lazily: |
| 28 gc() | 28 gc() |
| 29 cursor = cursorRequest.result | 29 cursor = cursorRequest.result |
| 30 PASS cursor is non-null. | 30 PASS cursor is non-null. |
| 31 PASS cursor.key is "key1" | 31 PASS cursor.key is "key1" |
| 32 PASS cursor.value is "value1" | |
| 33 cursorRequest.extra = 123 | 32 cursorRequest.extra = 123 |
| 34 cursor.extra = 456 | 33 cursor.extra = 456 |
| 35 Ensure request is not released if cursor is still around. | 34 Ensure request is not released if cursor is still around. |
| 36 cursorRequest = null | 35 cursorRequest = null |
| 37 gc() | 36 gc() |
| 38 PASS cursorRequestObservation.wasCollected is false | 37 PASS cursorRequestObservation.wasCollected is false |
| 39 cursor.continue() | 38 cursor.continue() |
| 40 cursor = null | 39 cursor = null |
| 41 gc() | 40 gc() |
| 42 PASS cursorObservation.wasCollected is false | 41 PASS cursorObservation.wasCollected is false |
| 43 finalRequest = store.get(0) | 42 finalRequest = store.get(0) |
| 44 | 43 |
| 45 cursorContinueSuccess(): | 44 cursorContinueSuccess(): |
| 46 cursor = event.target.result | 45 cursor = event.target.result |
| 47 PASS cursor is non-null. | 46 PASS cursor is non-null. |
| 48 PASS cursor.key is "key2" | 47 PASS cursor.key is "key2" |
| 49 PASS cursor.value is "value2" | |
| 50 PASS event.target.extra is 123 | 48 PASS event.target.extra is 123 |
| 51 PASS cursor.extra is 456 | 49 PASS cursor.extra is 456 |
| 52 | 50 |
| 53 finalRequestSuccess(): | 51 finalRequestSuccess(): |
| 54 PASS cursor.key is "key2" | 52 PASS cursor.key is "key2" |
| 55 PASS cursor.value is "value2" | |
| 56 cursor = null | 53 cursor = null |
| 57 gc() | 54 gc() |
| 58 PASS cursorRequestObservation.wasCollected is true | 55 PASS cursorRequestObservation.wasCollected is true |
| 59 PASS cursorObservation.wasCollected is true | 56 PASS cursorObservation.wasCollected is true |
| 60 PASS successfullyParsed is true | 57 PASS successfullyParsed is true |
| 61 | 58 |
| 62 TEST COMPLETE | 59 TEST COMPLETE |
| 63 | 60 |
| OLD | NEW |