code: function getTheMethod(classDef, conditionals, methods) {
    return function runMixinMethods(...args) {
      let result;
      for (let i = 0; i < conditionals.length; i++) {
        if (!conditionals[i].apply(this, args)) return;
      }
  
      methods.forEach(function runMixinMethodsIterator(method) {
        const resultTmp = method.apply(this, args);
        if (resultTmp !== undefined) result = resultTmp;
      }, this);
      return result;
    };
  }
docs: /*
  This function returns a function that keeps the conditionals and methods in scope
  so that they can be run at any time as our new method definition.