             _stack = stack || [];
         }
 
-        public function get _():JSProxy {
-            _nextCallIsstack = true;
-            return this;
-        }
-
         public function get proxy():JSProxy {
             return getProperty('proxy');
         }

        }

        flash_proxy override function callProperty(name:*, ...args):* {
            if (_nextCallIsstack) {
                _nextCallIsstack = false;
                _stack.push([name, args]);
                return this;
            } else {
                return callJS(newStack.apply(null, [name].concat(args)));
            }
        }

        flash_proxy override function getProperty(name:*):* {
            _nextCallIsstack = false;
            return new JSProxy(newStack(name));
        }

        flash_proxy override function getDescendants(name:*):* {
            _nextCallIsstack = false;
            return callJS(newStack(name));
        }

        flash_proxy function newStack(name:*, ...args):Array {
            var stack:Array = _stack.slice();
            if (args.length > 0) {
                stack.push([name, args.slice()]);
            } else {
                stack.push(name);

        }

        flash_proxy override function hasProperty(name:*):Boolean {
            return callJS(newStack(new QName('', name))) !== undefined;
        }

        flash_proxy override function setProperty(name:*, value:*):void {
            callJSSetProperty(newStack(name), value);
        }

