Насколько мне известно, в других движках JavaScript подобной функции нет.
Но с помощью этой функции легко преобразовать код:
try {
A
} catch (e if B) {
C
}
в код, который использует только стандартныефункции, которые поддерживаются всеми механизмами JavaScript:
try {
A
} catch (e) {
if (B) {
C
} else {
throw e;
}
}
Пример, который вы привели, еще проще перевести:
try {
getCustInfo("Lee", 1234, "lee@netscape.com");
} catch (e) {
if (e == "InvalidNameException") {
bad_name_handler(e);
} else if (e == "InvalidIdException") {
bad_id_handler(e);
} else if (e == "InvalidEmailException") {
bad_email_handler(e);
} else {
logError(e);
}
}