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:
parent
bb57bc1b42
commit
3163929990
7 changed files with 125 additions and 2 deletions
|
@ -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())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue