Exemplo n.º 1
0
        private UstExprs.AnonymousMethodExpression VisitArrowFunctionExpression(ArrowFunctionExpression arrowFunctionExpression)
        {
            var parameters = VisitParameters(arrowFunctionExpression.Params);
            var body       = Visit(arrowFunctionExpression.Body);

            return(new UstExprs.AnonymousMethodExpression(parameters, body, GetTextSpan(arrowFunctionExpression)));
        }
            protected override void VisitArrowFunctionExpression(ArrowFunctionExpression arrowFunctionExpression)
            {
                // name, params skipped

                BeginNameScope(arrowFunctionExpression.Params);
                Visit(arrowFunctionExpression.Body);
                EndNameScope();
            }
Exemplo n.º 3
0
 protected override void VisitArrowFunctionExpression(ArrowFunctionExpression arrowFunctionExpression)
 {
     using (StartNodeObject(arrowFunctionExpression))
     {
         Member("id", arrowFunctionExpression.Id);
         Member("params", arrowFunctionExpression.Params);
         Member("body", arrowFunctionExpression.Body);
         Member("generator", arrowFunctionExpression.Generator);
         Member("expression", arrowFunctionExpression.Expression);
     }
 }
Exemplo n.º 4
0
        protected virtual void VisitArrowFunctionExpression(ArrowFunctionExpression arrowFunctionExpression)
        {
            //Here we construct the function so if we iterate only functions we will be able to iterate ArrowFunctions too
            var statement =
                arrowFunctionExpression.Expression
                    ? new BlockStatement(new NodeList <IStatementListItem>(new IStatementListItem[] { new ReturnStatement(arrowFunctionExpression.Body.As <Expression>()) }, 1))
                    : arrowFunctionExpression.Body.As <BlockStatement>();
            var func = new FunctionExpression(new Identifier(null),
                                              arrowFunctionExpression.Params,
                                              statement,
                                              false,
                                              new HoistingScope(),
                                              IsStrictMode);

            VisitFunctionExpression(func);
        }
Exemplo n.º 5
0
        // 4.11
        int IExpressionVisitor <int> .VisitArrowFunction(ArrowFunctionExpression expression)
        {
            if (expression.HasParameter)
            {
                WriteParameters(expression.Parameters);
            }
            else
            {
                _Writer.Write("()");
            }
            _Writer.Write(" => ");

            if (expression.HasStatement && expression.Statements.Count == 1 && expression.Statements[0] is ReturnStatement)
            {
                var rs = ((ReturnStatement)expression.Statements[0]).Value;

                if (rs != null)
                {
                    if (rs is ObjectExpression)
                    {
                        _Writer.Write('(');
                        rs.WriteExpression(_Writer);
                        _Writer.Write(')');
                    }
                    else
                    {
                        rs.WriteExpression(_Writer);
                    }

                    return(0);
                }
            }

            if (expression.HasStatement)
            {
                WriteMethodBody(expression.Statements);
            }
            else
            {
                _Writer.Write(" {}");
            }

            return(0);
        }
Exemplo n.º 6
0
        public virtual void VisitArrowFunctionExpression(ArrowFunctionExpression arrowFunctionExpression)
        {
            //Here we construct the function so if we iterate only functions we will be able to iterate ArrowFunctions too
            var statement =
                arrowFunctionExpression.Expression
                    ? new BlockStatement(NodeList.Create(new List <Statement> {
                new ReturnStatement(arrowFunctionExpression.Body.As <Expression>())
            }))
                    : arrowFunctionExpression.Body.As <BlockStatement>();
            var func = new FunctionExpression(
                new Identifier(null),
                arrowFunctionExpression.Params,
                statement,
                generator: false,
                StrictModeScope.IsStrictModeCode,
                async: false);

            VisitFunctionExpression(func);
        }
 public JintArrowFunctionExpression(Engine engine, ArrowFunctionExpression function)
     : base(ArrowParameterPlaceHolder.Empty)
 {
     _function = new JintFunctionDefinition(engine, function);
 }
Exemplo n.º 8
0
 protected internal override void VisitArrowFunctionExpression(ArrowFunctionExpression arrowFunctionExpression)
 {
     VisitingArrowFunctionExpression?.Invoke(this, arrowFunctionExpression);
     base.VisitArrowFunctionExpression(arrowFunctionExpression);
     VisitedArrowFunctionExpression?.Invoke(this, arrowFunctionExpression);
 }
Exemplo n.º 9
0
 public virtual void Visit(ArrowFunctionExpression expression, TContext context)
 {
     throw new NotImplementedException();
 }