Придумал крутую идею короч, скоуп будет переходить в 2 дополнительных режима, всего 3. обычный, это когда выражения тупо перебираются и их результат сравнивается с предыдущим значением которое они вернули. Второй режим это если поддерживаются геттеры и сеттеры, и выражение позволяет их использовать, то на обьекты в выражении будут повешены геттеры и сеттеры. при прекращении наблюдения они будут сняты. И третий режим, в него будем переходиить если браузер поддерживает Object.observe
таким образом ускорение вообще будет практически моментальным, по сколько в 99.999% случаях человек использует выражения типа просто "Ctrl.name" то практически всегда скоуп будет переходить в режим сеттеров и геттеров, и только в случае 'Ctrl.getUsers()' он будет работать в грязном режиме. Ну и в ишаках старых)
Ну и обкатаем заодно Object.observe, правда я не совсем понимаю как делать из него "режим", ведь это всю суть скоупа меняет) но попробуем прикрутить. Вообще, как вариант, если поддерживается Object.observe, то просто использовать другой скоуп специально заточеный под работу с Object.observe, а не пытаться вклинить его в старый скоуп.
Последний раз редактировалось Maxmaxmaximus1000, 28.05.2014 в 08:33.
|