# JSON 3 Releases

## 3.3.2

### 2014-06-22

- Test the minified version on Travis [#35].
- Add a change log and contribution guidelines [#55].
- Include the minified version in the npm package [#59].
- Simplify `bower.json`.

## 3.3.1

### 2014-04-08

- Reduce the Bower package size by lazily downloading the Closure Compiler [#54].
- Make `JSON3.noConflict()` idempotent [#56].
- Improve AMD `define` pragma detection before minifying.
- Support `node-webkit` and web workers.

## 3.3.0

### 2014-01-20

- Export a `JSON3` global in browsers and JavaScript engines.
- Add `JSON3.noConflict()` and `JSON3.runInContext()` [#50].
- Add a post-minification step to remove multiple IIFE wrappers.
- Optimize `quote`.

## 3.2.6

### 2013-10-25

- Add Travis CI integration.
- Support Bower, Component, Jam, and Volo.
- Test with Node, PhantomJS, RingoJS, Rhino, and Narwhal on Travis.
- Simplify exports.
- `stringify()` optimizations.
- Add a `?minified` query parameter to the browser harness for testing the minified version [#35].
- Detect trailing comma and trailing decimal extensions in Rhino 1.7R3-R4 [#46].

## 3.2.5

### 2013-06-14

- Use `object.hasOwnProperty(prop)` instead of `Object#hasOwnProperty.call(object, prop)` when iterating over host objects [#18].
- Minification improvements; avoid munging the AMD `define` pragma [#22; #25].
- Use character codes instead of strings in `lex()`. Optimize for valid source strings [#23; #27].
- Support Adobe ExtendScript [#29].
- Handle serializing ExtendScript host objects that throw exceptions [#30; #31].
- Support Browserify and RequireJS by exporting for CommonJS and AMD [#33].
- Use square bracket character access in `parse`. Add a `charIndexBuggy` flag.
- Add a benchmark suite.

## 3.2.4

### 2012-10-11

- Change the export order to prefer `module.exports`, `exports`, and then `define` [#14].
- Avoid conflating duplicate properties and circular references [#15].
- Export `parse` and `stringify` globally even if an AMD loader is present [#17].
- Isolate the feature tests into a `has()` function for `has.js` compatibility [#19].

## 3.2.3

### 2012-07-13

- Prototype <= 1.6.1 compatibility [#8].
- `stringify()`: Iterate over whitelisted properties in order [#12].
- Correctly detect trailing commas in array literals.

## 3.2.2

### 2012-05-05

- Correctly detect native `parse()` implementations in AMD loaders and CommonJS environments [#9].
- `parse()`: Use `delete` instead of `Array#splice()` when removing elements from traversed arrays [#10].
- Detect `parse()` number grammar extensions in IE 9 [#11].

## 3.2.1

### 2012-04-26

- Reduce the file size by removing parse error strings [#5].
- Fall back to the native `stringify()` and `parse()` implementations in AMD loaders and CommonJS environments [#6].
- Use the correct global object when exporting for browsers and JavaScript engines.
- Support building on Windows by using `zlib` instead of shelling out to `gzip`.
- Switch to the Closure Compiler for generating the minified version.
- `r.js` compatibility.
- Safari < 2.0.2 and Opera >= 10.53 support.

## 3.2.0

### 2012-04-15

- Override native `stringify()` implementations to work around date serialization bugs.
- Ensure the date serialization tests pass in all time zones [#3].
- Add a workaround for buggy `Date#getUTC{FullYear, Month, Date}` implementations in Opera > 9.64 [#4].
- Ensure Firefox <= 11.0 serializes negative years as six-digit extended years.
- Ensure Safari <= 5.1.5 serializes milliseconds correctly.
- Add a Node-based build script.
- Vendor all dependencies.
- Opera 7.54u2 support.

## 3.1.0

### 2012-03-22

- Switched to `bestiejs` organisation
- Added support for a list of properties as the `filter` argument for `JSON.stringify`
- Fixed Firefox 4 and 4.0.1 allowing non-standard extensions to `JSON.parse`

## 3.0.0

### 2012-03-20

- Renamed `JSON3` to `JSON`
- Removed `JSON3.Version`
- Added minified version of library
- Created a GitHub Project Page
- Preserved alphanumeric order when iterating over shadowed properties on objects

## 0.8.5

### 2012-03-16

- Avoided relying on native functions `Math.abs`, and `isFinite`, and native constructors `String`, `Number`, `Object`, and `Array`
- Fixed AMD export logic

## 0.8.0

### 2012-03-15

- Renamed `Prim` to `JSON3`
- Added `JSON3.Version`
- Added support for AMD lodaers as the `"json"` module
- Added feature tests for native `JSON` implementations
- Added string coercion for the `source` argument in `JSON3.parse`
- Fixed the date serialization routine in `JSON3.stringify`

## 0.5.0

### 2012-02-18

- Fixed `Prim.stringify`’s handling of the `width` argument
- Added Microsoft’s ES5 Conformance Tests to the test suite

## 0.2.0

### 2012-02-17

- Added `Prim.stringify` for serializing values
- Renamed `Prim.Escapes` to `Prim.Unescapes`
- Disallowed unescaped tab characters in strings passed to `Prim.parse`

## 0.1.0

### 2012-02-16

- Initial release of Prim