private static JsValue Convert(Engine e, object v) { var array = (System.Array)v; var arrayLength = (uint)array.Length; var jsArray = new ArrayInstance(e, arrayLength); jsArray.Prototype = e.Array.PrototypeObject; jsArray.Extensible = true; for (uint i = 0; i < arrayLength; ++i) { var jsItem = FromObject(e, array.GetValue(i)); jsArray.WriteArrayValue(i, new PropertyDescriptor(jsItem, PropertyFlag.ConfigurableEnumerableWritable)); } jsArray.SetOwnProperty("length", new PropertyDescriptor(arrayLength, PropertyFlag.OnlyWritable)); return(jsArray); }