window.devtoolsFormatters = [ { header(obj) { if (obj instanceof StandardMethod) { console.log('........................................') const method = obj; return ["div", {}, `# ':'+x.toString().slice(7,-1)).join(' ')} (${method.specializers.map(x => x.name.toString())})>`]; } return null; }, hasBody() { return false; } }, { header(obj, config) { if (config && config.genfunFormatter) { return ["div", {}, config.key]; } else if (! (obj.gf || obj instanceof GenericFunction) ) { return null; } else if (obj.gf) { const args = obj.gf.lambda_list.join(', '); const method_count = obj.gf.methods.length return [ 'div', {}, `GenericFunction lambda: ${obj.gf.name}(${args}) ` + `[${method_count} methods]` ]; } else { const args = obj.lambda_list.join(', '); const method_count = obj.methods.length return [ 'div', {}, `#` ]; } }, hasBody(obj) {return obj instanceof GenericFunction || obj instanceof StandardMethod;}, body(obj, config) { if (! (obj instanceof GenericFunction || obj instanceof StandardMethod) ) { return null; } else if ( obj instanceof StandardMethod ) { return ["div", {style: 'margin-left: 2em'}].concat( Object.keys(obj).map( key => { if (obj[key] instanceof String) { return ["div", {}, `${key}: ${obj[key]},`]; } else { return ["div", {}, `${key}: `, ["object", {object: obj[key]}], ',']; } } ) ); } const children = obj.methods.map( (method,idx) => { const child = [ "object", { object: method, config: { genfunFormatter: true, key: `# ':'+x.toString().slice(7,-1)).join(' ')} (${method.specializers.map(x => x.name.toString())})>`, }, }, ]; return ["div", {style: `margin-left: 2em;`}, child] } ); return ["div", {}].concat(children); } } ];