1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-23 12:45:06 +00:00

LibJS: Add a mechanism for callback-based object properties

This patch adds NativeProperty, which can be used to implement object
properties that have C++ getters and/or setters.

Use this to move String.prototype.length to its correct place. :^)
This commit is contained in:
Andreas Kling 2020-03-15 18:15:44 +01:00
parent bb57bc1b42
commit 3163929990
7 changed files with 125 additions and 2 deletions

View file

@ -36,6 +36,12 @@ namespace JS {
StringPrototype::StringPrototype()
{
put_native_property(
"length", [](Object* object) {
ASSERT(object->is_string_object());
return Value((i32) static_cast<const StringObject*>(object)->primitive_string()->string().length());
},
nullptr);
put_native_function("charAt", [](Interpreter& interpreter, Vector<Value> arguments) -> Value {
i32 index = 0;
if (!arguments.is_empty())