docs: function exec (func, context, args) {
  	switch (args.length) {
  		case 0: func.call(context); break;
  		case 1: func.call(context, args[0]); break;
  		case 2: func.call(context, args[0], args[1]); break;
  		case 3: func.call(context, args[0], args[1], args[2]); break;
  		case 4: func.call(context, args[0], args[1], args[2], args[3]); break;
  		default: func.apply(context, args); break;
  	}
  }