public void VisitNode(JSNewArrayExpression nae) { var parentBoe = ParentNode as JSBinaryOperatorExpression; if (parentBoe != null) { var leftField = parentBoe.Left as JSFieldAccess; if ( (leftField != null) && PackedArrayUtil.IsPackedArrayType(leftField.Field.Field.FieldType) ) { JSNewPackedArrayExpression replacement; if (nae.Dimensions != null) { replacement = new JSNewPackedArrayExpression(leftField.Field.Field.FieldType, nae.ElementType, nae.Dimensions, nae.SizeOrArrayInitializer); } else { replacement = new JSNewPackedArrayExpression(leftField.Field.Field.FieldType, nae.ElementType, nae.SizeOrArrayInitializer); } ParentNode.ReplaceChild(nae, replacement); VisitReplacement(replacement); return; } } VisitChildren(nae); }
public void VisitNode(JSNewArrayExpression na) { var ct = GetCachedType(na.ElementType); if (ct != null) { na.CachedElementTypeIndex = ct.Index; } VisitChildren(na); }
public void NewArrayTraversal () { var na = new JSNewArrayExpression( T1, new JSExpression[] { JSLiteral.New(2) }, new JSArrayExpression( T1, JSLiteral.New(3), JSLiteral.New(4) ) ); // DumpNodeSequence(na.SelfAndChildrenRecursive); DumpNodeSequence(na.AllChildrenRecursive); Assert.AreEqual(2, na.Children.ToArray().Length, "Child count"); Assert.AreEqual(4, na.AllChildrenRecursive.ToArray().Length, "Recursive child count"); }
public void VisitNode (JSNewArrayExpression nae) { var parentBoe = ParentNode as JSBinaryOperatorExpression; if (parentBoe != null) { var leftField = parentBoe.Left as JSFieldAccess; if ( (leftField != null) && PackedArrayUtil.IsPackedArrayType(leftField.Field.Field.FieldType) ) { JSNewPackedArrayExpression replacement; if (nae.Dimensions != null) { replacement = new JSNewPackedArrayExpression(leftField.Field.Field.FieldType, nae.ElementType, nae.Dimensions, nae.SizeOrArrayInitializer); } else { replacement = new JSNewPackedArrayExpression(leftField.Field.Field.FieldType, nae.ElementType, nae.SizeOrArrayInitializer); } ParentNode.ReplaceChild(nae, replacement); VisitReplacement(replacement); return; } } VisitChildren(nae); }
public void VisitNode(JSNewArrayExpression na) { var ct = GetCachedType(na.ElementType); if (ct != null) na.CachedElementTypeIndex = ct.Index; VisitChildren(na); }