do_not_update_lhs: { options = { global_defs: { DEBUG: 0, }, } input: { DEBUG++; DEBUG += 1; DEBUG = 1; } expect: { DEBUG++; DEBUG += 1; DEBUG = 1; } } do_update_rhs: { options = { global_defs: { DEBUG: 0, }, } input: { MY_DEBUG = DEBUG; MY_DEBUG += DEBUG; } expect: { MY_DEBUG = 0; MY_DEBUG += 0; } } mixed: { options = { evaluate: true, global_defs: { DEBUG: 0, ENV: 1, FOO: 2, }, } input: { var ENV = 3; var FOO = 4; f(ENV * 10); --FOO; DEBUG = 1; DEBUG++; DEBUG += 1; f(DEBUG); x = DEBUG; } expect: { var ENV = 3; var FOO = 4; f(10); --FOO; DEBUG = 1; DEBUG++; DEBUG += 1; f(0); x = 0; } expect_warnings: [ "WARN: global_defs ENV redefined [test/compress/issue-208.js:1,12]", "WARN: global_defs FOO redefined [test/compress/issue-208.js:2,12]", "WARN: global_defs FOO redefined [test/compress/issue-208.js:4,10]", "WARN: global_defs DEBUG redefined [test/compress/issue-208.js:5,8]", "WARN: global_defs DEBUG redefined [test/compress/issue-208.js:6,8]", "WARN: global_defs DEBUG redefined [test/compress/issue-208.js:7,8]", ] }