code: function processDefineBlock(node) {
        var defineMethod, sugarNamespace, methods, type, deps = [], opts = {};
  
        function getBlockEnd() {
          var arg3 = node.expression.arguments[2], end = '}';
          if (arg3) {
            deps = deps.concat(getDependencies(arg3));
            end += ', ' + getNodeBody(arg3);
          }
          end += ');';
          return end;
        }
  
        defineMethod   = node.expression.callee.name;
        sugarNamespace = node.expression.arguments[0].name;
        methods        = node.expression.arguments[1].properties;
  
        type = hasStaticToken(defineMethod) ? 'static' : 'instance';
        opts.polyfill = hasPolyfillToken(defineMethod);
  
        deps.push(defineMethod);
        deps.push(sugarNamespace);
  
        opts.defineMethod = defineMethod;
        opts.blockStart   = defineMethod + '(' + sugarNamespace + ', {';
        opts.blockEnd     = getBlockEnd();
  
        methods.forEach(function(node) {
          addSugarMethod(node.key.value, node, type, deps, opts);
        });
      }
docs: Define block example: defineInstance(sugarDate, { ... }, [FLAG]);