This release includes a bug fix and minor change.


\begin{DoxyItemize}
\item Fix\+: {\ttfamily parse} throws on unclosed objects and arrays.
\item New\+: {\ttfamily package.\+json5} has been removed until an easier way to keep it in sync with {\ttfamily package.\+json} is found.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29669}{}\doxysubsection{v1.\+0.\+0 \mbox{[}$<$a href=\char`\"{}https\+://github.\+com/json5/json5/tree/v1.\+0.\+0\char`\"{}$>$code$<$/a$>$, $<$a href=\char`\"{}https\+://github.\+com/json5/json5/compare/v0.\+5.\+1...\+v1.\+0.\+0\char`\"{}$>$diff$<$/a$>$\mbox{]}}\label{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29669}
This release includes major internal changes and public API enhancements.


\begin{DoxyItemize}
\item {\bfseries{Major}} JSON5 officially supports Node.\+js v4 and later. Support for Node.\+js v0.\+10 and v0.\+12 have been dropped.
\item New\+: Unicode property names and Unicode escapes in property names are supported. (\href{https://github.com/json5/json5/issues/1}{\texttt{ \#1}})
\item New\+: {\ttfamily stringify} outputs trailing commas in objects and arrays when a {\ttfamily space} option is provided. (\href{https://github.com/json5/json5/issues/66}{\texttt{ \#66}})
\item New\+: JSON5 allows line and paragraph separator characters (U+2028 and U+2029) in strings in order to be compatible with JSON. However, ES5 does not allow these characters in strings, so JSON5 gives a warning when they are parsed and escapes them when they are stringified. (\href{https://github.com/json5/json5/issues/70}{\texttt{ \#70}})
\item New\+: {\ttfamily stringify} accepts an options object as its second argument. The supported options are {\ttfamily replacer}, {\ttfamily space}, and a new {\ttfamily quote} option that specifies the quote character used in strings. (\href{https://github.com/json5/json5/issues/71}{\texttt{ \#71}})
\item New\+: The CLI supports STDIN and STDOUT and adds {\ttfamily -\/-\/out-\/file}, {\ttfamily -\/-\/space}, and {\ttfamily -\/-\/validate} options. See {\ttfamily json5 -\/-\/help} for more information. (\href{https://github.com/json5/json5/issues/72}{\texttt{ \#72}}, \href{https://github.com/json5/json5/pull/84}{\texttt{ \#84}}, and \href{https://github.com/json5/json5/pull/108}{\texttt{ \#108}})
\item New\+: In addition to the white space characters space {\ttfamily \textbackslash{}t}, {\ttfamily \textbackslash{}v}, {\ttfamily \textbackslash{}f}, {\ttfamily \textbackslash{}n}, {\ttfamily \textbackslash{}r}, and {\ttfamily \textbackslash{}x\+A0}, the additional white space characters {\ttfamily \textbackslash{}u2028}, {\ttfamily \textbackslash{}u2029}, and all other characters in the Space Separator Unicode category are allowed.
\item New\+: In addition to the character escapes `\&rsquo;{\ttfamily ,}"{}{\ttfamily ,}\textbackslash{}\`{}, {\ttfamily \textbackslash{}b}, {\ttfamily \textbackslash{}f}, {\ttfamily \textbackslash{}n}, {\ttfamily \textbackslash{}r}, and {\ttfamily \textbackslash{}t}, the additional character escapes {\ttfamily \textbackslash{}v} and {\ttfamily \textbackslash{}0}, hexadecimal escapes like {\ttfamily \textbackslash{}x0F}, and unnecessary escapes like {\ttfamily \textbackslash{}a} are allowed in string values and string property names.
\item New\+: {\ttfamily stringify} outputs strings with single quotes by default but intelligently uses double quotes if there are more single quotes than double quotes inside the string. (i.\+e. `stringify(\textquotesingle{}Stay here.'){\ttfamily outputs }\textquotesingle{}Stay here.\textquotesingle{}{\ttfamily while}stringify(\textquotesingle{}Let\textbackslash{}\textquotesingle{}s go.\textquotesingle{}){\ttfamily outputs}\char`\"{}\+Let\textquotesingle{}s go.\char`\"{}\`{})
\item New\+: When a character is not allowed in a string, {\ttfamily stringify} outputs a character escape like {\ttfamily \textbackslash{}t} when available, a hexadecimal escape like {\ttfamily \textbackslash{}x0F} when the Unicode code point is less than 256, or a Unicode character escape like {\ttfamily \textbackslash{}u01\+FF}, in that order.
\item New\+: {\ttfamily stringify} checks for a {\ttfamily to\+JSON5} method on objects and, if it exists, stringifies its return value instead of the object. {\ttfamily to\+JSON5} overrides {\ttfamily to\+JSON} if they both exist.
\item New\+: To {\ttfamily require} or {\ttfamily import} JSON5 files, use `require(\textquotesingle{}json5/lib/register'){\ttfamily  or}import \textquotesingle{}json5/lib/register\textquotesingle{}{\ttfamily . Previous versions used}json5/lib/require\`{}, which still exists for backward compatibility but is deprecated and will give a warning.
\item New\+: To use JSON5 in browsers, use the file at {\ttfamily dist/index.\+js} or {\ttfamily \href{https://unpkg.com/json5}{\texttt{ https\+://unpkg.\+com/json5}}@$^\wedge$1.0.\+0}.
\item Fix\+: {\ttfamily stringify} properly outputs {\ttfamily Infinity} and {\ttfamily NaN}. (\href{https://github.com/json5/json5/issues/67}{\texttt{ \#67}})
\item Fix\+: {\ttfamily is\+Word} no longer becomes a property of {\ttfamily JSON5} after calling {\ttfamily stringify}. (\href{https://github.com/json5/json5/issues/68}{\texttt{ \#68}} and \href{https://github.com/json5/json5/pull/89}{\texttt{ \#89}})
\item Fix\+: {\ttfamily stringify} no longer throws when an object does not have a {\ttfamily prototype}. (\href{https://github.com/json5/json5/issues/154}{\texttt{ \#154}})
\item Fix\+: {\ttfamily stringify} properly handles the {\ttfamily key} argument of {\ttfamily to\+JSON(key)} methods. {\ttfamily to\+JSON5(key)} follows this pattern.
\item Fix\+: {\ttfamily stringify} accepts {\ttfamily Number} and {\ttfamily String} objects as its {\ttfamily space} argument.
\item Fix\+: In addition to a function, {\ttfamily stringify} also accepts an array of keys to include in the output as its {\ttfamily replacer} argument. Numbers, {\ttfamily Number} objects, and {\ttfamily String} objects will be converted to a string if they are given as array values.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29670}{}\doxysubsection{v0.\+5.\+1 \mbox{[}$<$a href=\char`\"{}https\+://github.\+com/json5/json5/tree/v0.\+5.\+1\char`\"{}$>$code$<$/a$>$, $<$a href=\char`\"{}https\+://github.\+com/json5/json5/compare/v0.\+5.\+0...\+v0.\+5.\+1\char`\"{}$>$diff$<$/a$>$\mbox{]}}\label{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29670}
This release includes a minor fix for indentations when stringifying empty arrays.


\begin{DoxyItemize}
\item Fix\+: Indents no longer appear in empty arrays when stringified. (\href{https://github.com/json5/json5/pull/134}{\texttt{ \#134}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29671}{}\doxysubsection{v0.\+5.\+0 \mbox{[}$<$a href=\char`\"{}https\+://github.\+com/json5/json5/tree/v0.\+5.\+0\char`\"{}$>$code$<$/a$>$, $<$a href=\char`\"{}https\+://github.\+com/json5/json5/compare/v0.\+4.\+0...\+v0.\+5.\+0\char`\"{}$>$diff$<$/a$>$\mbox{]}}\label{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29671}
This release includes major internal changes and public API enhancements.


\begin{DoxyItemize}
\item {\bfseries{Major\+:}} JSON5 officially supports Node.\+js v4 LTS and v5. Support for Node.\+js v0.\+6 and v0.\+8 have been dropped, while support for v0.\+10 and v0.\+12 remain.
\item Fix\+: YUI Compressor no longer fails when compressing json5.\+js. (\href{https://github.com/json5/json5/pull/97}{\texttt{ \#97}})
\item New\+: {\ttfamily parse} and the CLI provide line and column numbers when displaying error messages. (\href{https://github.com/json5/json5/pull/101}{\texttt{ \#101}}; awesome work by \href{https://github.com/amb26}{\texttt{ @amb26}}.)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29672}{}\doxysubsection{v0.\+4.\+0 \mbox{[}$<$a href=\char`\"{}https\+://github.\+com/json5/json5/tree/v0.\+4.\+0\char`\"{}$>$code$<$/a$>$, $<$a href=\char`\"{}https\+://github.\+com/json5/json5/compare/v0.\+2.\+0...\+v0.\+4.\+0\char`\"{}$>$diff$<$/a$>$\mbox{]}}\label{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29672}
Note that v0.\+3.\+0 was tagged, but never published to npm, so this v0.\+4.\+0 changelog entry includes v0.\+3.\+0 features.

This is a massive release that adds {\ttfamily stringify} support, among other things.


\begin{DoxyItemize}
\item {\bfseries{Major\+:}} {\ttfamily JSON5.\+stringify()} now exists! This method is analogous to the native {\ttfamily JSON.\+stringify()}; it just avoids quoting keys where possible. See the \href{./README.md\#usage}{\texttt{ usage documentation}} for more. (\href{https://github.com/json5/json5/issues/32}{\texttt{ \#32}}; huge thanks and props \href{https://github.com/aeisenberg}{\texttt{ @aeisenberg}}!)
\item New\+: {\ttfamily NaN} and {\ttfamily -\/NaN} are now allowed number literals. (\href{https://github.com/json5/json5/issues/30}{\texttt{ \#30}}; thanks \href{https://github.com/rowanhill}{\texttt{ @rowanhill}}.)
\item New\+: Duplicate object keys are now allowed; the last value is used. This is the same behavior as JSON. (\href{https://github.com/json5/json5/issues/57}{\texttt{ \#57}}; thanks \href{https://github.com/jordanbtucker}{\texttt{ @jordanbtucker}}.)
\item Fix\+: Properly handle various whitespace and newline cases now. E.\+g. JSON5 now properly supports escaped CR and CRLF newlines in strings, and JSON5 now accepts the same whitespace as JSON (stricter than ES5). (\href{https://github.com/json5/json5/pull/58}{\texttt{ \#58}}, \href{https://github.com/json5/json5/pull/60}{\texttt{ \#60}}, and \href{https://github.com/json5/json5/pull/63}{\texttt{ \#63}}; thanks \href{https://github.com/jordanbtucker}{\texttt{ @jordanbtucker}}.)
\item New\+: Negative hexadecimal numbers (e.\+g. {\ttfamily -\/0x\+C8}) are allowed again. (They were disallowed in v0.\+2.\+0; see below.) It turns out they {\itshape are} valid in ES5, so JSON5 supports them now too. (\href{https://github.com/json5/json5/issues/36}{\texttt{ \#36}}; thanks \href{https://github.com/jordanbtucker}{\texttt{ @jordanbtucker}}!)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29673}{}\doxysubsection{v0.\+2.\+0 \mbox{[}$<$a href=\char`\"{}https\+://github.\+com/json5/json5/tree/v0.\+2.\+0\char`\"{}$>$code$<$/a$>$, $<$a href=\char`\"{}https\+://github.\+com/json5/json5/compare/v0.\+1.\+0...\+v0.\+2.\+0\char`\"{}$>$diff$<$/a$>$\mbox{]}}\label{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29673}
This release fixes some bugs and adds some more utility features to help you express data more easily\+:


\begin{DoxyItemize}
\item {\bfseries{Breaking\+:}} Negative hexadecimal numbers (e.\+g. {\ttfamily -\/0x\+C8}) are rejected now. While V8 (e.\+g. Chrome and Node) supported them, it turns out they\textquotesingle{}re invalid in ES5. This has been \href{http://code.google.com/p/v8/issues/detail?id=2240}{\texttt{ fixed in V8}} (and by extension, Chrome and Node), so JSON5 officially rejects them now, too. (\href{https://github.com/json5/json5/issues/36}{\texttt{ \#36}})
\item New\+: Trailing decimal points in decimal numbers are allowed again. (They were disallowed in v0.\+1.\+0; see below.) They\textquotesingle{}re allowed by ES5, and differentiating between integers and floats may make sense on some platforms. (\href{https://github.com/json5/json5/issues/16}{\texttt{ \#16}}; thanks \href{https://github.com/Midar}{\texttt{ @\+Midar}}.)
\item New\+: {\ttfamily Infinity} and {\ttfamily -\/Infinity} are now allowed number literals. (\href{https://github.com/json5/json5/issues/30}{\texttt{ \#30}}; thanks \href{https://github.com/pepkin88}{\texttt{ @pepkin88}}.)
\item New\+: Plus signs ({\ttfamily +}) in front of numbers are now allowed, since it can be helpful in some contexts to explicitly mark numbers as positive. (E.\+g. when a property represents changes or deltas.)
\item Fix\+: unescaped newlines in strings are rejected now. (\href{https://github.com/json5/json5/issues/24}{\texttt{ \#24}}; thanks \href{https://github.com/Midar}{\texttt{ @\+Midar}}.)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29674}{}\doxysubsection{v0.\+1.\+0 \mbox{[}$<$a href=\char`\"{}https\+://github.\+com/json5/json5/tree/v0.\+1.\+0\char`\"{}$>$code$<$/a$>$, $<$a href=\char`\"{}https\+://github.\+com/json5/json5/compare/v0.\+0.\+1...\+v0.\+1.\+0\char`\"{}$>$diff$<$/a$>$\mbox{]}}\label{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29674}
This release tightens JSON5 support and adds helpful utility features\+:


\begin{DoxyItemize}
\item New\+: Support hexadecimal numbers. (Thanks \href{https://github.com/MaxNanasy}{\texttt{ @\+Max\+Nanasy}}.)
\item Fix\+: Reject octal numbers properly now. Previously, they were accepted but improperly parsed as base-\/10 numbers. (Thanks \href{https://github.com/MaxNanasy}{\texttt{ @\+Max\+Nanasy}}.)
\item {\bfseries{Breaking\+:}} Reject \char`\"{}noctal\char`\"{} numbers now (base-\/10 numbers that begin with a leading zero). These are disallowed by both JSON5 and JSON, as well as by ES5\textquotesingle{}s strict mode. (Thanks \href{https://github.com/MaxNanasy}{\texttt{ @\+Max\+Nanasy}}.)
\item New\+: Support leading decimal points in decimal numbers. (Thanks \href{https://github.com/MaxNanasy}{\texttt{ @\+Max\+Nanasy}}.)
\item {\bfseries{Breaking\+:}} Reject trailing decimal points in decimal numbers now. These are disallowed by both JSON5 and JSON. (Thanks \href{https://github.com/MaxNanasy}{\texttt{ @\+Max\+Nanasy}}.)
\item {\bfseries{Breaking\+:}} Reject omitted elements in arrays now. These are disallowed by both JSON5 and JSON.
\item Fix\+: Throw proper {\ttfamily Syntax\+Error} instances on errors now.
\item New\+: Add Node.\+js {\ttfamily require()} hook. Register via {\ttfamily json5/lib/require}.
\item New\+: Add Node.\+js {\ttfamily json5} executable to compile JSON5 files to JSON.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29675}{}\doxysubsection{v0.\+0.\+1 \mbox{[}$<$a href=\char`\"{}https\+://github.\+com/json5/json5/tree/v0.\+0.\+1\char`\"{}$>$code$<$/a$>$, $<$a href=\char`\"{}https\+://github.\+com/json5/json5/compare/v0.\+0.\+0...\+v0.\+0.\+1\char`\"{}$>$diff$<$/a$>$\mbox{]}}\label{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29675}
This was the first implementation of this JSON5 parser.


\begin{DoxyItemize}
\item Support unquoted object keys, including reserved words. Unicode characters and escape sequences sequences aren\textquotesingle{}t yet supported.
\item Support single-\/quoted strings.
\item Support multi-\/line strings.
\item Support trailing commas in arrays and objects.
\item Support comments, both inline and block.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29676}{}\doxysubsection{v0.\+0.\+0 \mbox{[}$<$a href=\char`\"{}https\+://github.\+com/json5/json5/tree/v0.\+0.\+0\char`\"{}$>$code$<$/a$>$\mbox{]}}\label{md_sfcode_node_modules_stylus_loader_node_modules_json5_CHANGELOG_autotoc_md29676}
Let\textquotesingle{}s consider this to be Douglas Crockford\textquotesingle{}s original \href{https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js}{\texttt{ json\+\_\+parse.\+js}} — a parser for the regular JSON format. 