def METHOD_NAME(self, javascript, on_result=None) -> JavaScriptResult:
    """Evaluate a JavaScript expression.
    There is no guarantee that the JavaScript has finished evaluating when this
    method returns. The object returned by this method can be awaited to obtain the
    value of the expression, or you can provide an ``on_result`` callback.
    **Note:** On Android and Windows, *no exception handling is performed*.
    If a JavaScript error occurs, a return value of None will be reported,
    but no exception will be provided.
    :param javascript: The JavaScript expression to evaluate.
    :param on_result: A callback that will be invoked when the JavaScript
        completes. It should take one positional argument, which is the
        value of the expression.
        If evaluation fails, the positional argument will be ``None``, and a
        keyword argument ``exception`` will be passed with an exception
        object.
    """
    return self._impl.METHOD_NAME(javascript, on_result=on_result)