v5.0.4 - July 2022
Fixed bugs :
- #59 : Negated char class : optimal range merge
- #74 : Line break removed, leaving no separator between instructions
- #79 : Discard C-style and xml-style comments
- #86 : Shorten context properties using available variable names
- #96 : Do not remove newlines or trailing blanks in template literals
- #97 : setTransform turns into getTransform on Chrome
v5.0.3 - February 2019
Fixed bugs :
- #87 : Crusher always ignores first character when searching for patterns
- #88 : Unable to allocate a variable name for setInterval()
- #89 : Empty mapping crashes thermal viewer
- #94 : Cannot read property 'first' of undefined
v5.0.2 - October 2018
Fixed bugs :
- #76 : Reassign variable names : still considering (but not replacing) text in strings
- #82 : Nested backticks in template literal causes string renaming module to miss occurrences
- #83 : Don't use "\" as a token if avoiding it makes the output smaller
- #85 : Suboptimal packing due to incorrect assumed length of escape sequence
v5.0.1 - February 2017
Fixed bugs :
- #65 : RegPacked code contains invalid escape sequences
- #70 : Line endings in bin/regpack
- #72 : Optimization for refactor setInterval() when no initialization code
- #73 : Unpacked source has "in" strings in wrong places
- #75 : Variables leak into global space, should be declared local
v5.0.0 - February 2017
New features :
- #26 : Add a heatmap vizualisation
- #33 : [Online demo] Sync the input textarea with the URL's hash
- #44 : Support for arrow function when refactoring setInterval
- #47 : Support escaped characters in character class
- #48 : Crusher phase - list patterns that are "almost" gains
- #54 : Opt-out flag for ES6 features
- #55 : Harmonize strings delimiters inside the code, to free " or ' as compression token
- #56 : Support for default parameters when refactoring setInterval()
- #63 : ES6 : Support syntax canvas.getContext`2d` in module "hash context"
Fixed bugs :
- #50 : Crusher splits Unicode high/low surrogate pairs, producing incorrect strings
- #52 : regPack.html - Base64 output fails for chars outside of the Latin1 range
- #57 : $ in template literals
- #58 : Hash context module uses digit as loop variable
v4.0.1 - February 2016
Fixed bugs :
- #39 : Rename variable in unpacking loop and protect variables d and g by default
- #40 : Fix use in Node and Better CLI support
- #41 : Visualization misses patterns that end at the last character
- #45 : Closing bracket ] not allowed in character class range definition
v4.0.0 - December 2015
New features :
- #16 : Add an option for base64 encoded output
- #19 : Use setInterval() to evaluate the unpacked code
- #21 : Hash not only canvas functions, but also canvas properties
- #23 : Extra hashing functions
- #25 : Visualize the compressed patterns inside the source code
Fixed bugs :
- #10 : Use varsNotReassigned in renameObjectMethods
- #17 : Hashing code confuses first and second 2D context
- #20 : Code packed in FF fails in Chrome because of deprecated context methods
- #27 : Do not let variable renaming interfere with the use of the variable _
- #28 : Unable to create 2D/GL/Audio context under Node.js
- #29 : Variable renaming gives different results under FF / Chrome / Node.js
- #30 : support for '!' character in WebGL context declaration
- #31 : Single - character misinterpreted as range in RegExp
v3.0.2 - February 2015
Fixed bugs :
- #9 : Canvas hashing can overwrite the "protected" variables
- #11 : Different results between FF and other browsers, method array.fill() interferes with algorithm
- #12 : Disable AudioContext hashing option if the browser does not support the WebAudio API
v3.0.1 - March 2014
Fixed bugs
- #2 : support for Unicode characters in regular expression
- #4 : original size showed without added escapes
- #5 : correct size in bytes after preprocessing stage
v3.0 - February 2014
Added preprocessing stage at the beginning of compression workflow.
- method hashing/renaming for 2D context, WebGL context and AudioContext
- variable renaming to free tokens for the crusher
Fixed bugs :
- Incorrect CR/LF handling for code using characters below 10
- Character 127 ignored in negated char class regexp
v2.0 - April 2013
Use of regular expressions with negated char class (listing characters not to match on).
Use RegPack now - Benchmarks - Change log - How it works