<commit_before>Cell.prototype.propagateMeta = function () {
  var metaCell = this.ensureMetaCell();
  var staleMetaCell;
  var sourceCells = this.getSourceCells();

  if (metaCell.cancelRefresh) {
    metaCell.cancelRefresh();
  }

  for (var i = sourceCells.length - 1; i >= 0; i--) {
    var cell = sourceCells[i].metaCell;
    if (!cell) {
      continue;
    }
    var metaValue = cell.value;
    if (metaValue.stale) {
      staleMetaCell = cell;
      break;
    }
  }

  metaCell.setValueAttr(!!staleMetaCell, 'stale');

  var refreshSlave = new Slave($m(this, 'propagateMeta'));
<commit_msg>[cells] handle undefined metaCells<commit_after>Cell.prototype.propagateMeta = function () {
  var metaCell = this.ensureMetaCell();
  var staleMetaCell;
  var sourceCells = this.getSourceCells();

  if (metaCell.cancelRefresh) {
    metaCell.cancelRefresh();
  }

  for (var i = sourceCells.length - 1; i >= 0; i--) {
    var cell = sourceCells[i].metaCell;
    if (!cell || !cell.value) {
      continue;
    }
    var metaValue = cell.value;
    if (metaValue.stale) {
      staleMetaCell = cell;
      break;
    }
  }

  metaCell.setValueAttr(!!staleMetaCell, 'stale');

  var refreshSlave = new Slave($m(this, 'propagateMeta'));

{'fraction_non_alphanumeric': 0.1393841166936791, 'fraction_numerical': 0.0032414910858995136, 'mean_word_length': 3.1864406779661016, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4322657', 'n_tokens_mistral': 438, 'n_tokens_neox': 412, 'n_words': 88}