commit 60a16946319aaacb77bb336ef35710640800138a
parent 62757b474ff4670f23b01b9d80a3924b952d4990
Author: Matthew Gaudet <mgaudet@mozilla.com>
Date: Mon, 15 Dec 2025 18:47:17 +0000
Bug 2006114 - Replace setFixedSlot with initFixedSlot for newborn objects r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D276474
Diffstat:
12 files changed, 114 insertions(+), 108 deletions(-)
diff --git a/js/src/builtin/BigInt.cpp b/js/src/builtin/BigInt.cpp
@@ -64,7 +64,7 @@ JSObject* BigIntObject::create(JSContext* cx, HandleBigInt bigInt) {
if (!bn) {
return nullptr;
}
- bn->setFixedSlot(PRIMITIVE_VALUE_SLOT, BigIntValue(bigInt));
+ bn->initFixedSlot(PRIMITIVE_VALUE_SLOT, BigIntValue(bigInt));
return bn;
}
diff --git a/js/src/builtin/Promise.cpp b/js/src/builtin/Promise.cpp
@@ -394,11 +394,11 @@ PromiseCombinatorDataHolder* PromiseCombinatorDataHolder::New(
cx->check(resultPromise, elements.value(), resolveOrReject);
- dataHolder->setFixedSlot(Slot_Promise, ObjectValue(*resultPromise));
- dataHolder->setFixedSlot(Slot_RemainingElements, Int32Value(1));
- dataHolder->setFixedSlot(Slot_ValuesArray, elements.value());
- dataHolder->setFixedSlot(Slot_ResolveOrRejectFunction,
- ObjectValue(*resolveOrReject));
+ dataHolder->initFixedSlot(Slot_Promise, ObjectValue(*resultPromise));
+ dataHolder->initFixedSlot(Slot_RemainingElements, Int32Value(1));
+ dataHolder->initFixedSlot(Slot_ValuesArray, elements.value());
+ dataHolder->initFixedSlot(Slot_ResolveOrRejectFunction,
+ ObjectValue(*resolveOrReject));
return dataHolder;
}
diff --git a/js/src/builtin/temporal/Duration.cpp b/js/src/builtin/temporal/Duration.cpp
@@ -1119,22 +1119,25 @@ static DurationObject* CreateTemporalDuration(JSContext* cx,
// Steps 4-13.
// Add zero to convert -0 to +0.
- object->setFixedSlot(DurationObject::YEARS_SLOT, NumberValue(years + (+0.0)));
- object->setFixedSlot(DurationObject::MONTHS_SLOT,
- NumberValue(months + (+0.0)));
- object->setFixedSlot(DurationObject::WEEKS_SLOT, NumberValue(weeks + (+0.0)));
- object->setFixedSlot(DurationObject::DAYS_SLOT, NumberValue(days + (+0.0)));
- object->setFixedSlot(DurationObject::HOURS_SLOT, NumberValue(hours + (+0.0)));
- object->setFixedSlot(DurationObject::MINUTES_SLOT,
- NumberValue(minutes + (+0.0)));
- object->setFixedSlot(DurationObject::SECONDS_SLOT,
- NumberValue(seconds + (+0.0)));
- object->setFixedSlot(DurationObject::MILLISECONDS_SLOT,
- NumberValue(milliseconds + (+0.0)));
- object->setFixedSlot(DurationObject::MICROSECONDS_SLOT,
- NumberValue(microseconds + (+0.0)));
- object->setFixedSlot(DurationObject::NANOSECONDS_SLOT,
- NumberValue(nanoseconds + (+0.0)));
+ object->initFixedSlot(DurationObject::YEARS_SLOT,
+ NumberValue(years + (+0.0)));
+ object->initFixedSlot(DurationObject::MONTHS_SLOT,
+ NumberValue(months + (+0.0)));
+ object->initFixedSlot(DurationObject::WEEKS_SLOT,
+ NumberValue(weeks + (+0.0)));
+ object->initFixedSlot(DurationObject::DAYS_SLOT, NumberValue(days + (+0.0)));
+ object->initFixedSlot(DurationObject::HOURS_SLOT,
+ NumberValue(hours + (+0.0)));
+ object->initFixedSlot(DurationObject::MINUTES_SLOT,
+ NumberValue(minutes + (+0.0)));
+ object->initFixedSlot(DurationObject::SECONDS_SLOT,
+ NumberValue(seconds + (+0.0)));
+ object->initFixedSlot(DurationObject::MILLISECONDS_SLOT,
+ NumberValue(milliseconds + (+0.0)));
+ object->initFixedSlot(DurationObject::MICROSECONDS_SLOT,
+ NumberValue(microseconds + (+0.0)));
+ object->initFixedSlot(DurationObject::NANOSECONDS_SLOT,
+ NumberValue(nanoseconds + (+0.0)));
// Step 14.
return object;
@@ -1173,22 +1176,25 @@ DurationObject* js::temporal::CreateTemporalDuration(JSContext* cx,
// Steps 4-13.
// Add zero to convert -0 to +0.
- object->setFixedSlot(DurationObject::YEARS_SLOT, NumberValue(years + (+0.0)));
- object->setFixedSlot(DurationObject::MONTHS_SLOT,
- NumberValue(months + (+0.0)));
- object->setFixedSlot(DurationObject::WEEKS_SLOT, NumberValue(weeks + (+0.0)));
- object->setFixedSlot(DurationObject::DAYS_SLOT, NumberValue(days + (+0.0)));
- object->setFixedSlot(DurationObject::HOURS_SLOT, NumberValue(hours + (+0.0)));
- object->setFixedSlot(DurationObject::MINUTES_SLOT,
- NumberValue(minutes + (+0.0)));
- object->setFixedSlot(DurationObject::SECONDS_SLOT,
- NumberValue(seconds + (+0.0)));
- object->setFixedSlot(DurationObject::MILLISECONDS_SLOT,
- NumberValue(milliseconds + (+0.0)));
- object->setFixedSlot(DurationObject::MICROSECONDS_SLOT,
- NumberValue(microseconds + (+0.0)));
- object->setFixedSlot(DurationObject::NANOSECONDS_SLOT,
- NumberValue(nanoseconds + (+0.0)));
+ object->initFixedSlot(DurationObject::YEARS_SLOT,
+ NumberValue(years + (+0.0)));
+ object->initFixedSlot(DurationObject::MONTHS_SLOT,
+ NumberValue(months + (+0.0)));
+ object->initFixedSlot(DurationObject::WEEKS_SLOT,
+ NumberValue(weeks + (+0.0)));
+ object->initFixedSlot(DurationObject::DAYS_SLOT, NumberValue(days + (+0.0)));
+ object->initFixedSlot(DurationObject::HOURS_SLOT,
+ NumberValue(hours + (+0.0)));
+ object->initFixedSlot(DurationObject::MINUTES_SLOT,
+ NumberValue(minutes + (+0.0)));
+ object->initFixedSlot(DurationObject::SECONDS_SLOT,
+ NumberValue(seconds + (+0.0)));
+ object->initFixedSlot(DurationObject::MILLISECONDS_SLOT,
+ NumberValue(milliseconds + (+0.0)));
+ object->initFixedSlot(DurationObject::MICROSECONDS_SLOT,
+ NumberValue(microseconds + (+0.0)));
+ object->initFixedSlot(DurationObject::NANOSECONDS_SLOT,
+ NumberValue(nanoseconds + (+0.0)));
// Step 14.
return object;
diff --git a/js/src/builtin/temporal/Instant.cpp b/js/src/builtin/temporal/Instant.cpp
@@ -368,10 +368,10 @@ InstantObject* js::temporal::CreateTemporalInstant(
}
// Step 4.
- object->setFixedSlot(InstantObject::SECONDS_SLOT,
- NumberValue(epochNanoseconds.seconds));
- object->setFixedSlot(InstantObject::NANOSECONDS_SLOT,
- Int32Value(epochNanoseconds.nanoseconds));
+ object->initFixedSlot(InstantObject::SECONDS_SLOT,
+ NumberValue(epochNanoseconds.seconds));
+ object->initFixedSlot(InstantObject::NANOSECONDS_SLOT,
+ Int32Value(epochNanoseconds.nanoseconds));
// Step 5.
return object;
@@ -398,10 +398,10 @@ static InstantObject* CreateTemporalInstant(JSContext* cx, const CallArgs& args,
// Step 4.
auto epochNs = ToEpochNanoseconds(epochNanoseconds);
- object->setFixedSlot(InstantObject::SECONDS_SLOT,
- NumberValue(epochNs.seconds));
- object->setFixedSlot(InstantObject::NANOSECONDS_SLOT,
- Int32Value(epochNs.nanoseconds));
+ object->initFixedSlot(InstantObject::SECONDS_SLOT,
+ NumberValue(epochNs.seconds));
+ object->initFixedSlot(InstantObject::NANOSECONDS_SLOT,
+ Int32Value(epochNs.nanoseconds));
// Step 5.
return object;
diff --git a/js/src/builtin/temporal/PlainDate.cpp b/js/src/builtin/temporal/PlainDate.cpp
@@ -213,11 +213,11 @@ static PlainDateObject* CreateTemporalDate(JSContext* cx, const CallArgs& args,
// Step 4.
auto packedDate = PackedDate::pack(isoDate);
- object->setFixedSlot(PlainDateObject::PACKED_DATE_SLOT,
- PrivateUint32Value(packedDate.value));
+ object->initFixedSlot(PlainDateObject::PACKED_DATE_SLOT,
+ PrivateUint32Value(packedDate.value));
// Step 5.
- object->setFixedSlot(PlainDateObject::CALENDAR_SLOT, calendar.toSlotValue());
+ object->initFixedSlot(PlainDateObject::CALENDAR_SLOT, calendar.toSlotValue());
// Step 6.
return object;
@@ -245,11 +245,11 @@ PlainDateObject* js::temporal::CreateTemporalDate(
// Step 4.
auto packedDate = PackedDate::pack(isoDate);
- object->setFixedSlot(PlainDateObject::PACKED_DATE_SLOT,
- PrivateUint32Value(packedDate.value));
+ object->initFixedSlot(PlainDateObject::PACKED_DATE_SLOT,
+ PrivateUint32Value(packedDate.value));
// Step 5.
- object->setFixedSlot(PlainDateObject::CALENDAR_SLOT, calendar.toSlotValue());
+ object->initFixedSlot(PlainDateObject::CALENDAR_SLOT, calendar.toSlotValue());
// Step 6.
return object;
diff --git a/js/src/builtin/temporal/PlainDateTime.cpp b/js/src/builtin/temporal/PlainDateTime.cpp
@@ -130,15 +130,15 @@ static PlainDateTimeObject* CreateTemporalDateTime(
// Step 4.
auto packedDate = PackedDate::pack(isoDateTime.date);
auto packedTime = PackedTime::pack(isoDateTime.time);
- object->setFixedSlot(PlainDateTimeObject::PACKED_DATE_SLOT,
- PrivateUint32Value(packedDate.value));
- object->setFixedSlot(
+ object->initFixedSlot(PlainDateTimeObject::PACKED_DATE_SLOT,
+ PrivateUint32Value(packedDate.value));
+ object->initFixedSlot(
PlainDateTimeObject::PACKED_TIME_SLOT,
DoubleValue(mozilla::BitwiseCast<double>(packedTime.value)));
// Step 5.
- object->setFixedSlot(PlainDateTimeObject::CALENDAR_SLOT,
- calendar.toSlotValue());
+ object->initFixedSlot(PlainDateTimeObject::CALENDAR_SLOT,
+ calendar.toSlotValue());
// Step 6.
return object;
@@ -168,15 +168,15 @@ PlainDateTimeObject* js::temporal::CreateTemporalDateTime(
// Step 4.
auto packedDate = PackedDate::pack(isoDateTime.date);
auto packedTime = PackedTime::pack(isoDateTime.time);
- object->setFixedSlot(PlainDateTimeObject::PACKED_DATE_SLOT,
- PrivateUint32Value(packedDate.value));
- object->setFixedSlot(
+ object->initFixedSlot(PlainDateTimeObject::PACKED_DATE_SLOT,
+ PrivateUint32Value(packedDate.value));
+ object->initFixedSlot(
PlainDateTimeObject::PACKED_TIME_SLOT,
DoubleValue(mozilla::BitwiseCast<double>(packedTime.value)));
// Step 5.
- object->setFixedSlot(PlainDateTimeObject::CALENDAR_SLOT,
- calendar.toSlotValue());
+ object->initFixedSlot(PlainDateTimeObject::CALENDAR_SLOT,
+ calendar.toSlotValue());
// Step 6.
return object;
diff --git a/js/src/builtin/temporal/PlainMonthDay.cpp b/js/src/builtin/temporal/PlainMonthDay.cpp
@@ -79,12 +79,12 @@ static PlainMonthDayObject* CreateTemporalMonthDay(
// Step 4.
auto packedDate = PackedDate::pack(isoDate);
- object->setFixedSlot(PlainMonthDayObject::PACKED_DATE_SLOT,
- PrivateUint32Value(packedDate.value));
+ object->initFixedSlot(PlainMonthDayObject::PACKED_DATE_SLOT,
+ PrivateUint32Value(packedDate.value));
// Step 5.
- object->setFixedSlot(PlainMonthDayObject::CALENDAR_SLOT,
- calendar.toSlotValue());
+ object->initFixedSlot(PlainMonthDayObject::CALENDAR_SLOT,
+ calendar.toSlotValue());
// Step 6.
return object;
@@ -108,12 +108,12 @@ PlainMonthDayObject* js::temporal::CreateTemporalMonthDay(
// Step 4.
auto packedDate = PackedDate::pack(monthDay);
- object->setFixedSlot(PlainMonthDayObject::PACKED_DATE_SLOT,
- PrivateUint32Value(packedDate.value));
+ object->initFixedSlot(PlainMonthDayObject::PACKED_DATE_SLOT,
+ PrivateUint32Value(packedDate.value));
// Step 5.
- object->setFixedSlot(PlainMonthDayObject::CALENDAR_SLOT,
- monthDay.calendar().toSlotValue());
+ object->initFixedSlot(PlainMonthDayObject::CALENDAR_SLOT,
+ monthDay.calendar().toSlotValue());
// Step 6.
return object;
diff --git a/js/src/builtin/temporal/PlainTime.cpp b/js/src/builtin/temporal/PlainTime.cpp
@@ -274,7 +274,7 @@ static PlainTimeObject* CreateTemporalTime(JSContext* cx, const CallArgs& args,
// Step 3.
auto packedTime = PackedTime::pack(time);
- object->setFixedSlot(
+ object->initFixedSlot(
PlainTimeObject::PACKED_TIME_SLOT,
DoubleValue(mozilla::BitwiseCast<double>(packedTime.value)));
@@ -297,7 +297,7 @@ PlainTimeObject* js::temporal::CreateTemporalTime(JSContext* cx,
// Step 3.
auto packedTime = PackedTime::pack(time);
- object->setFixedSlot(
+ object->initFixedSlot(
PlainTimeObject::PACKED_TIME_SLOT,
DoubleValue(mozilla::BitwiseCast<double>(packedTime.value)));
diff --git a/js/src/builtin/temporal/PlainYearMonth.cpp b/js/src/builtin/temporal/PlainYearMonth.cpp
@@ -107,12 +107,12 @@ static PlainYearMonthObject* CreateTemporalYearMonth(
// Step 4.
auto packedDate = PackedDate::pack(isoDate);
- object->setFixedSlot(PlainYearMonthObject::PACKED_DATE_SLOT,
- PrivateUint32Value(packedDate.value));
+ object->initFixedSlot(PlainYearMonthObject::PACKED_DATE_SLOT,
+ PrivateUint32Value(packedDate.value));
// Step 5.
- object->setFixedSlot(PlainYearMonthObject::CALENDAR_SLOT,
- calendar.toSlotValue());
+ object->initFixedSlot(PlainYearMonthObject::CALENDAR_SLOT,
+ calendar.toSlotValue());
// Step 6.
return object;
@@ -136,12 +136,12 @@ PlainYearMonthObject* js::temporal::CreateTemporalYearMonth(
// Step 4.
auto packedDate = PackedDate::pack(yearMonth);
- object->setFixedSlot(PlainYearMonthObject::PACKED_DATE_SLOT,
- PrivateUint32Value(packedDate.value));
+ object->initFixedSlot(PlainYearMonthObject::PACKED_DATE_SLOT,
+ PrivateUint32Value(packedDate.value));
// Step 5.
- object->setFixedSlot(PlainYearMonthObject::CALENDAR_SLOT,
- yearMonth.calendar().toSlotValue());
+ object->initFixedSlot(PlainYearMonthObject::CALENDAR_SLOT,
+ yearMonth.calendar().toSlotValue());
// Step 6.
return object;
diff --git a/js/src/builtin/temporal/TimeZone.cpp b/js/src/builtin/temporal/TimeZone.cpp
@@ -103,13 +103,13 @@ TimeZoneObject* js::temporal::CreateTimeZoneObject(
return nullptr;
}
- object->setFixedSlot(TimeZoneObject::IDENTIFIER_SLOT,
- StringValue(identifier));
+ object->initFixedSlot(TimeZoneObject::IDENTIFIER_SLOT,
+ StringValue(identifier));
- object->setFixedSlot(TimeZoneObject::PRIMARY_IDENTIFIER_SLOT,
- StringValue(primaryIdentifier));
+ object->initFixedSlot(TimeZoneObject::PRIMARY_IDENTIFIER_SLOT,
+ StringValue(primaryIdentifier));
- object->setFixedSlot(TimeZoneObject::OFFSET_MINUTES_SLOT, UndefinedValue());
+ object->initFixedSlot(TimeZoneObject::OFFSET_MINUTES_SLOT, UndefinedValue());
return object;
}
@@ -139,14 +139,14 @@ static TimeZoneObject* CreateTimeZoneObject(JSContext* cx,
return nullptr;
}
- object->setFixedSlot(TimeZoneObject::IDENTIFIER_SLOT,
- StringValue(identifier));
+ object->initFixedSlot(TimeZoneObject::IDENTIFIER_SLOT,
+ StringValue(identifier));
- object->setFixedSlot(TimeZoneObject::PRIMARY_IDENTIFIER_SLOT,
- UndefinedValue());
+ object->initFixedSlot(TimeZoneObject::PRIMARY_IDENTIFIER_SLOT,
+ UndefinedValue());
- object->setFixedSlot(TimeZoneObject::OFFSET_MINUTES_SLOT,
- Int32Value(offsetMinutes));
+ object->initFixedSlot(TimeZoneObject::OFFSET_MINUTES_SLOT,
+ Int32Value(offsetMinutes));
return object;
}
diff --git a/js/src/builtin/temporal/ZonedDateTime.cpp b/js/src/builtin/temporal/ZonedDateTime.cpp
@@ -526,18 +526,18 @@ static ZonedDateTimeObject* CreateTemporalZonedDateTime(
// Step 4.
auto epochNs = ToEpochNanoseconds(epochNanoseconds);
- object->setFixedSlot(ZonedDateTimeObject::SECONDS_SLOT,
- NumberValue(epochNs.seconds));
- object->setFixedSlot(ZonedDateTimeObject::NANOSECONDS_SLOT,
- Int32Value(epochNs.nanoseconds));
+ object->initFixedSlot(ZonedDateTimeObject::SECONDS_SLOT,
+ NumberValue(epochNs.seconds));
+ object->initFixedSlot(ZonedDateTimeObject::NANOSECONDS_SLOT,
+ Int32Value(epochNs.nanoseconds));
// Step 5.
- object->setFixedSlot(ZonedDateTimeObject::TIMEZONE_SLOT,
- timeZone.toSlotValue());
+ object->initFixedSlot(ZonedDateTimeObject::TIMEZONE_SLOT,
+ timeZone.toSlotValue());
// Step 6.
- object->setFixedSlot(ZonedDateTimeObject::CALENDAR_SLOT,
- calendar.toSlotValue());
+ object->initFixedSlot(ZonedDateTimeObject::CALENDAR_SLOT,
+ calendar.toSlotValue());
// Step 7.
return object;
@@ -560,18 +560,18 @@ ZonedDateTimeObject* js::temporal::CreateTemporalZonedDateTime(
}
// Step 4.
- object->setFixedSlot(ZonedDateTimeObject::SECONDS_SLOT,
- NumberValue(epochNanoseconds.seconds));
- object->setFixedSlot(ZonedDateTimeObject::NANOSECONDS_SLOT,
- Int32Value(epochNanoseconds.nanoseconds));
+ object->initFixedSlot(ZonedDateTimeObject::SECONDS_SLOT,
+ NumberValue(epochNanoseconds.seconds));
+ object->initFixedSlot(ZonedDateTimeObject::NANOSECONDS_SLOT,
+ Int32Value(epochNanoseconds.nanoseconds));
// Step 5.
- object->setFixedSlot(ZonedDateTimeObject::TIMEZONE_SLOT,
- timeZone.toSlotValue());
+ object->initFixedSlot(ZonedDateTimeObject::TIMEZONE_SLOT,
+ timeZone.toSlotValue());
// Step 6.
- object->setFixedSlot(ZonedDateTimeObject::CALENDAR_SLOT,
- calendar.toSlotValue());
+ object->initFixedSlot(ZonedDateTimeObject::CALENDAR_SLOT,
+ calendar.toSlotValue());
// Step 7.
return object;
diff --git a/js/src/wasm/WasmAnyRef.cpp b/js/src/wasm/WasmAnyRef.cpp
@@ -47,7 +47,7 @@ WasmValueBox* WasmValueBox::create(JSContext* cx, HandleValue value) {
if (!obj) {
return nullptr;
}
- obj->setFixedSlot(VALUE_SLOT, value);
+ obj->initFixedSlot(VALUE_SLOT, value);
return obj;
}