function assert(b) { if (!b) throw new Error("Bad assertion"); } let tests = [ ["FOO", "foo"], ["fff\u00C2", "fff\u00E2"], ["foo", "foo"], ["foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo"], ["BaR", "bar"], ["FOO\u00A9", "foo\u00A9"], ["#$#$", "#$#$"], ["&&&\u00A9", "&&&\u00A9"], ["&&&\u00C2", "&&&\u00E2"], ["ABC\u0100", "abc\u0101"], ]; function foo(a) { return a.toLowerCase(); } noInline(foo); for (let i = 0; i < 10000; i++) { for (let i = 0; i < tests.length; i++) { let test = tests[i][0]; let result = tests[i][1]; assert(foo(test) === result); } }