/*=== FOOBAR ===*/ try { print('fOoBaR'.toLocaleUpperCase()); } catch (e) { print(e); } /*=== TypeError TypeError string 4 TRUE string 5 FALSE string 3 123 string 6 FOOBAR string 9 1,FOO,BAR string 15 [OBJECT OBJECT] ===*/ function coercionTest() { function test(str) { var t; try { t = String.prototype.toLocaleUpperCase.call(str); print(typeof t, t.length, t); } catch (e) { print(e.name); } } test(undefined); test(null); test(true); test(false); test(123.0); test('FoObAr'); test([1,'fOO','Bar']); test({ foo: 1, bar: 2 }); } try { coercionTest(); } catch (e) { print(e); } /* FIXME: basic tests like coercion etc. */ /* FIXME: test that locale specific conversions actually work. * How to force locale for a test? */