Поясняю: «Массив из двух элементов, получившийся у Internet Explorer, в число не преобразуется» потому как при развертывании в IE мы получим не 1 а 1 с запятой, так как будет иметь место перечисление элементов — единицы и второго, несуществующего.
Нет, не так. Во первых IE не «спотыкается» на запятой, а считает её признаком ещё одного элемента, не более. Во вторых конструкция
{name1:val1,name2:val2,}
выдаст ошибку не из за запятой а из за того что в хэше, где используется сочетание ключ: значение в отличие от массивов, не будет найден очередной ключ.
Не устраивают штатные средства как раз тем, что они штатные (и зачастую очень уж некомпактные). Писать такие хаки — спорт и искусство. Мне это доставляет удовольствие.
Очень может быть, так как майкрософтовцы обещали сильно переписанный js движок в 9 IE, так что остается надеяться на то, что именно такие устоявшиеся безобидные помарки останутся.
А в какой версии Opera выдавались предупреждения? Я проверял в 9 (кажется финальной девятой) и 10 версиях — хак не вызывал никаких отрицательных эмоций у браузера )
!-[1,]
{name1:val1,name2:val2,}
выдаст ошибку не из за запятой а из за того что в хэше, где используется сочетание ключ: значение в отличие от массивов, не будет найден очередной ключ.