summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibJS
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Libraries/LibJS')
-rw-r--r--Userland/Libraries/LibJS/Runtime/Temporal/TimeZonePrototype.cpp7
-rw-r--r--Userland/Libraries/LibJS/Tests/builtins/Temporal/TimeZone/TimeZone.prototype.id.js8
2 files changed, 10 insertions, 5 deletions
diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/TimeZonePrototype.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/TimeZonePrototype.cpp
index abf53e0b5f..4e13169c37 100644
--- a/Userland/Libraries/LibJS/Runtime/Temporal/TimeZonePrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Temporal/TimeZonePrototype.cpp
@@ -48,10 +48,11 @@ void TimeZonePrototype::initialize(GlobalObject& global_object)
JS_DEFINE_NATIVE_FUNCTION(TimeZonePrototype::id_getter)
{
// 1. Let timeZone be the this value.
- auto time_zone = vm.this_value(global_object);
+ // 2. Perform ? RequireInternalSlot(timeZone, [[InitializedTemporalTimeZone]]).
+ auto* time_zone = TRY(typed_this_object(global_object));
- // 2. Return ? ToString(timeZone).
- return js_string(vm, TRY(time_zone.to_string(global_object)));
+ // 3. Return ? ToString(timeZone).
+ return js_string(vm, TRY(Value(time_zone).to_string(global_object)));
}
// 11.4.4 Temporal.TimeZone.prototype.getOffsetNanosecondsFor ( instant ), https://tc39.es/proposal-temporal/#sec-temporal.timezone.prototype.getoffsetnanosecondsfor
diff --git a/Userland/Libraries/LibJS/Tests/builtins/Temporal/TimeZone/TimeZone.prototype.id.js b/Userland/Libraries/LibJS/Tests/builtins/Temporal/TimeZone/TimeZone.prototype.id.js
index 7a85daf14c..7da702bbca 100644
--- a/Userland/Libraries/LibJS/Tests/builtins/Temporal/TimeZone/TimeZone.prototype.id.js
+++ b/Userland/Libraries/LibJS/Tests/builtins/Temporal/TimeZone/TimeZone.prototype.id.js
@@ -3,8 +3,12 @@ describe("correct behavior", () => {
const timeZone = new Temporal.TimeZone("UTC");
expect(timeZone.id).toBe("UTC");
});
+});
- test("works with any this value", () => {
- expect(Reflect.get(Temporal.TimeZone.prototype, "id", "foo")).toBe("foo");
+describe("errors", () => {
+ test("this value must be a Temporal.TimeZone object", () => {
+ expect(() => {
+ Reflect.get(Temporal.TimeZone.prototype, "id", "foo");
+ }).toThrowWithMessage(TypeError, "Not an object of type Temporal.TimeZone");
});
});