UNPKG

fontoxpath

Version:

A minimalistic XPath 3.1 engine in JavaScript

37 lines (30 loc) 849 B
import Selector from './Selector'; import Specificity from './Specificity'; /** * @extends {Selector} */ class VarRef extends Selector { /** * @param {string} prefix * @param {string} namespaceURI * @param {string} variableName */ constructor (prefix, namespaceURI, variableName) { super(new Specificity({}), { canBeStaticallyEvaluated: false, resultOrder: Selector.RESULT_ORDERINGS.UNSORTED }); if (prefix || namespaceURI) { throw new Error('Not implemented: references to variables with a namespace URI or a prefix.'); } this._variableName = variableName; } evaluate (dynamicContext) { var value = dynamicContext.variables[this._variableName]; if (!value) { throw new Error('XPST0008, The variable ' + this._variableName + ' is not in scope.'); } return value(); } } export default VarRef;