OLD | NEW |
1 Verify that that requests weakly hold script value properties | 1 Verify that that requests weakly hold script value properties |
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; | |
7 | |
8 dbname = "request-leak.html" | 6 dbname = "request-leak.html" |
9 indexedDB.deleteDatabase(dbname) | 7 indexedDB.deleteDatabase(dbname) |
10 indexedDB.open(dbname) | 8 indexedDB.open(dbname) |
11 | 9 |
12 prepareDatabase(): | 10 prepareDatabase(): |
13 db = event.target.result | 11 db = event.target.result |
14 store = db.createObjectStore('store') | 12 store = db.createObjectStore('store') |
15 store.put({value: 'value'}, 'key') | 13 store.put({value: 'value'}, 'key') |
16 | 14 |
17 onOpen(): | 15 onOpen(): |
18 db = event.target.result | 16 db = event.target.result |
19 tx = db.transaction('store') | 17 tx = db.transaction('store') |
20 store = tx.objectStore('store') | 18 store = tx.objectStore('store') |
21 request = store.get('key') | 19 request = store.get('key') |
22 | 20 |
23 onTransactionComplete(): | 21 onTransactionComplete(): |
24 db.close() | 22 db.close() |
25 PASS typeof request.result is "object" | 23 PASS typeof request.result is "object" |
26 request.result.x = 123 | 24 request.result.x = 123 |
27 PASS request.result.x is 123 | 25 PASS request.result.x is 123 |
28 request.result.leak = request | 26 request.result.leak = request |
29 observer = internals.observeGC(request) | 27 observer = internals.observeGC(request) |
30 request = null | 28 request = null |
31 gc() | 29 gc() |
32 PASS observer.wasCollected is true | 30 PASS observer.wasCollected is true |
33 PASS successfullyParsed is true | 31 PASS successfullyParsed is true |
34 | 32 |
35 TEST COMPLETE | 33 TEST COMPLETE |
36 | 34 |
OLD | NEW |