/**
* Executes JavaScript to find the property value.
*/
public String getPropertyValue(TreeLogger logger, String propertyName)
throws BadPropertyValueException {
Property prop = getProperty(propertyName);
// Check if this property has already been queried for; if so, return
// the same answer. This is necessary to match web mode behavior since
// property providers are only called once. We cache even values that
// cause exceptions to be thrown to make sure we are consistent even