Нее - вру, то было наоборот, вот прямой разбор:
/* Get the VISIBILITY parameter to know if this layer starts hidden. */
if (param->visibility)
{
/* Handle "HIDE", "HIDDEN", etc. */
hidden = (PRBool)!XP_STRNCASECMP(param->visibility, "hid", 3);
inherit_visibility = (PRBool)!XP_STRCASECMP(param->visibility, "inherit"
);
}
и вот
/* Accept "hidden" or "hide" */
hidden = (JSBool)(!XP_STRNCASECMP(visibility, "hid", 3));
inherit = (JSBool)(!XP_STRCASECMP(visibility, "inherit"));
if (!hidden && !inherit &&
XP_STRCASECMP(visibility, "show") &&
XP_STRCASECMP(visibility, "visible")) {
JS_ReportError(cx,
"Layer visibility property must be set to "
"one of \'hide\', \'show\' or \'inherit\'");
т.е ему пофиг hide или hidden
а на "show" он вообще не смотрит - только на "hid" или "inherit".
Все остальное для него = "show"