@@ -45,15 +45,15 @@ bool AbortSignal::aborted_get(JSContext *cx, unsigned argc, JS::Value *vp) {
4545bool AbortSignal::reason_get (JSContext *cx, unsigned argc, JS::Value *vp) {
4646 METHOD_HEADER (0 );
4747
48- args.rval ().set (JS::GetReservedSlot (self, Slots::Reason));
48+ args.rval ().set (JS::GetReservedSlot (self, std::to_underlying ( Slots::Reason) ));
4949 return true ;
5050}
5151
5252// https://dom.spec.whatwg.org/#dom-abortsignal-onabort
5353bool AbortSignal::onabort_get (JSContext *cx, unsigned argc, JS::Value *vp) {
5454 METHOD_HEADER (0 );
5555
56- args.rval ().set (JS::GetReservedSlot (self, Slots::OnAbort));
56+ args.rval ().set (JS::GetReservedSlot (self, std::to_underlying ( Slots::OnAbort) ));
5757 return true ;
5858}
5959
@@ -62,7 +62,7 @@ bool AbortSignal::onabort_set(JSContext *cx, unsigned argc, JS::Value *vp) {
6262 METHOD_HEADER (1 );
6363
6464 RootedValue new_callback (cx, args.get (0 ));
65- RootedValue curr_callback (cx, JS::GetReservedSlot (self, Slots::OnAbort));
65+ RootedValue curr_callback (cx, JS::GetReservedSlot (self, std::to_underlying ( Slots::OnAbort) ));
6666
6767 RootedValue opts (cx, JS::FalseValue ());
6868 RootedValue type (cx, JS::StringValue (abort_type_atom));
@@ -140,7 +140,7 @@ bool AbortSignal::throwIfAborted(JSContext *cx, unsigned argc, JS::Value *vp) {
140140 // Steps: Throw this's abort reason, if this's AbortController has signaled
141141 // to abort; otherwise, does nothing.
142142 if (is_aborted (self)) {
143- RootedValue reason (cx, JS::GetReservedSlot (self, Slots::Reason));
143+ RootedValue reason (cx, JS::GetReservedSlot (self, std::to_underlying ( Slots::Reason) ));
144144 JS_SetPendingException (cx, reason);
145145 }
146146
@@ -165,23 +165,23 @@ bool AbortSignal::on_timeout(JSContext *cx, unsigned argc, JS::Value *vp) {
165165
166166AbortSignal::AlgorithmList *AbortSignal::algorithms (JSObject *self) {
167167 MOZ_ASSERT (is_instance (self));
168- return static_cast <AlgorithmList *>(JS::GetReservedSlot (self, Slots::Algorithms).toPrivate ());
168+ return static_cast <AlgorithmList *>(JS::GetReservedSlot (self, std::to_underlying ( Slots::Algorithms) ).toPrivate ());
169169}
170170
171171WeakIndexSet *AbortSignal::source_signals (JSObject *self) {
172172 MOZ_ASSERT (is_instance (self));
173- return static_cast <WeakIndexSet *>(JS::GetReservedSlot (self, Slots::SourceSignals).toPrivate ());
173+ return static_cast <WeakIndexSet *>(JS::GetReservedSlot (self, std::to_underlying ( Slots::SourceSignals) ).toPrivate ());
174174}
175175
176176WeakIndexSet *AbortSignal::dependent_signals (JSObject *self) {
177177 MOZ_ASSERT (is_instance (self));
178178 return static_cast <WeakIndexSet *>(
179- JS::GetReservedSlot (self, Slots::DependentSignals).toPrivate ());
179+ JS::GetReservedSlot (self, std::to_underlying ( Slots::DependentSignals) ).toPrivate ());
180180}
181181
182182Value AbortSignal::reason (JSObject *self) {
183183 MOZ_ASSERT (is_instance (self));
184- return JS::GetReservedSlot (self, Slots::Reason);
184+ return JS::GetReservedSlot (self, std::to_underlying ( Slots::Reason) );
185185}
186186
187187// https://dom.spec.whatwg.org/#abortsignal-add
@@ -201,14 +201,14 @@ bool AbortSignal::add_algorithm(JSObject *self, js::UniquePtr<AbortAlgorithm> al
201201
202202bool AbortSignal::is_dependent (JSObject *self) {
203203 MOZ_ASSERT (is_instance (self));
204- return JS::GetReservedSlot (self, Slots::Dependent).toBoolean ();
204+ return JS::GetReservedSlot (self, std::to_underlying ( Slots::Dependent) ).toBoolean ();
205205}
206206
207207// https://dom.spec.whatwg.org/#abortsignal-aborted
208208bool AbortSignal::is_aborted (JSObject *self) {
209209 MOZ_ASSERT (is_instance (self));
210210 // An AbortSignal object is aborted when its abort reason is not undefined.
211- return !JS::GetReservedSlot (self, Slots::Reason).isUndefined ();
211+ return !JS::GetReservedSlot (self, std::to_underlying ( Slots::Reason) ).isUndefined ();
212212}
213213
214214// https://dom.spec.whatwg.org/#abortsignal-signal-abort
@@ -282,14 +282,14 @@ bool AbortSignal::run_abort_steps(JSContext *cx, HandleObject self) {
282282// Set signal's abort reason to reason if it is given; otherwise to a new "AbortError" DOMException.
283283bool AbortSignal::set_reason (JSContext *cx, HandleObject self, HandleValue reason) {
284284 if (!reason.isUndefined ()) {
285- SetReservedSlot (self, Slots::Reason, reason);
285+ SetReservedSlot (self, std::to_underlying ( Slots::Reason) , reason);
286286 } else {
287287 RootedObject exception (cx, dom_exception::DOMException::create (cx, " AbortError" , " AbortError" ));
288288 if (!exception) {
289289 return false ;
290290 }
291291
292- SetReservedSlot (self, Slots::Reason, JS::ObjectValue (*exception));
292+ SetReservedSlot (self, std::to_underlying ( Slots::Reason) , JS::ObjectValue (*exception));
293293 }
294294
295295 return true ;
@@ -303,17 +303,17 @@ JSObject *AbortSignal::create(JSContext *cx) {
303303 }
304304
305305 // An AbortSignal object has an associated abort reason, which is initially undefined.
306- SetReservedSlot (self, Slots::Reason, JS::UndefinedValue ());
306+ SetReservedSlot (self, std::to_underlying ( Slots::Reason) , JS::UndefinedValue ());
307307 // An AbortSignal object has associated abort algorithms, which is initially empty.
308- SetReservedSlot (self, Slots::Algorithms, JS::PrivateValue (new AlgorithmList));
308+ SetReservedSlot (self, std::to_underlying ( Slots::Algorithms) , JS::PrivateValue (new AlgorithmList));
309309 // An AbortSignal object has a dependent (a boolean), which is initially false.
310- SetReservedSlot (self, Slots::Dependent, JS::FalseValue ());
310+ SetReservedSlot (self, std::to_underlying ( Slots::Dependent) , JS::FalseValue ());
311311 // An AbortSignal object has associated source signals, which is initially empty.
312- SetReservedSlot (self, Slots::SourceSignals, JS::PrivateValue (new WeakIndexSet));
312+ SetReservedSlot (self, std::to_underlying ( Slots::SourceSignals) , JS::PrivateValue (new WeakIndexSet));
313313 // An AbortSignal object has associated dependent signals, which is initially empty.
314- SetReservedSlot (self, Slots::DependentSignals, JS::PrivateValue (new WeakIndexSet));
314+ SetReservedSlot (self, std::to_underlying ( Slots::DependentSignals) , JS::PrivateValue (new WeakIndexSet));
315315 // cache the onabort handler
316- SetReservedSlot (self, Slots::OnAbort, JS::NullValue ());
316+ SetReservedSlot (self, std::to_underlying ( Slots::OnAbort) , JS::NullValue ());
317317
318318 if (!EventTarget::init (cx, self)) {
319319 return nullptr ;
@@ -411,13 +411,13 @@ JSObject *AbortSignal::create_with_signals(JSContext *cx, HandleValueArray signa
411411 RootedObject signal (cx, &signals[i].toObject ());
412412
413413 if (is_aborted (signal)) {
414- SetReservedSlot (self, Slots::Reason, reason (signal));
414+ SetReservedSlot (self, std::to_underlying ( Slots::Reason) , reason (signal));
415415 return self;
416416 }
417417 }
418418
419419 // 3. Set resultSignal's dependent to true.
420- SetReservedSlot (self, Slots::Dependent, JS::TrueValue ());
420+ SetReservedSlot (self, std::to_underlying ( Slots::Dependent) , JS::TrueValue ());
421421 auto *our_signals = source_signals (self);
422422
423423 // 4. For each signal of signals:
@@ -465,21 +465,21 @@ void AbortSignal::trace(JSTracer *trc, JSObject *self) {
465465 MOZ_ASSERT (is_instance (self));
466466 EventTarget::trace (trc, self);
467467
468- auto has_sources = !JS::GetReservedSlot (self, Slots::SourceSignals).isNullOrUndefined ();
468+ auto has_sources = !JS::GetReservedSlot (self, std::to_underlying ( Slots::SourceSignals) ).isNullOrUndefined ();
469469 if (has_sources) {
470470 auto *srcsig = source_signals (self);
471471 srcsig->trace (trc);
472472 srcsig->traceWeak (trc);
473473 }
474474
475- auto has_deps = !JS::GetReservedSlot (self, Slots::DependentSignals).isNullOrUndefined ();
475+ auto has_deps = !JS::GetReservedSlot (self, std::to_underlying ( Slots::DependentSignals) ).isNullOrUndefined ();
476476 if (has_deps) {
477477 auto *depsig = dependent_signals (self);
478478 depsig->trace (trc);
479479 depsig->traceWeak (trc);
480480 }
481481
482- auto has_algorithms = !JS::GetReservedSlot (self, Slots::Algorithms).isNullOrUndefined ();
482+ auto has_algorithms = !JS::GetReservedSlot (self, std::to_underlying ( Slots::Algorithms) ).isNullOrUndefined ();
483483 if (has_algorithms) {
484484 auto *algorithms = AbortSignal::algorithms (self);
485485 algorithms->trace (trc);
0 commit comments