public LNode Property(LNode type, LNode name, LNode argList, LNode body, LNode initializer = null, int startIndex = -1, int endIndex = -1)
{
argList = argList ?? Missing_;
CheckParam.Arg("body with initializer", initializer == null || (body != null && body.Calls(S.Braces)));
if (endIndex < startIndex) endIndex = startIndex;
LNode[] list = body == null
? new[] { type, name, argList, }
: initializer == null
? new[] { type, name, argList, body }
: new[] { type, name, argList, body, initializer };
return new StdSimpleCallNode(S.Property, new VList<LNode>(list), new SourceRange(_file, startIndex, endIndex - startIndex), startIndex, startIndex);
}