public override void Compile(ByteCode bc)
        {
            _function.Compile(bc);

            int argslen = _arguments.Count;

            if (!string.IsNullOrEmpty(_name))
            {
                bc.Emit_Copy(0);
                bc.Emit_Index(DynValue.NewString(_name), true);
                bc.Emit_Swap(0, 1);
                ++argslen;
            }

            for (int i = 0; i < _arguments.Count; i++)
            {
                _arguments[i].Compile(bc);
            }

            if (!string.IsNullOrEmpty(_name))
            {
                bc.Emit_ThisCall(argslen, _debugErr);
            }
            else
            {
                bc.Emit_Call(argslen, _debugErr);
            }
        }