tc39 / test262

Official ECMAScript Conformance Test Suite
Other
2.3k stars 456 forks source link

Add test case for `Object.groupBy` / `Map.groupBy` with strings? #4036

Open sosukesuzuki opened 4 months ago

sosukesuzuki commented 4 months ago

Object.groupBy and Map.groupBy take an iterable, such as an array, as their first argument. This can be any iterable, so they can also accept a string.

const str = "abcd";
const grouped = Object.groupBy(str, (char) => char < 'c' ? "x" : "y");

However, it was discovered that in some implementations, a TypeError was thrown when the first argument was not of object type, so this was not working^1.

What do you think about adding test cases to test262 to cover this?

ljharb commented 4 months ago

Sounds great. I'd hope basically all implementation bugs end up with test262 regression tests :-)

sosukesuzuki commented 4 months ago

Thank you, I will try to submit a PR.

ptomato commented 4 months ago

Following up from #4038, I think it might help to have additional coverage for ASCII strings (to help debuggability in case an implementation gets single characters right but surrogate pairs wrong) and grapheme clusters (like 👨‍👦 being split into 👨, ZWJ, and 👦.)