Ejemplo n.º 1
0
        public static byte[] ToByteArray(this ArrayInstance arrayInstance)
        {
            int length = (int)arrayInstance.GetLength();

            byte[] result = new byte[length];
            for (int i = 0; i < length; ++i)
            {
                result[i] = (byte)arrayInstance.Get(i.ToString()).AsNumber();
            }
            return(result);
        }
Ejemplo n.º 2
0
        public static List <T> SerializeArray <T>(ArrayInstance instance)
        {
            var arrayLength = TypeConverter.ToInt32(instance.Get("length"));
            var mediaList   = new List <T>();

            for (var i = 0; i < arrayLength; ++i)
            {
                string propName      = i.ToString();
                var    isOwnProperty = instance.HasProperty(propName);
                if (isOwnProperty)
                {
                    // get and deserialize js object
                    var jsValue = instance.Get(propName);
                    var jObj    = JObject.FromObject(jsValue.ToObject());
                    mediaList.Add(jObj.ToObject <T>());
                }
            }

            return(mediaList);
        }
Ejemplo n.º 3
0
        public static void ForEach(this ArrayInstance self, Action <int, JsValue> callback)
        {
            for (int i = 0;; i++)
            {
                string index = i.ToString();
                if (!self.HasOwnProperty(index))
                {
                    break;
                }

                callback(i, self.Get(index));
            }
        }
Ejemplo n.º 4
0
        private string SerializeArray(ArrayInstance value)
        {
            EnsureNonCyclicity(value);
            _stack.Push(value);
            var stepback = _indent;

            _indent = _indent + _gap;
            var partial = new List <string>();
            var len     = TypeConverter.ToUint32(value.Get(CommonProperties.Length, value));

            for (int i = 0; i < len; i++)
            {
                var strP = Str(TypeConverter.ToString(i), value);
                if (strP.IsUndefined())
                {
                    strP = "null";
                }
                partial.Add(strP.ToString());
            }
            if (partial.Count == 0)
            {
                _stack.Pop();
                return("[]");
            }

            string final;

            if (_gap == "")
            {
                var separator  = ",";
                var properties = System.String.Join(separator, partial.ToArray());
                final = "[" + properties + "]";
            }
            else
            {
                var separator  = ",\n" + _indent;
                var properties = System.String.Join(separator, partial.ToArray());
                final = "[\n" + _indent + properties + "\n" + stepback + "]";
            }

            _stack.Pop();
            _indent = stepback;
            return(final);
        }