git.fiddlerwoaroof.com
Raw Blame History
/* eslint-disable */

window.devtoolsFormatters = [
    {
        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', {},
                    `#<GenericFunction: ${obj.name}(${args}) [${method_count} methods]>`
                ];
            }
        },
        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: `#<StandardMethod ${method.qualifiers.map(x => ':'+x.toString().slice(7,-1)).join(' ')} (${method.specializers.map(x => x.name.toString())})>`,
                            },
                        },
                    ];
                    return ["div", {style: `margin-left: 2em;`},
                            child]
                }
            );
            return ["div", {}].concat(children);
        }
    }
];