JSFiddle - React, Tailwind, and code Playground

by Eric Howe

HTML

<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>

JavaScript

function f(argv) {
    argv  = [].slice.call(arguments);
    attrs = { };
    if(argv.length == 1 && _(argv[0]).isObject()) {
        attrs = argv[0];
    }
    else if(argv.length % 2 == 0) {
        for(var i = 0; i < argv.length; i += 2) {
            attrs[argv[i]] = argv[i + 1];
        }
    }
    else {
        throw 'Bad argument list';
    }
    console.log(attrs);
}

function wrapper() {
    try {
        f.apply(this, arguments);
    }
    catch(e) {
        console.log(e);
    }
}


wrapper({ k1: 'v1', k2: 'v2' });
wrapper('k1', 'v1');
wrapper('k1', 'v1', 'k2', 'v2');
wrapper('k1', 'v1', 'k2');
wrapper('k1');