<commit_before>(function (Handsontable) {
  'use strict';

  Handsontable.EditorState = {
    VIRGIN: 'STATE_VIRGIN', //before editing
    EDITING: 'STATE_EDITING',
    WAITING: 'STATE_WAITING', //waiting for async validation
    FINISHED: 'STATE_FINISHED'
  };

  function BaseEditor(instance) {
    this.instance = instance;
    this.state = Handsontable.EditorState.VIRGIN;

    this._opened = false;

    this.init();
  }

  BaseEditor.prototype.init = function(){
    throw Error('Editor init() method unimplemented');
  };

  BaseEditor.prototype.val = function(newValue){
    throw Error('Editor val() method unimplemented');
  };

  BaseEditor.prototype.open = function(row, col, prop, useOriginalValue, suffix){
    throw Error('Editor open() method unimplemented');
  };

  BaseEditor.prototype.close = function(restoreOriginalValue){
    throw Error('Editor close() method unimplemented');
  };

  BaseEditor.prototype.toString = function(restoreOriginalValue){
    throw Error('Editor toString() method unimplemented');
  };

  BaseEditor.prototype.prepare = function(row, col, prop, td, originalValue, cellProperties){
    this.TD = td;
    this.row = row;
    this.col = col;
    this.prop = prop;
    this.originalValue = originalValue;
    this.cellProperties = cellProperties;

    this.state = Handsontable.EditorState.VIRGIN;
  };

  BaseEditor.prototype.extend = function(){
    var baseClass = this.constructor;
    function Editor(){
      baseClass.apply(this, arguments);
    };

    return Handsontable.helper.inherit(Editor, baseClass);
  };<commit_msg>Enchance BaseEditor interface.<commit_after>(function (Handsontable) {
  'use strict';

  Handsontable.EditorState = {
    VIRGIN: 'STATE_VIRGIN', //before editing
    EDITING: 'STATE_EDITING',
    WAITING: 'STATE_WAITING', //waiting for async validation
    FINISHED: 'STATE_FINISHED'
  };

  function BaseEditor(instance) {
    this.instance = instance;
    this.state = Handsontable.EditorState.VIRGIN;

    this._opened = false;

    this.init();
  }

  BaseEditor.prototype.init = function(){
    throw Error('Editor init() method unimplemented');
  };

  BaseEditor.prototype.val = function(newValue){
    throw Error('Editor val() method unimplemented');
  };

  BaseEditor.prototype.open = function(){
    throw Error('Editor open() method unimplemented');
  };

  BaseEditor.prototype.close = function(){
    throw Error('Editor close() method unimplemented');
  };

  BaseEditor.prototype.prepare = function(row, col, prop, td, originalValue, cellProperties){
    this.TD = td;
    this.row = row;
    this.col = col;
    this.prop = prop;
    this.originalValue = originalValue;
    this.cellProperties = cellProperties;

    this.state = Handsontable.EditorState.VIRGIN;
  };

  BaseEditor.prototype.extend = function(){
    var baseClass = this.constructor;
    function Editor(){
      baseClass.apply(this, arguments);
    };

    return Handsontable.helper.inherit(Editor, baseClass);
  };
{'fraction_non_alphanumeric': 0.12466487935656836, 'fraction_numerical': 0.0, 'mean_word_length': 3.7836538461538463, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, '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': '5363950', 'n_tokens_mistral': 912, 'n_tokens_neox': 862, 'n_words': 191}