From e9a0759b1628e31a9aa5ff24a087895ac7d34590 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sun, 6 Jun 2021 16:51:49 +0100 Subject: [PATCH] LibJS: Add String.prototype.valueOf() It should have its own and not inherit from the Object prototype. --- Userland/Libraries/LibJS/Runtime/StringPrototype.cpp | 6 ++++++ Userland/Libraries/LibJS/Runtime/StringPrototype.h | 1 + 2 files changed, 7 insertions(+) diff --git a/Userland/Libraries/LibJS/Runtime/StringPrototype.cpp b/Userland/Libraries/LibJS/Runtime/StringPrototype.cpp index e4d33b39332..e3dcbc2d2aa 100644 --- a/Userland/Libraries/LibJS/Runtime/StringPrototype.cpp +++ b/Userland/Libraries/LibJS/Runtime/StringPrototype.cpp @@ -61,6 +61,7 @@ void StringPrototype::initialize(GlobalObject& global_object) define_native_function(vm.names.toLowerCase, to_lowercase, 0, attr); define_native_function(vm.names.toUpperCase, to_uppercase, 0, attr); define_native_function(vm.names.toString, to_string, 0, attr); + define_native_function(vm.names.valueOf, value_of, 0, attr); define_native_function(vm.names.padStart, pad_start, 1, attr); define_native_function(vm.names.padEnd, pad_end, 1, attr); define_native_function(vm.names.trim, trim, 0, attr); @@ -278,6 +279,11 @@ JS_DEFINE_NATIVE_FUNCTION(StringPrototype::to_string) return this_string_value(global_object, vm.this_value(global_object)); } +JS_DEFINE_NATIVE_FUNCTION(StringPrototype::value_of) +{ + return this_string_value(global_object, vm.this_value(global_object)); +} + enum class PadPlacement { Start, End, diff --git a/Userland/Libraries/LibJS/Runtime/StringPrototype.h b/Userland/Libraries/LibJS/Runtime/StringPrototype.h index 95da408160a..64d67b11ca3 100644 --- a/Userland/Libraries/LibJS/Runtime/StringPrototype.h +++ b/Userland/Libraries/LibJS/Runtime/StringPrototype.h @@ -28,6 +28,7 @@ private: JS_DECLARE_NATIVE_FUNCTION(to_lowercase); JS_DECLARE_NATIVE_FUNCTION(to_uppercase); JS_DECLARE_NATIVE_FUNCTION(to_string); + JS_DECLARE_NATIVE_FUNCTION(value_of); JS_DECLARE_NATIVE_FUNCTION(pad_start); JS_DECLARE_NATIVE_FUNCTION(pad_end); JS_DECLARE_NATIVE_FUNCTION(substring);