code: function( val ){
  
              this._active = false;
              var s;
              for ( var i = 0; i < regIndex; ++i ){
  
                  this[ i ] = 0;
              }
  
              // add it back to the scratch stack for future use
              scratches.push( this );
              return val;
          }
docs: Scratch#done( [val] ) -> Mixed
  - val (Mixed): No effect on this method, just passed on to the return value so you can do things like:
  return scratch.done( myReturnVal );
  + (Mixed): Whatever you specified as `val`
  
  Declare that your work is finished.
  
  Release temp objects for use elsewhere. Must be called when immediate work is done.
  
  You can wrap the return value in scratch.done() so that you don't forget to call it.
  
  Example:
  
  ```javascript
  return scratch.done( myReturnValue );
  ```