function jsEval(expr) {
  try {
    return eval('[' + expr + '][0]');
  } catch (e) {
    return null;
  }
}
Wrapper for the eval() builtin function to evaluate expressions and
obtain their value. It wraps the expression in parentheses such
that object literals are really evaluated to objects. Without the
wrapping, they are evaluated as block, and create syntax
errors. Also protects against other syntax errors in the eval()ed
code and returns null if the eval throws an exception.

@param {String} expr
@return {Object|Null}