Показать сообщение отдельно
  #15 (permalink)  
Старый 20.03.2009, 21:37
...
Отправить личное сообщение для Zeroglif Посмотреть профиль Найти все сообщения от Zeroglif
 
Регистрация: 09.03.2008
Сообщений: 216

Сообщение от no_alex
если речь идет только об Opere 8 и ниже
Боюсь ошибиться, но свойство 'Function.caller' появилось очень давно, где-то в JavaScript 1.1, в JScript соответственно следом. Позднее в JavaScript 1.2 добавили свойство 'arguments.caller', которое в следующей же версии от страха прибили (вот оно как раз открытым текстом deprecated в JavaScript 1.3). При этом свойство 'Function.caller' из offline-спеков JavaScript выпало вообще (deprecated закрытым текстом), вы его найдёте только в новомодной редактируемой MDC, B.Eich объяснял пропажу так:

All traces of a caller property were removed a while ago, to follow ECMA-262 and to avoid any chance of a security exploit. The removal seems to me to have been overzealous, because it axed the caller property of function objects *and* the much-more-exploitable caller (or __caller__) property of activation objects.

В общем, в основных движках свойство сидит с прошлого века, но в одном из них временно отстутствовало, выпадая из спеков. Все остальные традиционно бедны последовательной документацией, в Opera точно не было долго (помню был такой вопрос на винграде), в Safari ещё труднее сказать... свойство вне стандарта, редко используемое, может взбрыкнуть.
Ответить с цитированием