import { isFunction } from './checks.js' // does simply nothing export function noop() { return this } /** * Autobind the methods of a source object to itself * @param {object} source - probably a riot tag instance * @param {Array} methods - list of the methods to autobind * @returns {object} the original object received */ export function autobindMethods(source, methods) { methods.forEach((method) => { source[method] = source[method].bind(source) }) return source } /** * Call the first argument received only if it's a function otherwise return it as it is * @param {*} source - anything * @returns {*} anything */ export function callOrAssign(source) { return isFunction(source) ? source.prototype && source.prototype.constructor ? new source() : source() : source }