refactor setTypeOf to more atomic helper methods

- reduces sideeffects as parser is called outside of helper
- allows better reuse
This commit is contained in:
Tim Sebastian 2017-01-08 14:53:14 +11:00
parent 086bd9db79
commit d43cbbd499
1 changed files with 9 additions and 6 deletions

View File

@ -25,16 +25,19 @@ ParserHelpers.addParsedVariableToModule = function(parser, name, expression) {
return true;
};
ParserHelpers.setTypeof = function setTypeof(parser, expr, value) {
parser.plugin("evaluate typeof " + expr, function(expr) {
return new BasicEvaluatedExpression().setString(value).setRange(expr.range);
});
parser.plugin("typeof " + expr, function(expr) {
ParserHelpers.toConstantDependency = function toConstantDependency(value) {
return function(expr) {
var dep = new ConstDependency(JSON.stringify(value), expr.range);
dep.loc = expr.loc;
this.state.current.addDependency(dep);
return true;
});
};
};
ParserHelpers.evaluateToString = function setTypeof(value) {
return function(expr) {
return new BasicEvaluatedExpression().setString(value).setRange(expr.range);
};
};
ParserHelpers.expressionIsUnsupported = function expressionIsUnsupported(message) {