В общем, жил да был в одной С++ проге «компактный!»(ТМ) js-движок, который позволял сравнительно легко заменить объект по ссылке This(), например, если он содержит строку - другой строкой, сохранив привычную семантику вызова, но не парясь с вытаскиванием класса Message в жабоскрипт:
var msg = "какое-то форматированное сообщение";
msg.set(tag, value); //на самом деле делает что-то вроде msg = newMsg;
//c новыми тегами
msg.send(); //посылает отредактированное сообщение по какому-то протоколу
Время шло, старый движок заболел своими достоинствами («компактный же!») и вообще умер и протух где-то на сорцфорже. Решили добры молодцы заменить это дело на v8, чтоб все было глобально и надежно. Контексты, хэндлы и Arguments::This() - это все конешно очень блааародно... Вот незадача: в старом движке можно было лукапить переменные вызовами FindChild(«varName»); или FindOrCreate(«varName») и находу подменять объект, на который указывает This(), благо встроенный ссылочный тип дозволяет - куда положили, туда и лежит. Есть в v8 что-то похожее на лукап или ССЗБ и нет пути? Конкретно интересует возможность узнать имя переменной, хэндл на которую получается через Arguments::This(). (Тогда есть надежда выполнить тупой скрипт msg = newMsg; и довись оно конем.)
П.С. Очень не охота править кучу унаследованных скриптов. Пионеры и так уже вместо приделывания через плюсы функций с семантикой метода (хоть бы и через v8convert, хотя и без него нормально) наворотили два слоя оберток в JS через Object.prototype... Которые с Arguments::This() нафиг не нужны.