aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2017-03-01 15:25:26 +0800
committerGitHub <noreply@github.com>2017-03-01 15:25:26 +0800
commitc2334baa4813bdde21d5a652de0c9da3733d06b6 (patch)
tree5063101bcbc07c6e5e28730bbb734c63c91f081f
parentfb2b6c7c6f8ddc616d43201eec6e01dfa52a7c6a (diff)
downloadtracifyjs-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.js6
-rw-r--r--lib/utils.js2
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];
});
};