public async Task <DebugEvaluationResult> EvaluateAsync( DebugStackFrame stackFrame, string expression, string name, string env, DebugEvaluationResultFields fields, int?reprMaxLength = null, CancellationToken cancellationToken = default(CancellationToken) ) { ThrowIfDisposed(); await TaskUtilities.SwitchToBackgroundThread(); await InitializeAsync(cancellationToken); env = env ?? stackFrame?.SysFrame ?? "NULL"; var code = Invariant($"rtvs:::toJSON(rtvs:::eval_and_describe({expression.ToRStringLiteral()}, {env},, {fields.ToRVector()},, {reprMaxLength}))"); var jEvalResult = await InvokeDebugHelperAsync <JObject>(code, cancellationToken); return(DebugEvaluationResult.Parse(stackFrame, name, jEvalResult)); }