bpo-34880: Add the LOAD_ASSERTION_ERROR opcode. (GH-15073)

Fix assert statement misbehavior if AssertionError is shadowed.
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index 4a20245..b5243d0 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -752,6 +752,14 @@
      from the block stack.
 
 
+.. opcode:: LOAD_ASSERTION_ERROR
+
+   Pushes :exc:`AssertionError` onto the stack.  Used by the :keyword:`assert`
+   statement.
+
+   .. versionadded:: 3.9
+
+
 .. opcode:: LOAD_BUILD_CLASS
 
    Pushes :func:`builtins.__build_class__` onto the stack.  It is later called
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 10217f1..e20ae47 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -226,3 +226,12 @@
 
 * The :mod:`venv` activation scripts no longer special-case when
   ``__VENV_PROMPT__`` is set to ``""``.
+
+
+CPython bytecode changes
+------------------------
+
+* The :opcode:`LOAD_ASSERTION_ERROR` opcode was added for handling the
+  :keyword:`assert` statement. Previously, the assert statement would not work
+  correctly if the :exc:`AssertionError` exception was being shadowed.
+  (Contributed by Zackery Spytz in :issue:`34880`.)