text: /**
   * @file
   * A Backbone Model subclass that enforces validation when calling set().
   */
  
  (function (Backbone) {
  
    "use strict";
  
    Drupal.quickedit.BaseModel = Backbone.Model.extend(/** @lends Drupal.quickedit.BaseModel# */{
  
      /**
       * @constructs
       *
       * @augments Backbone.Model
       *
       * @param {object} options
       *
       * @return {Drupal.quickedit.BaseModel}
       */
      initialize: function (options) {
        this.__initialized = true;
        return Backbone.Model.prototype.initialize.call(this, options);
      },
  
      /**
       *
       * @param {object|string} key
       * @param {*} val
       * @param {object} [options]
       *
       * @return {*}
       */
      set: function (key, val, options) {
        if (this.__initialized) {
          // Deal with both the "key", value and {key:value}-style arguments.
          if (typeof key === 'object') {
            key.validate = true;
          }
          else {
            if (!options) {
              options = {};
            }
            options.validate = true;
          }
        }
        return Backbone.Model.prototype.set.call(this, key, val, options);
      }
  
    });
  
  }(Backbone));
  