Beispiel #1
0
        private void ProcessNamespace(string ns)
        {
            if (processedNamespaces.Contains(ns))
            {
                return;
            }
            processedNamespaces.Add(ns);

            var lastDotIndex    = ns.LastIndexOf('.');
            var parentNamespace = lastDotIndex != -1 ? ns.Substring(0, lastDotIndex) : null;

            if (parentNamespace != null)
            {
                ProcessNamespace(parentNamespace);
            }

            JsBinaryExpression result;

            if (lastDotIndex == -1)
            {
                result = Js.Assign(Js.Reference("window").Member(ns), Js.Object());
            }
            else
            {
                result = Js.Assign(Js.Reference(ns), Js.Object());
            }
            result.Right = Js.Binary(JsBinaryOperator.LogicalOr, result.Left, result.Right);
            body.Express(result);
        }
Beispiel #2
0
        public void TestMethod2()
        {
            string s;

            var t = Js.Binary((x, y) => x + y);
            var u = Js.AddAssign(
                Js.Variable("t"),
                Js.Function <Func <JsObject, JsObject, JsObject, JsObject> >((a, b, c) => a + b * c)
                );

            s = u.ToString();
        }
Beispiel #3
0
        protected override Expression VisitBinary(BinaryExpression node)
        {
            Js left, right;

            Visit(node.Left);
            left = constructed;
            Visit(node.Right);
            right = constructed;

            var ops = new Dictionary <ExpressionType, string>()
            {
                { ExpressionType.Add, "+" },
                { ExpressionType.Subtract, "-" },
                { ExpressionType.Multiply, "*" },
                { ExpressionType.Divide, "/" },
            };

            constructed = Js.Binary(left, right, ops[node.NodeType]);

            return(node);
        }