From: Alex Lam S.L Date: Mon, 3 Apr 2017 04:31:05 +0000 (+0800) Subject: fix mangleProperties of `undefined` & `Infinity` (#1772) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=59a4e56bc81ce96b3ee81ad4f068cfc7d89a4790;p=UglifyJS.git fix mangleProperties of `undefined` & `Infinity` (#1772) `NaN` already works by the happy accident of `Number.NaN` fixes #1770 --- diff --git a/lib/propmangle.js b/lib/propmangle.js index cfa035d2..c1e8c7e4 100644 --- a/lib/propmangle.js +++ b/lib/propmangle.js @@ -44,7 +44,11 @@ "use strict"; function find_builtins() { - var a = []; + // NaN will be included due to Number.NaN + var a = [ + "Infinity", + "undefined", + ]; [ Object, Array, Function, Number, String, Boolean, Error, Math, Date, RegExp diff --git a/test/compress/issue-1770.js b/test/compress/issue-1770.js new file mode 100644 index 00000000..69df8960 --- /dev/null +++ b/test/compress/issue-1770.js @@ -0,0 +1,48 @@ +mangle_props: { + mangle_props = {} + input: { + var obj = { + undefined: 1, + NaN: 2, + Infinity: 3, + "-Infinity": 4, + }; + console.log( + obj[void 0], + obj[undefined], + obj["undefined"], + obj[0/0], + obj[NaN], + obj["NaN"], + obj[1/0], + obj[Infinity], + obj["Infinity"], + obj[-1/0], + obj[-Infinity], + obj["-Infinity"] + ); + } + expect: { + var obj = { + undefined: 1, + NaN: 2, + Infinity: 3, + "-Infinity": 4, + }; + console.log( + obj[void 0], + obj[void 0], + obj["undefined"], + obj[0/0], + obj[NaN], + obj["NaN"], + obj[1/0], + obj[1/0], + obj["Infinity"], + obj[-1/0], + obj[-1/0], + obj["-Infinity"] + ); + } + expect_stdout: true +}