diff --git a/spec.bs b/spec.bs
index 8c886bc..c0d23c7 100644
--- a/spec.bs
+++ b/spec.bs
@@ -199,7 +199,8 @@ The signal
getter steps are to
1. If [=this=]'s [=relevant global object=] is a {{Window}} object, and its [=associated
Document=] is not [=Document/fully active=], then return.
- 1. Run [=this=]'s [=Subscriber/next algorithm=] algorithm given |value|.
+ 1. If [=this=]'s [=Subscriber/next algorithm=] is not null, then run [=this=]'s
+ [=Subscriber/next algorithm=] given |value|.
[=Assert=]: No exception was thrown.
@@ -214,10 +215,12 @@ The signal
getter steps are to
1. [=close a subscription|Close=] [=this=].
- 1. Run |error algorithm| given |error|.
+ 1. If |error algorithm| is not null, then run |error algorithm| given |error|.
[=Assert=]: No exception was thrown.
+ 1. Otherwise (i.e., when |error algorithm| is null), [=report the exception=] |error|.
+
1. [=AbortController/Signal abort=] [=this=]'s [=Subscriber/complete or error controller=].
@@ -231,7 +234,7 @@ The signal
getter steps are to
1. [=close a subscription|Close=] [=this=].
- 1. Run |complete algorithm|.
+ 1. If |complete algorithm| is not null, then run |complete algorithm|.
[=Assert=]: No exception was thrown.