diff --git a/src/utils/builder.js b/src/utils/builder.js index ea61084..e17eb68 100644 --- a/src/utils/builder.js +++ b/src/utils/builder.js @@ -7,6 +7,7 @@ module.exports = class Builder { this.global = options.global; this.assertPredicateIndex = options.assertPredicateIndex; this.isDebug = options.isDebug; + this.deprecationsEnabled = true; this.expressions = []; } @@ -89,11 +90,16 @@ module.exports = class Builder { let expression = path.node.expression; let callee = expression.callee; let args = expression.arguments; + let flag = this.isDebug; if (options.validate) { options.validate(expression, args); } + if (options.flag !== undefined) { + flag = options.flag; + } + let callExpression; if (this.module) { callExpression = expression; @@ -115,7 +121,7 @@ module.exports = class Builder { this.expressions.push([ path, - this._buildLogicalExpressions(prefixedIdentifiers, callExpression), + this._buildLogicalExpressions(prefixedIdentifiers, callExpression, flag), ]); } @@ -165,6 +171,8 @@ module.exports = class Builder { throw new ReferenceError(`deprecate's meta information requires an "id" field.`); } }, + + flag: this.deprecationsEnabled, }); } @@ -173,12 +181,11 @@ module.exports = class Builder { */ expandMacros() { let t = this.t; - let flag = t.booleanLiteral(this.isDebug); for (let i = 0; i < this.expressions.length; i++) { let expression = this.expressions[i]; let exp = expression[0]; let logicalExp = expression[1]; - exp.replaceWith(t.parenthesizedExpression(logicalExp(flag))); + exp.replaceWith(t.parenthesizedExpression(logicalExp())); } } @@ -196,11 +203,11 @@ module.exports = class Builder { return t.callExpression(t.memberExpression(t.identifier('console'), identifier), args); } - _buildLogicalExpressions(identifiers, callExpression) { + _buildLogicalExpressions(identifiers, callExpression, flagValue) { let t = this.t; - return debugIdentifier => { - identifiers.unshift(debugIdentifier); + return () => { + identifiers.unshift(t.booleanLiteral(flagValue)); identifiers.push(callExpression); let logicalExpressions;