2011-11-24  Miguel de Icaza  <miguel@gnome.org>

	Extend JsonSerializerReader to support nullables and parse a wider
	range of Date formats, fixes x#163

2011-04-06  Atsushi Eno  <atsushi@ximian.com>

	Looks like .NET accepts non-integer numbers as int. Smells bogus
	though.

2011-04-05  Atsushi Eno  <atsushi@ximian.com>

	Fix build, looks like ArrayList is internally available in moon.

2011-04-05  Atsushi Eno  <atsushi@ximian.com>

	Collection support in JSON serializer was actually for any
	IEnumerable.

2011-04-05  Atsushi Eno  <atsushi@ximian.com>

	Revert PushbackReader changes (was unnecessary and actually
	bogus).

2011-04-05  Atsushi Eno  <atsushi@ximian.com>

	null value also outputs "type='null' in WCF JSON writer.

2011-04-05  Atsushi Eno  <atsushi@ximian.com>

	Auto-detect text encoding from input stream for JsonReader. Fix
	DBCS pushback.

2011-04-05  Atsushi Eno  <atsushi@ximian.com>

	IDictionary`2 serialization support was missing in
	DataContractJsonSerializer.

	Fixed bug #685042.

2011-04-02  Atsushi Eno  <atsushi@ximian.com>

	A bit less !NET_2_1 and !MOONLIGHT in Sys.ServiceModel.Web.

2011-03-26  Atsushi Eno  <atsushi@ximian.com>

	null JSON type must be handled in JsonWriter.

2011-03-26  Atsushi Eno  <atsushi@ximian.com>

	Do not always assume ascii == 1 byte in JsonWriter. Fix utf-16
	usage.

2011-03-08  Miguel de Icaza  <miguel@gnome.org>

	[System.Json] Fix loader.

	The current loader failed with some Json strings due to the
	implementation of the BufferedStreamReader. Removed that
	implementation completely, and instead depend on the StreamReader
	to do the actual BOM detection.

	This removes the JavaScriptObjectDeserializer.cs file

2011-01-25  Geoff Norton  <grompf@sublimeintervention.com>

	Work around a full-aot issue for monotouch System.Json

2011-01-21  Atsushi Eno  <atsushi@ximian.com>

	backport JavaScriptObjectDeserializer encoding detection fix.

2010-10-29  Andreia Gaita  <shana@jitted.com>

	[JsonWriter] Fix JsonWriter yet again. Behaviour of WriteRaw on
	.net and sl is different, so ifdef to make everyone happy!

2010-10-29  Atsushi Eno  <atsushi@ximian.com>

	Fix JsonWriterTest.WriteRaw() regression. WriteRaw() is (looking)
	almost identical to WriteString() here.

2010-10-15  Andreia Gaita  <shana@jitted.com>

	[Json] Add support for calling external json (de)serialization
	methods

	On Moonlight, ScriptObject types have custom (de)serialization
	methods that need to be called whenever a user object includes
	properties of that type. This patch creates a TypeMap subclass
	(ExternalTypeMap) and exposes a method that can be called from
	moon's System.Windows.Browser to register custom serialization and
	deserialization methods, keyed by type. These are called whenever
	a property is found with a type (or base type) that has custom
	methods registered.

2010-10-15  Andreia Gaita  <shana@jitted.com>

	[Json] Fix decimal type serialization

2010-09-30  Andreia Gaita  <shana@jitted.com>

	[Json] Fix uint type conversion when reading, should be mapped to
	long, not int

2010-09-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	JsonSerializationWriter: handle char values

2010-07-27  Andreia Gaita  <avidigal@novell.com>

	* JsonSerializationReader.cs: Add Char type to the switch. Reads the
	  content as a string and validates its length

2010-07-27  Andreia Gaita  <avidigal@novell.com>

	* JsonSerializationReader.cs, JsonSerializationWriter.cs:
	  Add a special case for IDictionary, since KeyValuePair objects
	  have private setters and can't be processed via the normal
	  object code path.

2010-07-06  Atsushi Enomoto  <atsushi@ximian.com>

	* TypeMap.cs :
	  Do not try to add static members as serialization targets.
	  Support OnDeserializing and OnDeserialized. Fixed bug #615800.

2010-07-06  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonSerializationWriter.cs : it cannot serialize DateTime in
	  double, which causes crash in deserializer.

2010-07-06  Atsushi Enomoto  <atsushi@ximian.com>

	* TypeMap.cs : when an object is null, return null, not just an 
	  uninitialized object.

2010-07-06  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractJsonSerializer_2_1.cs : add extra methods for
	  Sys.SM.Web.Extensions build.

2010-07-06  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonReader.cs : do not keep Attribute state once Read() is called.

2010-04-24  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonSerializationReader.cs : use List<T> if the contract member
	  type is interface.

2010-03-16  Jb Evain  <jbevain@novell.com>

	* DataContractJsonSerializer.cs: use MOONLIGHT symbol to
	disambiguate MonoTouch and Moonlight code.

2010-03-13  Kornél Pál  <kornelpal@gmail.com>

	* JavaScriptReader.cs: Deserialize "false" correctly.
	  Fixed bug #586712.

2010-03-10  Atsushi Enomoto  <atsushi@ximian.com>

	* JavaScriptReader.cs : moved from Sys.Json/JsonReader.cs.

2010-03-10  Atsushi Enomoto  <atsushi@ximian.com>

	* JavaScriptObjectDeserializer.cs : new internal file, which is
	  used by System.Json (for moonlight compatibility).

2010-03-09  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonSerializationWriter.cs, JsonSerializationReader.cs,
	  JsonWriter.cs : Fix DateTime serialization and "\/" string escape
	  issues. Fixed bug #586169.

2010-02-24  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonWriter.cs : write NaN, INF, -INF as JSON string, not JSON number.
	  Fixed bug #573691.

2010-01-27  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractJsonSerializer.cs : KnownTypes does not include root
	  type. Fixed bug #573689.

2010-01-27  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonSerializationReader.cs : oops, wrong fix, should consume the
	  reader.

2010-01-27  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonSerializationReader.cs : "null" for string should be read as
	  null, not String.Empty. Fixed bug #573690.

2010-01-26  Sebastien Pouliot  <sebastien@ximian.com>

	* DataContractJsonSerializer_2_1.cs: Don't hide [Field|Method]
	AccessException inside a SerializationException but in a 
	SecurityException.

2010-01-25  Sebastien Pouliot  <sebastien@ximian.com>

	* DataContractJsonSerializer_2_1.cs: New. Simpler version for 
	Moonlight since it does not inherit from the same base type nor
	does it overrides any base methods.

2010-01-08  Atsushi Enomoto  <atsushi@ximian.com>

	* TypeMap.cs : forward port r145077 (see change line for 2009-10-29).

2009-12-14  Atsushi Enomoto  <atsushi@ximian.com>

	* TypeMap.cs : handle [Serializable] objects such as KeyValuePair<,>
	  like we do in 2.0. Removed previous workarounds. (Do not serialize
	  and deserialize nonpublic members in "default" mappings.)

2009-12-11  Chris Toshok  <toshok@ximian.com>

	* TypeMap.cs (CreateDefaultTypeMap): only include non-public
	property info when dealing with KeyValuePair<,>.  This is *not*
	the way MS handles it, but we emulate things much better with this
	hack.

2009-12-11  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonReader.cs : e- and e+ was resulting in wrong parse error.
	  This should fix part of bug #531904.

2009-12-08  Chris Toshok  <toshok@ximian.com>

	* JsonSerializationReader.cs (DeserializeGenericCollection): in
	the 2.1 case we still need to convert the List<> to an array.

2009-12-07  Chris Toshok  <toshok@ximian.com>

	* JsonReaderWriterFactory.cs (CreateJsonReader): pass null for the
	encoding parameter instead of calling Detect.  The jsonreader's
	PushbackReader will autodetect.
	(Detect): remove.  a BufferedStream created from an unseekable
	stream is itself unseekable, which makes it just as useless.  This
	breaks netflix's isostore file parsing.

	* JsonReader.cs (PushbackReader): add a ctor which doesn't take an
	encoding, for the autodetecting reader case.  for this ctor, pass
	true to StreamReader's ctor for detectEncodingFromByteOrderMarks.

2009-12-06  Chris Toshok  <toshok@ximian.com>

	* JsonSerializationReader.cs (DeserializeGenericCollection): this
	is jb's (iirc) patch, actually.  Types subclassing from
	ICollection<T> need to be supported, and since it's an interface
	the implementation might be explicit.  So instead of groveling
	around in the actual type, we need to dispatch through the
	interface's method.

	* TypeMap.cs (CreateDefaultTypeMap): we need to include non-public
	properties, since KeyValuePair items must be able to write to Key
	and Value properties.

	* JsonReader.cs (ReadContent): for builtin values (null, true,
	false), use TryReadString instead of individual ReadChar's, since
	they aren't reversible if the string didn't match.  In the default
	case, if we're LameSilverlightLiseralParser, we need to push back
	the current character onto the stream -- this is because for
	netflix's AppConfig.json we were parsing "frameRatePolicy" as
	"rameRatePolicy" (the 'f' was triggering the "false" parsing).
	(class PushBackReader): add this class to unify all the pushing
	back of characters we need to do.  1 character (JsonReader's old
	"saved_char") isn't enough given that you could have a property
	named, e.g., "falsifiable", and we'd need 4 characters worth of
	pushback to recognize that correctly.

2009-11-20  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractJsonSerializer.cs, JsonReader.cs : Silverlight uses
	  LAME parser that allows object member name as *raw* string
	  without double-quotes. (This also reverts the previous change.)

2009-11-12  Atsushi Enomoto  <atsushi@ximian.com>

	*  JsonSerializationReader.cs : reuse generic collection search
	  logic in KnownTypeCollection.cs. Fixed bug #551671.

2009-10-30  Andreia Gaita  <avidigal@novell.com>

	* DataContractJsonSerializer.cs: SL accepts keys without "", so tweak
	the data to fix the quotes before passing it to the deserializer

2009-10-29  Chris Toshok  <toshok@ximian.com>

	* TypeMap.cs (Deserialize): use
	FormatterServices.GetUninitializedObject instead of
	Activator.CreateInstance, since we shouldn't be invoking the
	default ctor.

	(forward ported to trunk on 2010-01-08 by atsushi)

2009-10-23  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractJsonSerializer.cs
	  TypeMap.cs
	  JsonSerializationReader.cs : add experimental monotouch build.

2009-10-08  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractJsonSerializer.cs, JsonSerializationWriter.cs:
	  alwaysEmitTypeInformation is  false by default. It is for __type
	  attribute, not for type attribute. __type name is always with ":#".
	* TypeMap.cs : sort members in default typemap (it is ordered).
	  Uncomment EmitDefaultValue.
	* JsonWriter.cs : handle "null" string (it is somewhat messy).

2009-10-05  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonReader.cs : copy string literal parser from System.Json.

2009-09-22  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonSerializationWriter.cs : output "type" attribute on bool
	  values too.
	* JsonSerializationReader.cs : type loading attempt was insufficient
	  and hence often missed indicated types to deserialize.

2009-09-15  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonWriter.cs : use Stream as its output directly and avoid
	  extraneous preamble output. Fix interop with .NET.

2009-09-07  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonReaderWriterFactory.cs : check null stream (fix test failure).

2009-03-13  Andreia Gaita  <avidigal@novell.com>

	* JsonReader.cs: fix depth calculation

2009-03-12  Geoff Norton  <gnorton@novell.com>

	* TypeMap.cs: Avoid checking the getter/setter information until after
	checking if we have the required attribute decorated.

2009-03-12  Andreia Gaita  <avidigal@novell.com>

	* JsonReaderWriterFactory.cs: try to auto-detect encoding for streams
	without BOM

2009-03-02  Chris Toshok  <toshok@ximian.com>

	* JsonReader.cs: 2.1 has HasValue.

2009-02-02  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonReader.cs : show invalid input character in the error
	  message.

2009-02-02  Atsushi Enomoto  <atsushi@ximian.com>

	* TypeMap.cs : in 2.1 do not use non-2.1 CreateInstance().

2009-02-02  Atsushi Enomoto  <atsushi@ximian.com>

	* TypeMap.cs : allow get-only collections. Note that they are not
	  always deserializable (in .NET either).

2009-02-02  Atsushi Enomoto  <atsushi@ximian.com>

	* TypeMap.cs : DataContractJsonSerializer in RTM does not seem to
	  reject contract-less types. So populate map for public members.
	* DataContractJsonSerializer.cs : close XmlWriter to flush stream
	  (and it closes the stream by default).

2009-02-02  Andreia Gaita  <avidigal@novell.com>

	* JsonSerializationReader.cs : Use 2.1 "approved" calls for Enum.Parse
    and Convert.ChangeType

2008-02-18  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractJsonSerializer.cs : IsStartObject() could raise
	  an arbitrary exception, so wrap it inside try-catch too to enclose
	  with SerializationException.
	* JsonSerializationReader.cs : support DBNull.

2008-01-30  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractJsonSerializer.cs : fixed .ctor(type, knonwTypes) that
	  missed to delegate knownTypes correctly.
	* JsonSerializationReader.cs : consider KnownTypes correctly.
	  Take "__type" fully into consideration, not just for arrays.

2008-01-30  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonReader.cs : GetAttribute() was not still missing support for
	  __type.

2008-01-30  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonReader.cs : now __type is fully supported in every methods and
	  properties in correct shape.

2008-01-30  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonReader.cs : Do not consume "__type" (which is the first content
	  of an object) as an element content. It must be handled as an
	  attribute (it needs more changes).

2008-01-24  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonSerializationReader.cs : when deserializing primitive strings,
	  make use of "type" attribute (they are supposed to exist).
	  Output source reader location if available.
	* JsonReader.cs : implement IXmlLineInfo.

2008-01-24  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonSerializationReader.cs : new, for JSON deserialization support.
	* DataContractJsonSerializer.cs, TypeMap.cs :
	  basic support for deserialization.

2008-01-24  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractJsonSerializer.cs,
	  TypeMap.cs,
	  JsonSerializationWriter.cs : split the first to those three files.

2008-01-24  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractJsonSerializer.cs : Uri and Guid are serialized as
	  string. XmlQualifiedName is serialized as local:ns.

2008-01-22  Atsushi Enomoto  <atsushi@ximian.com>

	* JsonWriter.cs : allow __type attribute. It required couple of
	  changes all around the class.
	* DataContractJsonSerializer.cs : implemented large part of
	  serialization support (deserialization is not done yet).

2007-12-05  Atsushi Enomoto  <atsushi@ximian.com>

	* DataContractJsonSerializer.cs :
	  moved from System.Runtime.Serialization and changed the namespace.
	* JsonReader.cs, JsonWriter.cs, JsonReaderWriterFactory.cs,
	  IXmlJsonReaderInitializer.cs, IXmlJsonWriterInitializer.cs :
	  moved from System.Xml and changed the namespace.

