public JsValue ToJsValue(Engine engine, object value, BlittableJsonToken token, string propertyKey = null) { switch (token & BlittableJsonReaderBase.TypesMask) { case BlittableJsonToken.Null: return(JsValue.Null); case BlittableJsonToken.Boolean: return(new JsValue((bool)value)); case BlittableJsonToken.Integer: return(new JsValue((long)value)); case BlittableJsonToken.Float: return(new JsValue((double)(LazyDoubleValue)value)); case BlittableJsonToken.String: return(new JsValue(((LazyStringValue)value).ToString())); case BlittableJsonToken.CompressedString: return(new JsValue(((LazyCompressedStringValue)value).ToString())); case BlittableJsonToken.StartObject: return(ToJsObject(engine, (BlittableJsonReaderObject)value, propertyKey)); case BlittableJsonToken.StartArray: return(ToJsArray(engine, (BlittableJsonReaderArray)value, propertyKey)); default: throw new ArgumentOutOfRangeException(token.ToString()); } }