t.target.result;
		            if (!cursor) {
		                resolve(results);
		                return; // end of results
		            }
		            results.push(resultMapper(cursor));
		            if (!isDone(results)) {
		            	cursor.continue();
		            } else {
		            	resolve(results);
		            }
		        };
		    });
		}

		class Storage {
			constructor(databaseName) {
				this._databaseName = databaseName;
				this._database = null;
			}

			async open() {
				const