public override object Call(IObj that, object[] args)
        {
            var len = JsTypeConverter.ToInt32(that.Get("length"));

            if (len != 0)
            {
                var result = that.Get((double)len - 1);
                that.Delete(len);
                that.Put("length", (double)len - 1);
                return result;
            }

            that.Put("length", (double)len);
            return Undefined.Instance;
        }
        public override object Call(IObj that, object[] args)
        {
            var n = (double) JsTypeConverter.ToInt32(that.Get("length"));

            foreach (var arg in args)
                that.Put(n++, arg);

            return n;
        }