;(function(global, factory) {
  // Use UMD pattern to expose exported functions
  if (typeof exports === 'object') {
    // Expose to Node.js
    module.exports = factory();
  } else if (typeof define === 'function' && define.amd) {
    // Expose to RequireJS
    define([], factory);
  }

  // Expose to global object (likely browser window)
  var exports = factory();
  for (var prop in exports) {
    global[prop] = exports[prop];
  }
}(this, function() {
  var numIntervals = 0,
    intervals = {};

  var setCorrectingInterval = function (func, delay) {
    var id = numIntervals++,
      planned = Date.now() + delay;

    function tick () {
      func();
      if (intervals[id]) {
        planned += delay;
        intervals[id] = setTimeout(tick, planned - Date.now());
      }
    }

    intervals[id] = setTimeout(tick, delay);
    return id;
  };

  var clearCorrectingInterval = function (id) {
    clearTimeout(intervals[id]);
    delete intervals[id];
  };

  return {
    setCorrectingInterval: setCorrectingInterval,
    clearCorrectingInterval: clearCorrectingInterval
  };
}));
@@ -535,17 +535,16 @@
 function
- 
 (func, d
@@ -634,17 +634,16 @@
 ion tick
- 
 () %7B%0A   
@@ -891,17 +891,16 @@
 function
- 
 (id) %7B%0A 

Resolve spacing inconsistency (no space before function parameters)