// first element of params can be the value static S hpasswordfield(S name, O... params) { O value = ""; if (odd(l(params))) { value = params[0]; params = dropFirst(params); } O autofocus = optPar autofocus(params); params = changeParam(params, autofocus := eqOneOf(autofocus, true, 1, "1", 'autofocus) ? html_valueLessParam() : null); ret tag("input", "", concatArrays(new O[] {"type", "password", "name", name, "value", value}, params)); } static S hpasswordfield(S name) { ret hpasswordfield(name, ""); }