\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32866}{}\doxysection{v4.\+8.\+0}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32866}

\begin{DoxyItemize}
\item Support for numeric separators ({\ttfamily million = 1\+\_\+000\+\_\+000}) was added.
\item Assigning properties to a class is now assumed to be pure.
\item Fixed bug where {\ttfamily yield} wasn\textquotesingle{}t considered a valid property key in generators.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32867}{}\doxysection{v4.\+7.\+0}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32867}

\begin{DoxyItemize}
\item A bug was fixed where an arrow function would have the wrong size
\item {\ttfamily arguments} object is now considered safe to retrieve properties from (useful for {\ttfamily length}, or {\ttfamily 0}) even when {\ttfamily pure\+\_\+getters} is not set.
\item Fixed erroneous {\ttfamily const} declarations without value (which is invalid) in some corner cases when using {\ttfamily collapse\+\_\+vars}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32868}{}\doxysection{v4.\+6.\+13}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32868}

\begin{DoxyItemize}
\item Fixed issue where ES5 object properties were being turned into ES6 object properties due to more lax unicode rules.
\item Fixed parsing of Big\+Int with lowercase {\ttfamily e} in them.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32869}{}\doxysection{v4.\+6.\+12}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32869}

\begin{DoxyItemize}
\item Fixed subtree comparison code, making it see that {\ttfamily \mbox{[}1,\mbox{[}2, 3\mbox{]}\mbox{]}} is different from {\ttfamily \mbox{[}1, 2, \mbox{[}3\mbox{]}\mbox{]}}
\item Printing of unicode identifiers has been improved
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32870}{}\doxysection{v4.\+6.\+11}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32870}

\begin{DoxyItemize}
\item Read unused classes\textquotesingle{} properties and method keys, to figure out if they use other variables.
\item Prevent inlining into block scopes when there are name collisions
\item Functions are no longer inlined into parameter defaults, because they live in their own special scope.
\item When inlining identity functions, take into account the fact they may be used to drop {\ttfamily this} in function calls.
\item Nullish coalescing operator ({\ttfamily x ?? y}), plus basic optimization for it.
\item Template literals in binary expressions such as {\ttfamily +} have been further optimized
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32871}{}\doxysection{v4.\+6.\+10}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32871}

\begin{DoxyItemize}
\item Do not use reduce\+\_\+vars when classes are present
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32872}{}\doxysection{v4.\+6.\+9}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32872}

\begin{DoxyItemize}
\item Check if block scopes actually exist in blocks
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32873}{}\doxysection{v4.\+6.\+8}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32873}

\begin{DoxyItemize}
\item Take into account \char`\"{}executed bits\char`\"{} of classes like static properties or computed keys, when checking if a class evaluation might throw or have side effects.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32874}{}\doxysection{v4.\+6.\+7}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32874}

\begin{DoxyItemize}
\item Some new performance gains through a {\ttfamily AST\+\_\+\+Node.\+size()} method which measures a node\textquotesingle{}s source code length without printing it to a string first.
\item An issue with setting {\ttfamily -\/-\/comments} to {\ttfamily false} in the CLI has been fixed.
\item Fixed some issues with inlining
\item {\ttfamily unsafe\+\_\+symbols} compress option was added, which turns {\ttfamily Symbol(\char`\"{}name\char`\"{})} into just {\ttfamily Symbol()}
\item Brought back compress performance improvement through the {\ttfamily AST\+\_\+\+Node.\+equivalent\+\_\+to(other)} method (which was reverted in v4.\+6.\+6).
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32875}{}\doxysection{v4.\+6.\+6}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32875}
(hotfix release)


\begin{DoxyItemize}
\item Reverted code to 4.\+6.\+4 to allow for more time to investigate an issue.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32876}{}\doxysection{v4.\+6.\+5 (\+REVERTED)}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32876}

\begin{DoxyItemize}
\item Improved compress performance through using a new method to see if two nodes are equivalent, instead of printing them to a string.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32877}{}\doxysection{v4.\+6.\+4}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32877}

\begin{DoxyItemize}
\item The {\ttfamily \char`\"{}some\char`\"{}} value in the {\ttfamily comments} output option now preserves {\ttfamily @lic} and other important comments when using {\ttfamily //}
\item {\ttfamily $<$/script$>$} is now better escaped in regex, and in comments, when using the {\ttfamily inline\+\_\+script} output option
\item Fixed an issue when transforming {\ttfamily new Reg\+Exp} into {\ttfamily /.../} when slashes are included in the source
\item {\ttfamily AST\+\_\+\+Node.\+prototype.\+constructor} now exists, allowing for easier debugging of crashes
\item Multiple if statements with the same consequents are now collapsed
\item Typescript typings improvements
\item Optimizations while looking for surrogate pairs in strings
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32878}{}\doxysection{v4.\+6.\+3}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32878}

\begin{DoxyItemize}
\item Annotations such as {\ttfamily /$\ast$\#\+\_\+\+\_\+\+NOINLINE\+\_\+\+\_\+$\ast$/} and {\ttfamily /$\ast$\#\+\_\+\+\_\+\+PURE\+\_\+\+\_\+$\ast$/} may now be preserved using the {\ttfamily preserve\+\_\+annotations} output option
\item A Type\+Script definition update for the {\ttfamily keep\+\_\+quoted} output option.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32879}{}\doxysection{v4.\+6.\+2}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32879}

\begin{DoxyItemize}
\item A bug where functions were inlined into other functions with scope conflicts has been fixed.
\item {\ttfamily /$\ast$\#\+\_\+\+\_\+\+NOINLINE\+\_\+\+\_\+$\ast$/} annotation fixed for more use cases where inlining happens.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32880}{}\doxysection{v4.\+6.\+1}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32880}

\begin{DoxyItemize}
\item Fixed an issue where a class is duplicated by reduce\+\_\+vars when there\textquotesingle{}s a recursive reference to the class.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32881}{}\doxysection{v4.\+6.\+0}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32881}

\begin{DoxyItemize}
\item Fixed issues with recursive class references.
\item Big\+Int evaluation has been prevented, stopping Terser from evaluating Big\+Ints like it would do regular numbers.
\item Class property support has been added
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32882}{}\doxysection{v4.\+5.\+1}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32882}
(hotfix release)


\begin{DoxyItemize}
\item Fixed issue where {\ttfamily () =$>$ (\{\})\mbox{[}something\mbox{]}} was not parenthesised correctly.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32883}{}\doxysection{v4.\+5.\+0}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32883}

\begin{DoxyItemize}
\item Inlining has been improved
\item An issue where keep\+\_\+fnames combined with functions declared through variables was causing name shadowing has been fixed
\item You can now set the ES version through their year
\item The output option {\ttfamily keep\+\_\+numbers} has been added, which prevents Terser from turning {\ttfamily 1000} into {\ttfamily 1e3} and such
\item Internal small optimisations and refactors
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32884}{}\doxysection{v4.\+4.\+3}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32884}

\begin{DoxyItemize}
\item Number and Big\+Int parsing has been fixed
\item {\ttfamily /$\ast$\#\+\_\+\+\_\+\+INLINE\+\_\+\+\_\+$\ast$/} annotation fixed for arrow functions with non-\/block bodies.
\item Functional tests have been added, using \href{https://github.com/terser/terser-functional-tests}{\texttt{ this repository}}.
\item A memory leak, where the entire AST lives on after compression, has been plugged.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32885}{}\doxysection{v4.\+4.\+2}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32885}

\begin{DoxyItemize}
\item Fixed a problem with inlining identity functions
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32886}{}\doxysection{v4.\+4.\+1}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32886}
{\itshape note\+:} This introduced a feature, therefore it should have been a minor release.


\begin{DoxyItemize}
\item Fixed a crash when {\ttfamily unsafe} was enabled.
\item An issue has been fixed where {\ttfamily let} statements might be collapsed out of their scope.
\item Some error messages have been improved by adding quotes around variable names.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32887}{}\doxysection{v4.\+4.\+0}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32887}

\begin{DoxyItemize}
\item Added {\ttfamily /$\ast$\#\+\_\+\+\_\+\+INLINE\+\_\+\+\_\+$\ast$/} and {\ttfamily /$\ast$\#\+\_\+\+\_\+\+NOINLINE\+\_\+\+\_\+$\ast$/} annotations for calls. If a call has one of these, it either forces or forbids inlining.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32888}{}\doxysection{v4.\+3.\+11}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32888}

\begin{DoxyItemize}
\item Fixed a problem where {\ttfamily window} was considered safe to access, even though there are situations where it isn\textquotesingle{}t (Node.\+js, workers...)
\item Fixed an error where {\ttfamily ++} and {\ttfamily -\/-\/} were considered side-\/effect free
\item {\ttfamily Number(x)} now needs both {\ttfamily unsafe} and and {\ttfamily unsafe\+\_\+math} to be compressed into {\ttfamily +x} because {\ttfamily x} might be a {\ttfamily Big\+Int}
\item {\ttfamily keep\+\_\+fnames} now correctly supports regexes when the function is in a variable declaration
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32889}{}\doxysection{v4.\+3.\+10}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32889}

\begin{DoxyItemize}
\item Fixed syntax error when repeated semicolons were encountered in classes
\item Fixed invalid output caused by the creation of empty sequences internally
\item Scopes are now updated when scopes are inlined into them
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32890}{}\doxysection{v4.\+3.\+9}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32890}

\begin{DoxyItemize}
\item Fixed issue with mangle\textquotesingle{}s {\ttfamily keep\+\_\+fnames} option, introduced when adding code to keep variable names of anonymous functions
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32891}{}\doxysection{v4.\+3.\+8}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32891}

\begin{DoxyItemize}
\item Typescript typings fix
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32892}{}\doxysection{v4.\+3.\+7}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32892}

\begin{DoxyItemize}
\item Parsing of regex options in the CLI (which broke in v4.\+3.\+5) was fixed.
\item typescript definition updates
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32893}{}\doxysection{v4.\+3.\+6}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32893}
(crash hotfix)\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32894}{}\doxysection{v4.\+3.\+5}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32894}

\begin{DoxyItemize}
\item Fixed an issue with DOS line endings strings separated by {\ttfamily \textbackslash{}} and a new line.
\item Improved fix for the output size regression related to unused references within the extends section of a class.
\item Variable names of anonymous functions (eg\+: {\ttfamily const x = () =$>$ \{ ... \}} or {\ttfamily var func = function () \{...\}}) are now preserved when keep\+\_\+fnames is true.
\item Fixed performance degradation introduced for large payloads in v4.\+2.\+0
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32895}{}\doxysection{v4.\+3.\+4}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32895}

\begin{DoxyItemize}
\item Fixed a regression where the output size was increased when unused classes were referred to in the extends clause of a class.
\item Small typescript typings fixes.
\item Comments with {\ttfamily @preserve}, {\ttfamily @license}, {\ttfamily @cc\+\_\+on} as well as comments starting with {\ttfamily /$\ast$!} and {\ttfamily /$\ast$$\ast$!} are now preserved by default.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32896}{}\doxysection{v4.\+3.\+3}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32896}

\begin{DoxyItemize}
\item Fixed a problem where parsing template strings would mix up octal notation and a slash followed by a zero representing a null character.
\item Started accepting the name {\ttfamily async} in destructuring arguments with default value.
\item Now Terser takes into account side effects inside class {\ttfamily extends} clauses.
\item Added parens whenever there\textquotesingle{}s a comment between a return statement and the returned value, to prevent issues with ASI.
\item Stopped using raw Reg\+Exp objects, since the spec is going to continue to evolve. This ensures Terser is able to process new, unknown Reg\+Exp flags and features. This is a breaking change in the AST node AST\+\_\+\+Reg\+Exp.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32897}{}\doxysection{v4.\+3.\+2}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32897}

\begin{DoxyItemize}
\item Typescript typing fix
\item Ensure that functions can\textquotesingle{}t be inlined, by reduce\+\_\+vars, into places where they\textquotesingle{}re accessing variables with the same name, but from somewhere else.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32898}{}\doxysection{v4.\+3.\+1}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32898}

\begin{DoxyItemize}
\item Fixed an issue from 4.\+3.\+0 where any block scope within a for loop erroneously had its parent set to the function scopee
\item Fixed an issue where compressing IIFEs with argument expansions would result in some parameters becoming undefined
\item add\+Event\+Listener options argument\textquotesingle{}s properties are now part of the DOM properties list.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32899}{}\doxysection{v4.\+3.\+0}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32899}

\begin{DoxyItemize}
\item Do not drop computed object keys with side effects
\item Functions passed to other functions in calls are now wrapped in parentheses by default, which speeds up loading most modules
\item Objects with computed properties are now less likely to be hoisted
\item Speed and memory efficiency optimizations
\item Fixed scoping issues with {\ttfamily try} and {\ttfamily switch}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32900}{}\doxysection{v4.\+2.\+1}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32900}

\begin{DoxyItemize}
\item Minor refactors
\item Fixed a bug similar to \#369 in collapse\+\_\+vars
\item Functions can no longer be inlined into a place where they\textquotesingle{}re going to be compared with themselves.
\item reduce\+\_\+funcs option is now legacy, as using reduce\+\_\+vars without reduce\+\_\+funcs caused some weird corner cases. As a result, it is now implied in reduce\+\_\+vars and can\textquotesingle{}t be turned off without turning off reduce\+\_\+vars.
\item Bug which would cause a random stack overflow has now been fixed.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32901}{}\doxysection{v4.\+2.\+0}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32901}

\begin{DoxyItemize}
\item When the source map URL is {\ttfamily inline}, don\textquotesingle{}t write it to a file.
\item Fixed output parens when a lambda literal is the tag on a tagged template string.
\item The {\ttfamily mangle.\+properties.\+undeclared} option was added. This enables the property mangler to mangle properties of variables which can be found in the name cache, but whose properties are not known to this Terser run.
\item The v8 bug where the to\+String and source representations of regexes like {\ttfamily Reg\+Exp(\char`\"{}\textbackslash{}\textbackslash{}\textbackslash{}n\char`\"{})} includes an actual newline is now fixed.
\item Now we\textquotesingle{}re guaranteed to not have duplicate comments in the output
\item Domprops updates
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32902}{}\doxysection{v4.\+1.\+4}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32902}

\begin{DoxyItemize}
\item Fixed a crash when inlining a function into somewhere else when it has interdependent, non-\/removable variables.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32903}{}\doxysection{v4.\+1.\+3}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32903}

\begin{DoxyItemize}
\item Several issues with the {\ttfamily reduce\+\_\+vars} option were fixed.
\item Starting this version, we only have a dist/bundle.\+min.\+js
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32904}{}\doxysection{v4.\+1.\+2}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32904}

\begin{DoxyItemize}
\item The hotfix was hotfixed
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32905}{}\doxysection{v4.\+1.\+1}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32905}

\begin{DoxyItemize}
\item Fixed a bug where toplevel scopes were being mixed up with lambda scopes
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32906}{}\doxysection{v4.\+1.\+0}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32906}

\begin{DoxyItemize}
\item Internal functions were replaced by {\ttfamily Object.\+assign}, {\ttfamily Array.\+prototype.\+some}, {\ttfamily Array.\+prototype.\+find} and {\ttfamily Array.\+prototype.\+every}.
\item A serious issue where some ESM-\/native code was broken was fixed.
\item Performance improvements were made.
\item Support for Big\+Int was added.
\item Inline efficiency was improved. Functions are now being inlined more proactively instead of being inlined only after another Compressor pass.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32907}{}\doxysection{v4.\+0.\+2}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32907}
(Hotfix release. Reverts unmapped segments PR \href{https://github.com/terser/terser/pull/342}{\texttt{ \#342}}, which will be put back on Terser when the upstream issue is resolved)\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32908}{}\doxysection{v4.\+0.\+1}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32908}

\begin{DoxyItemize}
\item Collisions between the arguments of inlined functions and names in the outer scope are now being avoided while inlining
\item Unmapped segments are now preserved when compressing a file which has source maps
\item Default values of functions are now correctly converted from Mozilla AST to Terser AST
\item JSON ⊂ ECMAScript spec (if you don\textquotesingle{}t know what this is you don\textquotesingle{}t need to)
\item Export AST\+\_\+$\ast$ classes to library users
\item Fixed issue with {\ttfamily collapse\+\_\+vars} when functions are created with the same name as a variable which already exists
\item Added {\ttfamily Mutation\+Observer\+Init} (Object with options for initialising a mutation observer) properties to the DOM property list
\item Custom {\ttfamily Error} subclasses are now internally used instead of old-\/school Error inheritance hacks.
\item Documentation fixes
\item Performance optimizations
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32909}{}\doxysection{v4.\+0.\+0}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32909}

\begin{DoxyItemize}
\item {\bfseries{breaking change}}\+: The {\ttfamily variables} property of all scopes has become a standard Java\+Script {\ttfamily Map} as opposed to the old bespoke {\ttfamily Dictionary} object.
\item Typescript definitions were fixed
\item {\ttfamily terser -\/-\/help} was fixed
\item The public interface was cleaned up
\item Fixed optimisation of {\ttfamily Array} and {\ttfamily new Array}
\item Added the {\ttfamily keep\+\_\+quoted=strict} mode to mangle\+\_\+props, which behaves more like Google Closure Compiler by mangling all unquoted property names, instead of reserving quoted property names automatically.
\item Fixed parent functions\textquotesingle{} parameters being shadowed in some cases
\item Allowed Terser to run in a situation where there are custom functions attached to Object.\+prototype
\item And more bug fixes, optimisations and internal changes
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32910}{}\doxysection{v3.\+17.\+0}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32910}

\begin{DoxyItemize}
\item More DOM properties added to --mangle-\/properties\textquotesingle{}s DOM property list
\item Closed issue where if 2 functions had the same argument name, Terser would not inline them together properly
\item Fixed issue with {\ttfamily has\+Own\+Property.\+call}
\item You can now list files to minify in a Terser config file
\item Started replacing {\ttfamily new Array($<$number$>$)} with an array literal
\item Started using ES6 capabilities like {\ttfamily Set} and the {\ttfamily includes} method for strings and arrays
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32911}{}\doxysection{v3.\+16.\+1}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32911}

\begin{DoxyItemize}
\item Fixed issue where Terser being imported with {\ttfamily import} would cause it not to work due to the {\ttfamily \+\_\+\+\_\+es\+Module} property. (PR \#254 was submitted, which was nice, but since it wasn\textquotesingle{}t a pure common\+JS approach I decided to go with my own solution)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32912}{}\doxysection{v3.\+16.\+0}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32912}

\begin{DoxyItemize}
\item No longer leaves names like Array or Object or window as a Simple\+Statement (statement which is just a single expression).
\item Add support for sections sourcemaps (Indexed\+Source\+Map\+Consumer)
\item Drops node.\+js v4 and starts using common\+JS
\item Is now built with rollup
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32913}{}\doxysection{v3.\+15.\+0}\label{md_sfcode_node_modules_webpack_node_modules_terser_CHANGELOG_autotoc_md32913}

\begin{DoxyItemize}
\item Inlined spread syntax ({\ttfamily \mbox{[}...\mbox{[}1, 2, 3\mbox{]}, 4, 5\mbox{]} =$>$ \mbox{[}1, 2, 3, 4, 5\mbox{]}}) in arrays and objects.
\item Fixed typo in compressor warning
\item Fixed inline source map input bug
\item Fixed parsing of template literals with unnecessary escapes (Like {\ttfamily \textbackslash{}\textbackslash{}a}) 
\end{DoxyItemize}