From 74b88a8156a0ab10fc9523c3f5871e1185f10728 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 18 Sep 2021 21:44:45 +0200 Subject: [PATCH] LibWeb: Implement window.location.port This returns the port of the current document's URL. :^) --- Userland/Libraries/LibWeb/Bindings/LocationObject.cpp | 7 +++++++ Userland/Libraries/LibWeb/Bindings/LocationObject.h | 1 + 2 files changed, 8 insertions(+) diff --git a/Userland/Libraries/LibWeb/Bindings/LocationObject.cpp b/Userland/Libraries/LibWeb/Bindings/LocationObject.cpp index a31e1e56e2..0702ad4ce1 100644 --- a/Userland/Libraries/LibWeb/Bindings/LocationObject.cpp +++ b/Userland/Libraries/LibWeb/Bindings/LocationObject.cpp @@ -29,6 +29,7 @@ void LocationObject::initialize(JS::GlobalObject& global_object) define_native_accessor("hash", hash_getter, {}, attr); define_native_accessor("search", search_getter, {}, attr); define_native_accessor("protocol", protocol_getter, {}, attr); + define_native_accessor("port", port_getter, {}, attr); define_native_function("reload", reload, 0, JS::Attribute::Enumerable); } @@ -110,6 +111,12 @@ JS_DEFINE_NATIVE_FUNCTION(LocationObject::protocol_getter) return JS::js_string(vm, builder.to_string()); } +JS_DEFINE_NATIVE_FUNCTION(LocationObject::port_getter) +{ + auto& window = static_cast(global_object); + return JS::Value(window.impl().associated_document().url().port_or_default()); +} + JS_DEFINE_NATIVE_FUNCTION(LocationObject::reload) { auto& window = static_cast(global_object); diff --git a/Userland/Libraries/LibWeb/Bindings/LocationObject.h b/Userland/Libraries/LibWeb/Bindings/LocationObject.h index df01f699e5..d1e3ea5212 100644 --- a/Userland/Libraries/LibWeb/Bindings/LocationObject.h +++ b/Userland/Libraries/LibWeb/Bindings/LocationObject.h @@ -39,6 +39,7 @@ private: JS_DECLARE_NATIVE_FUNCTION(hash_getter); JS_DECLARE_NATIVE_FUNCTION(search_getter); JS_DECLARE_NATIVE_FUNCTION(protocol_getter); + JS_DECLARE_NATIVE_FUNCTION(port_getter); }; }