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');