diff --git a/index.bs b/index.bs
index 97bc1f6f..62d6802c 100644
--- a/index.bs
+++ b/index.bs
@@ -6036,7 +6036,7 @@ about the execution context at the time the language binding specific object ref
converted to an IDL value.
Note: For JavaScript objects, the [=callback context=] is used to hold a reference to the
-incumbent settings object at the time the Object value is converted to an IDL
+incumbent realm at the time the Object value is converted to an IDL
callback interface type value. See [[#js-callback-interface]].
There is no way to represent a constant object reference value for a particular
@@ -6085,7 +6085,7 @@ An IDL value of the callback function type is represented by a tuple of an objec
reference and a [=callback context=].
Note: As with [=callback interface types=], the [=callback context=] is used to hold a
-reference to the incumbent settings object at
+reference to the incumbent realm at
the time a JavaScript Object value is converted to an IDL
callback function type value. See [[#js-callback-function]].
@@ -7783,7 +7783,7 @@ values are represented by JavaScript Object values (including [=function objects
1. If Type(|V|) is not Object, then [=JavaScript/throw=] a
@@ -7911,7 +7911,7 @@ IDL [=callback function types=] are represented by JavaScript [=function objects
then [=JavaScript/throw=] a
@@ -9677,9 +9677,10 @@ Otherwise, it is the [=host interface=]'s [=exposure set=].
1. If |construct|'s [=exposure set=] is not *
, and |realm|.\[[GlobalObject]] does
not implement an [=interface=] that is in |construct|'s [=exposure set=], then return false.
- 1. If |realm|'s [=realm/settings object=] is not a [=secure context=], and |construct| is
- [=conditionally exposed=] on [{{SecureContext}}], then return false.
- 1. If |realm|'s [=realm/settings object=]'s
+ 1. If |realm|'s [=realm/principal realm=]'s [=principal realm/settings object=] is not a
+ [=secure context=], and |construct| is [=conditionally exposed=] on [{{SecureContext}}],
+ then return false.
+ 1. If |realm|'s [=realm/principal realm=]'s [=principal realm/settings object=]'s
[=environment settings object/cross-origin isolated capability=] is false, and |construct|
is [=conditionally exposed=] on [{{CrossOriginIsolated}}], then return false.
1. Return true.
@@ -11840,8 +11841,7 @@ is the concatenation of the [=interface=]'s
When the \[[SetPrototypeOf]] internal method of a [=named properties object=] |O| is called with
JavaScript language value |V|, the following step is taken:
- 1. If |O|'s [=associated realm=]'s [=is global prototype chain mutable=] is true,
- return [=?=] [$OrdinarySetPrototypeOf$](|O|, |V|).
+ 1. Assert: |O|'s [=associated realm=]'s [=is global prototype chain mutable=] is false.
1. Return [=?=] SetImmutablePrototype(|O|, |V|).
@@ -13551,7 +13551,8 @@ the realm given as an argument.
1. [=Define the iteration methods=] of |interface| on |instance| given |realm|.
1. [=Define the asynchronous iteration methods=] of |interface| on |instance| given |realm|.
1. [=Define the global property references=] on |instance|, given |realm|.
- 1. Set |instance|.\[[SetPrototypeOf]] as defined in [[#platform-object-setprototypeof]].
+ 1. If |realm|'s [=is global prototype chain mutable=] is false, then:
+ 1. Set |instance|.\[[SetPrototypeOf]] as defined in [[#platform-object-setprototypeof]].
1. Otherwise, if |interfaces| contains an [=interface=] which
[=support indexed properties|supports indexed properties=],
[=support named properties|named properties=], or both:
@@ -13660,8 +13661,7 @@ Issue: Define those properties imperatively instead.
[=interface=] with the [{{Global}}] [=extended attribute=] is called with
JavaScript language value |V|, the following step is taken:
- 1. If |O|'s [=associated realm=]'s [=is global prototype chain mutable=] is true,
- return [=?=] [$OrdinarySetPrototypeOf$](|O|, |V|).
+ 1. Assert: |O|'s [=associated realm=]'s [=is global prototype chain mutable=] is false.
1. Return [=?=] SetImmutablePrototype(|O|, |V|).
@@ -14323,11 +14323,10 @@ the special value “missing”, which represents a missing optional argument.
1. Let |completion| be an uninitialized variable.
1. If |thisArg| was not given, let |thisArg| be rethrow
", throw |completion|.\[[Value]].
1. Otherwise, if |exceptionBehavior| is "report
":
1. [=Assert=]: |callable|'s [=return type=] is {{undefined}} or {{any}}.
- 1. [=Report an exception=] |completion|.\[[Value]] for |realm|'s [=realm/global object=].
+ 1. [=Report an exception=] |completion|.\[[Value]] for |relevant realm|'s
+ [=realm/global object=].
1. Return the unique {{undefined}} IDL value.
1. [=Assert=]: |callable|'s [=return type=] is a [=promise type=].
1. Let |rejectedPromise| be [=!=] Call({{%Promise.reject%}},
@@ -14482,11 +14481,10 @@ a return type that is a [=promise type=].
1. Let |F| be the JavaScript object corresponding to |callable|.
1. If IsConstructor(|F|) is