docs: @SuppressWarnings("unchecked")
  	public static Object proprietaryEvaluate(final String expression,
  			final Class expectedType, final PageContext pageContext,
  			final ProtectedFunctionMapper functionMap, final boolean escape)
  			throws ELException {
  		Object retValue;
  		ExpressionFactory exprFactorySetInPageContext = (ExpressionFactory)pageContext.getAttribute(Constants.JSP_EXPRESSION_FACTORY_OBJECT);
  		if (exprFactorySetInPageContext==null) {
  		    exprFactorySetInPageContext = JspFactory.getDefaultFactory().getJspApplicationContext(pageContext.getServletContext()).getExpressionFactory();
  		}
  		final ExpressionFactory exprFactory = exprFactorySetInPageContext;
  		//if (SecurityUtil.isPackageProtectionEnabled()) {
              ELContextImpl ctx = (ELContextImpl) pageContext.getELContext();
              ctx.setFunctionMapper(new FunctionMapperImpl(functionMap));
              ValueExpression ve = exprFactory.createValueExpression(ctx, expression, expectedType);
              retValue = ve.getValue(ctx);
  		if (escape && retValue != null) {
  			retValue = XmlEscape(retValue.toString());
  		}
  
  		return retValue;
  	}