old_contents: var $ = require('../')
    , assert = require('assert')
  
  $.import('Foundation')
  var pool = $.NSAutoreleasePool('alloc')('init')
  
  var Obj = $.NSObject.extend('Obj')
  Obj.addMethod('sel:', 'v@:@', function (self, _cmd, timer) {
    console.log('self:\t%s', self)
    console.log('timer:\t%s', timer)
    console.log('info:\t%s', timer('userInfo'))
    console.log()
  }).register()
  
  var timer = $.NSTimer('scheduledTimerWithTimeInterval', 2.0
                       ,'target', Obj('alloc')('init')
                       ,'selector', 'sel:'
                       ,'userInfo', $._('Info')
                       ,'repeats', 1)
  
  $.NSRunLoop('mainRunLoop')('run')
  
new_contents: var $ = require('../')
    , assert = require('assert')
  
  $.import('Foundation')
  var pool = $.NSAutoreleasePool('alloc')('init')
  
  var Obj = $.NSObject.extend('Obj')
    , invokeCount = 0
  
  Obj.addMethod('sel:', 'v@:@', function (self, _cmd, timer) {
    assert.equal('Info', timer('userInfo').toString())
    if (++invokeCount == 5) {
      timer('invalidate')
      process.exit(0)
    }
  }).register()
  
  var timer = $.NSTimer('scheduledTimerWithTimeInterval', 0.5
                       ,'target', Obj('alloc')('init')
                       ,'selector', 'sel:'
                       ,'userInfo', $('Info')
                       ,'repeats', 1)
  
  process.on('exit', function () {
    assert.equal(invokeCount, 5)
  })
  
  $.NSRunLoop('mainRunLoop')('run')
  
subject: Make test/nstimer.js be silent.