whole_func_string: function (cb) {
      return new Promise((resolve/*, reject*/) => {
  
        let transaction = this.db.transaction(['nodes'], 'readonly');
        let cursorReq = transaction.objectStore('nodes').openCursor();
  
        cursorReq.onsuccess = (evt) => {
          let cursor = evt.target.result;
  
          if (cursor) {
            cb(this.migrate(cursor.value));
            cursor.continue();
          } else {
            resolve();
          }
        };
      });
    }
func_code_string: function (cb) {
      return new Promise((resolve/*, reject*/) => {
  
        let transaction = this.db.transaction(['nodes'], 'readonly');
        let cursorReq = transaction.objectStore('nodes').openCursor();
  
        cursorReq.onsuccess = (evt) => {
          let cursor = evt.target.result;
  
          if (cursor) {
            cb(this.migrate(cursor.value));
            cursor.continue();
          } else {
            resolve();
          }
        };
      });
    }
func_documentation_string: TODO: Document