1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 14:38:11 +00:00

LibJS: Report string length as the code point length, not byte length

For example, U+180E is 3 bytes, but should have a string length of 1.
This commit is contained in:
Timothy Flynn 2021-07-16 13:04:46 -04:00 committed by Linus Groh
parent 87848cdf7d
commit a2e734d202
2 changed files with 9 additions and 1 deletions

View file

@ -5,6 +5,7 @@
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <AK/Utf8View.h>
#include <LibJS/Runtime/AbstractOperations.h>
#include <LibJS/Runtime/GlobalObject.h>
#include <LibJS/Runtime/PrimitiveString.h>
@ -33,7 +34,7 @@ void StringObject::initialize(GlobalObject& global_object)
{
auto& vm = this->vm();
Object::initialize(global_object);
define_direct_property(vm.names.length, Value(m_string.string().length()), 0);
define_direct_property(vm.names.length, Value(Utf8View(m_string.string()).length()), 0);
}
void StringObject::visit_edges(Cell::Visitor& visitor)