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 |