UglifyJS 3.1.7 minifies incorrectly 3.1.6 works

Created on 6 Nov 2017  路  5Comments  路  Source: mishoo/UglifyJS

Hey

After upgrading to 3.1.7 from version 3.1.6 our minified output is incorrect. 3.1.6 is working as expected.

The output build is so much different that I don't see any point pasting it here (2.2MB) :( ...
The most visible issue occurs with inline styles that are set using this.element.style.margin ="example";

Most helpful comment

3.1.7 broke our production setup. I am getting

ERROR in commons.js from UglifyJs

RangeError: Maximum call stack size exceeded

at eval (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4668:46)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4562:21)

at AST_Node._clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:456:25)

at AST_Node.clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:465:21)

at Object.eval [as before] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:458:33)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4558:35)

at eval (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4678:43)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4562:21)

at AST_Node._clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:456:25)

at AST_Node.clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:465:21)

at Object.eval [as before] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:458:33)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4558:35)

at eval (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4620:49)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4562:21)

at AST_Node._clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:456:25)

at AST_Node.clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:465:21)

at Object.eval [as before] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:458:33)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4558:35)

at eval (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4577:25)

at doit (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:134:23)

at MAP (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:160:52)

at do_list (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4576:16)

at eval (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4673:25)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4562:21)

at AST_Node._clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:456:25)

at AST_Node.clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:465:21)

at Object.eval [as before] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:458:33)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4558:35)

at eval (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4577:25)

at doit (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:134:23)

Nothing changed expect for the version upgrade from 3.1.6 to 3.1.7.

All 5 comments

3.1.7 broke our production setup. I am getting

ERROR in commons.js from UglifyJs

RangeError: Maximum call stack size exceeded

at eval (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4668:46)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4562:21)

at AST_Node._clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:456:25)

at AST_Node.clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:465:21)

at Object.eval [as before] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:458:33)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4558:35)

at eval (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4678:43)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4562:21)

at AST_Node._clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:456:25)

at AST_Node.clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:465:21)

at Object.eval [as before] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:458:33)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4558:35)

at eval (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4620:49)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4562:21)

at AST_Node._clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:456:25)

at AST_Node.clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:465:21)

at Object.eval [as before] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:458:33)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4558:35)

at eval (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4577:25)

at doit (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:134:23)

at MAP (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:160:52)

at do_list (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4576:16)

at eval (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4673:25)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4562:21)

at AST_Node._clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:456:25)

at AST_Node.clone (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:465:21)

at Object.eval [as before] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:458:33)

at AST_Node.eval [as transform] (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4558:35)

at eval (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:4577:25)

at doit (eval at <anonymous> (/projects/app/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/tools/node.js:1:0), <anonymous>:134:23)

Nothing changed expect for the version upgrade from 3.1.6 to 3.1.7.

The most visible issue occurs with inline styles that are set using this.element.style.margin ="example";

Please provide a complete standalone example of JS input that fails with uglify without any third party tools.

RangeError: Maximum call stack size exceeded

duplicate of #2442

Closing as duplicate.

This is actually still broken in 3.1.8, I'm not seeing this maximum callstack error, but minified code is incorrect. I will try to create reduced test case this weekend.

3.1.9 seems to have fixed the issue. 馃憤

Was this page helpful?
0 / 5 - 0 ratings

Related issues

alexlamsl picture alexlamsl  路  4Comments

Jimbly picture Jimbly  路  4Comments

gabmontes picture gabmontes  路  5Comments

kzc picture kzc  路  3Comments

lhtdesignde picture lhtdesignde  路  3Comments