123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- "use strict";
- const UnsupportedFeatureWarning = require("../UnsupportedFeatureWarning");
- const ConstDependency = require("../dependencies/ConstDependency");
- const BasicEvaluatedExpression = require("./BasicEvaluatedExpression");
- module.exports.toConstantDependency = (parser, value, runtimeRequirements) =>
- function constDependency(expr) {
- const dep = new ConstDependency(
- value,
- (expr.range),
- runtimeRequirements
- );
- dep.loc = (expr.loc);
- parser.state.module.addPresentationalDependency(dep);
- return true;
- };
- module.exports.evaluateToString = value =>
- function stringExpression(expr) {
- return new BasicEvaluatedExpression()
- .setString(value)
- .setRange( (expr.range));
- };
- module.exports.evaluateToNumber = value =>
- function stringExpression(expr) {
- return new BasicEvaluatedExpression()
- .setNumber(value)
- .setRange( (expr.range));
- };
- module.exports.evaluateToBoolean = value =>
- function booleanExpression(expr) {
- return new BasicEvaluatedExpression()
- .setBoolean(value)
- .setRange( (expr.range));
- };
- module.exports.evaluateToIdentifier = (
- identifier,
- rootInfo,
- getMembers,
- truthy
- ) =>
- function identifierExpression(expr) {
- const evaluatedExpression = new BasicEvaluatedExpression()
- .setIdentifier(identifier, rootInfo, getMembers)
- .setSideEffects(false)
- .setRange( (expr.range));
- switch (truthy) {
- case true:
- evaluatedExpression.setTruthy();
- break;
- case null:
- evaluatedExpression.setNullish(true);
- break;
- case false:
- evaluatedExpression.setFalsy();
- break;
- }
- return evaluatedExpression;
- };
- module.exports.expressionIsUnsupported = (parser, message) =>
- function unsupportedExpression(expr) {
- const dep = new ConstDependency(
- "(void 0)",
- (expr.range),
- null
- );
- dep.loc = (expr.loc);
- parser.state.module.addPresentationalDependency(dep);
- if (!parser.state.module) return;
- parser.state.module.addWarning(
- new UnsupportedFeatureWarning(
- message,
- (expr.loc)
- )
- );
- return true;
- };
- module.exports.skipTraversal = () => true;
- module.exports.approve = () => true;
|