Example #1
0
        public JsNode VisitArrayAccessResolveResult(ArrayAccessResolveResult res)
        {
            var node2 = new JsIndexerAccessExpression {
                Member = VisitExpression(res.Array), Arguments = VisitExpressions(res.Indexes)
            };

            return(node2);
        }
		public override JsExpression VisitArrayAccessResolveResult(ArrayAccessResolveResult rr, object data)
		{
			var array = VisitResolveResult(rr.Array, null);
			if (rr.Indexes.Count == 1)
				return CompileFactoryCall("ArrayIndex", new[] { typeof(Type), typeof(Expression), typeof(Expression) }, new[] { _instantiateType(rr.Type), array, VisitResolveResult(rr.Indexes[0], null) });
			else
				return CompileFactoryCall("ArrayIndex", new[] { typeof(Type), typeof(Expression), typeof(Expression[]) }, new[] { _instantiateType(rr.Type), array, JsExpression.ArrayLiteral(rr.Indexes.Select(i => VisitResolveResult(i, null))) });
		}
Example #3
0
        public override string VisitArrayAccessResolveResult(ArrayAccessResolveResult rr, object data)
        {
            var array = VisitResolveResult(rr.Array, null);

            if (rr.Indexes.Count == 1)
            {
                return(CompileFactoryCall("ArrayIndex", new[] { typeof(Type), typeof(Expression), typeof(Expression) }, new[] { ExpressionTreeBuilder.GetTypeName(rr.Type, this._emitter), array, VisitResolveResult(rr.Indexes[0], null) }));
            }
            else
            {
                return(CompileFactoryCall("ArrayIndex", new[] { typeof(Type), typeof(Expression), typeof(Expression[]) }, new[] { ExpressionTreeBuilder.GetTypeName(rr.Type, this._emitter), array, this._emitter.ToJavaScript(rr.Indexes.Select(i => new JRaw(this.VisitResolveResult(i, null))).ToArray()) }));
            }
        }
 public virtual TResult VisitArrayAccessResolveResult(ArrayAccessResolveResult rr, TData data)
 {
     VisitChildResolveResults(rr, data);
     return(default(TResult));
 }
Example #5
0
 string Visit(ArrayAccessResolveResult result)
 {
     throw new NotImplementedException();
 }
Example #6
0
        Value Visit(ArrayAccessResolveResult result)
        {
            var val = Convert(result.Array).GetPermanentReference(evalThread);

            return(val.GetArrayElement(result.Indexes.Select(rr => (uint)(int)Convert(rr).PrimitiveValue).ToArray()));
        }
		string Visit(ArrayAccessResolveResult result)
		{
			throw new NotImplementedException();
		}
		Value Visit(ArrayAccessResolveResult result)
		{
			var val = Convert(result.Array).GetPermanentReference(evalThread);
			return val.GetArrayElement(result.Indexes.Select(rr => (uint)(int)Convert(rr).PrimitiveValue).ToArray());
		}
Example #9
0
 public virtual object VisitArrayAccessResolveResult(ArrayAccessResolveResult rr, object data)
 {
     VisitChildResolveResults(rr, data);
     return(null);
 }
Example #10
0
 public object VisitArrayAccessResolveResult(ArrayAccessResolveResult res)
 {
     throw new NotImplementedException();
 }