mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-22 12:35:14 +00:00
LibJS: Skip undefined and null in join_array_with_separator()
This it being used in Array.prototype.{join,toString}() - and now adhering to the spec: [undefined, null].join() === ","
This commit is contained in:
parent
86810a4b02
commit
6d6cd64689
Notes:
sideshowbarker
2024-07-19 07:12:16 +09:00
Author: https://github.com/linusg Commit: https://github.com/SerenityOS/serenity/commit/6d6cd646890 Pull-request: https://github.com/SerenityOS/serenity/pull/2011 Reviewed-by: https://github.com/awesomekling ✅
3 changed files with 10 additions and 2 deletions
|
@ -226,8 +226,9 @@ static Value join_array_with_separator(Interpreter& interpreter, const Array& ar
|
|||
for (size_t i = 0; i < array.elements().size(); ++i) {
|
||||
if (i != 0)
|
||||
builder.append(separator);
|
||||
if (!array.elements()[i].is_empty())
|
||||
builder.append(array.elements()[i].to_string());
|
||||
auto value = array.elements()[i];
|
||||
if (!value.is_empty() && !value.is_undefined() && !value.is_null())
|
||||
builder.append(value.to_string());
|
||||
}
|
||||
return js_string(interpreter, builder.to_string());
|
||||
}
|
||||
|
|
|
@ -5,6 +5,11 @@ try {
|
|||
|
||||
assert(["hello", "friends"].join() === "hello,friends");
|
||||
assert(["hello", "friends"].join(" ") === "hello friends");
|
||||
assert([].join() === "");
|
||||
assert([null].join() === "");
|
||||
assert([undefined].join() === "");
|
||||
assert([undefined, null, ""].join() === ",,");
|
||||
assert([1, null, 2, undefined, 3].join() === "1,,2,,3");
|
||||
assert(Array(3).join() === ",,");
|
||||
|
||||
console.log("PASS");
|
||||
|
|
|
@ -8,6 +8,8 @@ try {
|
|||
|
||||
assert("rgb(" + [10, 11, 12] + ")" === "rgb(10,11,12)");
|
||||
|
||||
assert([undefined, null].toString() === ",");
|
||||
|
||||
a = new Array(5);
|
||||
assert(a.toString() === ",,,,");
|
||||
a[2] = "foo";
|
||||
|
|
Loading…
Add table
Reference in a new issue