* @param {EvalContext} context * @returns {Dimension | Quoted | Anonymous}
(context)
| 27 | * @returns {Dimension | Quoted | Anonymous} |
| 28 | */ |
| 29 | eval(context) { |
| 30 | const result = this.evaluateJavaScript(this.expression, context); |
| 31 | const type = typeof result; |
| 32 | |
| 33 | if (type === 'number' && !isNaN(/** @type {number} */ (result))) { |
| 34 | return new Dimension(/** @type {number} */ (result)); |
| 35 | } else if (type === 'string') { |
| 36 | return new Quoted(`"${result}"`, /** @type {string} */ (result), this.escaped, this._index); |
| 37 | } else if (Array.isArray(result)) { |
| 38 | return new Anonymous(/** @type {string[]} */ (result).join(', ')); |
| 39 | } else { |
| 40 | return new Anonymous(/** @type {string} */ (result)); |
| 41 | } |
| 42 | } |
| 43 | } |
| 44 | |
| 45 | export default JavaScript; |
nothing calls this directly
no test coverage detected