Ejemplo n.º 1
0
 public override JsExpression VisitObjectLiteralExpression(JsObjectLiteralExpression expression, object data)
 {
     if (expression.Values.Count > 0)
     {
         _result = true;
         return(expression);
     }
     else
     {
         return(base.VisitObjectLiteralExpression(expression, data));
     }
 }
Ejemplo n.º 2
0
        public object VisitObjectLiteralExpression(JsObjectLiteralExpression expression, bool parenthesized)
        {
            if (expression.Values.Count == 0)
            {
                _cb.Append("{}");
            }
            else
            {
                bool multiline = !_minify && expression.Values.Any(p => p.Value is JsFunctionDefinitionExpression);
                if (multiline)
                {
                    _cb.AppendLine("{").Indent();
                }
                else
                {
                    _cb.Append("{" + _space);
                }

                bool first = true;
                foreach (var v in expression.Values)
                {
                    if (!first)
                    {
                        if (multiline)
                        {
                            _cb.AppendLine(",");
                        }
                        else
                        {
                            _cb.Append("," + _space);
                        }
                    }
                    _cb.Append(v.Name.IsValidJavaScriptIdentifier() ? v.Name : ("'" + v.Name.EscapeJavascriptStringLiteral() + "'"))
                    .Append(":" + _space);
                    VisitExpression(v.Value, GetPrecedence(v.Value.NodeType) >= PrecedenceComma); // We ned to parenthesize comma expressions, eg. [1, (2, 3), 4]
                    first = false;
                }
                if (multiline)
                {
                    _cb.AppendLine().Outdent().Append("}");
                }
                else
                {
                    _cb.Append(_space + "}");
                }
            }
            return(null);
        }
        public virtual JsExpression VisitObjectLiteralExpression(JsObjectLiteralExpression expression, TData data)
        {
            var values = VisitObjectLiteralProperties(expression.Values, data);

            return(ReferenceEquals(values, expression.Values) ? expression : JsExpression.ObjectLiteral(values));
        }