diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2017-03-01 15:25:26 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-01 15:25:26 +0800 |
commit | c2334baa4813bdde21d5a652de0c9da3733d06b6 (patch) | |
tree | 5063101bcbc07c6e5e28730bbb734c63c91f081f | |
parent | fb2b6c7c6f8ddc616d43201eec6e01dfa52a7c6a (diff) | |
download | tracifyjs-c2334baa4813bdde21d5a652de0c9da3733d06b6.tar.gz tracifyjs-c2334baa4813bdde21d5a652de0c9da3733d06b6.zip |
fix crash on missing `props` to `string_template()` (#1523)
Patched up `make_node()` without `orig`.
There may be other cases where `start` could be missing, so make it print "undefined" instead of crashing.
fixes #1518
-rw-r--r-- | lib/compress.js | 6 | ||||
-rw-r--r-- | lib/utils.js | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/lib/compress.js b/lib/compress.js index b9ad8e9f..32e7a649 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -2194,7 +2194,7 @@ merge(Compressor.prototype, { // here because they are only used in an equality comparison later on. self.condition = negated; var tmp = self.body; - self.body = self.alternative || make_node(AST_EmptyStatement); + self.body = self.alternative || make_node(AST_EmptyStatement, self); self.alternative = tmp; } if (is_empty(self.body) && is_empty(self.alternative)) { @@ -2459,7 +2459,7 @@ merge(Compressor.prototype, { case "Boolean": if (self.args.length == 0) return make_node(AST_False, self); if (self.args.length == 1) return make_node(AST_UnaryPrefix, self, { - expression: make_node(AST_UnaryPrefix, null, { + expression: make_node(AST_UnaryPrefix, self, { expression: self.args[0], operator: "!" }), @@ -2855,7 +2855,7 @@ merge(Compressor.prototype, { compressor.warn("Boolean && always false [{file}:{line},{col}]", self.start); return make_node(AST_Seq, self, { car: self.left, - cdr: make_node(AST_False) + cdr: make_node(AST_False, self) }).optimize(compressor); } if (ll.length > 1 && ll[1]) { diff --git a/lib/utils.js b/lib/utils.js index 46adfd4c..da663546 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -185,7 +185,7 @@ function push_uniq(array, el) { function string_template(text, props) { return text.replace(/\{(.+?)\}/g, function(str, p){ - return props[p]; + return props && props[p]; }); }; |