/* * Special identifier names. Cover special (unusual) cases of * E5 Section 7.6. Also check for identifier names that must be * rejected. */ /*=== 1 number 2 number 2 number ===*/ var $ = 1; print($, typeof $); $ = { $: 2, _: print }; $._($.$, typeof $.$); \u0024.\u005f(\u0024.\u0024, typeof \u0024.\u0024); /*=== SyntaxError SyntaxError ===*/ try { eval('var # = 1; print(#);'); } catch (e) { print(e.name); } try { /* U+0023 = '#', note that Rhino allows this while it fails the above test */ eval('var \\u0023 = 1; print(\\u0023);'); } catch (e) { print(e.name); } /* FIXME: more tests to be added */