old_contents: // Copyright 2011 The Closure Library Authors. All Rights Reserved.
  //
  // Licensed under the Apache License, Version 2.0 (the "License");
  // you may not use this file except in compliance with the License.
  // You may obtain a copy of the License at
  //
  //      http://www.apache.org/licenses/LICENSE-2.0
  //
  // Unless required by applicable law or agreed to in writing, software
  // distributed under the License is distributed on an "AS-IS" BASIS,
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  // See the License for the specific language governing permissions and
  // limitations under the License.
  
  /**
   * @fileoverview Definition of the disposable interface.  A disposable object
   * has a dispose method to to clean up references and resources.
   * @author nnaze@google.com (Nathan Naze)
   */
  
  
  goog.provide('goog.disposable.IDisposable');
  
  
  
  /**
   * Interface for a disposable object.  If a instance requires cleanup
   * (references COM objects, DOM notes, or other disposable objects), it should
   * implement this interface (it may subclass goog.Disposable).
   * @interface
   */
  goog.disposable.IDisposable = function() {};
  
  
  /**
   * Disposes of the object and its resources.
   * @return {void} Nothing.
   */
  goog.disposable.IDisposable.prototype.dispose = goog.abstractMethod;
  
  
  /**
   * @return {boolean} Whether the object has been disposed of.
   */
  goog.disposable.IDisposable.prototype.isDisposed = goog.abstractMethod;
  
new_contents: // Copyright 2011 The Closure Library Authors. All Rights Reserved.
  //
  // Licensed under the Apache License, Version 2.0 (the "License");
  // you may not use this file except in compliance with the License.
  // You may obtain a copy of the License at
  //
  //      http://www.apache.org/licenses/LICENSE-2.0
  //
  // Unless required by applicable law or agreed to in writing, software
  // distributed under the License is distributed on an "AS-IS" BASIS,
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  // See the License for the specific language governing permissions and
  // limitations under the License.
  
  /**
   * @fileoverview Definition of the disposable interface.  A disposable object
   * has a dispose method to to clean up references and resources.
   * @author nnaze@google.com (Nathan Naze)
   */
  
  
  goog.provide('goog.disposable.IDisposable');
  
  
  
  /**
   * Interface for a disposable object.  If a instance requires cleanup
   * (references COM objects, DOM nodes, or other disposable objects), it should
   * implement this interface (it may subclass goog.Disposable).
   * @record
   */
  goog.disposable.IDisposable = function() {};
  
  
  /**
   * Disposes of the object and its resources.
   * @return {void} Nothing.
   */
  goog.disposable.IDisposable.prototype.dispose = goog.abstractMethod;
  
  
  /**
   * @return {boolean} Whether the object has been disposed of.
   */
  goog.disposable.IDisposable.prototype.isDisposed = goog.abstractMethod;
  
subject: Allow object literals to be IDisposable