public static Task <bool> GetJsExpressionAndEvaluateToBoolAsync(this ReadOnlyMemory <char> expr, ScriptScopeContext scope, Action ifNone = null) { if (expr.IsNullOrEmpty()) { ifNone?.Invoke(); return(TypeConstants.FalseTask); } var token = expr.GetCachedJsExpression(scope); if (token == null) { ifNone?.Invoke(); return(TypeConstants.FalseTask); } return(token.EvaluateToBoolAsync(scope)); }
public static Task <object> GetJsExpressionAndEvaluateAsync(this ReadOnlyMemory <char> expr, TemplateScopeContext scope, Action ifNone = null) { if (expr.IsNullOrEmpty()) { ifNone?.Invoke(); return(TypeConstants.EmptyTask); } var token = expr.GetCachedJsExpression(scope); if (token == null) { ifNone?.Invoke(); return(TypeConstants.EmptyTask); } return(token.EvaluateAsync(scope)); }
public static object GetJsExpressionAndEvaluate(this ReadOnlyMemory <char> expr, ScriptScopeContext scope, Action ifNone = null) { if (expr.IsNullOrEmpty()) { ifNone?.Invoke(); return(null); } var token = expr.GetCachedJsExpression(scope); if (token == null) { ifNone?.Invoke(); return(null); } var result = token.Evaluate(scope); return(result); }
public static bool GetJsExpressionAndEvaluateToBool(this ReadOnlyMemory <char> expr, TemplateScopeContext scope, Action ifNone = null) { if (expr.IsNullOrEmpty()) { ifNone?.Invoke(); return(false); } var token = expr.GetCachedJsExpression(scope); if (token == null) { ifNone?.Invoke(); return(false); } var result = token.EvaluateToBool(scope); return(result); }
public static async Task <object> GetJsExpressionAndEvaluateAsync(this ReadOnlyMemory <char> expr, ScriptScopeContext scope, Action ifNone = null) { if (expr.IsNullOrEmpty()) { ifNone?.Invoke(); return(TypeConstants.EmptyTask); } var token = expr.GetCachedJsExpression(scope); if (token == null) { ifNone?.Invoke(); return(TypeConstants.EmptyTask); } var ret = await token.EvaluateAsync(scope).ConfigAwait(); return(ret == JsNull.Value ? null : ret); }