1234567891011121314151617181920212223242526272829303132333435363738 |
- using Esprima.Ast;
- using Jint.Native;
- namespace Jint.Runtime.Interpreter.Expressions
- {
- internal sealed class JintSequenceExpression : JintExpression
- {
- private JintExpression[] _expressions;
- public JintSequenceExpression(Engine engine, SequenceExpression expression) : base(engine, expression)
- {
- _initialized = false;
- }
- protected override void Initialize()
- {
- var expression = (SequenceExpression) _expression;
- _expressions = new JintExpression[expression.Expressions.Count];
- for (var i = 0; i < expression.Expressions.Count; i++)
- {
- _expressions[i] = Build(_engine, expression.Expressions[i]);
- }
- }
- protected override object EvaluateInternal()
- {
- var result = Undefined.Instance;
- var expressions = _expressions;
- for (var i = 0; i < (uint) expressions.Length; i++)
- {
- var expression = expressions[i];
- result = expression.GetValue();
- }
- return result;
- }
- }
- }
|