* Evaluate expression. * @param {Expression | SpreadElement | PrivateIdentifier | Super} expression expression node * @returns {BasicEvaluatedExpression} evaluation result
(expression)
| 4837 | * @returns {BasicEvaluatedExpression} evaluation result |
| 4838 | */ |
| 4839 | evaluateExpression(expression) { |
| 4840 | try { |
| 4841 | const hook = this.hooks.evaluate.get(expression.type); |
| 4842 | if (hook !== undefined) { |
| 4843 | const result = hook.call(expression); |
| 4844 | if (result !== undefined && result !== null) { |
| 4845 | result.setExpression(expression); |
| 4846 | return result; |
| 4847 | } |
| 4848 | } |
| 4849 | } catch (err) { |
| 4850 | // eslint-disable-next-line no-console |
| 4851 | console.warn(err); |
| 4852 | // ignore error |
| 4853 | } |
| 4854 | return new BasicEvaluatedExpression() |
| 4855 | .setRange(/** @type {Range} */ (expression.range)) |
| 4856 | .setExpression(expression); |
| 4857 | } |
| 4858 | |
| 4859 | /** |
| 4860 | * Returns parsed string. |
no test coverage detected