Run a JS script within the context.\
        All code is ran synchronously,\
        there is no event loop. It's thread-safe

        :param script: utf-8 encoded or unicode string
        :type script: bytes or str
        :param identifier: utf-8 encoded or unicode string.\
        This is used as the name of the script\
        (ie: in stack-traces)
        :type identifier: bytes or str
        :return: Result of running the JS script
        :rtype: str
        :raises V8Error: if there was\
        an error running the JS script

def run_script(self, script, identifier=_DEFAULT_SCRIPT_NAME):
        """
        Run a JS script within the context.\
        All code is ran synchronously,\
        there is no event loop. It's thread-safe

        :param script: utf-8 encoded or unicode string
        :type script: bytes or str
        :param identifier: utf-8 encoded or unicode string.\
        This is used as the name of the script\
        (ie: in stack-traces)
        :type identifier: bytes or str
        :return: Result of running the JS script
        :rtype: str
        :raises V8Error: if there was\
        an error running the JS script
        """
        assert isinstance(script, six.text_type) or _is_utf_8(script)
        assert isinstance(identifier, six.text_type) or _is_utf_8(identifier)

        if isinstance(script, six.text_type):
            script = script.encode('utf-8')

        if isinstance(identifier, six.text_type):
            identifier = identifier.encode('utf-8')

        with _String() as output:
            with _String() as error:
                code = lib.v8cffi_run_script(
                    self._c_context[0],
                    script,
                    len(script),
                    identifier,
                    len(identifier),
                    output.string_ptr,
                    output.len_ptr,
                    error.string_ptr,
                    error.len_ptr)

                if code != lib.E_V8_OK:
                    raise exceptions.get_exception(code)(six.text_type(error))

                return six.text_type(output)