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); } }